Posts Tagged ‘HeliChain’

HeliChain Post-Mortem

Posted by (twitter: @drZool)
Saturday, December 29th, 2007 3:21 pm


What went wrong

  1. Choice of development platform, XNA studio 2.0 Beta. People were having trouble running the game. I knew this before I started but things like Intellisence, love for C# and curiosity of XNA took the upper hand. This was my first XNA game, and my first use of an physics engine. I used Farseer 2d physics lib. Having no previous experience in both fields was challenging.
  2. The controls are like standing 100m away from a real helicopter with a remote control keyboard that has a delay of 2 sec. It made the game totally unplayable for most of the people who actually got the game running.
  3. Too advanced idea for the time frame.
  4. No guidance when flying out of scene.

A lot of these stuff are related to the physics engine and my lack of experience with them.

Physics in action

What went right

  1. The editor was whipped up in director’s authoring app very quick. Place and size different rects and run generate() to make the xml level file. Yeah, loading levels were easy too. with xml serialization.
  2. Sound effects came out great thanks to DrPetter’s sfxr program. The xna audio framework was a bit confusing at first, but it did the trick. Adjusting the helicopter engine sound along with the thrust was effective for game play.
  3. Game play is really fun once you get the hang of the controls. I found myself several times playing around when there was stuff to code.
  4. Code. The code is clean and got unusually many comments for a LD contribution.



So I decided to try to port the game away from xna, to OpenGL, so that more people can play it. The rendering part went fine. But then the physics lib stabbed me in the back again. It uses the xna lib. So I dug out a version that did not. But I failed again. It turns out that that lib also is xna dependent. So I tried to get the source code and remove all dependencies. But failed to grab the source. Not much energy left to de-xna it.

[cache: storing page]