You are a prototype for a form of highly intelligent artificial life capable of quickly interfacing with and learning from the surrounding environment to evolve over time. You are the Cogmind. Build and rebuild yourself as you destroy or evade the Overmind's thralls to escape the subterranean robot city in this sci-fi dungeon romp (2012 7DRL).

Cogmind 7DRL Final is now available from the files page. What changed from fix12? Absolutely nothing!

Over the past couple weeks I've been fooling with Rogue Engine X to add some new features, and had even ported Cogmind to the latest engine version, but decided against releasing that as the final since it 1) slows the game down, 2) hasn't had enough testing, and 3) doesn't include features that Cogmind actually needs. So I reverted to the old engine, and am calling this game done. I didn't receive any more reports of specific problems, so this is it. Sure Cogmind could be even better, but it's already very playable and a lot of fun.

Cogmind fared quite well in the official 7DRL 2012 reviews, seen here, or with screenshots here. Using the 'q' key to change the log verbosity addresses the main concern found by the reviewers, that there wasn't enough combat feedback--my original intention was to keep log clutter down, and make highly detailed information optional since almost all the most important combat information you need to know is already available one way or another: whether or not you hit a target can be seen if the projectile stops on it (missed shots fire at other locations), destroyed parts are always reported, and weapons do damage in very small ranges and enemy cores only take a few shots to kill, so the 4 colors indicating damage state are plenty to know how hurt an enemy is and how likely you are to kill it.

I recommend trying out some of the other 7DRLs, since there is a rather large batch of quality games, all for free! I didn't have time to try them all out myself, but Hyrule and Drakefire Chasm were pretty neat, Kitchen Masters is worth a run for the humor, and Fragile Wrath has some interesting mechanics. There're still more I want to try, especially now that the reviews are out and I don't have to blindly test so many random games and hope they're playable...

Update 1.3.2013: Cogmind fared extremely well in the Roguelike of the Year poll, voted most popular 7DRL of 2012 and beating out a large portion of other roguelikes from the year. You can see a breakdown of the results here.

