Hocus Problem Solving Part 2
We could discuss every problem in every version of the game, but we think it best if we focus on the problems we identified and how we fixed them, roughly chronologically, for Hocus Poker as it exists today. If you have follow up questions about a specific portion of this, comment below and we’ll be happy to answer. This is Part 2 in this series. You can read Part 1 Here.
Josh: We left off last time with the economy in pretty good shape. We had the market more or less sorted out, inflation sorted out, and the end game condition was feeling pretty good and, more importantly, testing well. But we weren't satisfied yet. There were still concerns nagging at us.
Grant: We had the concern that the game didn't have enough multi-round decisions. It’s something you brought up and it was very insightful.
Every round was too self-contained. We wanted a way for a decision in round 1 to affect round 2, other than points. We brainstormed quite a few things, one of which was the Jokers and black magic mechanic. I miss that. Risk versus reward, but unfortunately too complex for what it gave us.
Here was the gist: If you had a joker, you could play it as a wild card. If you won the hand using it, you had to take a black magic token. This was worth negative points (back before our ultimately solution for the end game). There were some odd issues with risk avoidance and tuning and it was an oddly out of sync feature for what it provided.
Josh: Man, I still love this idea. It might be my favorite of the various ideas we've cut. In general, I really enjoy ambiguity in scoring like this, where you need to consider whether a short-term gain is worth a potential long-term loss. But there were problems with it, issues with how the rule could be written, and some odd incentives. If we could have solved one or the other, it might still be in the game. I still think there’s potentially an expansion in there.
Grant: I wonder if there’s a whole expansion where we just create a meta game out of poker? Both with scoring in examples such as this, but even hands that span rounds more than the “Save 1” notion does now.
Josh: There might be an Arcana suit in it, anyway. The costs/activation of everything are costly and double-edged. What about just having to spend a Rune to activate an Arcana card?
Grant: I’m curious if people would do that? It would need to be very powerful. That would work I think in longer games, but I question the value proposition, at the very least for player perception, in the regular length game.
Fold was the simplest idea that emerged from that conversation and stuck ever since. If you Fold, you can’t earn points. But, you get to Save a card, which gives you a future bonus. Instead of starting the round with 2 cards, you start with 3. The Mechana Suit also does this. Players who Build a Mechana card gain a semi-permanent passive ability, much like constructs in Ascension.
Josh: The nice thing about First Fold (which later became Yield) is that it’s simple and easy to understand, but it adds weight to one of the more significant decisions. We don’t want it to be trivial to decide what to spend your mana on, and we want people to have to at least think about if they stick in the hand at all. But making it only the first player had the fun side effect of lowering the incentives for subsequent players to bail out. That helps ensure that most hands end up in a showdown, which is fun.
There’s another area that we had a close look at, which was reintroducing something like a raise in poker. It was actually inspired by tester par excellence Robin Lees. He was playing a lot of two-player games, and he felt like it was too hard to drive the other player out of hands, that the decision to stay in was always the right decision. And it was basically true: once down to two players, it was very rare for players to drop out. The problem, then, was to ensure that there was still decision pressure even when there were only two people left in the hand.
Grant: We solved this in one way then, and added a new layer recently. With Robin’s help, we came up with Hocus Poker’s version of Raising -- Surge. It was originally a 2 player only idea, but we liked it so much and there was no reason to remove it from the rest of the game. Raising provided a few elements to the game:
- It gave players a way to punish competitors who were too liberal with their spending. Money management is a subtle, but important part of the game that first time players miss.
- It gave players a way to increase the pot on a hand in which they were confident. You want to stay in? It’ll cost you.
- It gave players a way to make it difficult to make a spell they really didn't want used too expensive. I’m looking at you, Tidal Wave and Swapsies.
The second way we solved it is by adding a simple rule that if the winner of the round wins because everyone else Yields, the winner earns a bonus Rune. This is most effective in 2 player, but still valid in 3+ players. This keeps a single player from constantly folding and saving a card to win big. As he does this, he’s just feeding his opponent.
Josh: This was inspired by the observation that, due to the way the economy is now zero-sum, you can just keep folding over and over in a 2 player game and just seal off the action until you have a saved card you’re happy with. That’s annoying, and it doesn't make much to make that behavior unprofitable. A single Rune is enough to really defang the Texas Stall ‘Em strategy.
Grant: Something else I’d love to discuss is the evolution of Spells. When the game was first tested, every player was dealt 1 permanent spell at the beginning of the game. Then, the rest of the available spells were purely random from the deck.
There was a clear problem in that not all spells were equal. A spell that let one player draw a card, for example, was far superior to the spell that required a very specific situation to be utilized. This led to the suggestion: why don’t you have some spells always be in play?
Summon and Cauldron were the result.
Josh: I never saw the version with the first set of spells, so when I first encountered things, the idea of the basic spells were already in play. It’s a great idea, by the way. It strikes a fine balance between having things be too static and having too much stuff change between turns. That set of four spells available each turn is something that’s been basically constant. I guess in that version, there were only three spells each round in two- and three-player games.
Grant: It also has the subtle benefit of making it so players don’t have to constantly re-learn things. We have SO much content in the game and if everything shifts every round, it can be overwhelming. When I teach the game, I always clearly call out “you don’t need to relearn these. They are going to stay the same.” It’s comforting for new players. I wish the idea for the basic spells was mine. My good friend Matt suggested it.
Josh: In that version, the game still had the notion of players owning spells. One goal of the original design was to try and keep everybody in the game, so the players who were behind were awarded the two Advanced Spells from the middle. They could then use those on subsequent hands, giving them a broader set of choices. That rule had its heart in the right place, but there were a lot of issues with it. Among them: it divided player attention for where they should look for actions, it complicated the interactions in the game, it required additional rules in costs to handle, it provided occasional perverse incentives for players to try and game things to gain a spell, and as a catch-up mechanism, it didn't really do a whole lot. Despite those issues, it persisted for a while.
Grant: One of the earliest ideas, which mostly died after the first test, was the notion that players were building a tableau of abilities throughout the game. Balance was such a massive issue, though.
Ultimately, the notion of keeping spells died less for the reasons Josh listed (which in hindsight are all fantastic), and mostly because the mechanic simply didn't provide enough fun for the complexity it added. It required quite a few rules for a variety of edge cases and different player variants. That’s one of my favorite development tools. For any given feature, ask if it provides more than it takes. Provide being fun, the take being complexity. Little complexities over time feel like a death by a thousand cuts.
Josh: One problem that dogged us for a long time was interesting spells. I think you've kept track of how many spells we've cut over the course of the game, but it’s been a lot (Grant Note: We’re at 25 cut spells). And that cut count only counts the spells that actually made it onto the table. There were plenty of spells that never even got to that point, that had issues right out of the gate (Grant Note: As in, ideas we brainstormed but didn't bother testing).
There are things that all of our quality spells share:
- They should be broadly useful and not narrow (so spells with trigger conditions are bad ideas). For example, if a spell is only useful 1 out of 10 rounds, based on a specific layout of cards, it’s not good.
- They should be easy to read and understand. At times we've gotten carried away with too many conditional statements, such as if, then, and so forth. Our best spells, typically, say: Do this thing.
- They should be able to be cast many times in a round. Our spell cost mechanic is based on spells being used multiple times with an increasing cost.
- They should be fun. That criteria really narrowed things down. It’s probably worth looking at some spells that got cut and why.
Grant: Good call. I just opened up the Photoshop file to stroll down memory lane.
Some Cut Cards
- Shared Pain: Essentially, you and a number of other players had to reveal some cards. This wasn't fun and was rarely useful. If you know somebody’s cards, that doesn't help you WIN. So why would you pay for information you may not be able to act upon?
- See Thru: This let you view another player’s hand. Again, sounds great in actual poker, but not useful in Hocus Poker.
Josh: These are both good examples of things that seemed like a better idea on paper than at the table. I think both were fairly early, and it was at a time when we were still in a bit of a poker mentality. It sure seems like it would be tremendous to get a sneak peak at things, but it was pretty much always going to lose out to trying to chase cards for your hand.
Grant: (More Cut Spell Commentary)
- Chicken: This created a side pot between two wizards. So much complexity and exceptions for a single card. Cut.
- Bribery: This let you buy runes regardless. But, this defeated the core purpose of the game. Not fun.
Josh: I repeatedly chased this basic idea of things manipulating Runes instead of mana, cards, card state, or other stuff. It sure seems like another interesting thing to play with. It’s a currency in the game, after all, so it seems like you could make trade offs with it. But, compared to winning a hand, getting a small number of Runes was not very interesting. And it’s very important that people have the win-or-nothing mentality which makes the economy go. Softening that in whatever way is mostly a bad idea.
Grant: (More Cut Spell Commentary)
- Spectral Wild: This card and others introduced the “Last Wizard” mechanic, which was this King of the Hill style activation scheme where only the last person who used the spell gained its benefit. A tracking nightmare and very confusing.
- Numeras: This let you change the strength of a card, so, I could turn a 2 of Hearts into a King of Hearts. We had quite a few cards that used to change the state of a specific card. This caused a massive tracking issue where multiple people would have to remember what multiple cards changed to. This was a sad cut, but so necessary.
Josh: These were relatively late cuts. We really wanted these to work, because they’re fun and provide for some skillful play. We tried assorted tracking mechanisms, different ways to place cards, different orientations, all kinds of things. None of them worked. We just kept getting feedback from testers that they were confused. Sad, but we finally had to just dump them. They also fed into the problem we’ll talk about below, which was certain hands dominating winning pots.
Grant: (More Cut Spell Commentary)
- Peek-A-Boo: I loved this spell. It let you flip any card in play to its opposite side. What often happened, though, was that people would reveal all cards in the square, then there’d be nothing left to reveal. If people tried to flip them back down, they’d be automatically revealed at the end of the action phase. It was, more or less, a broken card.
- Dispatch Goblin: This is a good example of a spell that was fine, but too complicated. You chose another player, who had to pick one card to show just you. You could then tell them to keep it, or you could take it from them in exchange for another card.
Josh: At any given moment, we tried to identify what the weakest spell or two was, and then just be ruthless about it. Even when the spells might have been “good enough”, it was still possible to identify what the worst spell was. The question then became if we could improve it by changing it or replacing it. It strained our creativity times, but it was always worth looking at the runt of the herd.
Grant: For a few weeks, every Friday night would result in an email from one of us that would start with “What do you think about <spell name>.” I don’t think any spell mentioned in those emails lived until Sunday.
Grant: Interestingly, some of these problems evolved into other solutions. For example, remember the cards that were one offs, as in, they were only interesting once in a round, therefore violating Rule 3 Josh listed above? We turned them into Starter Spells. For these, we gave every player a single card, all matching, that could be used once per game.
Banish was one of them. Once per game, each player could use Banish to declare a single hand (ex: Flush) that was illegal for the current round. These were neat, but inelegant. They were also somewhat expensive. For each starter spell, we’d have to print 5 cards (1 per player). That meant 2 starter spells were the same as almost a third of our total spells. Not a good use of components.
Josh: I still think that stuff like that might show up as an expansion. Having a one-shot Banish was actually a really interesting strategic decision, and it meant that you could never truly feel safe with your flush if it looked kind of obvious. It gave a nice bit of cross-hand thinking, but component-wise, it was probably just not going to fit in the first go around of the game.
I also think that the notion of manipulating the ranking of Sets is something we’ll play with later, if we’re fortunate enough to be able to add some expansions to things.
Grant: I’d love to add expansions. If the ability were simple enough, we could just use a token instead of a card.
For a moment, we cut the starter spells. Then, Josh came up with the idea of Arcana. These were Suits that were normal cards, plus they had text you could use as specified. We wrote about them extensively here. They were one-off, nuanced abilities that violated 2 of our Spell rules, but that was fine because this was the appropriate medium for them. We cut Starter Spells and doubled down on Arcana.
Josh: What it does is gives us a looser set of requirements. After all, an Arcana card is useful on its own -- it can form parts of Sets. That’s an extremely powerful base power. So, if the spell associated with it is kind of dodgy, or strange, or hard to deploy, that’s OK, you still have the card to use. It allowed us to unleash some more creativity, which is great.
Josh: From fairly early on, there was another thing we both noticed: there were a lot of flushes and especially full houses winning hands. It was somewhat exacerbated by the spell mix we had at the time, but it was still present. At some times in the game, it got to the point where if I didn't see a flush developing, I’d just fold. That’s really bad.
What was happening, basically, was that if you look at the distribution of probabilities for poker hands, there’s a big gap in probability between full house and four of a kind. As you have access to more cards, four of a kind is still really rare. As a result, accessing more cards tends to bunch the winning hands up right around that cliff, around flush and full house.
I’d like to go into it in a lot more detail in the future, but I had a simulator that I wrote early on in the project to test the probability of various goofball hands (three pairs, two threes of a kind, others). I took a look at the probability of various hands winning in a four player game given certain sizes of hands and community cards, and full house just dominated.
We've tried a lot of fixes for this, which is probably worthy of its own post, but for this purpose, what we did eventually is disarm the environment. We took the number of cards in the community down to just three, and took each player’s hand cards down to just two. Without adding additional cards, you only have access to five. So, if you gain a couple cards (through various means), that just puts you back at the familiar seven-card probabilities, which is totally fine for our game.
Grant: I think the simulator you created is incredibly cool and it definitely deserves its own post. Typically designers rely on gut checks, or personally tracking data between tests. With Hocus, we gained the advantage of those two plus hundreds of thousands (not kidding) of simulated hands. It was incredibly useful.
One more thing to note is that although we managed to smooth out the probability of flushes and straights, we never quite solved it for full house. The hand is just too commonly obtained relative to its strength in the hierarchy. We had two choices, really:
Lower the strength of a full house, which is really non-intuitive.
Get a new hand. That is ultimately how we came about with the Crossways. However, I think it took us 2 weeks just to discover it.
At over 3000 words, though, this post has reached its end. Until next time!
Designer pal Corey Young will be handing out TEN copies of Hocus Poker at the Origins Game Fair. Track him down and request a copy!