Many earlier posts have already covered hacking as it applies to various interactive machines, a feature that was implemented a year ago. Only now have we finally reached the tangentially related robot hacking mechanic.
Robot hacking was planned from the beginning, but it took this long to reach this point because it ideally should be handled after AI development (now mostly completed), which had to come after most robot designs were finished, which had to come after X, Y, Z, etc. So as it turns out robot hacking is one of the last major mechanics to be implemented.
"Major" in a development sense, though content-wise not necessarily so depending on how you play--keep in mind that if this part of the gameplay doesn't appeal to you, you can pretty much ignore it. Hacking other robots is intended as an optional method of dealing with threats, augmenting stealthy hacker builds by giving them an alternative to trading volleys in regular direct combat. Something-moved-blow-it-up tank-type robots are less likely to be carrying around the utilities that make hacking a viable strategy. On the other hand, hackers already using their utilities to manipulate machines can also rely on those same parts to help dispatch enemies.
Initiating a hack is fairly straightforward, though more involved than just walking up to a robot and pressing a button.
First of all, you need to access the target's system, which is achieved via a new type of item called a "datajack." Datajacks are implemented as special weapons (require a weapon slot) which attempt to punch through the target's armor and connect to its local system.
An example of a melee datajack.
Technically this doesn't have to be done point blank, because datajacks also come in remote varieties that can be fired at a target from range.
Info for one type of remote datajack.
Remote datajacks do have some drawbacks, though, being further from the target and therefore less likely to both hit and successfully penetrate. Using them also requires matter, which is a semi-finite resource.
Even if initial attempts to hack a target fail, successfully connecting with multiple datajacks will confer a bonus to subsequent hacks on that same target. This means if you have the resources and are really determined to hack something, you could also simultaneously fire a volley of datajacks that stick the target full, and then hack it ;)
Once connected, while all you see as a player is the final chance to succeed at each type of hack, there are several factors contributing to that percentage.
First and most important is the difficulty of hacking a given class of robot. Enemies are classified as either easy, medium, or hard to hack--hacking a Recycler bot is quite easy, while not just anyone can hack a Programmer. In addition, more powerful hacks have yet a lower base chance of success.
As with machine hacking, the more you hack a certain system (in this case, differentiated by robot class) the more familiar you become with how it works, conferring an increasingly large bonus to future hacks. But the biggest contribution to hacking success comes from attack-oriented hacking utilities. Sticking a target with multiple datajacks increases your chances further.
UI and Effects
The main robot hacking interface borrows the same style as machine hacking, color-coding options based on their chance of success.
A sample terminal hacking menu (top) vs. the common robot hacking menu (bottom).
In the lower image you can see the current list of possible options when hacking a robot. It's not nearly as extensive as machine hacking, which includes dozens of different targets, but this is a good starting point (I may add more while tweaking gameplay in the future):
- PARSE: Scans the robot's system for useful internal details, including its current level of system corruption and a breakdown of hacking calculations and success rates. Experienced players probably won't use this feature much, but it is a good way to learn more about the game's mechanics.
- LINK: Embeds a program that broadcasts data to Cogmind and all allies via the datajack, helping predict what the robot will do next. This confers bonuses to both hit% and damage.
- REBOOT: Completely disables the robot for a certain duration (around 15~25 turns), long enough to either destroy it if there's nothing else to worry about, or run away to avoid the negative effects of combat. Rebooting a robot erases its short-term memory, so if you're out of sight when it starts up again it won't know where you went, or even that you were ever there.
- OVERLOAD: Outright destroys the robot by overloading its core. Naturally this is more difficult than a simple reboot.
- ASSIMILATE: The most difficult type of hack, which reprograms the robot to serve you. You'll be able to issue it general commands, as covered in an earlier post about ally orders.
- MANUAL: Opens a separate console for text entry. More on that below.
Even if you fail a hack, for the more difficult ones there is still a chance of "partial success" in the form of secondary effects. These effects are not meant to be reliable, mostly existing for fluff purposes, or as a little reward for at least trying to hack something =p.
A failed REBOOT could still cost the target some turns as it quickly restarts some systems, or possibly somewhat corrupt its core. Failed OVERLOADs may reboot, damage, or corrupt the robot. Failed ASSIMILATIONs may overload and destroy the robot, or corrupt it. (In case you've forgotten what "corruption" refers to here, it's essentially an alternative way to kill a robot without necessarily doing much physical damage--it will be destroyed if system corruption reaches 100%. The drawback being you never quite know for sure how corrupted a particular robot is unless you PARSE it.)
The final hacking option opens a separate console in which you can type anything you want. It was originally introduced as a flexible way to enable specific plot-related elements (e.g. find X and hack it by typing Y for a unique result), though naturally it could and will be used as a part of interesting but less important encounters, and it's certainly an excellent opportunity for secrets ;D. In fact, as I see it most manual hacking will be of the secret variety--usage will be pretty infrequent and special. (While the mechanics have been added, there are currently no implemented effects, as those will come later during world design, so for now I can only speak to what I intend to do with the system.)
Manual hacks don't have an associated percentage because they always succeed (assuming the text you enter is applicable), though you do have to make the connection first.
Now that we have this nice little console class available, I could use it for entering debugging commands, or even cheat codes! (or not)
In case you're running low.
You're not the only one hacking. Programmer class robots now live up to their name, sometimes attempting to shut down your friends, or reprogram their former allies. This makes them even more formidable than they already were, but I like the idea of enemies that are truly feared. Remember this is a roguelike at heart, not some mainstream RPG where you can generally expect to be able to confront and kill anything without any serious consequences.
Programmers also serve in a defensive capacity. If a visible ally within their protective range is the victim of a hacking attack, they will attempt to stop it.
The cool thing is, if you can manage to get some Programmers on your side, they're capable of carrying out both offensive and defensive hacks for you. They'll sometimes choose to reprogram robots to join you, or at least attempt to temporarily shut down hostile robots, while also shielding your other allies from enemy hacks.
Cogmind can also protect allies from hacks by attaching the same defensive hackware utilities used for machine hacking.