Official development blog

Robot Hacking, Take 2

Over three years ago, before Cogmind’s first alpha version was released, I wrote about robot hacking. Well we can keep that post around for posterity and historical research purposes, but as of the next version robot hacking is undergoing radical changes and a major expansion. This post will explain the fundamentals of the new system (much of this content was originally serialized in a series of SITREPs on the forums and Steam news).

Background

First a bit of history.

Back in the pre-Alpha days (2015 and earlier), robot hacking was never fully realized. Ideally it would be designed to fit in with all the other systems, but there had really been almost no playtesting since the 7DRL and three quarters of the world had yet to be created, so there wasn’t much to go on at the time. Rather than build up something large right away, a better long-term approach would be to just add a smaller functional placeholder that could be tweaked or possibly replaced when necessary as the rest of the game took shape.

So then, as now in Beta 6, there were just a handful of general options running the spectrum from “temporarily disable” to “permanently assimilate.” As it was clearly an underdeveloped system tangential to everything else going on, Alpha players almost entirely ignored robot hacking for a long while, exploring other mechanics instead.

Then came late Alpha, and it was discovered that a Cogmind could stack Hackware like there’s no tomorrow and literally own anything in the complex, especially later in a run. Here’s an example of this type of build, in a screenshot shared by zxc:

cogmind_zxc_late_game_robot_hacker_build_alpha

zxc’s uberhacker loadout.

A +247% to hacking and the ability to hack robots around corners before they even know you’re there? That sounds mighty OP! (zxc used such a build in early 2017 to achieve the highest-ever Cogmind score, a record which still stands to this day)

Certainly it takes skill to set up, but roguelikes should technically get more challenging as a run progresses, not easier, and that’s generally how Cogmind works except when it came to strategies abusing this mechanic :P

Flight hackers had their fun with magic wands for a while, then of course I had to nerf it, explaining the diminishing returns of high-level robot hacking over the length of a run as a result of the system adapting its defenses. That said, even the nerf itself was just a temporary band-aid, because clearly much bigger changes were necessary as part of a new system, and that point would be coming in late Beta given that all the other systems were pretty much done.

And that’s where we are now, adding Cogmind’s last major system (“last” on the FAQ’s main roadmap, but I have more secrets planned, plus of course there’s always this which might happen :D).

I collected and mulled over numerous ideas for how to revamp the robot hacking system for more than a year. There were quite a few reasonable possibilities to think through, but also a lot of potential pitfalls! Devs are unlikely to get a system absolutely perfect the first time, but as long as it has a solid foundation it can be tweaked and expanded without too much trouble if necessary. So this foundation is extra important. I’ve never spent this long designing a single system before (21 hours just designing!), and it went through lots of iterations and refinements (all on paper) as it started to look both relatively balanced and interesting.

It’s also worth pointing out that I’m very glad I didn’t move on this system earlier, or try to have a complete extensive system available from Alpha 1. It would have had a negative, limiting impact on other developments, and much about the current state of Cogmind’s world and content has enabled me to make smarter choices about how to best integrate robot hacking into it all, be it the tactics, strategy, or lore. In short, doing this earlier would’ve meant more wasted effort and less pleasing results.

So what is this new system already…

Principles

While reviewing all the concepts floated over the past year, I identified the major areas that a new robot hacking system would need to address in order to fit in with Cogmind’s many other systems and also be enjoyable but balanced in its own right. The resulting underlying principles of the new hacking system:

  • Decouple machine and robot hacking. Even just machine hacking alone provides a wide range of extremely effective abilities, so there’s no reason to keep both types of hacking under the same umbrella of supporting parts. Thus robot hacking shouldn’t be based on standard hackware, we’ll need something else.
  • Control the snowball effect seen with robot hacking during alpha testing. Sufficient stacking of machine hackware makes pretty much any hack a success, and this is fine for players willing to invest that kind of slot use, but applying the same approach to robots makes it far too easy to eliminate any and all danger by accumulating more and more allies, or at least nearly effortlessly taking out enemies. We’ll need upper limits on what is possible.
  • Remove much of the RNG. Under the old system, anything but a good robot hacking setup is too unreliable--you have to hit with a Datajack, penetrate to their system, and then there’s still the final hack chance to succeed at. RNG works well for machine hacking, but with robots the time element is much more limiting, and the consequences of failures are too dire, especially for bots that are not necessarily set up for combat! Too much RNG in a system like this makes planning much more difficult, thus keeping the RNG would basically work against the combat hacker style itself. Removing the RNG here will be very good for balance.

