Taking Turns Together
After extensive playtesting and iteration, I realized that the D&D-inspired turn order initiative didn’t align with my vision of promoting co-op play. As I mentioned in the last post, there was a situation where, if no enemies were nearby, one player could spend their turn exploring indefinitely until they found an enemy. While this can be fun for the exploring player, it effectively penalizes the other player, who then has to spend their entire turn—or multiple turns—catching up.
One might argue that the exploring player is also at risk, potentially facing combat alone, which I generally agree with. I’ve even considered increasing enemy density to make splitting the party more dangerous, encouraging players to stay together. However, observing some of my less cohesive playtest groups—siblings, strangers, or people who barely communicate—I realized I didn’t want to punish these players. Instead, I wanted to foster the most cooperative environment possible.
This realization led me to draw inspiration from two games I’ve been playing recently, which have influenced my design approach for the project.
Game Inspiration 1: Spirit Island
I won’t go into too much detail about Spirit Island since it’s a fairly complex euro-style board game. The main inspiration I’m drawing from it is that all cooperative players take their turns simultaneously, which encourages real-time coordination between players.
It not only encourages communication between players but requires it to overcome the invaders on the island. (Spirit Island is an excellent co-op board game that I highly recommend to anyone seeking a cooperative strategy experience.)
Game Inspiration 2: Dungeon Drafters
While this isn’t a co-op game, it is a dungeon-crawling, grid-based card game—so yes, the chances of someone else making something similar are pretty slim! I won’t let that deter me, though, as their team is taking a different direction with the concept than I am. Although Dungeon Drafters is a single-player game, one feature I really enjoyed in the demo was its room-based exploration.
To me, the idea of room-based exploration solves the problem of players getting too far apart. The co-op concept is that both players stay in the same room together and can only progress to the next room if both agree to do so.
The Redesign
Combining room-based exploration with simultaneous turns became a very exciting idea for me. I created diagrams and physical prototypes to work through the new flow, and here’s what I came up with.
The Challenge
As I grew confident that this new design direction was right for the game, I realized it would present several coding challenges—starting with movement. Implementing the room-based exploration focus I envisioned meant reworking my existing grid and movement code. While this would be straightforward if starting from scratch, I wasn’t. In fact, the original CardsGrid prototype evolved from an excellent GDquest tactics game course, which you can find here: https://gdquest.mavenseed.com/lessons/introduction-c51c5fa2348ab527 This is what movement looked like originally (very Fire Emblem):
Another challenge is that most of the code was built with the assumption that I would stick to the D&D-style turn order initiative. There are many references to the turn order array and the active turn order unit, with no provisions for multiple players taking their turns simultaneously.
Also just around the corner was Godot 4.0, which introduced many exciting new features for 2D development—including major tilemap improvements not available in the current prototype built with Godot 3.5.1.
I know I’ll be working on this project for many years, so upgrading to Godot 4 was definitely planned. When I first attempted to convert the project to Godot 4 during Beta 5, I encountered over 2,000 errors across 7,000 lines of code. Many scenes needed to be completely recreated, and numerous scripts had to be rewritten due to new syntax changes. On top of that, I had this ambitious new idea: allowing players to take turns simultaneously while exploring rooms together.
The Solution
I decided to start from scratch and rewrite the project in Godot 4. With a new turn order system, tilemap reworks, updated syntax and scene structures, and no longer relying on a tutorial project, I had a lot of work ahead of me. It took some time to get everything functional again, but I made it. While it’s not yet 100% where it was before—I’m still using temporary assets and haven’t recreated the AI—the core mechanics of two players moving between rooms together and taking their turns simultaneously in combat are in place. Here’s a short preview:
Looking Forward
There’s still a lot to do to bring the new prototype up to the level of the old one and make it ready for testers. One major change I’m aiming for is designing cards that more actively encourage co-op play. For example, take the Spirit Island card “Gift of Constancy.” It’s a strong card when played on yourself, but it’s even more powerful when played on your co-op partner—encouraging players to maximize both individual and cooperative strategies.
This inspired me to create similar card mechanics like the two shown below. When played in coordination, the group can achieve more together than if each player acted individually in parallel.
Lastly, I’m about to become a dad soon—the baby is expected any day now! I’m not sure when I’ll be able to post again, let alone find time to code. For the foreseeable future, I plan to dedicate most of my time to our newborn and learning how to be a good parent. So, until next time!