RSS

You are the Cogmind

by Kyzrati on 18.3.12 , under

A new 7DRL is born!

It was an intense week of toiling away in front of my computer (frequently with "my computer in front of me" actually, as I brought my laptop everywhere and even coded on the subway!). Thursday night was the worst--down at 3 AM, up at 6 AM! The long hours of coding were mostly fun, except for that nasty crash which threatened to derail the entire project and turned out to be a well-hidden null pointer dereference that took several hours and three debuggers to track down.

This was my first 7DRL, and I can say that working on it required some behavior decidedly against my style. I like to carefully write fairly safe code (because bug-hunting and refactoring are both a pain--might as well try your best to do it right the first time), but with so little time speed becomes such a priority that hacks are not just an occasional temporary fix, they become absolutely necessary!

The most important lesson learned this week was that if you want to do a roguelike right in only seven days, it better be damn simple. I was three weeks without a computer while on vacation in January-February, so there was a dangerous imbalance of time to plan compared to time to put those plans into action. I spent so long brainstorming the game and coming up with more and more ideas to expand on that the scope of the game was just too vast to be a feasible short-term project. Fortunately I was able to cut down the features list and still keep some semblance of the original game idea, but Cogmind would be a lot different if it hadn't dropped a big chunk of the intended features. Parts of the game that didn't make the cut:
  • Fire/smoke/clouds
  • Proximity triggered effects
  • Programs and viruses
  • Interactive terminals/machines
  • Keys and multiple types of barriers to progress
  • Terrain types and variable movement costs
  • Environment props
  • Part-specific special actions
  • Throwing
  • More sensor types
  • Cave-ins
  • (lots more stuff in the docs)
What was left? Still too much to do a perfect job on, so there are definitely some bugs lurking out there. There's even some sort of memory corruption made obvious by the screwed up application image (at least on my test systems). That said, it's still very playable, and actually a lot of fun.

So what features are there? Here's a more exhaustive description of what the game includes:
  • Resource management
  • Inventory and equipment system
  • Item identification system
  • Fog of war
  • Several damage types each with unique properties/effects
  • Simple yet dynamic combat system
  • No XP (character development is automatic)
  • Multiple AI behaviors
  • Enemies with special abilities
  • 12 classes of enemies
  • 40 special abilities
  • 400 items
  • Permadeath
  • Autosave/load on exit/startup
  • Particle engine for animated ASCII effects (weapons/explosions etc.)
  • Animated interface with sound effects
  • Randomly generated maps
  • Turn-based action
  • Single player
  • Message log
  • Enemy units use the same ruleset as the player
  • Score output to an external file
For in-depth coverage of gameplay, read the manual.

Before Cogmind, I was planning on doing a Battletech RL for 7DRL 2012 (and you can definitely see some Battletech influences in there: sci-fi robot combat, a "parts as equipment" theme, heat control as an important combat mechanic...), but a strict implementation of the Battletech rules would require a hex grid (as with any faithful battletech game), and 7DRL is not about rewriting basic algorithms, which is what I would've spent all my time on since I have no hex-based game engine. So I instead worked with what I had on hand. Making Cogmind as a 7DRL would've been absolutely impossible without the benefit of a great starting point: the X@COM codebase.

