krish – 起死回生 [Wake up from death & return to life.]

December 11, 2013

Blackberry WebWorks 2.0 on Linux!

Okay!, so first some history.. was working with Webworks 1.x to get my game Baka – The World’s Hungriest Frog packaged for Blackberry 10.x platform.

Ran into quite some problems … not finding debug tokens to missing author.p12 files were just some of them.
To much dismay, suddenly all the docs links I was referring to on the developer url on blackberry site changed to Webworks 2.0 (Yay! RIM released BB Webworks 2.0 based on Apache cordova)

Wasn’t much “yay!” for me as I spent over a week figuring out why my debug token wasnt generating or why I couldn’t package a simple bar file… all in between making trips to hospital for I was under treatment for typhoid (still under medicine as we speak).

rants on twitter

rants on twitter

more rants

more rants

Anyway, I was super pissed… shot couple of mails and tweets and thankfully Erik (@WaterlooErik) mailed back quick…. and with quite a sensible reply. Very kind of him 🙂

3 lines from his email got me the root of the problem

When testing with the new WebWorks 2.0 SDK, you should actually only have to run the following command when your device is connected:
webworks run

This will automatically generate a debug token for you if need be, upload it to the device, and then deploy your project in debug mode to the device.

Have you registered your BBID code signing keys and generated a new author.p12 file already? (If you are using your old CSJ code signing keys, that may be where the issue is coming from.)

My Problems:
1. What he mentioned as “automatically generate a debug token for you” wasn’t happening.

2. So, I was trying everything manually to create those debug tokens… using csj files with the old webworks debugtokenrequest commands and csk with new debugtokenrequest… wait.. in short I had both stuff installed in a big mess.

3. I was using Webworks setup inside a Windows VM running on a Linux host.. so the device was connected via host to guest.. and somehow that pretty much doesnt work. “No Blackberry device found” 🙂

I definitely didn’t want to dual boot my laptop with windows for this (although I could have used my desktop .. I wanted to have this on the move)

Then I found this https://github.com/badtoyz/BB10-WebWorks-SDK-2.0.0.54-Beta

Decided to do a clean install on my laptop/Ubuntu host … so here I take you through how it was done along with some pitfalls.

 

 

INSTALLING WebWorks 2.0 BETA on Ubuntu Linux:

– PREREQUISITES

\\ Install Git, ia32-libs, Java Runtime Environment
krish@shenron:~$ sudo apt-get install git ia32-libs openjdk-6-jre

\\ Update Repo and install python stuff and build tools
krish@shenron: ~$ sudo apt-get update
krish@shenron: ~$ sudo apt-get install python-software-properties python g++ make

\\ Get Nodejs from Chris’s ppa – there is a nice updated build for lucid lynx, so didn’t have to compile from source
krish@shenron: ~$ sudo add-apt-repository ppa:chris-lea/node.js
\\Accept the freaking ppa adding warning 🙂

\\Install Nodejs
krish@shenron: ~$ sudo apt-get update; sudo apt-get install nodejs

\\Install Cordova via npm
\\ Note: I didn’t have to install npm via my package manager. Infact it apt-cache policy npm shows its not installed. Probably comes packaged with nodejs
krish@shenron: ~$ sudo npm install -g cordova


– WebWorks 2.0 Beta

\\ Get from Mike’s (@badtoyz) repo
krish@shenron:/opt$   git clone https://github.com/badtoyz/BB10-WebWorks-SDK-2.0.0.54-Beta.git
krish@shenron:/opt$   mv BB10-WebWorks-SDK-2.0.0.54-Beta    BadToyz-BB10WebWorks

 

– Start UI and Try to create a Test Project

startui

Open a tab on your browser to http://localhost:3123, this should give you WebWorks 2.0 UI
Try creating a project and Build it.

For me, it didnt 🙂 .. It got stuck at a dialog called “Creating…” or something and hung there.
So did a little debug via command line, found where the problem step was, reported it on an issue
https://github.com/badtoyz/BB10-WebWorks-SDK-2.0.0.54-Beta/issues/2

I thought I might now have to wait another week for this, but Mike was kind enough to fix this fast (as you can see from the replies on that issue)

 

 

– Pull in latest from Repo + Couple of more changes I figured was necessary

\\ Stop the UI by Ctrl+C on that term you were running it on.

