Speak friend and enter!
I have been interested in Roguelikes ever since I accidentaly stumbled upon NetHack in the early 2000's. After three and a half years of miserable trying (I only reached Gehennom once) I found ADOM, fell in love immediately, and played it for quite some time until it crashed unrecoverably on my magnificent dwarven priest. He was crowned and everything!
At the moment I'm studying Java (for work and leisure) and developing a small-scale Roguelike project. The project is codenamed "Krool" (pronounced "cruel", reflecting the atmosphere of the game) and will feature a less-than noble adventurer trying to escape hell, fighting various evil characters willing to get out themselves such as Bowser from Super Mario, Mortimer McMire from Commander Keen and Adolf Hitler from
real life Wolfenstein 3D.
The making of a Roguelike
Since I want this to be a learning experience, I have decided to keep a blog(ish) document about my game development here. Perhaps someone will find this helpful. I have used UML for modeling and Java for the actual programming.
Friday, 2 October 2009
I have entered the active development stage of my game (the passive development stage took nearly five years). I have prepared some class diagrams and other drawings of the target situation - a prototype with the following five features:
- Run properly
- Open up in a JCurses window
- Print characters (symbols, not NPCs) and strings in the JCurses window, colours
- Key input reading
- Exit key closes the application
None of these should pose a particular challenge but I have little experience when it comes to key input reading, so that is likely to be the most educational part. I have never used JCurses before, but I'm pretty sure it won't be too hard, as JCurses has JavaDoc (unfortunately it's not perfect, but it'll help a lot nonetheless).
Sunday, 4 October 2009
I have managed to complete the basic interface without the functionality apart from basic key reading. The five features listed above have been implemented, with a small change - I decided to try another text based Java library called Enigma Console, which I believe offers similar functionality and is, as far as I know, fully portable. The key reading implementation I made is extremely lousy and has to be replaced before I begin creating the actual game. It works though, but coding more than just the exit function would be hellish.
Tuesday, 6 October 2009
I have made a few plans and I have come up with an ideal way for testing some of the core mechanics of the game - recreating the old classic, robotfindskitten. The object of the game is to stroll around the gaming area, interacting with various objects, trying to find the kitten and so on. Basically, this would include
- Key input reading
- Moving the character
- Collision detection to prevent the character from exiting the game area and being in the same room as other things
- Messages describing interaction
And possibly even
- Reading the aforementioned messages from an user modifiable file.
Shouldn't be too hard, I have time.
Friday, 23 October 2009
In case you're wondering why it took me so long to write a robotfindskitten app, there are two reasons: one, I got really lazy, and two, I have already started implementing some features a bit more advanced. There will be a nice prototype soon, with a player character moving around and engaging in combat with stationary pieces of enemy flesh. I'll also have to figure out more about the way Enigma prints and how quick my printing method is - if it takes more than half a second to draw a screen I wouldn't like it myself. If the printing method has any problems, they'll be speed related.