This is the problem I have with new projects. I start work on them, and then all of a sudden I want to make some massive change, take a completely different direction, re-boot the whole thing. This has just happened to me with Rogue Code. I was making some coffee in the kitchen when I heard the sound of a police siren in the distance. Whenever this happens to me, I immediately flash back to various zombie films I have seen (i.e. suburban setting suddenly disrupted by cop sirens, gun shots, screams etc.). Anyway, while I was in this zombie frame of mind, I started thinking:
What if Rogue Code was about zombies instead of dungeons?
And then I was away, away in fantasy land. I was planning the URL I needed to buy (www.zombie-code.com is available), I was puzzling out the basic mechanics of the game etc. Note that I am doing this BEFORE I have written one line of code for the original dungeon-based concept. This is actually pretty typical of me. Sometimes I start a personal project, change the specification several times in quick succession, then move on to something else without achieving anything. I guess this is the challenge with personal projects, as opposed to the projects I am handed at work. When you are implementing your own specification, you are just as likely to encounter requirements drift as when you working on someone else’s. I am going go do some more work on the players guide, while I think about this.
OK, after a few false starts, I have created an image using Tiled to illustrate the type of thing I am talking about. It is very simple, but hopefully it paints a picture. A rogue enters a torch-lit dungeon. In the smoky light, he makes out a treasure chest and a dozing guard. Can he nab the treasure and slip away? Will the guard wake up or sleep right through? Just another day at the rogue office, right?
OK, so let’s get down to brass tasks. How is programmatic dungeon crawling going to work exactly? This is a good question. Well, I have started a new page called Players Guide that tries to answer it.
The best part of a project is always the beginning. The first few days or weeks of a new undertaking are full of possibility. Of course, it tends to bog down after that, but right now I am happy, because I have an idea. This is not a commercial idea. I am not trying to make money. It is not an original idea. I am sure that someone, somewhere has already done it. But it is a fun idea, or at least, it seems like fun to me.
What I want to do is take all the programming goodness you can find in Robocode, and throw it at the noble art of subterranean adventuring / tomb raiding. Think about it! You program the adventurer, then drop them into a procedurally generated, semi-random dungeon. You study the results. You improve the code. You change your strategies. Your adventurer evolves. Fun!
Anyway, it is all going to be very simple to begin with. In my mind I am seeing a small grid of tiles that represent a dungeon. Then we insert a sprite representing the rogue, a treasure chest, a few enemies and an exit. Add some very simple rules for turn based action and you are ready to go! It’s easier to explain this stuff using images, so my first research task involves finding a good map/dungeon editor. I have found a few links to something called Tiled, so that is where I am going to start.
My first post! Unfortunately, I have spent so much time finding the right dungeon tile for my page background, I am exhausted. Maybe tomorrow we can get started 🙂