Developing Games for Netbooks – Smiles

  • Share
  • Share

29 Apr, 2010 2:00 pm

1 Comment

Developing games for multiple systems at once is one way to tackle it. Learn about specific challenges for porting your game on to netbooks from the developer of the award winning game smiles Mike Kasprzak, CEO of Syhkronics.

If you want a little more information then what was given in the video interview I did, here is an excerpt from a longer Interview on the AppUp Developer Website.

The first question in the interview is: What tools & method did you did you use to port your app to Netbook, and why did you go that route?

Before you read his response, you can click here to read the interview in its entirety.

First of all, I used OpenGL for graphics. Virtually every platform worth its weight has a version of OpenGL for it (or an API just like it). On Mac, Linux, and most mobiles, it’s their sole 3D graphics API. On Windows it’s an accessory, but it’s always there. OpenGL is actually a much older API than DirectX, but it’s a robust and solid design that continues to be relevant almost 20 years later.

I wrote my game in C++, which is also quite good at being “old”. I’d hide the iPhone specific features requiring Objective C code behind C style functions and variables, so to port to PC, I simply had to rewrite these functions.

I structure my project manually so I can mix and match Xcode projects, Visual Studio projects, and makefiles together in one common layout. It takes some planning and homework to do this right, but it’s far better than copying files around manually. My makefile setup is custom, and automatically detects all files in my project. But for both Xcode and Visual Studio, I manually build a project by dragging all my source file in (directories at a time).

I keep my files synchronized using Subversion (SVN), which is also great for backups. Specifically I use TortoiseSVN on Windows and SCPlugin on the Mac. Both integrate right in to Explorer/Finder, which makes them very easy to use.

And for the PC side, I used SDL as my host API instead of writing native Windows API code. On iPhone I wrote native code, but the PCs are all SDL. That has the added benefit of working on Windows, Linux and the Mac, in addition to some Linux based mobile devices too (Nokia, Palm).

But even though I used several standard libraries, I still wrote my own wrapper library on top of OpenGL and SDL. This will let me eventually port the game beyond those supported above, to DirectX on Windows, Khronos’ OpenKode platform (the OpenGL group’s alternative to SDL), or to the native APIs of game consoles like a PlayStation.

Finally, the game code itself is like a module that sits on top of platform specific code. It has an Initialization function, a Step function, and a Draw function. The game code doesn’t care what shape or size the screen is, it just draws on what it’s given. Every frame of the game is a call to “Step” then “Draw”, but if the game is is ever running too slow, “Step” can be called a few times to catch up.

Related Posts