Our Properties: Gamasutra GameCareerGuide IndieGames Indie Royale GDC IGF Game Developer Magazine GAO
My Message close
Latest News
spacer View All spacer
 
February 9, 2012
 
Analyst questions validity of unusual January NPD results [2]
 
DICE 2012: Blizzard's Pearce on World Of Warcraft's launch hangover
 
DICE 2012: Insomniac's Price on Quality Of Life, ditching the 'Loser' badge
spacer
Latest Features
spacer View All spacer
 
February 9, 2012
 
arrow Principles of an Indie Game Bottom Feeder [14]
 
arrow Postmortem: CyberConnect 2's Solatorobo: Red the Hunter [1]
 
arrow Jerked Around by the Magic Circle - Clearing the Air Ten Years Later [39]
spacer
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
February 9, 2012
 
Airtight Games
Art Director
 
Telltale Games
Core Technology - Senior Systems Engineer
 
High 5 Games
Technical Artist
 
XEOPlay Inc
Game Developer (Mobile)
 
Kabam
Lead Software Engineer - Flash
 
Kabam
Lead Software Engineer-Ruby
spacer
Blogs

  Cross-Platform Development For A Single Platform Game?
by Glenn Corpes on 03/18/09 06:17:00 pm   Expert Blogs
1 comments Share on Twitter Share on Facebook RSS
 
 
  Posted 03/18/09 06:17:00 pm
 

I've spent the last few weeks getting my iPhone game up and running on the PC. Several people have seen this as an unnecessary distraction from getting the game finished but it's something I have seen as vital for a very long time now.

Twenty years ago I was playing with a little isometric experiment on the Atari ST.  It was a sort of landscape that could be edited by raising and lowering points of the landscape, just sea and grassy looking blocks of land.

I had no idea where it might go next but everyone else got very excited about it. The rest of Bullfrog worked Amigas so we ported my little demo to commodore's machine. As Peter Molyneux turned it into Populous it never lost its ST compatibilty.

We developed the two versions in parallel sending source files through the serial cable that happened to be running between the machines from where we'd been playing Stunt Car Racer.

As it was sitting there we also added a multiplayer game. This forced us to learn several more important lessons as Populous had a lot of state and data structures had to be compatible between the platforms. This should have been very easy as both were 68000 based machines but there were niggling issues.

Debugging the issues that threw the multiplayer game out of sync was one of most useful programming lessons we ever learned.

Most of the games Bullfrog produced from that point on were built for at least two platforms at a time. The benefits were huge, not just the obvious one of getting two versions for the price of one and a bit -- but also the less obvious ones of running the code through very different compiler and forcing intelligent design descisions on code structure.

Later at Lost Toys we took this even further. Both of the games we produced had PC versions with editors and conversion tools built in.

Our first game featured an editor where we could switch from editing to testing the level in under a second, it also optimised all of the data on a per level basis, spitting out a pre-prepared page of video memory ready to load into the ridiculously limited PS1 video RAM. 

Anyway, my iPhone game is now running on the PC. The "game" part of the code (as opposed to the cross platform library) has just a few #ifdefs in one file to handle the issues of accelerometer+touch vs mouse+keyboard/joypad (I really must dig out that Wiimote code...) while the underlying library is rather more specialised, the PC version using D3D rather than openGL, which should be very useful if I ever find myself porting it to certain other platforms.

Now all I need to do is write that level editor in the PC version and get it spitting out iPhone ready level data. That way I'll be able to start refering to my graphic demo as a game.
 
 
Comments

Richard Flower
profile image
I have to agree with you Glenn, cross platform development even for a single platform game ensures a better more structured code base and greater flexibility. Additionally the platform agnostic code can be debugged on multiple platforms, the PC being a powerful debugging and emulation tool when developing for any platform. It also forces your code to employ better interfaces that require platform separation.

Look forward to seeing your app on the store soon!


none
 
Comment:
 




 
UBM Techweb
Game Network
Game Developers Conference | GDC Europe | GDC Online | GDC China | Gamasutra | Game Developer Magazine | Game Advertising Online
Game Career Guide | Independent Games Festival | Indie Royale | IndieGames

Other UBM TechWeb Networks
Business Technology | Business Technology Events | Telecommunications & Communications Providers

Privacy Policy | Terms of Service | Contact Us | Copyright © UBM TechWeb, All Rights Reserved.