I’ve completed a touch-table version of Concordia. We saw the game at Essen last year. They were promoting the Salsa expansion, but we weren’t familiar with the base game. The game has relatively simple rules but it takes many steps to achieve your goals.
The game was a good candidate for the touch table because is no hidden information, there is a decent amount of setup time and piece twiddling, and I felt like the game could be improved with a real-time scoreboard.
My main goal for this conversion was to make the game easier and quicker to play with the hope that the players would have more time to work on their overall strategy.
In Concordia, players have a small hand of cards from which they play one card each turn. Each card allows a specific action within the game and you can also spend your turn picking up your played cards so that you can use them again. Players can buy new cards during the game to get additional actions. Each card also counts toward endgame scoring. There are five scoring criteria and players multiply their score in each category by the number of cards they have of that type. So, for example, if you’ve settled in 5 of the provinces and have 3 province scoring cards, you score 15 in that category.
In the physical game, all the scoring happens at the end. Players are constantly gaining new cards and improving their category base scores during the game, so it would be difficult to keep a running score, but the computer makes that easy:
Players can see their score in each category broken down by their base score and how many cards they have of that type.
Another way this version helps the player is listing information about each action that can be played. This is the player area:
The bottom of the player area shows the action cards the player has available. The numbers above the icon are telling the players how much money or goods they will get if they play that particular action. The player doesn’t have to count up their cities/pieces or the state of the province production tiles.
Finally, the game helps the player to plan their best course of action by listing the victory points that they could gain by achieving certain goals:
Each player has a display that shows the different scoring types and city types. The display gives the number of victory points gained by acquiring a new action card for that scoring type, settling a new city of each type, adding a new colonist or settling in a new province. Yellow numbers indicate that the player needs to gather more resources before they can take that action and a red number indicates that it is no longer possible to take the action.
Here is what the full game table looks like in a five player game:
From the salt expansion, I implemented the salt and the extra two maps. I didn’t implement the forum cards. Our game group doesn’t really like them and I didn’t really have room on the screen. I am considering adding some of the forum cards as a bonus at the beginning of the game. Players would get a random card, or maybe they would bid on cards and turn order at the start.
The hardest part of this game was getting the maps modeled. Normally, I make XML files for things like the map layout, and then build the GUI in code when the game is started. But with the large number of roads and cities, I decided not to have a separate model for the map. Instead, the model and the GUI are in the same class. I built the map in the Unity editor and assigned the correct classes to each game object. The code still draws the roads, so I didn’t have to align them in the GUI builder.
This was a fun game to make and it didn’t take very long. The rules are quite a bit simpler to implement than the last couple of board games that I created, so I was able to spend more time polishing the game and adding player aids.
As usual, Unity hides quite a few lines of code in it’s scenes and prefabs. These hold the GUI positions, sizes, settings, colors, layout rules, etc. To get an estimate of the amount of code that would be, I look at the number of hours I spent writing the script code compared to the hours spent in Unity. For this game, I spent 30 hours writing the scripts, 30 hours in Unity (includes testing time), 5 hours in Photoshop and 4 hours doing pen and paper design.
So I estimate an effective 7000 lines of code with about 750 lines of reuse from other projects.