Friday, December 11, 2009

PewPew 2

Here's a news that will make a lot of people happy: PewPew 2 is in development!
It will feature (among other things) new game modes unlock-able by completing some levels (there's a campaign mode), additional sound tracks, and medals and ships to earn.

The release date of PewPew 2 is "When it's done", but I hope to finish it before March 2010.
Programming the levels in the campaign mode is one of the task that is taking me the most time. I want all the levels to have a distinct look as well as a different gameplay. Right now, creating one level takes approximately one week (20% of the time is spent creating the level, 80% is spent polishing it)...

Of course, if you have any ideas or suggestions for PewPew 2, feel free to send me an email (jfgeyelin@gmail.com) or post a comment.

Monday, October 26, 2009

PewPew 1.2 is out!

And the scores are pouring in... can you guess when did Apple publish the update?
So far, I've used 0.6% of the maximum CPU load (and 0% of the bandwidth), so I should be OK!

Sunday, October 25, 2009

URL time

PewPew 1.2 should be accepted anytime now, so the scores are going to start to pour in... luckily I have just completed PewPew's website:

The most important features are the score board and the forum. I made the score board myself in python, and found the code for the forum here. The forum is pretty cool, because it allows you to post with your Google account, or without login at all.

Everything is hosted on the Google App Engine, so if the traffic stays under a limit, I will never have to pay for the servers, and the website will stay up and running for ever.
According to my estimations, I can handle 100 000 score submissions per day without paying for additional bandwidth. Since "only" 50 000 people have installed PewPew, I should be fine.
I have no idea what to expect regarding the CPU utilization, but I have cached a lot of database calls, so I should be OK.
At worse, I might have to pay 1 or 2$ per day during the first week; after the first week, the traffic should decrease significantly.

Thursday, October 8, 2009

PewPew v1.2

I uploaded the 1.2 update to PewPew yesterday. I have been working on it for several weeks, so there's a lot of changes!

First of all, there is a new game mode! I was not planning on adding one right away, but the survey made me change my mind. I won't spoil the surprise about how it's played, but I guarantee it is without a doubt the best mode yet.
Not shown here: insane amount of enemies.

Secondly, there is now an online high score board! In a couple of days, I will post about a small website with all the scores.


Thirdly, all the old game modes have been tweaked: I added a bonus to reward speed in "Dodge This", and there is a new type of enemy in "Assault".

Of course, there are some small new optimizations that should improve the frame rate a bit on the old iPhones and iPods Touch.

Here's the complete list of what is new:
  • new game mode, called "megagore"
  • online scores
  • the possibility to move the camera freely when watching a replay
  • the possibility to flip the screen (useful for iPhone owners)
  • the possibility to disable the text notifications during the game
  • a tougher enemy in "Assault", forcing the player to move
  • an efficiency bonus in "Dodge This"
  • colors in the nick names
  • lots of small optimizations
  • one less spelling mistake (thanks for pointing it out in the comments Anonymous)

Sunday, August 30, 2009

Colors

In PewPew 1.2 (not yet released), you can colorize you nickname. It uses what I call the "Quake 3 text color convention". Indeed, in Quake 3 you could colorize your nickname by inserting "^X", where X would be a number between 0 and 7. Each number was associated with a certain color.
For instance the nickname "^1Hello" would appear red. "^4World" would appear blue. You could even do combinations, like "^1Hello^4World".
Well the same thing is possible in PewPew 1.2, except that there are more colors to choose from.

The new feature in action

Here is a picture showing each color, with its associated symbol:



I hope this will result in a colorful online score table! (more on that later).

Thursday, August 27, 2009

Survey results

I had exams, so I could not really work on PewPew, but now I am back. Let's take a look at the survey results.
There were 46 responses, and I started having responses only minutes after I posted the link on touchArcade's forum. One cool thing is that they appear in real time, in a spreadsheet. Well done Google.
And wow, I can actually copy paste the generated summary into this post.
Here we go:


The game modes are pretty even, though it would appear you like shooting more than dodging.

What is your favorite game mode?

What is your least favorite game mode?


I find the music excellent, and you seem to agree. That's good because the composer is not cheap, he earns 50% of the profit* made with PewPew. The soundtrack is available for free by the way.

How would you rate the music?
Very poor
Excellent


Ah! Google is not perfect after all, they messed up the parsing! That's about all we learn from this question, because I already knew that I am good at making a game balanced.

The difficulty of the "Assault" mode increases:



The difficulty of the "Chromatic Conflict" mode increases:



And now, the most important information I got: it appears you guys prefer a new game mode over online scores! That really really surprised me.

What would you prefer in the next update



In fact, I was planning on releasing an update with the only new thing beeing onlines scores, but that made me change my mind. So yeah, this survey was useful.
Also, I was thinking about doing a game mode that involved dropping bombs, but since you like shooting so much I went in a different direction... that I have yet to find.

Finally, I got a lot of interesting/passionated comments in the form. I'll talk about all the improvements I did for PewPew 1.2 in a futur post.
Thanks everyone.

* that amounts to exactly 0€

Tuesday, July 14, 2009

Survey time

I am currently working on the update, and I'd like to have a bit of input from the players.
It's totaly anonymous and very quick (7 questions).

Friday, July 10, 2009

Volumetric Lines

I first started programming PewPew on Linux, with portable librairies (OpenGL/SDL/libcurl). Of course, I had the iPhone/iPod touch in mind, so I designed the gameplay and the UI accordingly.
After a month or two (once I payed for the $99 for the SDK), I migrated to Xcode and the iPhone OS. I'll write a post about that later because it was not as simple as I imagined it would be.
A week ago, I migrated the code back to Linux, and this time it only took a couple of days :) The goal was to make PewPew prettier by giving the lines a glowing look (like geometry wars) by using the infinite power of my computer (compared to the iphone anyway).


