Tuesday, November 22, 2011

Space War

Today, while doing my daily googling of PewPew-related news, I found a piano version of PewPew's main theme!


I hope an a capella version is coming.

Thursday, October 27, 2011

Keyboards

At one point during the development of PewPew, I wanted the players to be able to enter their name for the online high scores and replays. At first I started to use the native iOS keyboard,  and for a couple of months that's all there was.

But because I always wanted to have as few OS-specific code as possible to make the porting to different OS as simple as possible, I decided to implement my own keyboard.
It was going to be a lot of boring work though, so I kept postponing for later... And then, one day, I got in I saw this:

Extract from Gunnm, a fantastic manga.

I immediately wanted to have this keyboard in PewPew, and two days later it was done. And it looked great:
custom keyboard = seamless integration.


Besides the speed gain when porting to a new platform and the code simplification, there are many other advantages to having a custom keyboard. PewPew's font does not contain all the characters, so I can show only the characters that can be entered. Also, you can have custom colors in your nickname, and by having a custom keyboard I can make it very easy for the users to specify them:


Of course, there are disadvantages to using a custom keyboard: the users aren't used to the layout, they can't copy paste, the native keyboards are likely capable of detecting false key-presses, etc... but when you just want to enter your nickname, those things are not important.

Thursday, October 20, 2011

Asteroids

Quick post to say that I released an update for both PewPew and PewPew 2, that includes a new game mode called Asteroids.
It's of course an homage to the classic 1979 game, albeit PewPew style: lots of shooting, and lots of enemies.

A few notes: To keep the retro mood going on, the ship's color is forced to white. The asteroids' shape is generated at run time: it was faster for me to write code than to draw manually them :-) Added bonus: they have a unique shape every time. Final note: I resisted the urge of making the asteroids rotate, to stay closer to the original. A game developer's life is tough.

Tuesday, August 30, 2011

PewPew in Bangkok

I was until very recently doing an internship in Singapore. I got to visit southeast asia, and while in Bangkok I saw this advertisement in the metro:



It made my day :)

XPeria Play support

While it's true that Android's openness cause fragmentation which increases the work of the developers, it also allows the creation of new markets and opportunities.
The XPeria PLAY by Sony Ericsson is one of those opportunities, and allows mobile game developers frustrated by the touch screen to have fun ;-)