I made a simple sprite set for fix11, which will be out this weekend. The default 12x12 font is rather small to fit sufficiently detailed sprites, but I wanted them in there as an example for potential modders/spriters who want to make their own. (Already one spriter has expressed interest in making a set for Cogmind--if that set comes to fruition, I'll put it in the files section.)

Aside from making the game more accessible to those who can't wrap their head around an ASCII map, sprites do have one other advantage: Items are colored by rating rather than type (since types are distinguishable from different images), making comparison a bit quicker.

Here you can see some of the sprites in action:

EDIT: Fix11 was released on 4/14, followed by an even better fix12 on
4/21. The latest release can always be found on the files page (sprites are included). The announcements only went to Bay 12 where
many of the players are (11 and 12), though the final release will be announced here on the blog.

Apparently a lot of people are enjoying Cogmind, but it would take a lot more time to make it much better than it already is, so I'll be pausing development soon to resume heavy work on X@COM. I may come back to it at some point, but no promises yet.

The upcoming fix11 is a final release candidate; that is, it will probably be the last version to include new features for testing before "Cogmind 7DRL final" is eventually released.

So tell me what you'd like to see in the final version of the game. The changelog for fix11 currently looks like this:

NEW: More stats stored in record sheet (favorite parts, kill streaks, play time, max inventory)

NEW: Toggle to force cursor centering on move (Ctrl-F4) (always centers cursor on Cogmind during movement to ensure the scan window shows the item at his current position--has no effect while cursor is hidden, in which case the scan window always works this way by default)

Only easily-implemented suggestions similar to those made in previous fixes will be entertained--any wild/fanciful/complex mods will be added to my design notes, so feel free to offer those as well, but please don't expect to see them in the 7DRL version.

I'm considering enabling "basic" tileset support (separate glyphs for map objects--not full-color solid sprites), but I would need confirmation that someone with the experience and skill is 100% going to do it before committing the necessary time, since it would require some nontrivial code changes to implement under the current system.

Fix11 comes with a simple modding guide for those who want to play with the game (as opposed to play the game :).

Fix11 also comes with a lot more font sizes, so you can let Cogmind spread across your entire screen--I know one dude is playing on his TV, so this should help him, along with anyone else who prefers fullscreen mode. The more stylish fonts also look cooler and are more readable at larger sizes.

Check out one of the huge fonts on my screen (definitely click on this to see it in all its massive glory):

The first official Cogmind tournament came to an end on April 8th, 2012. Scores were accepted from any fix version (through the latest fix10), and a total of 16 Cogminds participated.

Seeing as how there have been more than 1,000 downloads in the couple weeks since launch (no doubt with some overlap due to all the version releases), a lot more of you have been playing, so it's too bad we didn't get a few more record sheets. I'm sure a good many Cogminds are still shy since the game is admittedly rather difficult, but with only 10 levels, making it an easier game would have detracted somewhat from its replayability. (About me: I hail from the heyday of true video games, which were hard as hell and actually presented a real challenge rather than simply being a form of entertainment.) And as Aoi has proven, it's not impossible to escape the Overmind's subterranean city!

Enough introduction, on to the scores...

You can see how each player did by checking out their specific record sheet below (Note: Columns are sortable by clicking on headers).TOP 10:

Euchre Jack took a surprising number of the achievements, and scelly9 managed to take both Rambo and Ninja with his huge number of weapon slots in the early game. It would've been easy for someone to knowingly take a given achievement through very intentional play, but no one knew about the list beforehand but me. Ties were broken in favor of whoever submitted first.

Special Mentions:

Aoi - Honorary first Cogmind to escape to the surface
Orb - Honorary first Cogmind to reach Research
Dariush - A lot of the early fixes were updated based on suggestions by Dariush; also thanks to gimlet, AlStar, Micha, and others on Bay 12 for all the other ideas that helped make Cogmind even better!

For the curious, I've uploaded my own record here (score: 12147). I haven't had much time to play myself, since I've spent most of my free time coding the fixes, and that one game took me a week to finish! I didn't do much point farming, and by the end I had to start sprinting just to end my game in time--definitely a bad idea if you're not built for it... Got trapped and shot to pieces:

Yes, that's 2 Behemoths, 5 Programmers, and 3 Sentries; who knows what else was around the corner :)

Even though the tournament is over, keep sending in your scores and
I'll add them to the high scores page, which will be updated
indefinitely. (Future score charts will carry version numbers if/when
changes begin to affect fairness/gameplay.) I will probably hold another tournament in the future, the frequency depending mostly on if/how much more development goes into Cogmind.

There have been a couple new bugfixes uploaded over the past few days. Scores from any post-7DRL fix version are valid for the competition, since they don't include any content modifications, but you really should get the latest version to avoid potential crashes.

Most of the players are hanging out over in the Bay 12 thread, so announcements have been going there. There you'll also find strategy discussions, and some more insights into the game.

Some were finding the game a bit difficult, but the early levels shouldn't be too hard at all once you learn how to play. To show how easy it can be, I recorded a quick run of levels 1-3 (HD highly recommended):

I didn't even play very carefully in that run, but beyond level 3 is the Factory, where the game finally starts to get a little tough and you might have to start making some harder decisions... Level 8 and beyond is for the pros, but I have yet to see anyone make it quite that far.

Knowing the game had several serious interface bugs that could crash it and ruin an otherwise fun experience, I just couldn't take it any more, and had to fix 'em. I know there are still a couple rare logic bugs lurking in there somewhere, but I haven't been able to reproduce them, and they're sufficiently rare to ignore for now in order to get these more important fixes out to you. Get it on the files page.

Because I wanted to hold a high score competition, in addition to the fixes I also made several modifications regarding scoring. The complete list of changes (from changelog):

FIX: If an inventory storage utility is destroyed, reducing your capacity, the last extra item was still shown in your inventory display even though it was already been dropped; trying to do some actions with this ghost item could cause a crash

FIX: Game could crash if actions entered while status/data window closing (included inventory actions that automatically close the window)

FIX: Game could crash if mouse moved on score window

FIX: Item's current state properly shown in data window

FIX: No longer allowed to target self (would crash game)

FIX: Tunnelers in the scrapyard excavate the level properly (though its really just for fun, since you aren't supposed to hang around there, anyway...)

FIX: Suicide shows mission results screen instead of skipping straight to new game

MOD: Data parameters loaded from compressed file (can override it to use public data files, but doing so invalidates score for competition purposes)

MOD: Known prototypes still glow on the map, slower than unknown prototypes

And now for the announcement you've been waiting for... Let the HIGH SCORE COMPETITION begin! See the rules page for details (also included with the game as competition.txt)--participation is easy.

The competition is ongoing, but the top ten records submitted by April 8th, 2012 (inclusive) will be immortalized in a blog post summarizing the competition to date. As part of the event, special titles and achievements will also be awarded to players based on a broad analysis of the records, so even if you're not #1 (or not in the top 10), you may earn other forms of recognition.

Only this bugfix version can be used for scoring purposes, so if you want to participate, download the latest version.

I've never done anything like this with a project before. If it works, I may eventually do something similar with X@COM.

Quickly producing a fairly complex game is a recipe for bugginess. The game works (I and others have played through several times without issue), but is prone to sudden crashes since I couldn't give it the full amount of debug time it really needs.

As such, I'll be doing a bug fix release in the near future. The fix will not change any content or gameplay, it will just try to
identify and remove causes for crashes. I'll keep the original download
available as well, for the purists.

Anyone who hasn't downloaded yet should still feel free to play the current version, as there are no blaring gameplay-associated problems and it's definitely a lot of fun, but check back later for the fix.

Along with the fix I'll also be holding a high score competition, where you can email me your best game record and I'll post ordered results on a special page. I'll announce the event here, on Rogue Temple, and probably elsewhere. It'll be ongoing, so even after the initial competition period anyone is welcome to participate by sending in their scores.

EDIT:Known bugs I've fixed for the upcoming release (watch out for these!):* Entering an action command like wait or attach/detach while the status or data window is open can crash the game (don't do that!)* Shooting yourself will crash the game (leftover code from X@COM, where shooting at your position is allowed since it will target the ground--can't do that in Cogmind because it's 2D)* Moving the cursor on the score window can crash the game* If an inventory storage utility is destroyed, reducing your capacity, the last extra item will still be shown in your inventory display even though it has already been dropped; trying to do some actions with this ghost item may cause a crash (do some other action that reloads the inventory window to avoid this error for now--dropping the first item would be a safe bet)

Now that the hectic period of "Oh my god I'm awake, that means I must be working on my 7DRL!" period is behind me, there's more time to reflect on the process and give some insight into what went on behind the scenes.

As I mentioned before, a lot of planning went into the game, but too much planning is a bad thing if it's not focused in the right direction, and the later stages were all about slimming down the game into something doable. I should've thought more about creating a simpler game from the start, then the results might show a bit more polish.

Coding

The coding itself didn't actually take very long, since almost everything except the content and some of the mechanics came straight out of X@COM. The primary modification to the core code was inserting an event manager to handle an energy-based time system, but that turned out to be incredibly simple since all I used it for was entity turns and the game clock. (To prevent a coding and testing nightmare I left out duration effects--all effects are persistent. There's still plenty of fun and strategy with the 40 unique persistent effects available by attaching utility parts.) Beyond that the game only implements a handful actions, get/drop, attach/detach, activate/deactivate, and fire.

