Ah, yes, the funsies of unwinnable seeds. Either the developers run some sanity checks to (somewhat try to) avoid them, or they are just part of the game(-design). Both approaches have their merits.
Even in a simple game as Hanabi [cooperative card game; if you don't know it, look it up!] this is possible. In the basic game mode this requires incredible bad luck (e.g. the three last cards to be drawn are the three copies of the red 1); it's more likely to lose due because the first copy of a card (cards 2 to 4 have two copies each) is discarded and the second copy of that card is then the last card to be drawn (which means followup cards can not be played anymore). So the strategy of strong players involves reducing the number of (useful) cards discarded. But in some of the advanced modes, there are truly "unwinnable" seeds of the randomized deck, no matter the player's luck (e.g. the singular black 1 being among the last few cards to be drawn results in not being able to score the full 25 points).
Now a computer implementation could try to avoid most of these "bad" seeds using some heuristics. But one might argue that this isn't true to the spirit of the game and as a player, one should just accept that sometimes there is a chance not to win. It's then up to the player to decide if the game is still exciting, even when losing.
> Now a computer implementation could try to avoid most of these "bad" seeds using some heuristics.
This is potentially a problem with roguelike games that do random procedural level generation. It's no fun to get dropped into a dungeon where there is literally no path to the exit.
Typically, the way they solve it is by having the algorithm for level generation ensure solvability by construction. For example, if you build level by starting with the exit room and randomly attaching new rooms to it, then it's obvious that you can always get to the exit from every room.
Maintaining that property while having an interesting level generator that makes fun levels is a challenge.
Really interesting read - part of the challenge of proving a seed unwinnable is that there is a nightmarishly complex number of possible outcomes arising from small differences in plays, so as said in the article they needed to find a seed that relied on simple reasoning for why it's impossible.
I'm curious why cursed key was mentioned in several of these seeds as a Neow trade-in. It's one of the better energy relics, particularly since you won't have a curse from it by the time you fight Lagavulin.
I’m guessing that it’s a relic that isn’t going to give you any extra damage dealing. By Floor 6, if you only have Strikes, having enough energy likely isn’t going to be your problem against Legavullum.
I tried doing something similar for another game (fully explore and dump the dialogue tree of VA-11 Hall-A), and also encountered the state explosion problem. What helped was a data structure which allows storing very large sets of states, storing all possible outcomes of a program's execution efficiently (or at least more efficiently than naively). It exploits that any particular step in a program's execution reads and writes only a limited set of variables, which means that we can execute that step once only for each set of values the read variables may have, passing through all possibilities for the values of the remaining variables in one go. Perhaps it could be useful here as well.
Game randomizers (such as those for older Zelda and Metroid games) address this sort of problem with logic to ensure that a seed is solvable. If you need item A to enter dungeon B, item A can't be in that dungeon, for example. This can either be applied as part of the random generation, or as a post-generation verification step which discards the seed if it isn't solvable.
I think this sort of thing would be valuable for randomized run-based games like Slay the Spire, not only to ensure consistency, but also to open up greater flexibility for design. Instead of using fuzzy heuristics so that nearly all seeds are solvable, you can construct a greater diversity of scenarios without risking player frustration.
I feel like it is pretty indistinguishable in STS if you lost because you made an incorrect decision somewhere or the run is unwinnable. Something like Zelda or Metroid you can reach a point and the game has some kind of obvious solution or key you need. STS has too many solutions to the problems of what you face and no way to go back and recheck things. The fact that it is almost impossible to find an unsolvable STS seed seems to indicate that their approach is pretty good. Player frustration in STS except for the tiny number of runs indicated in this post is entirely skill based.
That's easy because the only check for solvability is item availability, so by setting a dependency chain you can ensure it. We can't do this in StS, since the main obstacle is being able to do enough damage while staying alive, not items per se. Solving that would require simulating battles which is way too expensive due to number of choices.
Glad to see Slay the Spire here. It was my gateway drug for game theory and similar "decision making" stuff, I think everyone would benefit from playing it at least for a little bit.
For how good it is, the game does a terrible job teaching you how to play it properly. To win consistently you need to know the enemy patterns, what your next big challenges can counter, what the ? rooms are likely to be and when rare cards are likely to drop. Contrary to what beginners tend to do, it is more important to focus on overcoming your immediate upcoming challenges than focus on your synergies too early (for example you need damages fast at the beginning). Then the game looks easy at ascension level 1.
Part of that is obscure knowledge can be acquired losing repeated, part is more obscure and you will only gain reading the wiki or watching streamers.
I think that’s inherent to the nature of deck building game and fans of the genre like it this way. I feel ambivalent about it personally but I also have played two hundred enjoyable hours of Slay the Spire over the years.
I agree with this: the game appears simple but there are some surprisingly complex interactions, and even pro players consult the wiki/spreadsheet/external resources during their runs. For example, only last month did Jorbs discover something new about how Gold-Plated Cables and Emotion Chip and Loop operate (something about how GPC fires earlier or later than Loop, which affects when you want to take damage during the Heart fight with Beat of Death going); on the last stream, he also ran into War Paint making Snecko Eye worse because it upgraded Dualcast to 0-cost, which means that the Apotheosis he had in his deck was unable to lower the cost of a e.g. 3-cost Dualcast+ (normally, Apothesois lowers a Snecko-randomized energy cost to the correct value when it upgrades a deck mid-fight). Keep in mind that this is someone who has >8000 hours put into this game, and these discoveries are still causing him to update his priors.
Learning through repetition is part and parcel of the roguelike world, it’s the core mechanic for things Binding of Isaac and Enter the Gungeon.
I think Slay the Spire is fairly accessible in spite of this, although “accessible” doesn’t necessarily mean one will win every run. I’ve never consulted a wiki or watched a stream and still have a grand old time playing.
You are never going to figure out that the drop rate for rare cards go up by 1% every time a non rare is rolled from a base chance of -5% yet this is a critical information for pathing choice. It doesn’t matter at ascension 1 or 2 because they are easy (I have a 100% win rate at both and I am in no way a good player) but it gets critical later on. Same thing with some of the weirdest monster loops. The fact that the first three encounters of a floor are drawn from an easier pool and you should therefore aim for a fourth floor elite is never made clear. The game is full of information you will be hard pressed to figure out just by playing repeatedly. The fun of the game is making smart decision to neuter it’s randomness. The ramp up to reach this point is far too long. The sole reason I played hundreds of hour of this game is because I watched a stream of it semi-randomly. In my opinion that’s a flaw.
Took me a while to win but once I decided to stick on a strat from turn one (poison!) I won easily. from my very nooby position that seemed to be the thing for me - consistent strategy throughout the run
Some players would rather experience the whole game (what does this spell do? Is it cool?, etc.), instead of just focusing on one type of build and/or resorting to some type of guide or wiki to minmax their experience. I think RPG developers should always consider allowing players to respec (re-allocate their choices) mid-game, so they can always try out different builds without having to start from scratch.
It is indeed fun to explore the full space of the game via a diversity of strategies for each class, but the point is that it will be optimal to explore them in distinct playthroughs. Runs of Slay the Spire are fairly short and it is designed for replayability, and it's also specifically balanced around the notion of the player exploiting synergies, so it will disfavor an unfocused deck.
In my opinion RPG developers should not only NOT do that, they should even do the opposite and hide more content behind exclusive choices of player character traits. I believe that most video game RPGs focus far too much on making these choices irrelevant and allowing to change them on a whim just perpetuates that.
Every beginner Diablo 2 player puts one point into every skill, instead of focusing on 1-3 main skills that should get 20 points and 1-5 points into secondary skills/"one point wonders".
Slay the Spire addresses this via the randomness of which cards are offered, which means that you have to design a deck without being remotely guaranteed to receive the cards necessary for whatever meta deck you have in mind. Unlike Diablo it's also exclusively a single player game, so there's less pressure to compete and more freedom to just have fun.
I would say that the easiest build are turtle build instead of raw damage (slam+block/ironclad, poison+block/silent, power+block/defect). Then you have the Watcher. I love mantra, stance and scry deck. But her raw easiest build is Pressure Point. You want a deck as small as possible (5 cards is enough) and mostly made of Pressure Points. Like you can have nothing else than 5 Pressure Points and it can close the run.
Yeah, my problem is never figuring out what deck I want to build, it's managing to build a deck with synergies when I have zero clue what cards I might get and with very few options to remove cards from the deck; you can make up for a missing card by buying one from the merchants, but then you tend to lack the resources to remove cards.
I think this is the big mistake new players make, they want to take every good card they see when really you should be skipping the majority of card drops,even if the card is good it probably isn't good for you right now.
I used to take the "best cards", then went through a phase of "have a plan and skip drops which don't advance that plan." But A20 streams take nearly all drops, but very thoughtfully; they are flexible and their plan adapts to what they are offered. There's no objectively good cards, it is always relative to your deck and relics, and the upcoming boss fight, yet with the Heart fight always in mind.
I agree with this. As a player gets better at the game, they should be skipping less and taking more cards. A beginner player looks at the four options (three cards, and skip) and is able to assign (bad, good, bad, ok) to the four options. A more advanced player can maybe assign integer values (-1, +2, 1, 0). And a fantastic player can get down to an even finer resolution (-0.7, +1.8, 1.2, -0.1) -- once someone can value cards at that level, they can begin taking more of them because they can foresee how all the different mechanisms in a run make a card (at this current point in the run) stronger or weaker. You end up, for example, taking Bouncing Flask even when the deck already has three Shiv-based cards because you need scaling damage later in the fight; you take Well-Laid Plans and Piercing Wail even if the deck is killing everything on turn one because Act 4 fights will go much longer.
(I can't take any credit for this. I just watch Jorbs content all day.)
> There's no objectively good cards, it is always relative to your deck and relics, and the upcoming boss fight
This is really the key. A card always has value in context. A good player will take, for example, a Disarm, and say "this solves Book of Stabbing". The important point is that Disarm doesn't have to be useful in every fight, but it adds a solution for _some_ fights to the deck. Good players focus on the specific set of problems the deck has to solve, discounting future challenges relative to imminent ones, and add tools for those fights. Good players also tend to highly value card draw and deck manipulation to enable searching the deck for the right card when it's needed. Depending on how effectively you can cycle the deck, adding tons of cards to a deck is often a good strategy. For example, a deck with Corruption and Dark Embrace basically doesn't need to worry about the deck bloating at all because the whole deck can be searched in one turn.
A20 early game you often need to take even sub-par cards in order to get sufficient damage for the elites and boss (or you may have to avoid the elites which hinders your scaling).
An other difficulty is the ability to “switch theme” and correctly pivot from a deck able to pass act 1 to a deck able to kill heart.
tangent --- it is interesting watching highly skilled players navigating draft in magic the gathering. quite different mechanics to how deck building operates in sts.
one idea is having a good working understanding of "the format", all the possible cards in that version of the game, which subset of those are potentially playable in draft, and an understanding of different styles of strong deck to steer for. breadth of experience and familiarity helps in both games.
another idea is not locking yourself in too early to a particular strategy that depends on cards you haven't got yet -- prefer taking cards that can be good in multiple possible future decks, rather than picking a card that is very strong but only works in a specific kind of deck that might not pan out.
there are some major differences to sts. in sts the drafting is interleaved with the rest of the game, so in some scenarios it would be necessary to balance short-term and long-term payoff --- optimising for the best long-term deck might leave you weak and get you killed you in the short run. whereas in mtg the draft is a phase that takes place before any battles, so there's no benefit or downside to having a good partial deck mid way through draft, beyond the ways it might be completed into good final decks.
another major difference is mtg's drafting being multiplayer, your draft choices are drawn from packs of cards where other players have already removed cards that they want for their own decks. part of the game is trying to infer what kinds of decks other players in your group are drafting -- so you can avoid drafting the same thing and instead position yourself to go after a style of deck that no one else is competing for.
another subtlety is if you are going to play against the other players in your draft group or not. if so, you are incentivized to "hate draft" strong cards you have no intention of playing just so the people you will be playing against cannot field them against you. but if you're not playing against your draft group, it's optimal to let the other players get strong cards you don't want that would be a good fit for their deck, as that encourages them to keep drafting their current style of deck, and not start intruding on your style. another facet of this is that in sts you have to play every card you draft (unless you can find an option to remove it) whereas in mtg you always draft more cards than the minimum deck size, then field a deck containing a subset of them.
If by best card you mean the card which solves your problem right now, you definitely always need to take the best card rather than try to build an archetype. Knowing what is the best card is extremely unobvious for beginner however. Then, sometimes what’s best leads to boring play and you have to chose if you would rather win or actually enjoy your time.
Unfortunately I played an easier clone of StS on my mobile before StS was released for androids. I loved that game and the pacing and then when I played StS it felt like a chore and needlessly difficult in comparison.
So every round in StS also feels unwinnable for me haha
Some parallels with simpler games like blackjack. There are hands that can't ever be won (dealer has 21). And then there's hands that can only be won with bizarre play, like hitting on 19 to draw a 2 when dealer has 20.
What's the problem? I have beaten the heart with Defect on ascension 20 quite a few times. Mummified hand is the relic that turns an average run into an amazing run. Combine it with Storm and Heatsinks and you can start doing some serious damage.
No problem with the defect, I was able to defeat the heart easily with them using a static discharge build. It was with the others I had issues
Got so close with the silent using a poison build (and lucky enough to get snecko skull) but was not able to ramp up damage enough (could have used a few more catalysts I think, only was able to get one)
Forgot what I tried with the ironclad and watcher, been a few months since I played those.
I haven't payed attention to the speed-running scene for this game, so I was caught utterly by surprise by the section on glitches in the game. How does something whose out-of-combat state should be easily modeled with a trivial state machine end up with so many bugs in that portion of the game?
The answer is that it's a single-player game, and that user interfaces suck to write and model.
In a multiplayer game you are generally forced to separate game logic from the UI frontend, which is a good practice regardless. But in a single-player game there is nothing forcing you to do so, and it can be (at least in the short term) very convenient to tie in game logic with the user interface code, as seemingly they follow the same state machine. But then new requirements pop up, such as being able to go back to review your choice, or weird slowness/strangeness that allows you to quickly press a button twice, etc.
It is the developers' first game, and probably their first software program of its size of any kind. It would be surprising if they _didn't_ make any design decisions which in retrospect were mistakes. The fact that it's a single-player game also means there's no real need to redesign things once they discovered that what they were doing didn't really work. They successfully fixed the bugs you can hit when you aren't intentionally trying to break the game, and bugs which let you do absurd things when you are trying to arguably aren't even a bad thing.
If you haven't seen the AGDQ 2022 run mentioned in the article, it's extremely entertaining, short, and very worth watching just to see how broken the game is.
Hindsight is 20/20. My impression is that they didn't use a state machine, just callback events that get confused if you click before the animation finishes.
Oh hey, that's me. If any of you folks want to join a search for unwinnable or otherwise interesting seeds, feel free to shoot me an email (see blog)! We just created a discord server for Slay the Spire-related coding!
This puts me in mind me of how the difficulty of the 3x Sentry fight varies so wildly depending on whether you've happened to have had a chance to get Evolve / Cleave / Whirlwind, or especially Fire Breathing.
Good point, Feel No Pain is very handy for that fight.
Fire Breathing still great for Lagavulin if you can also get your hands on a Power Through in time, esp since you have three turns to draw it before it wakes up. Not as much for Nob....unless you can also get your hands on a Reckless Charge. But yeah I'd still prob rather have something like Bludgeon for that fight. Too bad Bludgeon scales like it's falling off a cliff
Interesting, I find lavagulin more annoying and often longer-taking because it requires you to play very safe (and get -str/dex) or take tons of damage in early turns. It's high variance, since if you have a strong suite of powers early you can set up for a while, but that's unusual.
Even in a simple game as Hanabi [cooperative card game; if you don't know it, look it up!] this is possible. In the basic game mode this requires incredible bad luck (e.g. the three last cards to be drawn are the three copies of the red 1); it's more likely to lose due because the first copy of a card (cards 2 to 4 have two copies each) is discarded and the second copy of that card is then the last card to be drawn (which means followup cards can not be played anymore). So the strategy of strong players involves reducing the number of (useful) cards discarded. But in some of the advanced modes, there are truly "unwinnable" seeds of the randomized deck, no matter the player's luck (e.g. the singular black 1 being among the last few cards to be drawn results in not being able to score the full 25 points).
Now a computer implementation could try to avoid most of these "bad" seeds using some heuristics. But one might argue that this isn't true to the spirit of the game and as a player, one should just accept that sometimes there is a chance not to win. It's then up to the player to decide if the game is still exciting, even when losing.