Official development blog

Information Warfare

Knowledge is king in roguelikes. I’m not talking meta knowledge--that’s important, too, but this is about situational knowledge at a given point in any single run. Roguelikes are all about exploring and confronting the unknown (see intro to old fog of war post), and success is all that much closer if you can uncover as many unknowns as possible before they somehow result in your death. This is especially true in Cogmind, where a number of maps are quite large (thus containing many angry robots) and if you make too many wrong turns while unprepared you could end up with an unmanageable situation that can only spiral further out of control.

The most vital component of information warfare is knowing “what is where.” This knowledge influences where you move, both within a small tactical area and on a greater strategic level, creating all subsequent situations and leading to all other results. In a static or even linear game this is not much of an issue, but with roguelikes we have randomized map layouts and content, hence this factor retains its importance every time you play.

Utility parts are the primary means of obtaining that information. For that purpose we have sensor arrays, signal interpreters, seismic analyzers, terrain scan processors, structural scanners, spectral analyzers… you get the point, there’s a lot of options. You can’t realistically use them all, so you have to pick what you think is more important--or whatever you can find (and maybe carry some alternatives in your inventory).

*Note that you can also forget all this and attempt to just blow everything away. This is stuff for the cautious ninjabot.

Robot Knowledge

You always have access to the basic attributes of a robot by simply opening its data page, which will show you its class, size, rating (sort of equivalent to level/difficulty), movement type and speed, core integrity, current temperature, and any weapons.

Attaching a Scan Processor will add to that a full parts list, including internal components, and better versions report core exposure (how exposed the core is to attack), salvage potential if destroyed, and damage resistances. It’s not the greatest part to dedicate a slot to since player experience (or spoilers) eventually render it mostly useless. (I’d actually like to expand the usefulness of the Scan Processor and have an idea how to do it--maybe later.)

Sensor Arrays, which allow you to detect robots outside your field of vision, are far more useful. In fact, the ability to know what robots are where outside your FOV is so powerful that two separate parts are required to get the full effect:

  • Sensor Arrays only tell you where there is something within their detection range. No more details, just a blip.
  • Signal Interpreters can tell you more about those blips, ranging from size only (low-end interpreters) to class or even specific robot (high end).

This mechanic is made more interesting by the fact that not every robot out there is an enemy. So you can technically get by without a Signal Interpreter if you don’t mind the occasional false alarm, or you can learn to differentiate certain blips by waiting a bit and watching its movement pattern.

cogmind_sensor_array

Watching nearby robots move via Long-range Sensor Array (no interpreter).

 

cogmind_signal_interpreter

The same view with and without the Advanced Signal Interpreter, which shows those robots with as much detail as if they were in your FOV! Going straight or left here we’re going to run into enemies, and simply turning the corner we’ll be spotted by a Watcher.

With information like that you can be a lot more confident in your movements--plot a path around hostile robots, or prefer to take on those you are better equipped to deal with, or dodge a passing patrol by ducking into a room (enjoying a suspenseful wait to see whether they plan to visit your hiding place or not ;))

Animations

Continuing on the concept of map-based informational feedback covered in the previous post, activation of all informational utilities is now accompanied by a UI animation. These animations are meant to 1) look cool, of course!, and 2) provide additional feedback where possible. If anything the animation will at least remind you of the utility’s area of effect. (Alternatively that same information is available to mouse users by simply hovering the cursor over the utility in the parts list, which shows the AOE faintly superimposed over the map.)

Activating a Sensor Array shows not only its radius, but also each known robot’s relation to you: hostile (red), neutral (gray), or friendly (green).

cogmind_animation_sensor_array

Activating an Improved Sensor Array.

Activating it can quickly pick out the threats if there are a large number of robots milling about. And remember you can repeatedly deactivate/reactivate utilities, since it’s a free action, anyway.

cogmind_animation_signal_interpreter

Activating a Signal Interpreter on top of that Imp. Sensor Array.

With a powerful enough Signal Interpreter, robot labels (discussed in the previous post) also work for those outside your FOV while the interpreter is active.

cogmind_signal_interpreter_labels

