Official development blog

The Living Dungeon

Having introduced the world of Cogmind from a macro perspective, we now zoom in on the anatomy of individual floors.

In a majority of roguelikes, the content of a given dungeon map is unchanging, and individual encounters on that map play out in relative isolation. When you arrive there are X number of enemies in the area, you encounter an enemy and fight, then another somewhere else, or maybe flee and end up fighting two different enemies together. The overall dungeon experience can be described as a series of encounters where the frequency of enemies (or loot) determines the pacing, and in-between periods are used for resting up or dispatching minor “filler” enemies. Moreover, these enemies might simply wait around for the player to arrive, or perhaps wander around with no particular goal. This is a pretty lifeless world, but is perhaps an apt description of what we could call “pure roguelikes,” which reduce the roguelike formula to its tactical decision-making core. It’s little surprise that pure roguelikes have no need for story elements, as the role-playing emerges entirely from events that play out as a result of player decisions on exploration, leveling, and combat. Yet the consequences of your actions don’t last beyond the effects on your character or equipment.

Why not make dungeons a bit more dynamic? What if the contents of a map could change depending on your actions there? What if your actions there could lead to changes on other maps? Doing these things leads to deeper gameplay without sacrificing anything that defines a roguelike.

Cogmind does these things.

It’s Alive!

As suggested before, Cogmind’s world is composed of areas which are “more than just a dungeon” (see bottom of this post for some background). Cogmind is not a sandbox game by any measure, but it does handle map content very differently from other non-sandbox roguelikes. Instead of random enemies just sitting/wandering around waiting for the player to come fight them, each robot has a place in a simplified but meaningful ecosystem.

They are actually dynamic parts of a larger community in which each each individual has their own purpose and job. Not only does seeing them carrying out their tasks make the world feel more alive, you can even “become a part of their job” in many ways. Obviously combat robots will attack you when you’re deemed a threat, but you’ll also be sharing the corridors with many robots that aren’t out to do you harm, instead reacting to your actions indirectly as per their routine.

cogmind_noncombat_engineers

Engineers rebuild floors, walls and doors destroyed by yourself or other robots.

 

cogmind_noncombat_workers

Workers clean up debris, here from a destroyed machine.

 

cogmind_noncombat_recyclers

Recyclers collect damaged and surplus components for breakdown.

 

cogmind_noncombat_tunnelers

Tunneler digging out a new room, and engineers adding walls, floors, and a door on the way out. (They apparently decided not to finish a bit of the south wall…)

This is one of the more immediately obvious unique aspects of Cogmind maps, seeing lots of these green robots going about their business. Some might annoy you, but a resourceful Cogmind will find multiple ways that these non-combat robots can be of use under the right circumstances!

There are additional types of non-combat robots in the game--those listed above happen to be some examples which were already introduced in the public prototype (though all have since undergone some behavioral and capability upgrades). You can discover the rest in game.

Reverse Dungeon Keeper

Cogmind is kind of like Dungeon Keeper in reverse. That almost makes it sound like a normal roguelike, but there’s more to the analogy than that.

We have both the “robot ecosystem” outlined above, as well as an actual overarching AI controlling the community’s reaction to your presence and actions on a larger scale. You not only have to think about your interactions (combat or otherwise) on an individual robot-to-robot level, but in many cases must also consider the repercussions of your decisions further down the road.

Depending on the circumstances, your unauthorized or hostile actions will be reported, and you will be hunted, or cause enough mayhem and invite a robot army to converge on your position. Thus a particular map’s inhabitants are not entirely static. Robots will come and go, and you can even hijack this system via hacking to instruct certain robots to leave the map, or perhaps ask for a shipment of goodies to your location :D.

Completionists might be annoyed that “clearing” a map is next to impossible. The central AI will continue to dispatch units for various purposes, be they maintenance bots necessary to keep the zone running within parameters, or combat-capable bots to deal with troublemakers.

That said, there are areas outside the central AI’s sphere of influence, which is the difference between the main complex and some of the branches as distinguished in the previous post about the world layout. We’ll talk about the gameplay implications further down.

