Script Kiddie postmortem


Terminal Jam provided an opportunity for me to prototype a turn-based combat system I’d been simmering on for a few years.  The basic idea is that the player has a set of tools that are random combinations of different verbs, used against an ordered stack of enemies.  Sort of like Cinco Paus wands against Darkest Dungeon monster groups.  Thematically, I had always thought of it as a hacking game -- I guess the player actions could be magic spells you don’t fully understand, but a rigid formation of enemies feels more natural to me as a list of files than a group of goblins or whatever.

Starting with the basic interface of Extremely Online, I was able to get started on gameplay stuff pretty much right away, which was nice.  I also modified my particle system to make cool glitchy terminal effects, which I think turned out pretty well.

Each enemy has two sets of HP, both of which have to be depleted in order to defeat it and collect its treasure (if any.)  The player has an alarm level and a link strength (just cyber-HP).  If the alarm level gets too high, you get disconnected from the server without penalty.  If you run out of link, you get disconnected and lose some of your money.

The player’s starting scripts are guaranteed to have basic attacks against the two enemy HP types, and those “basic attacks” are weighted fairly heavily in the generation of new scripts.  Other script actions raise or lower your alarm level or link strength, or change the order of the enemies.

Certain enemies fight back at regular turn intervals, usually raising your alarm level or weakening your link.  Some enemies have effects that trigger when they are defeated, and some fortify other enemies in various ways.  Certain rarer enemies have randomly generated abilities that can be extremely good for the player, or extremely dangerous.

In between battles, you can buy new scripts, add random additional commands to your existing scripts, or buy “secrets,” which reveal specific server addresses you can attack, weird jokey UI features, and hidden commands to get free resources.  The secrets were where most of the bespoke content lives, and they were fun to make.

I decided not to add a whole-game fail state -- I kept thinking there needed to be punishments for losing individual battles, but everything I considered felt like it’d lead to a failure spiral.  There probably should have been something in place to discourage you from re-rolling servers until you get a really easy one, but for a game that mostly exists as a proof-of-concept for a fight system, I figured there wasn’t any serious need to balance it in a challenging way.  A friend made the clever suggestion of an X-Com style countdown timer for the entire game, which puts pressure on, but not in an immediate way.

The game also procedurally generates the sets of enemy programs you’re facing.  This is cool some of the time, but boring some of the time, and I think maybe a better version of this game also has a set of defined puzzle fights for you to solve.  There are a few enemy attacks and player script features that are really chaotic and interesting, and I probably should have guaranteed that you’d see those on any given playthrough.

I enjoyed making this a lot.  It was nice to have a more design- than content-focused project, and I think the end result is fun enough for me to conclude that the system has potential.

Files

scriptkiddie.zip Play in browser
Nov 21, 2020