As you can see, it has buttons, but most importantly for me, it has two touch-joysticks (I just invented that term, and now that I think about it, it doesn't mean anything).
I recently released a version of PewPew 2 optimized for the XPeria PLAY, and will be doing the same for PewPew 1 soon.


Sony Ericsson has been really awesome with the whole thing. After exchanging a few emails they rapidly sent an XPeria PLAY simply after I promised I would bring PewPew to their phone. No stupid contracts or anything, they just trusted me. Really cool.

Now the phone itself is fantastic and feels really solid, and the joysticks are surprisingly usable. It is thicker than most phones, but that's to be expected from the slide out gamepad. The GPU is great and in fact it's the Android phone I tested where PewPew runs best.
You can read a more detailed review over at engadget, but overall if you like playing games it's a great phone.

Saturday, July 9, 2011

Download numbers

When reading other's developers blog, I always appreciate reading the posts about the number of downloads. It is always useful to know how many downloads to expect, and what impact different events can have.
The mobile landscape is changing fast though, and while you can get a pretty good idea of the dynamics of the Apple Appstore,  there's not a lot of information regarding the Android Market (AM) and the new Amazon Appstore (AA). Here's my humble contribution (please note that all the numbers given are approximations).


PP on Android Market
During the first two weeks, PP was getting 800 downloads per day. However it got featured by Google, and the downloads increased a hundred folds (it got up to 80k downloads on one day). During the one or two weeks it was featured, it got about 900k downloads and entered the most downloaded free app list. I am guessing that currently, every free app in the top 10 are getting at least 40k downloads per day.
Right now PP is getting 3k downloads per day.
One metric that people rarely share is the number of active installations. It is particularly relevant if your app is advertisement based, because you want people to keep using (and thus having) your application for as long as possible. Currently, 37% of the people that downloaded PP kept it, which I think is pretty good considering it's a free application (I download a lot of free apps, but most of the time uninstall them quickly).

Active installations of PewPew.
PP2 on Android Market
Shortly after it reached 1 million downloads, I released PP2. Two days later, I updated PP to include a link/advertisement for PP2. I was getting around two hundreds downloads per day. PewPew 2 was then featured, and there was a 50% boost which is nice, but really nothing extraordinary.
If I recall correctly, with 400 downloads per day, PP2 was the number 5 in the top selling games category. Right now it is around #40, with around 50 downloads per day.
Active installations of PewPew 2. Currently the rate is 85%


PP and PP2 on the Amazon Appstore (aka the Useless Appstore)
While I was featured on the AM, Amazon contacted me so that they could get my application on their store. I happily obliged, having heard that if you were lucky enough to be selected for their "free application a day" program, you'd earn a boatload of cash. The idea was that Amazon selects one application per day, makes it free for their customers but still pay 20% of the application's price to the developer instead of the usual 70%.
PP2 got selected for the "free application a day" operation, but I actually did not earn anything because Amazon makes you sign a contract that cancels the one where the 20% are mentioned. In the end the operation translated into 100k downloads of PP2, but 0$ in my pocket. Some might say that it's worth it because of the free advertisement you get, but on the other hand you do loose quite a lot of potential sales. More importantly, I believe that giving out your products (even for a short amount of time) devaluates their value, but that's a topic that deserve a separate post.
The last thing I'll say about the AA is that in June, PP2 got 18 downloads...


Conclusion
Getting featured on the AM is awesome when you are a free app, advertising a payed app from a free app that is featured is a good idea, and it appears that the top games aren't raking in as much money as the top games on iOS.
Also, currently the AA is useless. If the rumors that Amazon is going to release its own tablets are true, that might change, but for now the AA is not interesting for developers.

Wednesday, May 4, 2011

Interview

Here's an interview I gave for droidgamers.com.
Among other things, I talk about which games influenced PewPew, what it's like developing for Android, what impact does getting featured on the Android Market has, and what I think about ad-supported applications.

Tuesday, February 8, 2011

Success and crashes

One day has passed, and PewPew is doing well. It has entered the Hot android app category on AppBrain.com, and I am receiving a lot of positive feedback. While monitoring twitter I found 14n3 saying "Oh man, making a review of PewPew, this game rocks!". Always gratifying.
Unfortunately, there are a few people reporting crashes.
Since PewPew is very stable on the iOS devices, the crashes must stem from Android specific code I added. There are two areas where I am not sure I am doing everything right:
It's either the handling of the application life cycle, specifically the part where I have to reload the openGL data when the game is resumed, or the http requests to upload and download the scores and replays.
Those thing would pose no problem if PewPew was a Java application like most Android applications, but it is 99% a C++ app with a thin Java wrapper (and thus uses JNI). To reduce the amount of JNI code I cut some corners.
At first I started using the Android Java API for the http requests, but then I realised it involved doing a boatload of JNI functions and threads, so I decided to use a C++ library. Curl and Boost are the most well known C++ libraries for that kind of job, but they are also completely overkill and would require too much time to integrate in PewPew. I searched for a light alternative and found HappyHTTP.
HappyHTTP does all what I need, and can be integrated into a project simply by adding a .h and .cpp file. The only problem is that it uses C++ exceptions. I can't use exceptions in PewPew even if I wanted to, because currently the Android NDK does not support exceptions handling and STL usage at the same time! I quickly hacked an exception-free version of HappyHTTP, but I may have messed up some things up, which may cause the crashes on some devices under certain conditions...
I hope I fix everything quickly so that I can resume doing the fun stuff: working on new levels and game modes.

Monday, February 7, 2011

PewPew 1.5 available on the Android Market

The title pretty much says it all. I uploaded PewPew to the market today, and it is now spreading across the internet.
Here's the link to download it for Android.

From what I've seen, PewPew is by far the best shooter on the Android Market. On my Nexus One, I'd say it runs at approximately 4 time the frame rate of the current most popular shooter, Gun Bros.
BTW, Gun Bros is an absolute piece of crap, gameplay and UI wise. It's sickening to see the work of good artists go to waste with game designers like that. Sorry for the rant, but some games just revolt me!

Now go play PewPew on Android and fill the empty leaderboards :)

Unexpected Gotchas in Making a Game Deterministic

When aiming for a fully deterministic program, it is common knowledge that you have to deterministically seed your random number generators,...