Perfection.

Naturally, at first I failed :-)
My first idea was to draw the lines multiple times, with different width and different transparencies. Here's what it looked like:

Not perfection.


Okay so that was ugly, but it had to be done. The second idea was to use pixel shaders. A pixel shader is small routine executed on the graphic card, that is applied to every pixel drawn. In this case, the shader would blur the screen.
And then I remember that activating motion blur in Crysis made the game run at 10fps...

So I got a third idea, where every line drawn would actually be a streched texture. However, a problem would arises when you would look at the line along its axis: you would only see its profil. By searching a bit (actually, a lot) on the internet, I found out that this problem has been solved, and has a name: Volumetric Lines.
I won't go into the detail of the technique, there is some code here. However I will say that his implementation kicks ass, because he actually use the GPU to process the orientation of the texture (using a vertex shader). Here are some glorious screenshots:





This time, the screenshots are made under OS X, and with the iPhone's screen resolution.

Transparency is not yet working, but that should be easy to correct and I think that using mipmapping will reduce the aliasing (and thus make thinner lines possible). Also, the vertex shader has the additional effect of messing up the tab polygon. hehe.

Overall, I am pretty happy of the result. BTW, it might be possible to run this on the iPhone 3GS at a descent frame rate... To be followed?

Saturday, July 4, 2009

Let there be PewPew v1.1

PewPew v1.1 is finally out. I have not received any crash report (yet?), so the update code seems to work well.
Also, it seems that people appreciate the new game mode =)

Wednesday, June 24, 2009

Review!

First of all, I am happy to announce that App of my Eye reviewed PewPew:
[...] the biggest praise we have for this game is it’s controls, which are very responsive and just feels great overall. If not THE best controls that we’ve ever had in an iPhone game, definitely one of the best. Other publishers/developers should take note. A must-have app for every level of gamer and amazingly, it’s free.



Secondly, last Friday (the 19th), I submitted an other update. Let's hope Apple will validate it more quickly than the last one I submitted!
The most important changes in the new version (PewPew v1.1) are that:
  • The difficulty increases more slowly in the Assault mode.
  • Because the gameplay changed a little bit, the replays you did are incompatible: you will not be able to watch the replays you made in PewPew v1.0. I am sorry, but it was just too complicated to maintain compatibility.
  • I finally added a new mode, Chromatic Conflict. In this mode, you can change the color of your ship. Depending on the color of your ship, you can destroy certain enemies.
  • During the replays, you can stop the rotation of the camera, and fast forward.
Edit: and I forgot to mention that PewPew v1.1 allows you to listen to your own music.

Tuesday, June 16, 2009

Update cancelled!

Okay, so I submitted the update two weeks ago, and it is still "In Review". I had not realized my update was so big it required 2 weeks of attention.

So I canceled the update, because right after it would have been accepted it, I would have submitted a new one, and I am pretty sure Apple wouldn't have appreciated it.

Tuesday, June 9, 2009

Forcing xCode to update the bundle

When you modify some of your ressources files in a xCode project, the bundle does not get updated until you modify some port of the code (or do a rebuild all, which takes a while on bigger project).
So here's my (ridiculous) work around:

mac:~ jyaif$ while [ 1 ]; do touch /Users/jyaif/PewPew/Resources/data/boo; rm /Users/jyaif/PewPew/Resources/data/boo; sleep 5; done

In other news, I am still waiting for my update to get approved. I suspect Apple takes this long, to discourage devellopers from updating their apps too often, as this would force them to hire one or -god forbid- two additional testers. In totally unrelated news, I installed and tried the Android SDK :o

Friday, May 29, 2009

Update sent to the App Store

I uploaded an update of PewPew. From what I read, it will probably take a week or so for the game to be available on the App Store.
Anyway, PewPew now:

  • encourages doing the tutorial when playing the game for the first time
  • asks for confirmation when quitting a game
  • permits the activation/deactivation of rotation during a replay
  • makes it visually obvious to the player that he has taken a bonus
  • has a lower amount of particles
  • has prettier explosions
  • puts the game in pause when a low battery alert (or a music menu pop up) appears
  • ignores replays that can no longer be played
  • make the difficulty increase more slowly in the "Assault" mode
  • respects the players that are listening to their own music :)
