A while ago, I told you about our small side project, Pirate Game. Over the last couple of weeks, we've made quite a few changes to the game, so here's an overview.
First things first, we thought of a name: Key, Shovel, Treasure. We haven't definitively settled on this name, but I like it so far. The acronym KST has the sound of a fun game (using Key, Shovel, Pirates as a name would have made the reference a bit too obvious ;) and the Dutch translation alliterates nicely: Sleutel, Schep, Schat. Though I guess most of you don't speak / read Dutch. We'll let you know whether we decide to keep this name. I will use it in this post, since I think it's at least better than Pirate Game.
First things first, we thought of a name: Key, Shovel, Treasure. We haven't definitively settled on this name, but I like it so far. The acronym KST has the sound of a fun game (using Key, Shovel, Pirates as a name would have made the reference a bit too obvious ;) and the Dutch translation alliterates nicely: Sleutel, Schep, Schat. Though I guess most of you don't speak / read Dutch. We'll let you know whether we decide to keep this name. I will use it in this post, since I think it's at least better than Pirate Game.
In the first version of Key, Shovel, Treasure, the map generator wasn't able to produce any islands other than single tiles and straight lines. I wrote code that should, in theory, be capable of generating other shapes of islands, but there was a bug in there I couldn't find. Since the game worked well enough with those islands, I decided, after spending quite some time combing through the code, not to dig any further. Luckily, Michiel was able to help on this front, and together we got the map generating working as intended.
Compare the two screenshots below, form before and after the change:
Compare the two screenshots below, form before and after the change:
Before we made this change, I thought that this would primarily be a visual thing, making the map look better. I hadn't considered that this would also have a positive effect on the gameplay. With larger and differently shaped islands, it's no longer possible to access all land tiles from multiple sides. This means that on the new maps, you'll have to think more about where to go and when. If you don't, you probably won't be able to reach an undiscovered land tile every turn, thus losing opportunities compared to your opponents. On top of that, blocking your opponent becomes a real possibility. So fixing the map generator actually made the game more interesting.
And sometimes this made the game a bit too interesting, generating littoral corner cases as Michiel calls them:
And sometimes this made the game a bit too interesting, generating littoral corner cases as Michiel calls them:
Oops. That's not really a balanced (or even fair) map. As is clear from this, a few iterations were needed to get the map generation to work as intended every time. A floodfill looking for sea tiles was the remedy for this specific bug.
Another thing I've been working on is a co-op mode. As I mentioned in the previous post about Key, Shovel, Treasure, my son and his friend wanted to play together against the computer. Of course I can't ignore a feature request from my son, especially since we designed the game together :). The gameplay only required two changes: the possibility to team up with others and the ability to transfer your key and / or shovel to a teammate.
Transferring items between players was pretty trivial. But adding teams to the game was much more work. Since I started Key, Shovel, Treasure as a programming exercise and didn't foresee that playing in teams would be a possible addition to the game, none of the code was made to handle team play. So I've had to make changes in nearly every script, from game logic to the map to the UI and the settings. Eventually, I got everything working (again).
On top of that, the AI needs to know what to do when in a team. I kept this pretty straightforward. The AI will hand over a key or shovel if it thinks that enables a team mate to claim the treasure the next turn. Other than that, the AI behaviour is still the same. Playtesting will show whether this is enough to ensure that the AI doesn't miss the most obvious opportunities.
Adding team play also meant that I had to redo the menu. This was on my list anyway, since it wasn't intuitive enough. The old and the new menus are here:
Transferring items between players was pretty trivial. But adding teams to the game was much more work. Since I started Key, Shovel, Treasure as a programming exercise and didn't foresee that playing in teams would be a possible addition to the game, none of the code was made to handle team play. So I've had to make changes in nearly every script, from game logic to the map to the UI and the settings. Eventually, I got everything working (again).
On top of that, the AI needs to know what to do when in a team. I kept this pretty straightforward. The AI will hand over a key or shovel if it thinks that enables a team mate to claim the treasure the next turn. Other than that, the AI behaviour is still the same. Playtesting will show whether this is enough to ensure that the AI doesn't miss the most obvious opportunities.
Adding team play also meant that I had to redo the menu. This was on my list anyway, since it wasn't intuitive enough. The old and the new menus are here:
This works a lot better than the old version (imho), although some testing will be needed to see whether it's good enough. Also, I (obviously) still need to change the game name / logo to Key, Shovel, Treasure :). Changing the menu did take more time than I had thought it would. Part of that is due to the fact that I simply don't understand UI design very well. Another part is that I'm a lot more comfortable writing code than using Unity. Crating this UI was good practice on both counts. Michiel has much more of an eye for -and experience with- UI design than I have, so I'll recruit him to help me out here.
Beyond that, I've also made numerous small changes. Some more visible than others:
- The auto end turn code is now smarter, so if your turn doesn't end automatically there probably is something you can still do (if you don't want to do anything you can always end your turn by hitting enter).
- If the treasure is found by a player who doesn't have a key and a shovel, the treasure chest is still closed.
- Added the player colours to the settings screen
- The active player now has waves next to his / her ship.
- The default names for the four captains now are the blobbie names that correspond to that colour in Powargrid.
- You can now see a ship move, instead of having it skip from tile to tile instantaneously.
That's it for now. There's quite a bit more on my list of things to add, so I'll keep you posted on further progress.
- Willem -
- Willem -