Thursday, 30 January 2025

making choices on server map - part 2

The server map is kind of a second game, where one move in the map (hacking a server) comprises an entire round of the core game. In my last post wrote about how I was trying to make the decision of "which server do I have next?" rich and interesting; while that's a big decision in relation to the core game it's a very zoomed-in perspective on the metagame. Today I'm thinking through the wider question of what the player is trying to achieve across multiple hacks.

My first thought was to simply reflect the core roguelike gameplay: each server is made up of sectors, the goal of each sector is "get to the exit", and the goal of the entire server is "get to the final exit". The goal on the map could be "get to the final server". There would be a lovely symmetry, "as above, so below". I spent a while prototyping this version.

A big problem I ran onto early on is that the whole map is way too much information — thirty-odd servers each with their own tools and defenses. I was never planning on making you choose between all of these at once, you'd be stepping through them one at a time, but it turns out to also be too much to look at and think about to plan a route through. That's okay, I just add "fog of war": you can only see where you've explored. This felt really good. You start with a very simple set of options, then gradually add a few at a time (ruling some out as you go) and by the time the screen is full of information you've already digested most of it. It gives a nice Matrix moment: if a friend sees you playing they'll be impressed by the impenetrable wall of symbols, but you "don't even see the code anymore".

Putting these two concepts together: you're trying to get to the exit but you need to explore to find it. Remember from the previous post that there's a limited number of rounds, so you're trying to get to the exit before you run out of time (and pick up as many points as you can along the way). This more-or-less worked, it's a game. But there ended up being a fairly optimal search pattern you could follow to have the maximum chance of finding the exit, and this tends to feel unsatisfactory no matter the outcome: if you find it that's unexciting because it's to be expected, and if you don't find it that's unfair because you did the best possible with the information you had. And if you're trying to get a high score, then that's determined by whether the map randomly lines up the highest scoring opportunities with the correct search pattern. If not, you'd have to keep restarting until it does (which some players are going to do to eke out an advantage no matter what but I try to avoid privileging too much).

I started experimenting with other goals. I tried having multiple options, whereby you could win the game by completing any one of them. This has several advantages over a single goal. It suggests different categories players can choose to compete in to extend the longevity of the game - completing a specific goal, or getting bonus endings by completing more than one simultaneously. As a designer I can try to balance the goals such that when you're failing one of them you're likely to be close to succeeding at another - e.g. if you've searched the map and not found the exit then at least you might know where all the megacorps' territories are, or if you've completely failed at exploring then you've likely had many opportunities to [redacted] the [redacted].

Even with these balancing factors I kept running into the situation where one mistake or unlucky roll can prevent you from achieve your goals no matter how cleverly you've played up to that point. Weirdly this felt both really bad and really good. These situations made great exciting moments that fit the mood of the game, they weren't a rough edge I wanted to smooth off. But if it went badly, then the gameplay was telling you to quit and restart, which at that point stopped fitting the mood. At 868-HACK's scale it flowed really well to crash and restart, and I would have liked it to work similarly, but with the game being a bit bigger and having a few different elements in play it just.. wasn't.

So I stepped back to think about what makes sense in the story of the game. You've returned to the life of crime you left behind, risking everything on one last hack to save everything you value the most.. you took your best chance.. it didn't work out. You got so close but you realised you couldn't make it. What do you do now? You could try anyway, going out in glory like some kind of hero. But no, you want to make them pay. You want to do as much damage as you can on your way down.

Game design is about making the thing that's coolest to do line up with the strategically optimal move. (Or most exciting, narratively appropriate, etc., you get it.) I had been thinking the goals were absolute: this is what you must do to win the game. I had thought that was narratively appropriate: this is what the hacker values more than anything, enough to bring them back. But it's more interesting to be dynamically evaluating - if you've had a bad run and now there's only one option that gives a 1/16 chance of making it.. if the goals are absolute then there's no choice, you just take that chance.. but maybe you take the option that has no chance BUT hacks them up good / gets a cool item / etc.

Brief historical diversion: when I made 86856527 (which became 868-HACK), I'd been playing a lot of roguelikes (Rogue, ADOM, Nethack, Crawl..) and I thought high scores are a waste of time, a distraction from what's cool about games: exploring a world and having adventures. I'd also been playing a lot of board and card games (Race for the Galaxy, Dominion, euros) and I thought scores are a great mechanism, a clever abstraction that can enable what's cool about games: deep subtle competition. Basically I believed that scores were a good thing for boardgames but somehow a bad thing for videogames so I was resistant to putting them in mine. It's probably fair to say that the videogames I was playing just didn't have very good scoring (despite their strengths in other areas). Fortunately I got through my resistance, and with 868-HACK found the maybe-novel idea of putting something like a board-game-style scoring mechanism into a roguelike.