Under the hood updates:
  • versioning system for the scores
  • precalculation of the explosions
  • needed models are loaded at the beginning of a game (to avoid ingame slowdowns)
  • externalized descriptions of the game modes
What I should have finished:
  • The 3rd mode
  • An obvious optimization to the collision detection
I am still not satisfied with the way the "3rd mode" is. I have tried a variety of gameplay models, but I can't find anything that's not too hard and not too boring.
Also, the "obvious optimization" will take a lot of time to do, and right now I prefer focusing on finishing the "3rd mode".

Sunday, May 17, 2009

More countries


Yesterday, I made PewPew available in all countries, except the english-speaking ones (US/Canda/UK/Australia/Ireland...)

Wednesday, May 13, 2009

Current todo list

Here is the current list of tasks I need to do before releasing an update for PewPew:
  • force/encourage doing the tutorial when playing the game for the first time
  • ask for confirmation when quitting a game
  • permit the activation/deactivation of the rotation during a replay
  • make it obvious to the player that he has taken a bonus
  • load some of the needed models at the beginning of a game (to avoid ingame slowdowns)
  • somewhat precalculate the explosions, and reduce the number of particules
  • make the explosions more spectacular
  • put the game in pause when a low battery alert appears
  • create a versioning system for the scores
  • ignore replays that can no longer be played
  • externalise the modes descriptions
  • finish the 3rd mode
  • make the difficulty increase more slowly in the "Assault" mode
  • optimize [a small] part of the collision detection
Green = done
Red = might not be done

Tuesday, May 12, 2009

Ratings on the french App store, after 4 days.


Overall, the ratings are decent, and the reviews are good.
It is a good surprise, since this game is really not for casual gamers. I expected more people to not understand/like the game, and subsequently give it a poor rating.
I expect the average rating to decrease though, as unsatisfied people uninstall the app and give it a 1 star rating.

Thursday, May 7, 2009

"Your application status is Ready for Sale"

Ca y est, PewPew est disponible sur l'appstore Francaise/Belge/Luxembourgeoise d'Apple.
J'ai crée un groupe de discussion pour pouvoir parler de PewPew, .

There, PewPew is available!
Since I released PewPew only in France/Belgium/Luxembourg, this post is be both in French and in English.
To ask questions/talk about PewPew, go here.

Friday, May 1, 2009

Status: In Review

Date Submitted: 01 May 2009
Release Date: 01 May 2009
Status: In Review

Now, we wait.

Wednesday, April 22, 2009

Syntax highlighting for Lua in Xcode

It is possible! You only need to copy two files in the correct directory:
LuaXcode3SyntaxColor.zip

(found at Capgo's website via lua-users.org)

Update: after installing this, Xcode started crashing regularly, and at one point I couldn't even send the game to the emulator anymore => I removed the files.

Tuesday, April 21, 2009

PewPew, step 9


Added:
-Lightning on the main menu
-3D cube transition between the menus/screens
-"About" screen
-Pretty joysticks
-A new mode (shown at the end) that totally rocks
-Scores
-Menu to display scores and launch replays
-Hashes to verify the integrity of the scores
-Preferences
-An in-game menu
-Lower case characters
-Scrolling background that can change color.
-Music
-A rotating camera when watching replays

Thursday, March 19, 2009

PewPew, step 8


Added: splash screen, a decent icon, and REPLAYS. Here I am showing the two first modes (using the brand-new replay system)

Sunday, March 15, 2009

PewPew, step 7


Bam. One of the modes playable in the game. Needs to be tweaked to become fun.

Monday, March 9, 2009

PewPew, step 6


Added space partitioning, allowing efficient collision detection between the player, the ennemies, the bullets, and the walls.

Friday, March 6, 2009

PewPew, step 5


Just for kicks I enabled addiditve blending which resulted in... ABSOLUTELY NO LOSS OF FPS. Shown here are spherical explosions (200 particules per explosions), still at 60 fps. I captured the video filming the simulator because I was hoping the quality would be better than when filming my ipod (the pixels on my computer screen are larger).

PewPew, step 4


I added a lua interpreter. The graphics (font/ship/background/bullets) are loaded from lua scripts. Also, openGL is now set up for 3D graphics (before, objects far away from the camera were as big as the objects near).

Monday, February 16, 2009

PewPew, step 3


There, the ship can shoot bullets. I also added explosions, and they aren't slowing down the fps either :-)

Sunday, February 15, 2009

PewPew, step 2


I mostly cleaned the code.
Also, the camera follows the player, and you can control the shield.

Saturday, February 14, 2009

PewPew, step 1


Pheww, finally managed to run some code on my ipod. The left "joystick" doesn't do anything, it's there just to prove I can handle multi-touch.

Friday, February 13, 2009

First

This blog is dedicated to the development of the PewPew, an iPhone game I am programming.

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,...