Compared to the old robot hacking system, overall there are more limiting factors under the new system, but by extension that means it can be more effective! More effective is more interesting, as it also increases the range of possibilities. The goal is not to become OP, it’s to gain tools for solving a subset of unique situations and challenges, and being creative in how these are deployed.

Relay Interface Framework

This is where it all begins, with this machine:

cogmind_RIF_installer

Interfacing with an RIF Installer.

Every garrison will now contain an RIF Installer, and it’s your choice whether to use it and deal with the consequences, and of course take advantage of the benefits! You’ll only have to do it once, and the first garrison appears on -8, so that would be your earliest opportunity, though you can also choose to install at any garrison after that as well. You still get all the other benefits of a garrison on top of that, and there will be another advantage particular to robot hackers that we’ll get to later. Basically I liked the idea pioneered by the original system that robot hacking is linked to garrisons (albeit manifested differently), so the new system really emphasizes that link, and as a better system should also better incentivize the occasional garrison visit!

“RIF” stands for Relay Interface Framework, and with that you’ll gain access to dozens of ways to manipulate other robots via the complex-wide garrison relay network. Like a number of other major strategic decisions, however, this comes with a drawback as it will prevent you from forming certain… alliances. Such is the strategic cost of effectively linking up with 0b10 to facilitate access to their systems. And from this point you can probably infer that the new robot hacking system only works on Unaware! This is just the first of several limiting factors--robot hacking will be quite useful, but not a panacea. It’ll be what an interesting system should be: very effective when used creatively, but also challenging you to create manageable situations to begin with. Unlike the Alpha approach of “it’s an enemy, reboot/assimilate it!!!” there will be many unique encounters and different methods of approaching each. As with other strategies, planning ahead will be very beneficial, and to me that also really fits the theme of a robot hacker, whether a stealth hacker or combat hacker or anything in between.

Planning ahead will also be facilitated by the fact that the new system removes much of the RNG from robot hacking :D

Relay Couplers

The hacking process itself starts similar to how it exists now: Datajacks are still a thing, and you have to both hit the target and penetrate to its system, but after that the processes diverge significantly. Robot hackers will often want to make use of a new type of Hackware dedicated to robot hacking: Relay Couplers. As Hackware these are destroyed on removal in normal fashion, and even have limited uses, but they enable all the best hacks.

cogmind_relay_coupler_grunt_sample

Sample Relay Coupler.

Successfully attaching a Relay Coupler requires that an RIF already be installed, otherwise Couplers fry themselves due to incompatibility.

cogmind_relay_coupler_no_rif_self_destruct

Self-destructing Relay Couplers. Oops, better get that RIF.

Couplers come in a variety of types (there are 12) and must match the target’s class to gain access to high-level hacks for that target. For example a “Relay Coupler [Grunt]” is used to hack Grunts. The one exception is Relay Coupler [NC], which applies to all “non-combat” bots, so that one alone will be much more widely applicable.

The alternative approach would’ve been to have Hackware that enables specific hacks, rather than targeting specific bots, taking the system in a completely different direction, but I believe it’s far more interesting to be able to do almost any kind of hack to a specific kind of robot than the same hack to any robot. This both opens the door to a greater variety of strategy and tactics, and will essentially force that variety in many cases because there’s no one-hack-suits-all ability.

Note that not all hacks require a Coupler, or even an RIF. So Datajacks will still have some robot hacking purpose aside from their other functions. The new PARSE behavior will serve that purpose alone, as it’s free and always works, usable on almost any robot. (I’ll demonstrate that later once it’s implemented.) There are also some cost-free hacks that still require an RIF, for use against non-combat bots.

Most hacks do, however, require a target-appropriate Coupler to pull off. These hacks appear in their own box with a “Coupler” header.

cogmind_robot_hack_ui_description_coupler_related

Robot hacking UI diagram.

The numbers off to the right aren’t the percentages you might expect given the other/previous systems, but are instead static costs for executing each hack. That cost is directly deducted from the Relay Coupler value seen at the top and the hack takes effect, period. So Couplers are expendable, and each has its own “remaining value” before it is depleted. You can carry or attach as many Couplers as you want, and if you have more than one applicable Coupler for the current target robot their values are combined into a new total.

As you can see, the new system is easier to balance by forcing a trade of valuable slot/inventory space for guaranteed hacking effects, whether you want them to play a non-combat role, a supporting role, or a fully confrontational “I own you all” role.

cogmind_robot_hacking_build_sample_couplers

Sample robot hacking build with Datajack and a few active Relay Couplers.

