ID:71015
 
When I entered IainPeregrine's Get Something Done challenge, I did in the full knowledge that I likely wouldn't have enough time to get something done. Turns out that the last year of an engineering degree has a lot of assignments - whoever would have thought it?

Anyway, due to university/work commitments, I was far, far too busy to actually get something done this May. When I hit uni holidays, I'll see about it then.

But for now, what my project was intended to be: A successor to Ruin.

Ruin is really the first thing I've released on BYOND that I could really consider a completed game, and it's got a number of serious flaws. For example:
  • Maps follow a tree structure, causing a lot of backtracking and metagaming of the map
  • Very simplistic magic
  • Does not use the isometric perspective for anything useful
  • Ugly programmer art
  • Missing a number of useful features - such as a town level, a dungeon map, etc.
  • Reasonably ugly code.
  • Terrible interface.


It also has a smidgeon of good:
  • I quite like the way magic item generation works, in terms of generating interesting magical items.
  • The way dungeons are saved and cached is reasonable
  • Definitely a number of design decisions I'd like to keep on hand. (Particularly spells/scrolls/potions, the way character statistics are calculated, and monster AI).


I'd like to see if I can do better. I haven't come up with a name for the project as of yet (Ruin 2 will suffice for now, I suppose, but I might come up with something a little catchier in the future). Planned features:
  • Much snazzier dungeon generation using my most recent dungeon generation library. This means maps will be graphs, and rooms will be furnished.
  • In addition to the better underlying generation algorithm, I intend to place 'features' throughout the dungeon. When you roll up your character, the game will decide, for instance, that there is an orc barracks on dungeon level 4, an underground lake on level 7, a temple dedicated to an evil god on level 13, and a dragon's lair on level 21, say. These would all influence the generation of that level, and would, of course, be randomly generated.
  • Magic item generation revolving around randomly selected properties, each with a point value. Think the way D&D magic items work - each property is worth some point value, and the item is, in total, worth the sum of the point values of all its properties.
  • Standard roguelike functionality that was missing from Ruin, including a town level with shops and the like (gasp), and dungeon maps (double gasp).
  • Icons from someone who can actually draw (Likely an artistically-inclined friend of mine I'm roping in)
  • Still the isometric perspective, but actually used for something. With the more advanced dungeon generation, and actually functional art, this should be less of an issue. This won't be actual Z-levels in a single dungeon level (So elevation won't be an issue), this will simply be 3D pretties. It will be optional, like Ruin, so you can run the game in 2D top-down mode if you'd like.
  • Interesting sense functionality to handle things such as blinded characters, magic items that enhance your sense of smell, hallucination, and sound in fun ways. This will also apply to monsters and monster AI.
  • More documented and ordered development process.


It's a lot planned, but I think I can pull some of it off on the first release and the rest of 'em over time.

A few more words on the last point: I intend to try developing this project more publicly than other stuff I've done. It's not that I try to be secretive when working on stuff, it's just I don't think anyone would be interested.

I still think you're not going to be interested, but regular status updates provide motivation for me to keep working. So the plan will be that once development kicks in in full swing, I'll be making semi-regular posts detailing progress to date and intended next items for completion. I also intend to produce design documentation, and a series of near term, medium term, and long term goals to keep me on track.

Finally, I intend to store the source code in a publically readable SVN repository. Development won't be open source, in the sense that I won't be soliciting patches from the public (Although if you have the urge, suggest away), it will be both readable and usable. Likely released under a BSD license or the like, once I've got a firmer idea of what my legal responsibilities under such an arrangement are. Might end up just being public domain.

tl;dr: Sorry, IainPeregrine, I didn't find the time to do anything for your brilliant challenge (And I really mean that, it was a damned fine idea), but I intend to develop a much-improved version of Ruin some point in the future (Likely beginning mid-July, after exams).