Project: Raindeer

About a year ago, I got fed up with just sitting around at home thinking of all the programming I could be doing, instead of watching TV-series. Triggered by a tweet someone in my feed retweeted, I decided to start with the project. The tweet was something like Make a game, not an engine, which made me realize that I had made two or three more or less working engines, but never actually used them. I decided to start fresh.

Inspired by a dream I had one night, I made up some game mechanics and a basic theme. This was the list of goals I had when starting the project.

  • Release the game, even if it’s not perfect.
  • Be platform agnostic. Use SDL, but try to abstract away the SDL dependency.
  • Don’t obsess over details. Even if code is not optimal, it will do fine as long as it’s bug free.
  • Try out new techniques I haven’t used yet.
  • Have fun. It’s fun to code, so code! Don’t ponder on the best way to solve things.
  • Learn from mistakes for future projects.

The first thing I did was to install a trac, and write down the project goal, basic game design and a project plan. And then I started to produce code.

At least that’s what was supposed to happen. Instead after creating the initial file structure and a skeleton project with some glue code, it took a halt. The two main reasons; I almost immediately forgot was I was set out to do. I started to think about the best way to do things. Even reading keyboard input, which in this case was really simple since SDL provides the hard part, felt like a major obstacle.

My first milestone - drawing a box on screen and moving it around the the arrow keys - was supposed to be done in the first week. Today, 10 months later there still is no box on screen. The input is working though, but when it comes to rendering, I have decided to add an abstraction layer on top of the rendering API (OpenGL in this case).

I just picked up the project again a few weeks ago, and I hope to get up to speed this time, and I think blogging about it might help.

An update will come soon, I hope.