Exterminate! Post Mortem

Posted by
December 22nd, 2012 6:00 am

It’s been a week already. Time flies! So I suppose it’s time for my game’s post mortem.

What went right

  • The theme. While I didn’t have any pre-planned ideas, coming up with an idea was pretty easy. An AI that decides people should die. While the end product differed a little from the ideas I had initially, I think it made the game more enjoyable by making you actively involved in the brutal murders of death.
  • The tools. By now I know pretty much all I need to know to make a game in 48 hours with Visual Studio and XNA. I ran into zero problems related to my tools or knowledge of them, making the development easy and smooth. I only ran into a few small roadblocks regarding implementing some features, but they were nothing no dirty hack couldn’t fix in a few minutes. While I really should move away from XNA at some point in the future, I just can’t yet as it’s so easy to work with. 😀
  • A built-in level editor. It was the first thing I made, and while it’s a horrible thing for any purpose other than LD, it got the job done and made it possible to create complete levels in minutes. I will seriously consider making this the #1 task for any future LD game I’m gonna work on.
  • The AI. I’m very happy with what ended up being AI controlled. The humans react to doors closing on them and other shenanigans you might be doing to them, resulting in some sort of realism. Of course, they look like shit, so it’s not that realistic, but still!
  • The features. I almost completed all the things I wanted done before the deadline. The only things that didn’t make it are in the post-compo version, which took a few additional hours to create. While I’m sad they didn’t make it in, it doesn’t change the fact that there are many ways to kill people, lots of achievements, and a bunch of playable levels. Probably the most I’ve ever done in 48 hours so far.

What went wrong

  • The graphics. There’s no way around that fact. My game looks like shit. It’s 3D, which is the only positive point, but the walls are ugly and exactly the same, the entities are ugly boxes that don’t rotate and have a single texture for all 6 sides, and there are no animations at all. I really wanted to add better graphics, but my main focus was on gameplay elements, and halfway through day 2 my code was so ugly that it was pretty much impossible to replace the cubes or the single-texture geometry.
  • No goat. I wanted to add a killer goat that was locked up somewhere inside the base, and it would seek out humans and eat their face etc. But adding that would be too much work. My pathfinding was slow and static (very inefficient BFS, or at least I think that’s what I ended up with) making it hard to find humans, and I could only make a cube goat anyway. :(
  • Collision detection. Mostly a problem when you have a human grabbed and you want to make a turn in a small corridor. So frustrating! 😀
  • The controls. Always make the controls as smooth and easy as possible. I didn’t do that. I imagined that if you are an AI and you control all those things, then you do that indirectly. So I made the indirect button panel, which works, but it’s pretty crap. The first-person view added movement keys, which was a huge improvement already, but I did not make a ‘move backwards’ option. I should have, but I ignored that as I learned to deal with it while devving. But it’s horrible, unintuitive, and it makes the game much less enjoyable imo. But that’s just hindsight, so it’s a lesson learned for next time: If something doesn’t feel right during development, don’t learn to deal with it, but fix it immediately.

Overall I’m very happy with what I ended up with. It’s pretty much a complete prototype. If you have the chance, give the post-compo version a try as well for the super fun camera features. I recommend playing the two dark maps then, as you have to rely on the cameras for your human awareness. The second dark map is especially hard to not screw up on.

I won’t continue working on my entry, though. While the concept is nice, the code isn’t. A massive refactoring is needed before adding anything non-trivial or related to graphics, it would be much easier to start over from scratch and to do things right instead of quickly. It would be interesting to see an implementation of this in UDK or something, with realistic graphics. Imagine the scientists discussing things with each other while they are at work, and then you shut down the doors, grab them with robots, and force them into incinerators while they are pleading for their life, only to throw their crispy remains against their co-workers as they are banging on the doors and screaming for help. Horrible! 😀

You can view my entry here


Leave a Reply

You must be logged in to post a comment.

[cache: storing page]