I’ve started coding a game. I have a rough idea of the direction I want to take it, but I’m aware that could change dramatically (which I am quite prone to do), or I could drop the project entirely to work on something else. For now, I’ve codenamed the game “Lenna’s Inception,” and the core library/engine running it “legend.”

Starting this weekend, I’m going to try to post a short progress update every Saturday – coinciding with /r/gamedev’s Screenshot Saturday. It’ll be fun for me to look back on this in future.

Progress so far

I’ve spent one week of evenings on this so far. Here’s where it’s at now:

  • Awful sprites and font. I’m really not an artist.

  • Clean MVC design.

  • Game object model mostly pinned down. Written in such a way that syncing and mirroring it over a network should be easy.

  • Reduced-color palette, and sprite recoloring (trying to emulate the feel of NES / Gameboy). Probably still needs some tweaks. I think it’s too brown.

  • Mob AI as finite state machine. Slime AI (seen in the video) written in about 20 lines of code.

  • Written in Java; image manipulation, drawing and controls completely abstracted away so the core of the game will run on Android without any modification.

The challenges I faced:

  • Some nasty deadlocks were occurring on the screen transitions, due to the need to lock multiple objects when drawing the object tree. In the end I gave up and put all game logic and drawing on the same thread.

  • Recoloring sprites efficiently was a hard one to work out. There are still a few things I can do to improve it, but it’s OK for now.

What I need to do next:

  • Hit detection needs some tweaks to be able to correctly handle Mobs moving at any speed.

  • Add mob health and damage.

  • Draw some tiles. I’m fed up of filled rects.

  • Add more mobs and sprites.

  • Implement networking and benchmark it to see how much bandwidth multiplayer uses. (I really need to find out if my object model works in this regard soon in case I need to reengineer it for efficiency.)

  • See if using OpenGL is faster than java.awt.Graphics2D.

blog comments powered by Disqus


17 January 2012