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.

Friday, August 19, 2011

Depressing Indie Game Dev Story

Just read one of the most depressing indie-game-dev stories I ever saw.
As I've been in a bit of a bad mood lately (unrelated to my game that is actually moving along nicely) I thought I'd share it here.
Here it is: http://www.next-gen.biz/features/humble-indie-fumble-xbla-horror-story .
I'm sure you will immediately find 3-4 things that were done wrong.

Thursday, August 18, 2011

Where I Want to Get to

Finally got back to coding tonight. Fixed the bug that caused me to leave this project for two weeks (turned out to be a very easy fix) and I hope I'm back on track.
I called this post "Where I want to get to" because this was my original intention when I started this blog but now it seems like a really big question to answer.
So I guess I'll focus on where I want to get to with this game and leave the bigger answer to a later time (especially since I've been pondering over the bigger picture lately and I don't really have a good answer right now).
So: I started out with this project with the goal of creating a relatively simple 2D game with a polished look and feel - one that would be good enough to attract users on a promising platform. I picked the IPhone platform as it seems to be the most promising platform for simple games nowadays and I'm using an engine that will allow me very easy porting to the Android later on (I'll get into the technical details on a different post).
I wanted to use the tilt mechanism for a match-3 game (I always liked these sorts of games) but that's been changed a few times already and now it's starting to look more like a puzzle game (or rather somewhere between a reflex game and a puzzle game). That's usually how my projects go, starting out with a basic idea and changing drastically along the way. I like it that way.
Anyways - I was shooting for completion in 4 months but I think it will be more like 6, especially since we started numerous new projects at my workplace that will probably force me to fly a lot and will probably leave me too tired to work at night a few times a week (and of course I have my three wonderful kids to keep me busy in the evenings), but I'm pretty used to these conditions and I'm pretty sure I'll complete this game in more-or-less this timeframe.
Regarding the bigger picture (I feel this post needs a bit of that after all) - I would be thrilled to create games for a living, but I don't think such a thing can work out in my current situation so I'll be contempt with working on these games as a hobby and producing around one per year (or possibly two once I finally stick to one engine and one platform). I'd also like to complete a novel (started four already but never found the will power to finish any of them) and have been dreaming quite some time of starting a start-up (in a field that holds more promise in it than games) and I hope I'll find the courage to do that one of these days.
In the meantime I suppose I'll spend my days working at a regular job (I'll write about my current company (also in the gaming industry) sometime in the future) and my nights (around 2-4 nights a week) working on games.

Wednesday, August 17, 2011

Where I'm Coming From

OK. So - Who am I?
I've been working in various Hi-Tech companies for the last twelve years or so (in Israel and in the US). Started out with programming and in the last few years moved to project management.
I usually use my "night time" (after the wife and kids are asleep) for my hobbies - a bit of writing and drawing but mostly for developing games. I've started numerous "nightly" projects but to date only finished very few.
If we disregard the writing and drawing projects (for the sake of keeping this blog focused) I actually finished two games.
The first was a Sudoku game called "Sudoku Blues" (all the other good names were taken) that I started working on around 2003, forgot about it for two years or so and finished it in 2005. This, btw, points to one of my main weaknesses of working very hard to begin with and then losing interest and not finishing the project (I think I have around twenty examples of such projects, but I think I'll dedicate a complete blog-post for this issue). Anyways - I did finish this one. When I started working on it there were only a handful of Sudoku apps for PC, upon finishing there were well over 300. I put it out as donationware (yes. Once there was such a thing), got a lot of downloads (over 200,000 if memory serves) and made around 200$.
My second game was called "Cube Monsters". It was my first stab at doing something graphical and to begin with was just something I thought I'd play around with. After some time I like the way the game behaved (It's basically a match-3 game in 3D), put some more effort into it, collaborated with the amazing Inbal Laniado for graphics (check her out at http://inballaniado.com/ ), changed the name from the original "Cubism" and put a changing price tag on it (usually 99 cents). It was only available for the PC (big mistake) and I didn't have the will power to port it to a different platform. around 30,000 people downloaded the demo but only around 100 people actually bought it. It was, however, added to games-on-demand services in Portugal and Singapore.
As you can probably see - no real commercial successes (I think I'll dedicate a blog post to explain the mistakes I made leading to this later on), but on the other hand I learned a lot from these two games and had a lot of fun making them.
Incidentally - If you're curious about them you can check them out at http://www.oggasoft.com/ ,
I suppose this makes a pretty high-level summary of my Game Dev experience up till now (without referencing unfinished games). There's a bit more to me than that but I'm trying to focus on game development here so I suppose it's enough.
At the moment I'm working on an IPhone game (as are 50% of the indie game developers out there, with the other 50% working on IPad games). I had a strong spurt to begin with but haven't touched it for around two weeks. I just returned from a family vacation very eager to return to it and I hope this blog will have a positive effect.
I'll explain where I want to get to (at least in terms of my current game) in my next post.

Monday, August 15, 2011

Here goes nothing...

Well, this is my first stab at maintaining a blog. I never really thought I needed one but due to me "slacking off" lately on my new game I figured it might help keeping me on track - and as this is my third game I thought perhaps some of my experience (mostly mistakes :)) and the experience (again - probably mistakes) I gain in my current project might be intersting to any game developers that happen to find this blog.
And if nothing else - it could provide some outlet for any anxieties encountered during this development.
I'll explain where I'm coming from and where I want to get to in my next post.