Another Port

Well, I can relax now. 🙂

I have the results back from the Samsung contest, but I can’t say how that went … yet. There’s supposed to be a proper winners announcement deal on SamsungApps Thursday, so if I have anything to add, I’ll do it then.

So that’s one thing off my mind.

The other thing off my mind is Intel’s contest. Netbook ports were due today, the same day as the results for Samsung. So it was an… ahem… interesting night for me (that involved me omitting sleep).

I sent off my initial port around noon, the deadline being 6 PM my time. There was some confusion about how entering actually worked. I got caught up in the mistakes some people on the forum had made, so there was a good 5 hours of completely irrelevant stress mixed in. I’m tired, I’m allowed to be confused. 😀

How about some pics?

Smiles Drop, now with rotation buttons

Smiles Drop, now with rotation buttons

Avalanche with extra "Good Job, you lost!"

Avalanche with extra "Good Job, you lost!"

There’s a whole bunch of new things to talk about. I’m looking forward to some R&R, so I’ll be brief.

8×8 Playfield – This one made it in to the Omnia II version of the game too. The iPhone version featured a slightly larger 9×8 playfield, which meant ordinary games lasted a long time. Now with the 8×8, games are much quicker. Spend 5-15 minutes on a round, instead of 15-25.

Rotation Buttons – Now that the playfield is square, it can be freely reoriented without distortion. So that’s how the PC game gets around the fact that it doesn’t have an motion sensor (accelerometer). Windows 7 was supposed to add support to the OS, but I don’t have a 7 machine (or a non phone with an accelerometer) yet to test it with.

Wider Aspect Ratio – Since the buttons needed room, the virtual rectangle the game lives in had to grow. The game is scaled to fit whatever shape screen it end up on. The backgrounds are generated, so they feature enough filler to fill some of the weirder Netbook screen resolutions (Sony P-Series’s 1600×768). On the agenda is to properly support tall aspect ratios, since the game is already capable of reshaping how it plays.

720p Artwork – Though I do have 1080p ready assets, they’re not necessary for Netbooks. Though Netbooks don’t generally do 720p resolution, I have come across an Acer model that’s 1366×768 (i.e. higher than 1280×720). Either way, this PC version bundles the 720p Assets, so it’ll look nice and crisp on one of those, or even low resolution MID’s.

Touch Screen and Mouse Cursor detection – In practice, the only real way to tell the difference between a mouse and touch screen is that a touch screen doesn’t have hover events. Wacom pens do, but not touch screens. So when the game detects motion events, it shows a mouse cursor. If that cursor sits idle for a while, it hides it. That way, the game will function systems that do both mouse and touch. Eventually I’ll add a configuration option to pick which mode you prefer (or just leave it on Automatic).

So all that, plus many bugfixes that I can’t even remember half of them. One such fix is the placement of the Achievements and the thing I call “The Tony Hawk Score Popup”. On the iPhone version they overlap, so you can’t read them both at the same time. Several little things like that.

There’s still much to do. This version of the game was tuned to the Netbook experience. Automatically full-screening, lack of accelerometer, etc. That means I actually broke a few things in the game code, but not things you’d normally be able to see. This project crunch, like the Omnia II one was about getting the game working in several new platform configurations. So when I’m ready to get back to work, I have a whole bunch of code to reorganize in some unified fashion. Casualties of past month include my Linux build, which doesn’t even work anymore. Both recent ports required Visual Studio ingenuity, so I certainly let a few normally portable aspects slip.

A feature I cut from my TODO list was the configuration menu, which I consider necessary for a proper PC build. Some people might like playing in a Window, to force the tall orientation (even if there’s no motion sensor), or disable some automatic behavior feature of mine. The code’s all there to do this, it just needs to be cleaned up so it knows to do this automatically.

Now I’ve surely forgotten something, but that’s alright. The crunch is over (for now). I’ll be taking some time to rest now.