The rest of the work was mostly in putting together data objects and data files. All my projects are very data centric, and from the large number of data files the game draws from you can see that Cogmind is no exception. Once the actions were coded and I played around with a few test objects to make sure I had the right set of parameter ranges for the data-to-be, it was just a case of filling in those ranges with entity- and item-specific values followed by some quick spreadsheet data manipulation. Only entities and items were completely redone--the rest of the data files were almost entirely copied from X@COM.

I also quickly recolored some particle effects to add more variety for the wide selection of Cogmind items (way more than X@COM...). Too bad there wasn't more time, because I really wanted to throw in some neat new visual effects. As is, there are no new projectiles/explosions, and the UI is just cookie cutter templates from X@COM. Also too bad there wasn't more time since the X@COM codebase supports so many more
features that I didn't get to work on, so I had to cut them. But the "if I only had more time" list is way too long to bother going into...

Design

From the beginning, there was a lot of debate (I brainstormed the game with my brother) over whether to do the typed slot system you see in Cogmind, or an even more open-ended system where you have X number of slots and can attach anything you want. Under that system, some parts would probably have to take up multiple slots to make it work right, but it might have seemed a bit chaotic (could've been a good thing, I guess) and would've been much harder to balance (not a good thing for a short project).

Eventually the typed slots won out, and after several iterations ended up with the names Power, Propulsion, Utilities, and Weapons. Later I realized that from a gameplay standpoint the latter three conveniently correspond to your basic RPG stat triumvirate: DEX, INT, and STR. (Completely unintentional, though perhaps inevitable.) Sure enough, what slots you focus on when evolving your Cogmind design can steer you towards play styles resembling stereotypical RPG characters. With evenly distributed slots you can be a well-rounded jack of all trades, or you can emphasize one of the three main slots and rely on strategies that capitalize on your advantages: you can be a super-fast flying robot dodging bullets and whizzing past everything in your way, you can attach a variety of utilities and have a trick up your sleeve for every occasion like any good mage, or you can deck yourself out with guns, cannons, missiles, and bombs and take on everything you meet. Power is the odd man out, and you generally have as little of that as you need to implement your design.

On top of that mechanic, several other core gameplay ideas were drawn from existing games: weapon heat and an energy/ballistic weapon dichotomy from Battletech, energy/mass as resources from Supreme Commander (mass was renamed to matter), and damage types from EVE online (I started with my own list, but it looked almost identical to EVE, so I went with that one since it was somewhat simpler).

Cogmind doesn't get hungry, but there are some alternate ways to push the player through the game. Core integrity is the obvious hitpoint equivalent, and the fact that it is only replenished (and increased) each evolution means you have a finite amount of time you can spend searching for a way out depending on how well you protect your core and stay out of harm's way. By the mid- to late-game though, you have so many parts that your core rarely takes serious damage (unless you are completely overwhelmed and lose lots of parts, in which case you're probably doomed anyway). At that point system corruption takes over as a source of danger. It completely bypasses armor, and increases the game's difficulty through its negative side-effects; you're also guaranteed to be tracked down by Programmers the longer you stay in an area. There really isn't much of a purpose to stay in a map area anyway, since there is no experience given from fighting (character advancement comes from reaching new areas). The whole point is to escape, after all, though finding an exit becomes harder and harder as you near the surface. Of course you can also become a virtual Programmer yourself by
outfitting yourself with their electromagnetic weapons and shocking
everything else; most enemy robots are far more susceptible to EM damage
than Cogmind.

Limited inventory capacity is another thought-provoking mechanic which forces the player to make difficult choices, especially when leaving an area. Even leaving something on the ground for later may not work, since a Recycler could come by and move it. As with any other mechanic though, inventory space can be manipulated through utilities if you can accept the slot/mass/upkeep costs.

Utilities are one of the game's strong points, as they reach into every part of the gameplay. An entire day was spent coding 40 different effects which, when combined with a single item-specific variable to control the degree of the effect, led to about 170 utility parts. They provide a way to affect almost any aspect of the game you choose, enabling a wide array of unique builds. If you're familiar with all the parts and choose the most effective combinations, it's not impossible to come up with a nigh-invincible build, though it would be really tough to maintain it forever since you're likely to lose an integral part of your design at some point. Such is the life of Cogmind.

Regarding Cogmind's inferior siblings, the Overmind's mindless robotic thralls, I almost went with a strictly alphabetical representation; i.e., robot ASCII are A, B, C, and so on ordered by difficulty, all the way to the fearsome Z robot, and color would differentiate classes (types). This would have worked if not for the fact that there ended up being 11 classes, half of which are harmless, which have to fit into the system, and (more importantly) a robot's letter is definitely more readily identifiable than their color. In the end, I used a single letter for each class (lower/upper case reflects size), and color to instead represent relative threat (within a given class). Name codes also hint at difficulty, allowing some comparison of robots across classes; higher = harder. Let's just say you haven't seen tough until you meet a B-99. Don't forget your Null Cannons or Point Singularity Launcher :)

Part of the brainstorming process also touched on what happens after the game story. Just yesterday the name "Cogmind 2: The Surface" ran through my mind. If you beat the game, the conclusion gives a hint showing part of what to expect should that ever come to pass.

Now I'm going to go play some of the other cool 7DRLC entries out there...

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.