Rules Access

An important question with regard to these “hidden mechanics” is how the player learns about them. Cogmind is not a black box, which would make for poor roguelike design given that the average player cares about details and having enough knowledge necessary to make informed decisions. There are secrets, for sure, but those belong to the realm of content rather than mechanics.

Basic mechanics are explained via the in-game manual and context help, but there is no such direct system for learning about the central AI. That is accomplished as part of a separate learning process for which there are multiple channels to obtain information contributing to an overall understanding of how it works.

At the simplest level there are a handful of intercepted log messages (global “alerts”) that indicate when the central AI is doing something significant.

cogmind_log_alert_programmers

Probably the most dreaded message you’d see in your log while playing the prototype. There are now worse messages, so stay on your toes ;).

Learning about the AI also ties into information warfare (also here) in several ways, as sensors will enable you to observe enemy movements from afar, and terminals can be hacked for a large amount of relevant information or even control over the system. The most important terminal hack for figuring out the state of the central AI would be “Alert(Check),” which retrieves the current alert level for the local area.

cogmind_hacking_result_alert_check

Retrieving the current alert level, which can range from “low security” to 1 to 5.

If the alert level is on the rise, you might want to think twice before starting a firefight around a large array of explosive reactors--those chain reactions can really piss them off!

For those hidden mechanics difficult to figure out purely through observation, non-immersion-breaking NPCs found in certain areas will provide hints or direct advice. (Those areas have not yet been added to the game.) (Update: In the years since this original article, numerous maps, factions, NPCs, and plotlines have been added to the world.)

This entry was posted in Design, Game Overview and tagged , , . Bookmark the permalink. Trackbacks are closed, but you can post a comment.

6 Comments

  1. kripto
    Posted April 30, 2015 at 4:39 pm | Permalink

    I’m not gonna lie, seeing the bots running around doing their room excavatin’ and buildin’ and other business sorta makes me wanna play a Dungeon Keeper-esque spinoff to Cogmind! :P Bit like KeeperRL but with robots and such. Ever consider doing something like that once you eventually finish off Cogmind itself?

    • Kyzrati
      Posted April 30, 2015 at 7:38 pm | Permalink

      I’m not gonna lie, the first version of this post actually went on a diversion that talked about my long-time interest in making an ASCII/roguelike Dungeon Keeper (this is even before Cogmind), before along came KeeperRL, which does it so well that I figure I probably shouldn’t bother!

      I did also recently think of that idea again when I was considering what Cogmind 2 could play like and what it would be about… perhaps changing directions to become a management game in the vein you’re asking for. It probably wouldn’t happen that way, but it was a thought.

      • mirefrost00
        Posted May 1, 2015 at 12:06 am | Permalink

        Well, the Cogmind is headed to the surface. Perhaps in Cogmind 2, it has established its own hideaway to build up a force of robots with which to attack [The Controller]. That game might involve producing a certain quota of various types of machines, while repelling regular, escalating assaults from [The Controller’s] Nest.

        This could easily lead to Cogmind 3, wherein the Cogmind leads that retributional assault to destroy the corrupt [Controller].

        Ideas, anyway. :D

        • Kyzrati
          Posted May 1, 2015 at 10:23 am | Permalink

          I can see a number of ways for the story to develop, though it will likely have something to do with one of the main plot lines, which will take a while of play to uncover :).

          I’m mostly worried that I’ll want to continue making sequels (which also makes more business sense) rather than immediately getting back to my other project creating a tactical squad-based roguelike! I could consider simultaneous development, but making one game at a time is difficult enough…

  2. Posted July 24, 2016 at 3:50 am | Permalink

    Just came by to say that I am very impressed by what you have achieved. I *really* look forward to the 1.0 release!

    • Kyzrati
      Posted July 24, 2016 at 8:26 am | Permalink

      Hey dagondev, thanks and I’m looking forward to it, too--been looking forward to that for a long time, actually, but it keeps getting pushed back behind all kinds of cool features :P

Post a Comment

Your email is never published nor shared. Only the anti-spam entry is required. See here for the privacy policy.

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>