Porting a game to the mobile (part 1)


Porting an existing game to the mobile platform may be an hard job, interfaces, control systems, playing styles must be different on a mobile device, fingers are big, you have no stick or physical keys you can use, gaming sessions are shorter...

A fast port is doomed from the beginning, after the break you can read some of the challenges I took when in november 2012 I started the work to port Eat The Whistle, originally released in 1998 on the Amiga platform, to iOS (iphone/ipad/ipod).


uploaded_image


Eat The Whistle was originally released on AmigaOS in 1998, a year after the market collapse, so it hasn't been a very successful game at the time, also if it got quite good reviews in most amiga magazines.

I resurrected it in 2002, in sourceforge, as crossplatform opensource project, I made it work, but I didn't had the time (nor the human resources) to fix the many bugs and glitches that the porting brought in.

The GPL version had a moderate success, and was included in many linux distro and downloaded several thousands of times without promotion at all.

In the past ten years I've mostly "cleaned up" from time to time when I had the mood for it some sources, but I've not done major code rewrites.

I've had also some small contributions by external developers, but the bad state of the source code and the fact that it was mostly commented in italian has been surely a big blocker.

In november I decided to try to publish an iOS game as spare-time project, I'm not a graphic artist so I choose to try to port and improve something where I already had graphics done.

Fortunately SDL library, the multiplatform engine I used in the multiplatform, in his most recent, still not stable, version does support iOS as platform, unfortunately it supports iOS through the new 2.0 API, so the first step has been a migration from SDL 1.x to SDL 2.x API in the linux enviroment.

The second step has been to create an XCode project for it, put in the needed glue to handle iphone resolutions (old, retina, retina 16:9), and run the game on the iOS emulator.

This pass required about a pair of weeks, working on the game not more than 1/2 hours per day.

At that point, I had the desktop ETW desktop experience on a mobile device and that was REALLY far from a playable game...

Most menu options did not work (load/save teams, tactics, games...), many options were not useful (fullscreen/windowed, resolution, quit game, keyboard settings...), EVERY button was very hard to be clicked. Since there was no joystick and no keyboard the game could be played only in the CPU vs CPU mode, and also in that mode there was no way to pause/abandon the match.

I started my work from the menus, here is an example picture:


uploaded_image


Mobile menus need to have bigger buttons, also you need less configurability, since many of the options you have on a computer are given by the hardware you have connected to it, and the phone/tablet is a standalone device...

I also had a few options that was born to make the game works on 14mhz/2MB Amigas, like disabling referee or crowd effects, I removed these option also from the "desktop" version of the game...

My strategy has been to continue to update the game to be on a single source tree for both the desktop and the mobile version, a preprocessor symbol switches menus and other stuff that cannot be determined at runtime between mobile/desktop.

The next big problem was the control system... I'll talk about it and more in the next part.


Article published on: GGSoft start page - http://www.ggsoft.org/
Reference URL: http://www.ggsoft.org/index.php?mod=read&id=1358867224