snakenstein revisited

This morning, a job posting went across the MUD-Dev meta list. Well, two postings, really, but the one that interested me was an entry-level game programmer position with Three Rings – the Puzzle Pirates people. They are an open-source house that develops in Java under Debian. They use Ant and have a pretty cool open networking library (matchmaking, etc…) called Game Gardens.

Part of the job posting mentioned that short-listed applicants would be asked to develop a small game in the library. So, I’ve been poking around with it today and think I have a pretty decent grasp on how they’re doing things.

In preparation for playing with the library further, I am planning on writing a networked version of the old snake game. I figure since it was the first graphical program I ever wrote (Turbo Pascal, back in the summer of ’93 or so), it’s a good candidate.

My first playable (single-player) draft of the basic game took about 2 hours to write up since I kept getting distracted by Penny 😉 I’ve got a jar file available for download here. It is pretty ugly at present and doesn’t keep score (other than growing your snake). Every time you crash, it will ask if you want to play again – until you click no, at which point the program will just sit there until you close it.

It doesn’t use Game Gardens yet, that’ll be the project for tomorrow. I have plans for allowing for various types of power-ups and a population of up to 4 snakes on the field (one starting from each cardinal direction on the map). We will require the players to collect assorted eggs until a key appears. Grabbing the key will open the exit, go through exit to next map. Maps will have various silly little patterns of walls on them. If I get to keep playing with the thing, we will probably add different sorts of walls – moving obstacles, etc… I also have ideas for actual sprites to use, but that’s not a major priority – the game runs just fine in blocks of colour.

Leave a Reply

Your email address will not be published. Required fields are marked *