Taking Turns Together
After a bunch of play testing and iteration, I found myself realizing that the DND-inspired turn order initiative wasn’t in line with my vision of promoting co-op play. If you recall in the last post I identified a situation when the players had no enemies around them one player could spend their turn exploring unlimitedly until they found an enemy. This is certainly not a bad thing for the player exploring- in fact, it is fun for them, but I found that in a way it punishes the other player who didn’t get to explore as now the other player has to spend their whole turn or multiple catching up to the player that got to explore. One could argue that the exploring player also gets punished as they are potentially in a dangerous situation alone in combat which I generally agree with. I even see a development path with increasing the density of enemies and making splitting the party so dangerous that the players are encouraged to stick together. But when seeing some of my less cohesive playtesters together like siblings, people that don’t know each other, or even people that just don’t talk to each other much play I realized I didn’t want to punish these players. Instead, I am to create as cooperative an environment as possible. This brings me to two games that I have been playing recently that have inspired a bit of a design for the project.
Game Inspiration 1: Spirit Island
I won’t go into too much detail about Spirit Island as it’s a fairly complex euro board game. But the big thing I am taking inspiration from here is that the cooperative players all take their turns at the same time. This means players are coordinating their plays in real-time with each.
It not only encourages communication between the players but requires it to overcome the invaders on the island. (It’s an excellent coop board game that I would recommend to anyone looking for a coop strategy experience)
Game Inspiration 2: Dungeon Drafters
While this isn’t a coop game it is a dungeon crawling, grid-based card game… I know, what are the chances someone else is making something so similar… I won’t let that deter me though as their team is going in a different direction with the idea than me. While Dungeon Drafters is a single-player game something I really liked when playing the demo was its room-based exploration.
This idea of room-based exploration to me solves my problem of players getting too far away from each other- with the coop idea being that the 2 players would also be in the same with each other and could progress to another room without both agreeing to.
The Redesign
Combing room-based exploration with players taking their turns at the same time became a very exciting idea for me. I did some diagramming and physical prototyping to think through the new flow and here is what I came up with.
The Challenge
While I was gaining confidence that this new design path was right for the game I was realizing that code-wise it would present a lot of challenges. The first of which was movement. To do the new room-based exploration focus movement I had in mind would require redoing my grid and movement code which if I was starting from scratch would be easy but I wasn’t. In fact, the original prototype for the cards grid evolved out of a great GDquest course for tactics game found here: https://gdquest.mavenseed.com/lessons/introduction-c51c5fa2348ab527 This is what movement looked like originally (very Fire Emblem):
Another problem is that most of the code was made under the assumption that I would be sticking with the DND style turn order initiative. There are lots of references to the turn order array, and active turn order unit, and nothing accounting for multiple players taking their turn at the same time…
Also just around the corner was Godot 4.0 which comes with all sorts of cool new features for 2D development including major tilemap improvements that aren’t present in the current/previous prototype that was built in Godot 3.5.1.
I know I’ll be working on the project for likely many years so upgrading to Godot 4 was certainly in the cards for me. When I originally tried converting the project to Godot 4 back in Beta 5 I got over 2000 errors over 7000 lines of code. Many scenes seemed like they need to be completely recreated and many scripts had to be rewritten due to new syntax. Plus I had this crazy new idea to have players take turns at the same time and explore rooms together…
The Solution
I decided to start from scratch and rewrite the project in Godot 4. With a new turn order idea, tilemap reworks, new syntax and scene structures to follow, and no longer based on a tutorial project… I had a lot of work cut out for me and it took me a while to get it functional again but I got there. It isn’t 100% where it was before, I am still using temporary assets, and I haven’t recreated the AI yet, but the bones of two people moving between rooms together and then playing out their turns in combat at the same time are there. Here’s a short preview of it:
Looking Forward
There is still a lot to do to bring the new prototype up to the bar of the old one and make it playable for testers. One of the big changes I am looking to do is making the cards themselves encourage coop play more. Take for example this Spirit Island card “Gift of Constancy” which is a fairly strong card when played on yourself, but if you play the card on your coop buddy it objectively does more encouraging the min/max play to also be the best cooperative play.
This has inspired me to make similar card ideas as the two shown below. When played in coordination with each other the group is able to accomplish more than if they were simply playing individually in parallel.
Lastly, I am going to become a dad soon (the baby is expected to come any day now)! I am not sure when I will be able to do a post again let alone code again. I plan to commit most of my time for the foreseeable future to our newborn and learning how to become a good parent. So until next time!