\\ Pulled in Mike’s fixes. You may not have to do this because you will get latest fix from HEAD
krish@shenron:/opt/BadToyz-BB10WebWorks$ git pull origin master

\\ Install npmlog, graceful-fs and clean .cordova
krish@shenron: ~$ sudo npm install npmlog
krish@shenron: ~$ sudo npm install graceful-fs
krish@shenron: ~$ rm -rf .cordova

\\ Extend PATH variable .bashrc to add /opt/BadToyz-BB10WebWorks
\\ and /opt/BadToyz-BB10WebWorks/cordova-blackberry/bin/dependencies/bb-tools/bin

Add to your PATH in .bashrc

Add to your PATH in .bashrc – Sorry for the small screenshot. Resized by mistake 😦

\\ Now startui again and try to create test project
krish@shenron: ~$ cd /opt/BadToyz-BB10WebWork
krish@shenron:/opt/BadToyz-BB10WebWorks$ ./start-ui

Go to that localhost:3123 again, and try… it worked this time 🙂
Was able to create the project.

 

– CONNECT Your Blackberry on LINUX

I was using z10 dev alpha B.. you might have a z30.

Well, this doesnt work so seamlessly as it does on Windows, aka.. it doesnt connect via usb as a recognizable device.. this is the reason I couldn’t forward the usbdevice into my VirtualMachine windows.

Anyway here’s the work around

1. Enable Dev Mode
– Go to Settings -> Security and Privacy -> Development Mode
– Give a password, remember it. This is your DEVICEPASSWORD
– Set an IP. Default is 169.254.0.1 (I used 169.254.1.5)

2. Connecting via USB on Linux
– Got to Settings -> Storage and Access
– Set USB Connections to “Connect to Windows” or “Connect to Mac” instead of the default “Auto detect”
Now you’ll see the device will be available as a network connection on your network-manager
Note: I renamed it to BBz10 to remember so.

BlackBerry z10 in dev mode on Linux as a usb network.

BlackBerry z10 in dev mode on Linux as a usb network.

3. Test the connection
– You should be able to ping your z10 via its dev mode IP (169.254.0.1 or whatever you set it to)

 

 

– Try to BUILD test WebWorks Project

Tried to build and install the project via UI
– FAILED 😦

Debug Token, Where are Thou? :(

Debug Token, Where are Thou? 😦

What the!!! Same old error. Now I dont want to use that blackberry-debugtokenrequest script again?
Oh wait, Remember Erik said, “When testing with the new WebWorks 2.0 SDK, you should actually only have to run the following command when your device is connected: webworks run”

Let’s try that


 

– Creating a DEBUG TOKEN 

\\ Go to a project directory
krish@shenron:/opt/BadToyz-BB10WebWorks$ cd ~/WebWorks Projects/test1
\\ Run webworks run.
\\ This will ask you for your DEVICEPASSWORD (which you entered when switching on debug mode)
\\ And your KEYSTOREPASSWORD (which you set while generating bbidtoken.csk)
\\ If you did not generate bbidtoken.csk, please do it via
\\ http://developer.blackberry.com/codesigning
krish@shenron:~/WebWorks Projects/test1$ webworks run
[ERROR] The Specified CSK password is not valid.

Whaaat!!! :/

Pretty sure that I had my csk password correct.
Let’s try verbose mode
\\ Trying Verbose on webworks run
krish@shenron:~/WebWorks Projects/test1$ webworks –verbose run –devicepass DEVICEPASSWORD –keystorepass KEYSTOREPASSWORD
Generating config.xml from defaults for platform “Blackberry10”
[INFO] Target Z10-MYDEVICEPIN selected
[INFO] Generating debug token
[ERROR] The specified CSK password is not valid.
An error has occured.

At this point I could see fumes out of my head. This was back to square one. :X
Atleast, it shows MYDEVICEPIN correctly, so unlike earlier, it is able to connect to my device this time 🙂

Did I mention I was making trips to hospital the whole last week? and then working late nights (probably half drowsy) on this with Webworks 1.x
So I thought, what the hell.. lets just try to ensure we have all files correct


– Files you need under ~/.rim or your /home/user/.rim

You’ll need the bbidtoken.csk and author.p12
I backed up my author.p12 from the windows VM from “%HOMEPATH%\AppData\Local\Research In Motion”
and put in under “~/.rim”

I’m pretty sure I had to generate that author.p12 on Windows. Just can’t remember at the moment.

As for bbidtoken.csk, I generated a new one by going to http://developer.blackberry.com/codesigning and requesting a new token for SDK 10.2 for WebWorks 2.0 Beta
AND remember the KEYSTOREPASSWORD you set here 🙂

 

 

– Try to CREATE Debug Token Again

W00t! ... it also deployed the app to my z10? :)