(These days people even call Balatro a roguelike. Not my fault ok.)

Back to the topic: I have a game with a scoring system, and narrative goals. I've been resisting assigning scores to the goals, because they're the thing that you really value, more than mere score! But maybe I have to learn the same lesson again twelve years later, and put some numbers on them. That's what makes the formal program-mechanical perspective of the game match up to the cool story in those 1/16 risk situations — the character is thinking about whether their chance of success is worth it versus just smashing things, the computer program is evaluating whether the number is bigger than the other number, the player is thinking about whether their chance of success is worth it versus just smashing things.

Thursday, 23 January 2025

making choices on server map - part 1

Hey, not sure I'm managing to fit in a video this month so you get a design blog instead!
(Which is interesting, have I reached a point in recovery where this is less effort again?)

Okay, game structure. I discussed the basic idea of 868-BACK's server map in a previous post (on Patreon), to summarise:
  • In 868-HACK after you hack a server, there's another random one after it, with difficulty increasing until you lose.
  • For 868-BACK I've introduced a choice, selecting servers on a grid.
  • Why would you ever choose a harder server? Because their data is more valuable (because there's a score multiplier).
  • Servers also house devices, letting you gain additional powers as you progress in the game. (Unlike HACK where the only progression is increasing difficulty.)

Now, the idea of a score multiplier is sound, but still: why would you choose a harder server? As far as I've described, the optimal play for a high score might still be to always pick the easiest server, to minimise your chance of losing and get more points in the long run. HACK had this lovely tension between survival and score - your score is "points per round" times "number of rounds" so you can do better by increasing either of those values, and the ideal maximum is some incalculable midpoint between safety and foolhardiness. But making that work well relied on the danger increasing fast enough that you can't take "number of rounds" to infinity. If in BACK I'm putting this danger curve in the player's control, where does the pressure come from?

So: I've limited the number of rounds! This loses that beautiful multiplication by the number of rounds - but I've decided to be very comfortable with losing specific elements: the sequel is a new game finding its own way, and the original isn't going away. With a limited number of rounds, you get a high score by maximising your per-round score, so there's an incentive to attempt difficult servers.

We also don't want the optimal strategy to always be "pick the server with the highest mult". I'm not too worried about that because it's a multiplier: you still need to get the points to multiply. Probably there will be a sweet spot in the middle, and probably finding it will be tricky and depend on all the details. (And the details are interesting! I'm discussing this here at a very abstract level by just looking at difficulty as number of powerups, but it's really about getting to know the specific powerups and thinking about the complex ways they can interact.)

Next point: what should the multipliers be? My first thought was multiplier = number of powerups. (Yes the difficulty modifiers are still called "bonus powerups", deal.) But I probably still want some servers with no powerups because the game is complex enough to get started with anyway, so to not give zero for those my second thought was multiplier = number of powerups + 1. Generally start with the simplest idea: if it works out then it'll also be easier on players, and if it doesn't well you haven't spent too much time going in the wrong direction.

Obviously these numbers are "wrong": e.g. a server with one powerup isn't twice as hard as one with none, it's maybe 1.25x, so giving it a 2x multiplier isn't accurately giving a reward commensurate with the difficulty. But it doesn't have to be! I don't really mind if the gradient here is quite steep giving players strong encouragement to play with powerups: that's where the game gets really interesting, and it's more important for a scoring system to encourage doing interesting things than to measure of how well you played.

As I mentioned above, the scoring isn't the only reward for hacking a server: we're also collecting devices. Intuitively, the more powerful devices would be accessed through the more well-defended servers. But wait: if we keep the dead simple rule of "+1 powerup = +1 mult", those servers are already offering the best reward! Should I put the best devices on easier servers so there will be a choice of better scoring vs. better abilities? Or should I make the rule more complicated, e.g. "+1 powerup = +1 mult OR +1 device tier"? In the end what we've found playing it is that each additional powerup tends to increase the danger level superlinearly, as you increase the risk of nasty interactions between the different powerups. So a mere linear increase in multiplier doesn't cut it by itself, and it works out perfectly to give something like "+1 powerup = +1 mult AND +1 device tier".

(Okay, this is really long, I had two more main points to make but I'm tired and it's gotten long. So my conclusion is: writing is still more tiring for me than video, but this was too big a topic to get through in one go no matter what the medium and that is probably why I wasn't getting around to doing the video.)