Friday, May 13, 2022

CAGD 170 Unit 3 Postmortem

 For Unit 3 I was part of Group 6, and we made the game "Capital March." The core elements of our game are based around a map of the US states where players buy up senators, using money they earn on the stock market, and manipulating the game through elections. Because our game is very strategy-based, we aimed for those types of players like the Competitor or the Director. For the age demographic we were thinking older than 12, since the subject matter probably would probably be more interesting to people who understand the US government. 



The first elements of the game we developed were the map and choosing where to start, then expanding. There are 2 buyable senator tokens per state, and players expand out from where they start to try to control as much of the board as possible. We built in the money system to go with this. We planned for players to have a sort of auction if they're competing over the same senator where it goes to the highest price, but later in development realized that was hard to keep track of, so we fixed this problem with stacking the senator tokens to indicate how many times it's been bought (and therefore how high the competitive price should be). We wanted to give players lots of different strategic choices, and this system succeeded at that right away by letting players pick where to start and where to expand to. Players can also choose to buy the second senator of a state to reinforce it, though later on we made this a bonus move that doesn't take up a turn since the lack of expansion otherwise makes it less effective than buying one in a new state. 

The stock market came in pretty fast after our money system. We came up with the idea of using tokens to represent how much stock players have as a good representation of value. For balancing it we changed the numbers a few times, but generally wanted stocks to rise on average (with about a 66% chance to go up each turn) so that way they're worth using. This is reflected by how inflation in the real world means that putting value in assets makes it more resistant to inflation and therefore more valuable. 

All of those mechanics were ones we had planned out from the start. My partner came up with the initial idea of the subject matter of the game, money and corruption of politicians, and I came up with a lot of the early skeleton (100 senators, money, stocks). After some playtesting we liked this game but still felt it was too simple and didn't have enough to mix things up or keep it interesting. So in a later version, we had the idea to add elections.

Elections reward players for spreading wide but having deadlocked states gives risk to players who don't double-up their states. The balancing of this was pretty intricate, but mostly came from thinking of simple solutions to different contingencies (such as if a state has one of each senator, who does the vote go to?). An integral part of this system is that votes can be bought for cheaper than the price of a senator both lets players make comebacks as well as lets players make risky plays through elections and have access to them earlier. After some testing and development, we made it span over multiple turns so that way the starting player has less of an advantage because now there's room for 2 turns of back-and-forth between the players. The elections pretty naturally tied into the stock market, which integrated everything together excellently as we now had 3 different systems that fed into each other. You use stocks to get money, you use money to buy senators and votes, you use senators and votes to win elections, you use elections to improve your stocks. 

One final addition we made was a bonus election result which is the choice to call a recess and skip a few turns. The idea behind this was to prevent long, drawn-out games by letting a player with a lead speed things up to put pressure on the other player. This pressure hopefully forces a confrontation.

No comments:

Post a Comment

Featured Post

ProcGen FPS Update -- 8/28/2024

  The level is procedurally generated each time the program is run.