In this update6
Full notes
Full Cardaire: Eternal Aces update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Balance
- Gameplay
- Events
- Store
Cardaire: Eternal Aces changes
(Banner art: Harmonious Stag by Zalogon) Attention Cardaire players! Your round 3 pairings are now up! Oh also, it's aeiou here, your humble Cardaire dev. If there's one thing I enjoy as much as making card games, it's TALKING ABOUT making card games.
So I wanted to take a second to check in and talk about everyone's favorite topic. The enemy duel AI. If there was one piece of feedback I heard loud and clear from the original Cardaire, it was about the opponents. Enemy AI was the biggest complaint by a mile.
So for this go around, tuning up the enemy brain mush was a top priority.
The Random Number Generator Era
Let me paint a picture of how the enemy AI decision process worked in the original Cardaire. It went a little something like this:
If the enemy had more than one card in their hand they would pick one randomly and convert it to energy.
Then they would choose a random card to play from their hand in a totally random slot.
Finally, they would attack with all their souls at completely random targets.
This lead to some comedy moments when the AI would damage themselves, or make terrible attacks. And while bullying a low powered opponent can be fun, it feels a bit empty after a while.
Getting Smart
Fixing this was one of the more complicated projects I tackled. I started by taking that old system where the opponent made all their choices randomly, and slowly began replacing those random coin flips with actual logic.
Whenever the AI made a play I would not have made myself, I would step into their logic and add code for them to make a better decision. So now they started checking the kinds of things a real player would. What makes sense to play in this situation based on the exact game state? What attacks are the most profitable right here? Does making this specific play leave me dead on board?
How It Works Now (Step by Step)
So after a fair bit of work, here is how the AI makes choices currently:
Energy Conversion: If they have more than one card in hand and cannot afford to play their entire hand, they convert a card to energy. They then pick a card that gives them the most efficient energy usage over their next 3 turns, by letting them use the max energy possible.
Card Playing Choice: The opponent looks at their hand and evaluates which card to play based on various factors including:
Filtering out cards that would instantly kill them with damage.
Efficient use of energy, prioritizing using as much energy as possible this turn.
Deprioritizing card draw cards if they have a larger hand already.
Only targeting their own souls with positive effects, and enemy souls with negative effects.
Doing some reasoning to decide what the best target for a spell is. If it's a buff spell, what soul makes sense on their side. If it's a damage spell, what is the biggest thing it could take down. (Dealing 100 damage to a 600/100 is more valuable then dealing 100 damage to a 100/200)
Reasoning if it makes sense to play cards that affect the whole board based on if it affects more of their souls or their opponent's souls.
A few other bits and bobs to smooth bad decision making.
Slot Choice: If a Soul is chosen, a decision is made about what the best slot to place it in is (looking at adjacency effects, Guard slots, and Ace slots).
Attacking: Deciscioning for attacking looks at a few things.
The opponent always checks for lethal first, running a script that checks combinations of attacks to see if any of them would allow them to win this turn.
Crackback lethal prevention. If the enemy can prevent themselves from taking lethal next turn with a specific attack, that is what they will prioritize. This also includes NOT attacking with their guard slot soul if doing so would leave them open to lethal.
Profitable trades are then prioritized, where their own souls can survive combat that kills a player soul.
PHEW, so yeah things are a bit more involved now.
These choices are also subject to "Level Breaks." The game uses an internal AI Level that reprisents the general AI level off that opponent. This level will decide if the opponent makes an optimal choice or a random one more often. Earlier enemies will be lower level, but by the end of the game you will be facing max level opponents making the best plays based on information available to them.
The Golden Rule of AI
You want to optimize everything you can under the hood, but the absolute most important stuff to fix is the mistakes the AI makes that are visible to the player.
Those are the blunders that lead to a bad gameplay experience. When the opponent misses obvious lethal or trades horribly, the player starts to feel like the game isn't actually interacting with them.
Wrapping Up
It took a ton of iteration, but the game has emerged from that process as something that feels much more alive and responsive. Opponents will actually make you sweat a little bit now, and you'll be pushed to play better yourself.
Have you enjoyed this peek under the hood? Let me know what other behind the scenes dev stuff you might like seeing in the future!
In Other News
I've been lucky enough to be featured in some amazing events in the past month. Go check out Indie Quest and Clemmy's Best Indie Games Summer Showcase, there are some excellent games in both shows that I am honored to share space with.
https://store.steampowered.com/developer/Retrovibe/sale/indiequest2026
https://store.steampowered.com/curator/26397247/sale/ClemmysBestIndieGamesSummerShowcase2026
That's all you get for now, bye!
Source
Changelog.gg summarizes and formats this update. How we read updates.
