Just a note to anyone who wants to keep instantly up-to-date with anything and everything relating to Mordor: Chronicles – I’ll almost always use my Twitter and Twitpic feeds to blurt out the bleeding edge state of affairs, stuff just like the screenshot over there on the right. Like everything else it’s not updated consistently – but it’s probably much better than waiting around for it to appear here!
The past few days rank up there along with the first week of coding as the most productive time I’ve spent on the game yet, which I suppose can only be a good thing! I thought I’d go into a bit more detail about where things stand as Milestone 4 of Mordor: Chronicles is nearly done.
The main goals for this stage were to get combat working and to allow the player character to equip a selection of weird and wonderful items that are magically placed into his possession by the use of arcane debugging magic. I’d been at a dead stop for a couple of weeks after reaching the dreaded point where I had to formulate a reasonable way of calculating damage done by player and monster attacks… but several days of concentrated braincell burning, spreadsheet wrangling, and interface jockeying has paid off!
Barring a few rough edges, combat and equipment is working, and the video below illustrates how the flow of combat is displayed. As you could probably guess, bloodstains with numbers inside indicate damage dealt, a skull indicates the swing killed a monster, and the small diagonal slashes indicates a miss. Also present are shields, which indicate that you (or a monster) landed a hit successfully but, due to high defence, did no damage. Didn’t catch any of those in this short clip – but they’re there.
There are still rough edges, the most serious being the character’s uncanny ability to move and escape from combat at any point – but nothing some further hacking and bodging can fix!
Tomorrow I’ll be setting up a new level and giving the monsters some varied, real stats to properly check that the combat formula gives satisfactory results (and at least partly matches up with my test spreadsheet). Unless there are signs of serious problems I won’t spend too long balancing and creating real content at this stage, though… that lovely task will come much later.
“Oh,” I thought. “This looks different…”
I had just embarked upon a new Roguelike adventure. On a whim, I had renewed my acquaintance with the rec.games.roguelike.announce newsgroup for the first time in an epoch, and lurking within were announcements relating to the usual long-standing suspects – epic saga ToME, fast-paced DoomRL, Rogue-with-mechs GearHead, classic Angband and its variants, and many others. But there were also lots of unfamiliar names, a testimony to the rate at which the Roguelike scene has expanded over recent times. Looking down the list, something drew me toward Brogue by Brian Walker – was it the clever name or the enigmatically plain description? Or was it just the fact it had an unusually solid-looking version number of 1.6? It’s impossible to say. Further investigation was required!
I was looking at a typical ASCII dungeon of hash signs and dots. But this dungeon had colour, variety, and life - not the usual console window of decidedly 8-colour visuals. Yes, yes – not judging a book by its cover is all well and good, but there’s no harm in making a good first impression, is there?
“Cool – there’s plants that block my vision. Let’s try walking through them. Oh, they grow back! Perfect for hiding in! Neat. Wait up, what’s that over there? Oh hello there, mouse control – this takes me back to playing Larn on the Amiga!” Good first impressions indeed. But there was plenty more to surprise me…
Just a heads-up to mention that there’s also a shiny new vlog to illustrate the current state of my pet code-thing-with-no-name. A little progress is better than none at all, yes? You’re welcome to marvel at the 38% reduction in coder art in the little rectangle of moving pictures below. Not only that, but as promised, the Unnamed Dejenol Project now has an at least semi-official working title – it took me the best part of several days to decide, and I’m still not particularly happy with the outcome, but heyho. Watch the video to be underwhelmed by my choice!
Lying ahead for Milestone 4 are things that are somewhat more interesting, and at the same time, also more dangerous: Equipment and combat. I have a feeling that this will involve brain-melting consideration of maths as I try and create some decent formulae to cope with chance-to-hit, damage dealt, and suchlike. Preferably ones that don’t rely quite so much on exponentials as the original Mordor did…
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!
Okay, so here’s how things are standing with the project-with-no-name – after using some industrial trussing-up code, I’ve finally gotten an ancient and embarrassingly simple bug in the dungeon editor to stop making everything else fall down repeatedly! Friendly advice from one coder to another: Don’t save values as signed Integers and then load them into an unsigned Byte variable. Just don’t. The number formerly saved as -1 is not amused at such shenanigans.
I’m nearly done with Milestone 2, and possibly might have had it nailed today were it not for the aforementioned editor malfunction. Tomorrow I intend to finish defining debug monsters for each of the 18 spawn types – as close as I am to nearly being able to list all of the categories off the top of my head, I’ll spare you the detail – and then, I can crosswire the now-properly-loading dungeon spawn area IDs into the part which keeps track of all the monster spawning, and finally the dungeon will be rid of the Random Monster army!
And after that? A change of pace. Items! And a way to look at how awesome they are! And perhaps if I use enough exclamation marks in this sentence, I can persuade myself that interface design is fun after all! Yeeaah… no. Not happening.
What? You don’t think it’ll catch on? BAH. I’d argue the point but a whole flock of Strange Creature 73 has just flown up my trouser leg, so do excuse me a moment…
To elaborate on what’s done today: A decent amount, yet not as much as I hoped. I spent far too long iterating the layout of what I am calling the “encounter panel”, but I think this present design uses space nicely enough for the time being. As you can see, I’m using the Oryx tileset (otherwise known as the retro coder’s best friend) since it’s just so easy to work with and is pretty much the best free set of graphics out there right now. I don’t mind that they’ve been used in so many other things – they can be replaced later if needed and it’s way better than looking at dull placeholder squares. Oh, and I know it doesn’t have chests yet; they’re in a later Milestone.
All that remains before Milestone 2 is complete is to finish getting the spawn areas to randomly populate – by which I mean they won’t take account of what monster spawn types (humanoid, insect, devil, etc.) the dungeon file says should actually appear in any given location. Then it’s just a case of actually feeding that “real” data to the encounter panel. Easy! Except it probably won’t be.
To temper my own excitement as well as any you, dear reader, might be feeling, I should say that I’ll update as often as I feel there’s something interesting to mention. With Christmas around the corner, updates may be less regular, but we’ll see how it pans out.
I have made the occasional tweet in the past about being involved in some flash-in-the pan project for this and that (Ho-Hum Piano Dungeon, anyone? Lordy, what the deuce was I thinking…), and they’ve always somehow petered out before they became interesting. Or they just failed to be interesting in the first place. Just to give you fair warning: This could well be just another project. But this is one is far closer to my heart than pretty much anything I’ve coded in the last few years – it is, in fact, a return (*coff*) to a project I abandoned in the days of Firestorm Productions, never to be mentioned again…
This video should instantly tell you what game I mean!
Yes, it is of course an attempt at an 8-bit “demake” of the often-overlooked Mordor: The Depths of Dejenol, released in 1995 by David Allen and now owned and marketed by Decklin over in Decklin’s Demise. What the video shows is the program’s completed first milestone: It can load a dungeon using the file format of the old game, and have a “party” of one character move around and explore, respecting walls correctly. For the next milestone I will add an interface to displays monsters and get the spawn areas (i.e. rooms) to individually populate.
Ten milestones are planned to take this idea far enough for it to be a playable game engine, some bigger and more involved than others, with one further milestone required to add the final content and make it playable. Any and all feedback is much appreciated to keep the motivation at its current high level!
On a related note, if you’ve played Demise, the strangely-titled rough diamond that was the sequel to the first game, you might be interested to know that Demise: Ascension – an update that includes even more content and the ability to run natively on Windows Vista and 7 – has recently gone into a public testing phase. You need only put your money down to order it from the Decklin’s Demise page above and you’ll receive access to all current and future versions. If you’re into retro RPGs with many, many hours of playability, you really should check it out!