Signal Interpreter with robot labels.

Map Knowledge

Knowing where other robots are is only one piece of the picture. Sure they’re the only potentially dangerous thing out there, but at the wrong place and time that danger can multiply based on the map layout. Plotting an optimal path through unexplored territory is difficult without at least clues as to which routes won’t lead to dead ends where you may be forced to fight. You can also save yourself a lot of trouble by finding ways to circumvent enemy positions. Recall that the main goal in Cogmind is to locate and reach exits, so one way to increase chances of survival is to search the map as efficiently as possible before attracting too much attention.

In short, you want ways to reveal the map. This is a pretty powerful ability to have and thus, like robot sensors, the full effect is divided between two separate parts:

  • Terrain Scanners determine the range within which you can detect terrain.
  • Terrain Scan Processors have a “density” factor which determines how quickly that terrain is revealed. A scanner providing map data without any additional processing reveals terrain at much slower rate.

With at least a scanner, terrain within a given radius is gradually revealed, providing more and more clues to the layout as you move around.

cogmind_terrain_scanner

Imp. Terrain Scanner combined with a Seismic Analyzer (the weakest processor type). (I’ve left the radius highlight active so you can see where it scans out to.)

This means that even a low-density analysis is useful, even though it doesn’t tell you everything. Eventually with enough time or sufficiently powerful processor the entire area will be revealed.

cogmind_terrain_scanner2

Remaining stationary while an Imp. Terrain Scanner and Imp. Terrain Scan Processor reveal the nearby layout. (I’ve activated a Sensor Array so you can see other robots moving around as an indicator of the passage of time.)

Activation

Activating terrain scanners will remind you of their AOE, and also happens to point out doors (just to add a little something…).

cogmind_animation_terrain_scanner

Activating an Improved Terrain Scanner.

The processor animation is pretty simple, mostly reinforcing the radius again but with brighter versions reflecting a higher density.

cogmind_animation_terrain_scan_processor

Activating increasingly powerful processors (their effectiveness does stack).

Hidden Doors

I haven’t brought this mechanic up before. It wasn’t in the original design, either--a comment on Reddit a few months ago got me thinking about them and it turns out they add so much to the game that I figured they should be added sooner rather than later. I was considering keeping them a secret (I mean hey, they’re hidden doors!), but you’ll start encountering them right away in the game, and they’re not exactly rare (quite common, actually), so what the hell let’s talk about them now.

The idea is that most maps contain a number of “emergency access” doors used only by combat robots to more quickly reach flash points. Intruders unfamiliar with the territory can be ambushed, or think they’ve reached a dead end and turn to fight off pursuers only to suddenly be attacked from two sides. The mechanics should lead to some interesting situations. When robots start emerging from a room you thought was empty, now you’ll know why.

Terrain scanners don’t reveal hidden doors, which appear as normal walls until detected. You can, however, eventually figure out where these doors are hidden if you scan enough terrain to find corridors behind walls. Obviously seeing one of these doors open also counts as detecting it. Even if you don’t see it, it still opens automatically for you just like any other door, but it’s unlikely you’ll be spending lots of time running along room walls searching for them. You’ve got better things to do (and if you don’t you soon will after wasting so much time).

A better option is the dedicated Structural Scanner, now carried by engineer bots. This type of scanner is useful in that it auto-identifies hidden doors as soon as they are within view.

cogmind_structural_scanner

Exploring with a Structural Scanner. Without an active scanner, walking into that room would show nothing but normal walls.

Finding hidden doors saves you lots of time, making it possible to cut corners for a more direct route to an exit, sometimes circumventing entire sections of a map.

There is also a nifty animation to go along with its activation:

cogmind_animation_structural_scanner

Activating a Structural Scanner.

System Corruption

To a degree, both robot and map knowledge are susceptible to interference from system corruption. Once Cogmind has been corrupted, low-level Sensor Arrays will sometimes report false signals (the number of false signals increases with the degree of corruption), and you can lose map data for previously visited areas!

