Since developing Millenipede years and years ago I find that my method of coding hasn’t really changed all that much. I’m sort of surprised, but then I guess it’s like handwriting – although it may vary slightly over time, the basic style will stay the same. Because of this, I’m still programming myself into the same old corners by rushing to get something working instead of planning it out. Though I am acutely aware of its necessity, planning scares me because it’s dull, and dull things have made me abandon projects in the past.
Anyhow, the Unnamed Dejenol Demake Project has reached its second milestone and was considerably more work than I expected – I hope this doesn’t set a trend! As the project is still moving forward steadily enough I want to spend a little more time blogging about my progress than I’ve done with my other projects in the past. Yet this is also a slightly scary event, considering I can’t guarantee the project will ever see the light of day, and I’m wary of getting people’s hopes up (even the whole 2 of you who may be at all interested in this ;)). Maybe the aura of disappointment I spun at the cancellation of Return to Dejenol – nngh, there, I said it – has made me too cautious…
Ultimately, though, what’s the point of hobby-coding if you can’t gush enthusiastically to the world about what puny triumphs you’ve made? It’s about time I started dishing the dirt on what this project might become, and based on past experience and my current level of experience, what features it will and will not have.
Click through the break and let us begin a journey through a +1 wall of text!
It begins with a dream: A vision of an RPG game that reaches back in time to capture the essence of sublime, mid-90s nostalgia, and forwards to preserve it by forging a game more flexible, more intuitive, and more playable than before. The notion of Mordor: Return to Dejenol was born. But see… after glowing brightly, the dream falters and stumbles; slowly but inevitably it collapses into itself under the weight of its own ambition. The memory fades…
…but not entirely, for it is still remembered well enough to illustrate a point. The most important thing I am keeping in mind for this new project is to start small and grow, just as I did with Millenipede. Do not obsess over that which is unimportant. Get it playable, then refine later if need be. With that in mind, here is what I tentatively expect the limits and features of this attempt to be:
- Style the game as a “demake”, with low-resolution graphics and a relatively small set of game content
- Create a storyline that is acceptable to Mordor lore-junkies but explains the game’s primitiveness
- The game will be single-player, with no consideration given to online play
- You will likely control only one character, rather than a party of four, though this may change
- There are no monster companions, nor is there a Confinement in the town
- There are no guilds, as such; the character may pick “perks” at regular points to diversify their skills
- There will probably not be any magic in the first version
- No more than 3 or 4 dungeon levels to explore
- Don’t bother to hide game data in obscure files – store and edit predefined information in plain text
So, already we’re chopping out a good chunk of stuff, for better or worse. Also moved off the drawing board for now is the idea of having individual “user accounts”, each with their own individual knowledge of the dungeon, shop stock, and characters. It’s something I want to put in eventually but after there’s a game for it to fit onto.
Limiting the game so tightly is quite important – it drastically increases my chances of success! If the project becomes playable then it will mean there is a solid base to build from. While I may not be adding things like guilds or monster companions yet, I’m not forgetting their importance for later – I’m trying to design the game in such a way that these features can be added without the need for refactoring (or, in non-gobbledegook, without having to put the code through an industrial shredder and start from scratch).
So far, Milestone 1 has “put something on the screen” by displaying the dungeon and allowing the “party” to walk around. This only involved a re-jigging of existing code from Dalyn’s Quill and so didn’t take an awful lot of effort. But a couple of days ago I got to a stage where I was happy to call Milestone 2 done, and a good deal of code which didn’t exist before is now thrumming away happily:
- A simple file handler was created to read data from a plain text file
- “Monsters.txt” was created and holds at least one monster per spawn type
- The data structure for dungeon spawn areas was expanded to allow actual monster encounters
- Areas will populate themselves correctly from defined monsters, based on area spawn types
- Monsters of the same type and level can be weighted so that some are more commonly picked than others
- The screen now shows what monsters are in a room
Soon after capturing the video for M2 I decided the existing 8px monster portraits weren’t going to cut it, so they’ve since been increased to 32px (David E. Gervais tiles, yay!). I’m still fiddling with the exact encounter display layout – you’ll probably be able to see the results in the next vlog.
For the near future these newly-generated terrors of the underworld will be able to live without fear of being turned into experience fodder for the character – combat isn’t scheduled until M4. Meanwhile, what is to be done? The third important step is to make the game understand the concept of “OMG epic lootz, neeeeed!!” and have UIs added to show the player’s inventory and their stats. In view of the limited 320×240 screen space, this is where I will also try to create a tooltip system to summarise an item’s stats as the player hovers the mouse cursor over its icon, removing the need for a separate “info” pane like the other Dejenol games have used. Given my tendency to nitpick over such things, I must try to restrain my perfectionist instincts and make something reasonable without taking weeks over it!
That’s all I’ll say for now, but as long as the bits of rust keep flaking off the cogs that struggle to bring this project to life, I’ll try and keep up the more open style of blogging about whatever progress there may be. If you’ve enjoyed this random outpouring of words then my job here is done! Should you have any constructive criticism then please, let me know it – pretty much anything and everything will act as motivation for me to continue onward.
I shall see you at our next meeting, when perhaps the project may actually get a name…