As mentioned before, hack costs are static--there is currently no way to influence the cost via utility or other means, and allowing for the modification of costs would make it easy for robot hacking to creep into OP territory again. Better to have only one variable at play, the Coupler value, which can in some cases be higher than normal so that there’s room to get more out of a single Coupler!

I’ve generally avoided consumables in Cogmind’s design, at least in the traditional sense, but Couplers don’t really fit that sense anyway since they have multiple uses and are also quite flexible in what they can be used to accomplish.

Coupler value is a factor of two elements: its source, and the type of robot it applies to. An individual [Behemoth] Coupler won’t let you do much, though you could combine more than one to do just about anything! A lone [Grunt] Coupler, on the other hand, will last for a lot more hacks, depending on what you want do accomplish. There are five ways to acquire Relay Couplers, two of which I’ll leave for you to discover, but here are some of the main ones:

cogmind_destroy_garrison_relay_for_couplers

Garrison Relay.

Straight to the source! Like previous and current versions of Cogmind in which Garrison Relays play a role in robot hacking (albeit through a different mechanism), so do they under the new system. Venture into a Garrison itself and blow up relays to collect the most valuable Couplers inside.

cogmind_destroy_garrison_access_for_couplers

Garrison Access destruction releasing Relay Couplers. Doing this will likely tempt some players to try out robot hacking ;)

Destroying Garrison Access locations will net you some Couplers as well. They’re partially used and thus not as valuable, but at least they’re fairly easy to acquire!

If lucky you can also find special caches in a Garrison containing lots of high-value Couplers, but don’t count on it :P

UI Upgrades

Manual hacking of robots is already a thing, but it’s a pretty simple system that’s always been used purely as a way to enter random codes you might collect as a result of certain encounters. There’s not much of a need to type out any commands to begin with, considering there’s a complete context menu that appears to recall all the codes, as seen here using the old hack list:

cogmind_robot_hacking_manual_codes

Sample special codes menu during robot manual hacking (old hack options).

But with the number of hacks increasing significantly in Beta 7, some keyboard players might be more likely to prefer entering hacks by typing them out rather than finding them in the menu. Of course no one’s going to bother if you have to type out the entire command, so like manual machine hacking we’ll need to facilitate the process! For this I added both autocompletion and a command buffer:

cogmind_robot_hacking_autocomplete_and_buffer

Robot hacking autocompletion and command buffer demo (parse_system effect at the end is a placeholder for things to come).

It kinda sucked to have to switch the whole manual robot hacking system over from its original simple architecture (which already worked nicely) to one that could support these new features, and many hacks were involved, but hey everything once again works as expected so I won’t complain! QoL FTW!

While at it I also added an advanced option to alter the default cost-wise method of sorting Coupler-based hacks:

cogmind_robot_hack_sorting_options_sample

Two different preferences for sorting Coupler-based hacking options.

Another tweak made even more recently (after all the above media was created :P) was to have the header for any Relay Coupler hacks highlight the remaining value to make that clearer:

cogmind_robot_hacking_relay_coupler_value_highlight

Robot hacking UI with highlighted Coupler value.

I had noticed the potential issue while creating the original mockup weeks before, but didn’t see any immediate fixes so decided to leave it like that for the time being. And of course as soon as I started sharing gifs there was already a comment about that value not being clear enough, so… yeah, I put some more time into finding a decent solution :D

In a departure from the machine hacking standard for the past five years, robot hacking is also getting context help! All listed hacks indicate exactly what they do when accessed via right-click or shift+letter key.

cogmind_robot_hacking_context_help

Sampling context help for robot hacks.

Unlike machine hacking it’s quite important to know precise effects in advance because robot hacking often has real consequences while facing off against enemies (one of the principles discussed earlier with regard to the switch away from a percentage-based system). Obviously it’s also good for learning the mechanics, and having easy direct access to what hacks do so that infrequent players don’t have to remember their effects. It’s possible this feature will also come to machines later (I talked a bit about that dilemma in SITREP #32).

And one last UI feature for completeness sake: Automatic removal of newly-depleted Relay Couplers also comes with its own animation in the parts list.

cogmind_relay_coupler_expended

Relay Coupler depletion.

That about covers the fundamentals of the upcoming robot hacking system. There’s a lot more work to do lore-wise and with regard to other peripheral elements, not to mention putting together all the actual hacks themselves, but the latter is a topic for another day!

I’m pretty confident this system will serve as a good foundation for a new play style, as well as augment existing styles, and do the concept of robot hacking justice even if its finer points require a little tweaking down the line.

So no there will not be a Take 3 ;)

But we do now have a follow-up, an article covering the first 65 hacks available under this system!

Update 2: The RIF system has also itself now been expanded with abilities/upgrades!

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

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>