Big Bucket Software you like to use
The Incident Pocketball TV Forecast
Updating The Incident for iPad
June 21st, 2010

When Neven and I started work on The Incident back in December, the iPad was only a rumor. No specs, no screen resolution, but we knew it was coming. We were hard at work when it was announced (in late January) and I initially treated it as a distraction. It took a couple months for us (or maybe just me) to acknowledge that we really needed to get our game onto it. This is what it took to get the gameplay component of The Incident ready for iPad.

Artwork

iPad automatically pixel-double iPhone apps but the end result is janky; the proportions of iPhone and iPad screens aren’t the same so you end up with an ugly black frame and blurry pixels.

iPad and iPhone Screen Resolution

So we needed new artwork. The iPhone resolution is 480×320. The Incident is pixel-doubled so the effective resolution is 240×160. The resolution of iPad is 1024×768. The Incident is pixel-quadrupled on the iPad such that the effective resolution is 256×192. So ultimately, that’s another 16 pixels horizontally that needed to be filled in.

iPad Artwork

Gameplay

There were also gameplay concerns to consider. The screen width is almost 7% wider (remember that The Incident is pixel-doubled on iPhone and pixel-quadrupled on iPad) which means 7% more space for items to fall. So to make the game equally fair on all devices, items were made to fall 7% more frequently on iPad. For example, in the first level, on an iPhone, items fall every 1.8 seconds. On an iPad, they fall every 1.68 seconds. Likewise, Frank’s maximum speed is 7% faster.

Code and Performance

Overall, making The Incident work for iPad was easier than I expected. It took two full days and I hit few obstacles. Something that had me stumped for a while was the actual drawing of the backgrounds. As I detailed previously, the backgrounds are made up of three layers. The top two layers have alpha transparency. The first-gen iPhone struggles to composite these layers so I spent a very long time making it fast.

Turns out the GL_OES_draw_texture extension is pretty awesome. This extension provides a really fast way of drawing a texture to the screen. It supports scaling, but not rotation (so the background image resources are rotated 90° to suit the landscape orientation of the device). However, using this extension to draw a 192×256 image to iPad’s 768×1024 screen is very slow and the iPad frame rate sat at a steady 25 frames. So I added a new code path; iPhone still uses the GL_OES_draw_texture extension, and iPad uses plain old glDrawArrays.

The final result is just awesome. It looks and apparently feels great. I say apparently because I don’t actually own an iPad; all my work has been done in the simulator. Neven assures me it’s pretty cool. He even took a picture for me:

Love it.

The Incident: Getting Started
June 5th, 2010

The first level of The Incident begins with a short scene designed to help the player to figure out what the heck he or she is supposed to be doing. You may have seen it in the official trailer. Here’s how it works in the game:

View it at Vimeo

The player gets control of Frank as soon as the jacket hits the floor. I hope that the combination of the flashing white bar and the ’tilt your iPhone’ animation indicate to that the player that Frank has to dodge. As you can see, the taxi will only land once Frank is safely out of the way. After that, the game begins!

Lost Finale Scene Revisited
June 2nd, 2010

I had to go back, Kate.

Lost Finale Scene

I think it qualifies as finished now.

Tech Support!
May 28th, 2010

I drew this last night when I really should’ve been working on The Incident:

Tech Support!

LOST Finale Spoiler Alert…

This is Jack reacting to his Dad’s revelation that “this is the place that you all made together so that you could find one another.”

I haven’t tried my hand at pixel art for a while and I enjoyed getting back to it even if only for a moment.

Nostalgia
May 28th, 2010

Dharma Mug

Got two of these for my birthday last month. The mug was custom made. Gift was from the same people who got Jess the coffee machine in fact.

To Remember And To Let Go
May 25th, 2010

LOST

TV Forecast. LOST is why I made it. More than 3 years ago.

TV Forecast Dashboard Widget
May 17th, 2010

TVRage recently changed their API and this has caused existing versions of the TV Forecast Dashboard Widget to break. So make sure you download the latest version.

TVRage is currently resolving some server issues so please bear in mind that TV Forecast performance won’t be so great for the next couple of days.

Coin Balloons
May 13th, 2010

The Incident is a game about dodging and climbing falling stuff. Most of the falling stuff is bad. But it is also a game of rising stuff. Most of the rising stuff is good.

The stuff that rises does so by being tethered to a balloon. We call these power-up balloons. We do this despite the fact that some of them are actually power-downs. Shrug.

Here is an example of one such power-up balloon: the coin.

Collecting 10 coins will give you an extra life. Note that the balloons won’t appear quite as frequently as this in the game.

Slide To Play Previews The Incident
May 11th, 2010

How’s this for a concept? The upcoming iPhone game The Incident plays like a cross between Katamari Damacy and Cloudy With A Chance of Meatballs.

Read the full preview at Slide To Play.

Spoiler: They like it.

OpenGL Zen
May 9th, 2010

When optimizing OpenGL code for performance, your primary task is to minimize the number of times you push, pop and manipulate the GL_MODELVIEW matrix per frame. Consider geometry batching and texture atlases only as a means to this end.