W00t! … it also deployed the app to my z10? 🙂

Yippie! Finally… webwork run also deploys if the app is connected.
Also it created debug keys and pushed it to the device. I could see that on the “Settings -> Security and Privacy -> Development Mode” screen.

But wait, I want to see this working via UI too.

\\ So fire up the ui again
krish@shenron: ~$ cd /opt/BadToyz-BB10WebWork
krish@shenron:/opt/BadToyz-BB10WebWorks$ ./start-ui

\\Try to Build and Install the project via the UI

Building BAR file success!

Building BAR file success!

Huaaaaaaa!!! 🙂
You’ll see your the app fire up on your phone screen and also an app icon installed 😀

Your test WebWorks 2.0 app

Your test WebWorks 2.0 app

Hope this helps someone 🙂

You can tweet a thanks to @WaterlooErik , @badtoyz and may be me if you want to let me know that this worked for you! 🙂
Or if it didn’t, feel free to either tweet to me @srikrishnadas and/or leave your error in comments 😀
Thanks to ダニエル for his nice write up on prereqs for the old Webworks. It did help 🙂 I wish I knew his twitter id to include in the above thank list 😀

An hour past midnight now.. time for BattleField 😉

Btw, You can LIKE our game page – https://facebook.com/HungryBaka to keep updated on the upcoming fun adventure non-endless jumper .. the story of The World’s Hungriest Frog – “Baka” 🙂

Advertisements

December 12, 2012

Indie Game Dev/Designers – Things to Do, Things Not To.

Couple of hours ago I got a request for a game review by an Indie/seemingly Indie dev.
Playing that game, and even some similar games earlier makes me write this list of Do’s and Don’ts for an Indie.

SideNote: Yes, I tend to play a ton of games to learn design flaws and excellences, as an Indie myself; I think its a must..

I however, will avoid making references to those games; because I consider it rude/too harsh on young Indies 🙂

So, here’s a list of Don’ts to start with.. and I’ll keep adding/updating the list as I come across more and find time to instantly add it.

If you’re an Indie, you might wanna skim through this list.. I know it gets excited and hyper to launch a game, but a quality stuff matters more than just throwing something half done out there and then asking around people to review it.
Take it with a pinch of salt 🙂

Indie DONT’s:

1. Don’t release your game as a version 1.0 / any stable to any app store before it actually is a properly done game.
Most of the games I get asked to review look like prototypes.
Please take feedback from other Indie game devs who have already released a good game before considering your game ready for app store shipping.

2. Don’t spoil the gameplay by accompanying it with horrible art.
I’ve seen some games have potential due to their gameplay, but the art sucked to an extent that it made the game eyesore and I stopped playing after 3-5 minutes.
I’m not saying everyone can be a great game artist, but if you don’t have the skill.. please take external help.
Your game will end up selling more and you will see rewards.

3. Don’t spoil the gaming experience by using ear-paining sounds / using no sound at all.
Game sounds are as important as Game Art is. Please get some good sounds in the game…unless your game is the next Limbo.
The player needs to be hooked up both visually and acoustically.
I simply tend to fall asleep if there is no sound in the game; if there is a horrible one, I’d anyway turn off the sound and hence again fall asleep.

4. Don’t ignore your Animations.
Games run on different devices, they can be slow/fast. They could be loaded with other processes eating up the memory.
If a gamer clicks/touches on a certain option on your menu and has to wonder whether the “touch/click” did happen or not… then you’re in trouble. You were probably missing a simple animation that changes color of an option on touch.. letting player know that ‘ok you have touched this option, now wait’.
That’s just the simplest level. There are tons of places where devs/designers seem to miss simple animations that make the game feels responsive.

