If you’ve never heard the term gameplay balancing, it’s the process by which a game developer tunes their game to ensure that every player is experiencing a fair and optimal game every time they play. It primarily serves two goals.
First, it establishes the difficulty of the game. By changing deck compositions, adding or removing cards, and changing the effect of cards, we’re able to drastically affect how easy it is to earn ‘prestige’ and win the game. This has a big impact on the length of a game session—the harder the game, the longer the sessions.
Second, gameplay balancing removes any unfair advantages certain cards might provide a player who has the knowledge to exploit them in an unintended way. This would most commonly take the form of a combination of cards that make completing hard missions too easy.
We approach testing for each of these obstacles in a different way.
When it comes to removing unfair advantages from the game through unexpected card pairings, there’s no detour for hard work—that means lots of play-testing. We’ve spent the last year playing, tweaking, playing, tweaking, playing, tweaking, playing, tweaking… you get the idea. We took the game to board game events and solicited random people to play the game in order to see how they interact with the cards. Every session lets us know if previous changes we’ve made are working, or if they’ve just made new problems (more on that soon!).
Another huge task was balancing the effectiveness of individual cards. This requires singling out each individual card, and testing it's efficacy against the base starting deck. This is nearly impossible to do in a play test environment because there are so many variables... so we created a deck simulator!
To do this we created an algorithm that follows the same rules and strategies a player uses when playing Moonrakers. Over a few days we hacked together a simulator built in Unity that sped up our testing process by 100x.
Here's how it works: first we create a deck to test. This can be made up of any combination of Action Cards (Shields, Damage, Reactors, etc...) and Ship Parts. The simulator plays thousands of hands of Moonrakers using this deck, and outputs a score based on how well the deck performs. First we tested the base deck that every player starts the game with. This acted as our "control" group. Next, we would run a second simulation and only change one variable: usually just adding a Ship Part. Ship Parts add more cards to a player's deck, and also modify the way the deck behaves in some unique way. The simulator takes all this into account, and produces a new score. We then compare this score to the score of the base deck, giving us an objective number of how well this Ship Part performs.
If you want to learn more about the algorithm, you can watch a video we made about it below!
With the right processes in place, it’s not that hard—it just takes time. However, what does make it more complicated is that every decision we make does not live in a vacuum. When we change the parameters of one card, that single card now interacts differently with every other card in our deck. Is that ok, or does it create more issues? That’s the question we have to answer every single time we make a balancing change. This also limits how many changes you want to make at once, because if you make too many changes you won’t be able to tell how each change affected the gameplay individually.
Now that you know a little bit about how we’re approaching gameplay balance in Moonrakers, we’re going to share some short summaries of 10 balancing adjustments we’ve already made based on play-testing and the algorithm.
Understanding the balancing changes will require know the basic gameplay mechanics of Moonrakers. We recommending reading our Introduction to Moonrakers post before combing through these changes.
The game originally was more focused on killing enemy starships instead of accomplishing contracts. Each enemy ship had it’s own reactor and thruster rating, as well as a damage multiplier. Players would have to flip over cards from an "enemy deck” full of shields, damage cards, and enemy crew.
This made the game take forever and it was not fun dealing with all of the piles of cards on the table. The contract system was one of the largest game changes we’ve made and made the game way more fun.
An early version of the game had damage contract levels equal to other types of cards, this ended up feeling too easy as their were D2’s and D3’s that made it more efficient to accomplish that category from an action standpoint. Instead of getting rid of the D2’s and 3’s, we made the damage requirement more common and made the numbers higher - this forced players to use damage even though it didn’t help you hand continue like reactors and thrusters and was a great choice from a balance of ship parts that players would select.
For awhile, there wasn’t enough collaboration in the game as contracts were too easy or at least it was too easy to get 1 prestige point on a solo mission.
We ended up removing prestige points from the easiest missions and making all of the contracts slightly harder.
Crew cards have always been incredibly useful, but until they were an actual requirements on contracts it was often a better idea to just buy ship parts or only crew that contributed to contracts directly. This change made it impossible to complete some contracts at the beginning of the game as no one has hired crew. We like this element, because the first person to buy crew cards will get a great bargaining chip for contracts that others can’t accomplish.
Some of our play-tests were taking too long as players were often losing prestige from hazard dice even when they weren’t taking huge risks. The Hazard dice originally had the potential to run into 3 hazard on a single dice instead of just 2. Removing this made the game a little faster and made easier contracts a little less risky.
This is something we’re working on still - in fact, Zac created a simulator to run 10s of thousands of test hands to try out lots of different starting deck compositions. Right now, we’re deciding between a 10 card and 15 card starting deck.
Originally, we did not limit the number of ship parts a player could have at all, but that could get very confusing when there were so many cards to keep track of, so we limited it to 8 and then 6. After playing with 6 for a long time, a play tester asked why we didn’t further limit it to four to make the buying process more strategic and make it simpler to track what special abilities were available to the player. We mulled the idea over, but didn’t want the players to have to dig through their player decks to take out cards.
While designing the player boards however, we quickly realized 4 would be much easier than 6 to fit on the board and added the rule that it was only the ship part that would be replaced and not the cards in the players decks- saving players from sifting through their cards to find things to take out.
Originally each ship part added 2-4 cards every time you added a new one to your board. This seemed good in theory, but very quickly unbalanced peoples decks. We shifted the cards added to 1-3, with the majority giving only 1 extra card. Since then, players decks have been a lot easier to balance the proper action point to card ratio.
We were really excited about a mechanic that let other players“steal”store cards from each other by outbidding the player that is attempting to buy something on their turn. This was a fun mechanic, but made the game longer and complicated the time in between players turns. Players constantly had to“check”to see if anyone was outbidding them or not. We canned the idea to save time and make everything simpler.
Reactors are the most plentiful card in the game - for good reason, you need them to play more than one card on your turn.
Because of this though, contracts with reactor requirements were by far the easiest to accomplish. We had to increase the amount of reactor requirements on each contract to balance this.