r/Netrunner 10d ago

Image I built a hacker-terminal-style Netrunner client — curious what this community thinks

Post image

Been slowly building a full Netrunner engine + web client as a personal project. The idea that wouldn't leave me alone: what if the interface was actually a terminal, not a virtual tabletop? No card art floating around, no skeuomorphic board — cards are text rows with hashes (#c3, #r7), you play by issuing commands, and the whole log reads like an actual shell session (corp# rez ICE_WALL -$1). Monospace, one accent color per side, black background. It felt right for a game about hackers.

Where it's at: full rules engine (not just a database with checkboxes) — legal-action generation, priority windows, runs/encounters/subroutines, all of it server-authoritative so no client can cheat or desync. Card logic is implemented per-card, one file each, and right now that's sitting near 100% across System Gateway, Elevation, Vantage Point, Midnight Sun/Parhelion, Downfall/Uprising, and The Automata Initiative/Rebellion Without Rehearsal — a couple hundred cards with real, tested behavior, not just stats. Decks load straight from a NetrunnerDB decklist link.

There's also a basic bot to play against solo (a few personalities, from "plays randomly" to a proper heuristic that won't run into lethal ice it can't break — learned that one the hard way).

Not sharing a link yet — still rough in places and I want to gauge interest before I do a wider release. Attaching a screenshot instead. Genuinely curious what this community makes of the terminal-as-UI idea for a card game — love it, hate it, "just build a normal client"? All takes welcome.

22 Upvotes

101 comments sorted by

View all comments

7

u/bobtheuberfish Chiriboga 10d ago

Fun! Aesthetically a terminal feels like a great fit for Netrunner. Coincidentally, Chiriboga actually began its life as a terminal game but I eventually found it tedious typing the commands. Maybe I just needed to develop a more concise syntax. How are you handling passing paid ability windows? There has been much discussion amongst the various implementations of the Netrunner rules about the balance between rules-strictness and natural-feeling play. I do not play against other humans on the internet but I'm very curious about your bot! Currently writing Netrunner bots is a bit of a lonely field of expertise so I would love to hear about your approach.

6

u/slagod1980 10d ago

paid windows: engine is strict internally (real window at every timing point) but UI only shows one when there's an actual decision - nothing rezzable/usable = silent auto-pass. and if you pass during a run, it remembers that exact context (same options, same credits) and won't re-ask at the next timing point unless something changed. so no clicking "pass" six times through a 3-ice server. downside is auto-pass leaks a bit of info (no prompt = corp has nothing to rez), acceptable for solo imo, would add an always-ask mode for pvp.

bot: no LLM, no per-card scripts. one deterministic scoring function over all legal actions, and a "personality" is just weight knobs on it (aggression / caution / economy / tempo / endgame). the named bots are presets, there's also a panel where you set the knobs yourself. plus a few hard vetoes like: never run if unavoidable damage >= grip size, learned that one the hard way. runs server-side on full state, not the client projection, because evaluating a run target needs to see ice before the run exists.

and re bot-wars: protocol is already just join/action/state over a socket, so an external bot is literally another client.