Corruption is caused by electromagnetic damage, though it doesn’t start to play a significant role in the game until about mid-way through when the more fearsome EM-armed Programmers start tracking you down. Even if you don’t immediately notice your corruption value increasing, or some of the less intrusive effects like garbled log messages, the fact that your interface starts glitching will inform you pretty quickly ;).

As in the 7DRL, system corruption has other effects, too; just wanted to drop a mention of its relation to information warfare.

Sight Range

We can’t pass up this most basic element of roguelike information warfare, the maximum range to which your field of view extends. After all, it does determine what information is always immediately available and (usually) reliable.

To keep things simple, most robots have a sight range similar to your own (around 16), the main exception being Watchers that have augmented visual sensors for obvious reasons. Upgrading your own sight range, even beyond that of Watchers, is a great way to spot hostile robots before they spot you, but this only works in long corridors or large halls. Decidedly less effective than a sensor array-processor combo, though this only requires one slot.

In the 7DRL you could only guess whether an enemy had spotted you yet; now that we have a couple different ways to know that (see previous post), enhancing your sight range is a useful option.

Hacking

While not required, hacking terminals is a fairly important way to gain information, some of which overlaps with what you can obtain from the various utilities described above.

The original game was designed without hacking, though theoretically it will be nice to have alternative sources of information, as well as greater flexibility in what can be provided. From a design perspective, parts need to provide fairly equivalent benefits due to the low-resolution slot system (e.g. you start the game with only 7 slots, 2 of which accept utilities). Any items with questionable relative value will always lose out in the fight for limited inventory space. Therefore, we can’t realistically rely on parts for some unique types of information. Terminals serve as a source of that information. I’ve mention some of the possibilities before, but the final list is not set yet.

The Other Side

Everything covered so far about information warfare is from Cogmind’s point of view, when it’s technically a two-way battle. What tools you choose to rely on (if any) heavily determines the outcome, though we can introduce a few more factors by also examining this topic from the enemy’s perspective.

First and foremost, your position is a pretty important piece of information. Once a hostile robot spots you, it will try to alert any nearby allies and tell them where you are. If there happens to be a chain of robots in the vicinity and this information gets passed around enough, you could have a lot of company on your hands.

An interesting new part, the Transmission Jammer, can prevent hostile robots from transmitting these messages to each other. I haven’t gotten far enough in world testing to see how effective it is in managing “situations,” but I’d imagine it’s going to be pretty useful. It automatically jams all transmissions in its area of effect.

cogmind_animation_transmission_jammer

Activating an Advanced Transmission Jammer, which will keep that Watcher (and Swarmer) from reporting my position to allies.

Unless you’re really confident in your capacity to annihilate all comers, you’d do well to reveal your position only when necessary, because once certain robots are pursuing you it can be tough to shake them.

You can, however, reduce the length of time robots are capable of tracking you after you’re out of sight by employing one of the ECM Suites. They are amazingly effective at getting you out of trouble, but the better ones require significant amounts of energy to operate (a balance issue).

And that’s pretty much it for the other side! There is currently one robot that factors into the information warfare game in a special way, but I’ll let you figure that one out. I have a couple more ideas for such robots I’d like to eventually add since there’s still a lot of room to explore here.

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

4 Comments

  1. Posted November 29, 2014 at 6:51 am | Permalink

    Wow! Very impressive scanner effects ^_^

    That will make a hell of a motion scanner for XcomRL :D (after Cogmind that is!!)

    • Kyzrati
      Posted November 29, 2014 at 7:32 am | Permalink

      Already thinking ahead, are we? ;D

      While I think there’s room for improvement, the XCOMRL motion scanner is actually already animated. Most of the interface will be tweaked or completely redone when I get back to it, but I was just thinking the other day about the motion scanner and whether or not it would be good enough for the “new” X@COM.

  2. e102
    Posted April 9, 2015 at 4:32 pm | Permalink

    I just stumbled across your dev blog and these posts are really interesting. Thanks!

    • Kyzrati
      Posted April 9, 2015 at 4:40 pm | Permalink

      Thank you for reading! As you’ve only showed up now, there’s plenty of back-dated material for you to pore over if you’re interested, with of course much more to come :D

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>