Lessons Learnt from Starcars – A Post-Mortem


I’m a big fan of reading post-mortems on game development. If that sounds somewhat morbid to you, a post-mortem is basically a post-production overview of what went right and what went wrong. And any insights gained after the product has shipped out the door. Whether your product was an amazing success or an absolute bomb, either way, there is always something to learn. Enough time has transpired that I figured I would reflect upon my debut game Starcars.

Starcars – The History.
I came up with the idea to do a skyroads inspired game sometime in 2003 when I was looking for a small scale game that I could produce by myself, with no money and no previous experience. It seemed (at the time) that it would be a fairly easy project to do, but how little did I know back then. Game programming is not trivial and there are challenges present in even the most seemingly innocuous of ideas. It was going to be the first (and so far the only) game that I would see through to the end – hopefully that will change one day as I get started on the next project – albeit with more experience this time round ;)

I released the game sometime in 2004 (I was really bad at keeping dates or recording any kind of logs) with the intention of selling the game online. Due to a pretty poor performance in this regard in 2006 I decided to just release the game for free.

The game was written in Visual Basic 6.0 with DirectX 8.0 using the Bass.dll for music and SFX.

Before we continue I’d like to thank Daniel Radford for providing testing and contributing some levels to Starcars as well as some of the 3D models that are in the game.

What Went Right.

The game got finished
- This seems rather obvious but I would like to point out that just finishing can sometimes show that you’re in a different league. After all anyone can start a project. Finishing on the other hand is a completely different story. And ultimately, that’s what counts. Similar to the “you can’t succeed if you don’t try vein” – If you don’t finish you can’t succeed either. I am happy I actually managed to finish the game to release upon the world.

I learnt a lot – Programming a 3D game can be a bit of a brain bender. Especially since I started Starcars before I had ever taken any university level math classes. In fact, I still don’t know how the collision detection code works ;) Its patched together and hack-it-till-it-works ugly. But that gives it a kind of amateur allure that I’m rather fond of – although I would do it properly if I had to do it again.

The game really tested a lot of my programming skills – which where pretty poor back then on retrospection. GUIs are not trivial to program – yet I managed to hack one together; In my next project I’m spending a lot of time reading up on how to create effective GUIs, both in design and in code.

Global variables are all over the place and there’s very little in terms of object oriented design. In other words the code base is a mess and is very unwieldy – in other words its probably quite representative of anyone’s first attempt at programming a game.

I also learnt a lot of other things that have almost nothing to do with the programming side of game development which are important in other ways, like how to setup a website and get an account with a payment provider, how to get a press release done and how to setup a pad file for download site submissions.

I got a small budget retail run – This was a rather random experience, based on the initial press release I was contacted by someone who represented a game publisher in Russia, they handled all the localisation and converted the game into Russian. In return I was paid a modest upfront fee – $1000 US which came in very handy as I used it to purchase my bass that I play in my band.

What Went Wrong.

It didn’t sell - I guess this is the big one, I only sold a handful of copies through direct downloads from my site. I never did try soliciting to portals, but I have the feeling that I probably would have been required to do more polishing to the game anyhow. There are numerous reasons why the game never took off or made me much money, but the main reason I think would just simply be inexperience, much like it is highly unlikely that the first song you ever write is going to be a number one hit, the first game that you ever make (even if you finish it) is probably not going to be very good.

It took a long time - 18 months all up. That was part-time and in-between studies with large breaks where I had exam periods, or just didn’t feel like working on it. Large blocks of that was just working out how to do one particular aspect of the game – such as collision detection, projecting the ships shadow, or implementing the GUI – All three of which had to be re-searched, re-written and re-worked several times over.

Game design flaws - There are quite a few design flaws that I can ultimately take the blame for. One was doing the UI graphics myself, the fonts and menus have the distinct mark of an amateur. A professional designer can work wonders in this area. If you have downloaded any of the recent casual games you can see examples of just how good some people are at making menus. However I had no budget, nor any previous experience with even getting an interface working in code, so I got by on what I had.

Two other game flaws were locking the frame rate at 25 fps – I wanted all computers to run the game at the same speed and I should have used frame rate independent motion. But it was too difficult to retrofit after I realized that [that] was a far better option – blame my difficult to manage code. The other mistake was not providing a windowed mode option. Before I was working on a 17″ CRT and the game looked fine. But after moving to a 19″ LCD I can see the benefits of providing a windowed mode. Not providing a windowed mode runs the risk of annoying the player by not letting them play on their own grounds – something you don’t want to run the risk of doing.

A few of the online reviews commented on the lack of any physics within the game. It was my intention from the beginning to create an arcade game more than a spaceship/racing simulation game and I deliberately left out inertia, and kept in ability to move left and right whilst in the air to keep the ‘responsiveness’ factor up. This would have suffered if there was more inertia involved.

Unclear target market – The Field of Dreams – ‘Build it and they will come’ is not a very good marketing strategy. Although I don’t really know what I would have done differently should I have made the same game again. Maybe designed some kind of mascot as the main character? Who knows, it doesn’t really matter anyway as my next project is going to have a lot more thought going into ‘who the player is and what would they like to see’ right from the beginning – at the game design stage. This will let me focus on the game design as well as the marketing at the same time.

Summary
Hopefully this post-mortem didn’t come across as too depressing – It’s easy to point out flaws after the fact. I enjoyed working on Starcars, making a website and attempting to dominate the world. And even though the game didn’t make me much money, it gave me good experience and I learnt things that I would never have learnt had I not at least attempted a game.

My next game is going to do a lot better ;)

The full version of Starcars can be downloaded for free at http://www.peachysoft.com/?p=4

  1. #1 by Juuso - Game Producer on July 17, 2007 - 1:52 pm

    Excellent post – and right attitude you’ve got there! Next game is going to do a lot better sounds good :)

(will not be published)