Think of Cogmind as a total conversion mod (and then some) of X@COM. Before the competition, I stripped X@COM of most of its X-COM-specific gameplay to create a generic roguelike engine on top of REX (my SDL game engine) called 7SHELL, so named because it is a great starting point for 7DRL development. The vast majority of the Cogmind code is directly reused from X@COM--even the Cogmind data files still contain tons of reusable X@COM data. Just by looking at Cogmind you can see it's obviously derived from X@COM (in fact, some of the things it includes are from still unreleased future versions of X@COM); even so, there were some fundamental changes that make it quite a different game:
  • Team-based became single-player
  • 3D became 2D
  • Action point system became an "ADOM-esque" energy-based action mechanism
  • (Then of course there's the completely different mechanics)

In the future I might fix up and expand Cogmind a little if the demand is there, but the hackish nature of the code will keep me from wanting to put too much more time into it. If it was going to be much bigger I'd probably restart from scratch. Also, now that the game is done, and looking back over the old design docs and list of cut features above, I have to say that Cogmind probably benefits from being a simpler game than originally planned. It already possesses a lot of dynamic gameplay under the current mechanics, and could easily become far too complicated with any more systems beyond the current build and rebuild theme where already you have to juggle resources, tactics, special abilities, and a huge number of parts.

The game seems to have turned out okay, although there wasn't enough time to spend on balancing the difficulty. It should be fairly easy to consistently beat the first several levels once you know how to play, but after that it can get difficult if you don't have enough gameplay experience. Now that I think of it, that's probably the way it should be... The game is winnable, but you've got to get good.

There will probably be some more postmortem posts about development soon.
7 comments more...

7 comments

  • AM Coan

    While I've just started checking out the 7DRL entries this year (third one tried, eighth or so that I looked up the summary of), I have to say that Cogmind is probably going to end up my favorite.

    Despite utilizing a number of unusual mechanics, it's quite intuitive (or maybe I've just played a few too many roguelikes...) and engaging. Using equipment that has a lifespan felt considerably different while adding a good amount of tension-- in my first attempt, I had reached the fourth floor and lost all my weapons. Retreating through room after room as the mob grew, I came across a rocket battery. Sure, firing it at something so close to me would decimate my equipment, but I didn't have much of a choice. A few shots later, I'm pretty much a naked core drifting around a pile of ashes.

    If you ever plan to revisit this (which I'd wholeheartedly support!), two ideas kept coming to mind: a cornered, desperate core would probably still want to survive through any means possible, even if it meant bashing itself into its attacker. Possibly, if you have no weapons attached, allow attacking other robots in melee, to incur a minuscule amount of damage, but also the slight possibility of switching positions. Secondly, how about the possibility of overloading a weapon at the significant risk of damaging, or possibly even having the weapon explode while attached to you?

    Good luck!

  • Kyzrati

    Thank you for your kind words. I actually started liking this game more and more as I worked on it, and really do think it has even more potential if I were to expand and polish it up. As my primary project I've promised to bring to completion, I'm bound to work on X@COM for a time, but there's always a chance I'll pick Cogmind up again eventually.

    I like the core melee idea--melee combat was another of the features I had to drop from the plan. I had some other ideas that go along with an "escape at all costs" theme, like quickly and violently ejecting spent parts you didn't want, perhaps as projectiles themselves to damage the enemy or at least lighten you up for a quicker run. Overloading is good, too. I'll add your comments (and any others) to the design docs to perhaps one day be dusted off and put to use. There's just so much that can be done with this game idea...

    For anyone interested, there'll be a postmortem rant on Cogmind's design process/decisions soon. Working on it but have yet to finish writing.

  • CJM

    Just wanted to say, congratulations on creating, quite frankly, a superb game. The graphics, utilizing a modern graphics engine with ASCII graphics to produce a really comfortable, attractive interface, as well as some epic effects, is ingenious.

    The gameplay is unique, satisfying, and fun, as well as intensely gruelling.

    Can't wait to see where the future of Cogmind is headed. Hopefully you'll be at IRDC this year.

    Best of luck, keep up the awesome work.

  • Kyzrati

    Thanks!

    The engine is certainly fun to work with, so I'll keep pumping stuff out. A while back I was thinking of doing a quick fantasy-themed game for 7DRLC, just to see what the engine could do for it, but then decided to capitalize on the techy nature of the current interface scripts, since the ones I copied from X@COM are more suited to a sci-fi game. Maybe one year I'll script an interface with more of a fantasy slant and see if that turns out just as well.

    I'd like to go to IRDC, it's just too far away! Not really enough roguelike fans over here in Asia, otherwise we could do an IRDC Japan some year...

  • Dan Lower

    Okay, I'm so sorry--I dunno where else to say this.

    The download link is failing for me in Chrome, IE AND Firefox.

    This is for the latest version that I've tested it in all three and I'd love to play this game; is there any other link you can provide aside from those?

  • Kyzrati

    Hm, thanks for the heads up. There seems to be some server maintenance going on that I didn't know about... You can e-mail me and I'll send you a copy right now, or you can wait until the server is back up (I have no idea when that will be, since it's not my server).

Post a Comment

Note: Only a member of this blog may post a comment.

Powered by Blogger.