5. Don’t LIFT art from other games and put them in your Stable release.
Again on the topic of art, I happen to notice a game that uses another game’s Protagonist (developed by a different entity; so not your property) and change the ‘color’ and use it as one of the Antagonist in their game. Not just that, they’ve also used couple of minions (with color changed) in their game.
Which is kinda shocking, because Yes, you can use art from internet for prototyping, you can use license free sprites in your stable release too, BUT using another game’s IP (Intellectual Property), in your STABLE release! A Big NO.
You should be just thanking your stars that your ass isnt sued already.

6. Don’t ask your friends/family/colleagues(non-gamers) to write a Nice review with 5 star rating on app store.
The moment a real gamer looks at those reviews / even a real investor looks at it.. we know that it’s a premeditated review. And on top of that, when we play the game and it turns out to be not-that-great… your game loses even more respect (and even you as a developer lose respect) to have asked people to write “This is awesome. You exceeded my expectations” and also give a “5 star rating”.
I encounter those, I don’t play another game from same developer.. I don’t even care to look at it.
Have some standards, Have some respect to the appstores that might get you revenues later. Don’t forge it. Get real reviews from real gamers.
I’d anyday be happy to play a 3.5/4star rated game that is fairly good, than play a 5 star rated game that has forged reviews and is crappy as hell.

7. Don’t overlook minor User experience stuff
Games that don’t have a ‘Turn sound off’ option, that don’t give enough visual feedback on touches, that don’t have a tutorial on how to play, that has a misguided ‘help’ button, don’t have an exit button/option, don’t bother to reward users on small achievements.

8. Don’t be like an ad serving Porn Site
I agree its difficult for us Indie’s struggling with revenues, but that doesn’t mean you’ll go and put ads at places where player NEEDS to touch/click in order to play the game; forcing users to either click the ad or making user accidentally click ads in between gameplay.
Both are terribly annoying!
I’ll give you an example: Today I played a game that has all its ads stacked up at the end of each level/within a “more games” option in the menu (ads, cross game promotions etc). and then another game that had its ad placed at bottom-center of the screen where I needed to “swipe” to play the game.
Guess what:

First game – I played for 20 mins. I finished couple of levels, wrote them a nice review on app store. Gave 5 star rating. Wanted to tweet but their tweet button was bit broken sadly. Clicked on 11 of their ads featuring other games, downloaded 9 of them and will play them tomorrow. The game still exists on my tablet and I’ll play it again.

Second game – Looked at it 3 secs. Tried to play without touching the ad on accidental swipe. Hated it. Closed. Uninstalled. Will never play it again or may be even not look at another game from same publisher.

9. Don’t have unambiguous/endless/vague objectives if your game has levels and is not an RPG/Puzzle
Damn you if your game says it has 150 levels, and I’m playing the first level since last 15 minutes and your game is a ‘Casual’ genre. Of the 15 minutes, 5 minutes I try to figure out what the fuck I am supposed to do (lack of tutorial), 10 minutes after figuring out due to self-intelligence I’m just killing same minions again and again, with same difficulty level, with no sense of when the stage is “marked” complete or what are the objectives to be met to complete a stage.
Game is uninstalled and it will be long time before I look at another game that says same publisher.

Contributions from Redditors 🙂

11. Don’t advertise your game before it’s ready to be advertised. – by HollisFenner

12. Don’t Bite more than you can Chew! – by ChainsawSam

13. asskickingjedi and MrFidelmios have a list of valuable advises which I thought would be injustice if shortened to put them here.
So linking you directly to it – http://www.reddit.com/r/IndieGaming/comments/14po9p/indie_game_devdesigners_things_to_do_things_not/
Alrighty Guys, that’s it for now.. As promised I’ll keep updating the list. Gotta get back to work 🙂

Blog at WordPress.com.

The Male Factor

On behalf of the ignored gender

Rough Draft

by Atteris Amarth and Darrek Ringo

The Kochi Post.

Read by all + Influenced by none

JumboMake

A signature of Kiran

SAAYAM CHEDDAM FOUNDATION

This blog is just for additional and extension share of it's main frames. No activity is planned from here

krish - 起死回生 [Wake up from death & return to life.]

Get a sneak peek into krish's life, work and passion.

WordPress.com

WordPress.com is the best place for your personal blog or business site.

A Tale of Two and a Half

Monika Amita Bakshi

%d bloggers like this: