Sunday, August 21, 2011

Some Boring Technical Details (and: Developing for IPhone using Windows)

Thought I'd share some technical details about my new game. If you're lacking knowledge in programming I suggest you skip this post (as it will bore the crap out of you).
I'm a big fan of game engines and choosing the right one for the job is always a challenge.
Before starting "Cube Monsters" (my previous game) I played around with Panda and Ogre (as they seem to be the best open source engines out there) but ended up using a lesser-known engine by the name of FlatRedBall. The reason was that it works with C# which is easier for me to program with. It was actually a very good experience (nice engine with good forum support). The problem was that it left me able to deploy only to Windows and XBOX (now also supports Windows Phone). After releasing the game I understood that it's most appropriate platform was mobile and to port it I would need to write it again from scratch with a different engine (and I couldn't find the strength to do so).
So: I decided that for my current game I'd look for an engine that would allow IPhone deployment, Android deployment and also Windows. Most of the engines I looked at (Cocos2D being the best in my mind) required programming on a Mac and using Objective-C (which I don't like).
It also annoyed me that I have to purchase a Mac to develop for IPhone. I continued searching and in the end found two engines that allowed programming on Windows. One was called DragonFireSDK which had the weird requirement that to compile the game you would need to send the code to them so they can compile it on a Mac (which bothered me on various levels) and the second one was called AirPlaySDK (changed later to Marmalade (www.madewithmaramalde.com). This one allows the user to develop on Windows using C++ in Visual Studio. It supports IOS, Android and various other platforms, all using the same code.
I've been using this one for the last 2 months and am very pleased with it. The only drawback I have with it is that it has very slow forum response time but I'm sure this will improve as it grows more popular (which I'm sure it will). Oh - And it also costs 100$ per year for an indie license (there are a lot of free game engines out there but if you're going to use Windows to develop for IPhone there aren't any free ones).
That said - I'm able to easily code, debug (using a built in simulator) and deploy to an IPhone, all without a Mac. The only thing a Mac is needed for is to upload to the AppStore. For this I'm using Virtual-Box which allows me to run a virtual machine of a Mac on Windows.
I needed a basic 2D Physics engine also and after some searching I ended up using Box2D, which is working out fine so far.
For this game I don'r see a need for any other SDKs (unless the Marmalade audio is not good for me (not saying it is, I just haven't gotten around to adding audio yet).
Anyways - If you're a game developer trying out your first game I strongly suggest that you take at least one week to evaluate various game engines and choose the one that is right for you. A good place to start would be here: http://www.gpwiki.org/index.php/Game_Engines . It's nowhere near a complete list and hasn't been updated for quite some time but it will set you in the right direction.
That's about it regarding the technical details (in very high level). I apologize if I bored all you non-technical readers.

No comments:

Post a Comment