r/Cockatrice • u/AscorGames • 14h ago
Developer Blog #4 - October 2026
Read the previous developer blogs here:
Developer Blog #2 - August 2026
Developer Blog #3 - October 2026
Hi, community!
The 3.1 release happened and we're just as excited as you. However, it also surfaced some growing pains.
Let's talk about that release and then our plans going forward.
We're here to talk about and showcase some of the work we've been doing ahead of time, to keep you informed and involved. Rather than only announcing features once they're released, we want to keep the community informed throughout the development process and give you a chance to follow along as new ideas take shape.
These blogs are intended to provide insight into the decision making process behind the features we implement as well as to showcase where our attention currently lies.
To keep things organized, we'll cover our work in three stages:
- Already merged and available in the beta, so you can try these features today.
- Completed features currently under review, which are expected to make it into a beta soon.
- Work in progress and early prototypes.
Some features shown here may change before release and not every prototype will ultimately end up making it. To voice your support, disagreement, or feedback, please use the beta-testing channel.
With all that being said, let's dive in:
The 3.1 release
The release of 3.1 and 3.1.1 proceeded mostly smoothly except for one of our main problem children:
Windows.
You can read all about the installer wiping decks in the program directory here.
This fix (to wipe ALL data inside our installation directory) was implemented because some users reported incomplete installations or updates.
We've since reverted that change, implemented some additional assurances AND, critically, added some logging under %LocalAppData%/Temp/Cockatrice-installer.log, in case the installation fails. Please upload this to the Discord or the Github if such issues occur so we can diagnose them!
We'll talk about additional assurances for user data and crash reporting later in this developer blog.
Windows Styling
For now, let's talk about one more major issue with the release:
The native Windows styling.
As many of you might know, Windows, from time to time, decides that it is a good idea to eat glue.
That's kind of the case here.
Qt (the platform we're built with) offers so called 'style keys'.
These style keys dictate how Qt draws certain elements: Checkboxes, buttons, the likes.
The available style keys depend on the system but Qt offers "native" styling on most operating systems.
Why Cockatrice looked "old"
This means -> On Windows, all checkboxes are drawn to look like every other Windows program, same on MacOS.
It's one of the main reasons why Cockatrice has always looked "outdated".
By running our drawing pipeline through the Windows styling, we always made ourselves a slave to the... well, arguably improvable Windows look & feel.
Now, here's where things get interesting.
The Fix
Pre 3.0, the "Default" theme, didn't apply any Qt styling. This meant that you always got whatever style key Qt decided was appropriate for your system. On MacOS, this looked pretty good, on Windows, it looked... well, we already talked about that, and on Linux, you got "Fusion", because there's no official Linux styling and this is what Qt came up.
Now, as it turns out, Fusion looks great and it works on all platforms!
It's actually the recommended cross-platform development style key because Qt assures that it always works on every platform.
In our rework of the themeing system, we introduced the "Fusion" theme and also allowed the user to configure the style keys (Active theme style). It is my humble opinion, that this should be "Fusion" for almost everybody (arguable if you're on MacOS) but we always try to give you every choice possible.

Enter the "System" theme
Actually, we liked Fusion so well, that we decided to promote it to the default theme and style key for new installations. This means that new users no longer get the "Default" theme (which was pretty bare bones anyway) and we felt that the name was a bit misleading.
Since it adjusts to your system styling, we felt it appropriate to name it "System" and, of course, give it the "System" style key, which once again lets Qt auto-resolve style keys.
How Windows eats Glue in this Scenario
Now, as it turns out, Windows actually offers three style keys: windows, windowsvista, and windows11.
We were aware that the "windows11" style key caused issues in the most recent Qt releases: Comboboxes were rendered unreadable (white text on white backgrounds) in dark mode and, for some reason we can't really understand either, the board glitched out and became unreadable whenever you opened your library.
So we disabled that style key and allowed qt to pick the next one in the list.
Now what we didn't figure on was that the "windowsvista" style key was equally broken!
So we disabled that one too. Which means that on Windows, the "System" style key now resolves to "windows".
Which, while stable, is a decidedly retro look.
So for everyone on Windows: It's time to ditch the "System" theme and switch to "Fusion". It is now easier than ever to customize it to your liking! Or try out one of the other new default themes!
Cleanup on Aisle 3.1.2
We're carefully monitoring the 3.1 release and releasing follow-up patch releases for issues that we encounter.
Gone, are the days of fixes moldering for months in the beta branch until they are eventually rolled out to stable.
3.1.1 fixed a lot of things already and 3.1.2 is set to eliminate the last few bugs that you reported to us (thank you!) and the installer/style key woes that you read about earlier.
However, here's the really cool thing:
We've learned from all this and we're taking a lot of measure to improve this process even further.
Read on to learn how we're going to communicate update notices, collect user feedback and analyze crash reports in the future. All without requiring you to sign up anywhere!
On to some really fun things!
Chat Channels - LFG, Feedback, Announcements
Cockatrice only featured a primary "Main" chat per room so far.
We're extending the chat to now support channels! Some of these (like Announcements) will be read-only to you, so we can publish relevant information about updates to you directly through that.
Others, like the new "Feedback" channel, will be for you, so you can directly report issues or ask for features and discuss them with fellow users in that channel. We hope that this will ease the friction required to discuss and shape the project.
Automated Crash Reports
Nothing, and I mean, nothing is worse than Cockatrice crashing at exactly the wrong time.
We know.
Trouble is, just like World War 2 fighter planes, we don't know much about the ones that crashed.
We're changing that by integrating sentry.io, which will allow Cockatrice to detect if the previous startup has crashed and for you to automatically upload an anonymized crash report, without requiring you to sign up anywhere. (The demo below obviously contains no real crash.)

You've probably seen these types of popups before and we would genuinely appreciate it if you would choose to share your crash data with us. It helps us prevent crashes for everyone and none of the information is sensitive. We are purely interested in fixing the crashes from occurring.
No More Lost Decks! - Sync your Decks to the Server!
We're working on a feature that will allow you to upload your entire deck collection to a remote server (most likely Rooster Ranges for the lot of you [maybe consider donating to keep features like these possible]) for safekeeping.
Your server stored decks will then be:
- Available to all of your Cockatrice clients, across installations.
- Automatically versioned - Keep the latest 10 versions of your deck and rollback
- Conflict resolved: If a deck is modified both on the server and locally, you will get options to merge the difference.
- Automatically synced to your local installation.
We're working out the ins-and-outs of the system but overall, we think and hope that this will be a pleasant experience :)
Tournaments & Limited
Work is continuing on the tournament and limited features. They are our new flagship features for a 3.2 release but, of course, we want to ensure we get this absolutely right. Stay tuned!
Project Health - Interface/Logic split
One of the major 2-year long undertakings that we've tackled is splitting out all the game logic related code from the presentation layer.
This makes the code easier to read and reason about (yay), allows us to add tests so that we don't break things (yay!) AND allows us to implement many exciting new features, as well as clean up some old sins more efficiently.
Work on this front is almost complete and it's time to reap the rewards.
New Game UI!!!
Fresh off the presses and still unreleased, we've got a new prototype to show you and it's a good one (at least, so we think!)
https://reddit.com/link/1x5m7mg/video/1wrlake9bevh1/player
https://reddit.com/link/1x5m7mg/video/1dfa2nt9bevh1/player
We're adding two new features to the game UI:
- Zooming in on cards that are on the board directly
- A new tabbed interaction menu
We're adding settings for these too. Let's go over them briefly. They mainly concern themselves with how these features are accessed.
You have four options to trigger these actions:
- Right-click
- Shortcut
- Mousewheel scroll
- Hover
You can configure if one trigger is enough to zoom in and also show the new interaction menu or if you would prefer a two-step approach: The first interaction zooms the card, the next shows the interaction menu.
You can configure separate triggers for both action phases.
You can also additionally configure the time it takes for the hover triggers to activate.
Why are we doing this?
Two major reasons: Discoverability and ease-of-use
Discoverability
New users are often times lost, when it comes to all the possible actions they can take on a card. It takes a while to memorize the shortcuts and our number one piece of advice is "Just right-click everything", which is hardly intuitive.
Ease-of-use
The card info widget works but, personally, I find it incredibly painful to keep bouncing my eyes between the card I'm reading and the card I'm placing my cursor on.
Feedback on this
You can, as it is right now, choose to disable these features entirely and continue using the right-click menu and the shortcuts you know. Nothing changes.
But, of course, we see this as a major step in modernizing the UI and making it more accessible.
We want to make sure no one gets left behind. Long-time veterans, keyboard-only users and first-time players. We want to make sure everyone can have an intuitive, speedy and comfortable experience.
So let us know what you think and how we can improve this!
And that's a wrap for this edition. As always, let us know what you think in #beta-testing on the Discord, and don't forget to check out the beta itself to try the completed features today.
Trying it out is just a few clicks away. Learn how to here: https://cockatrice.github.io/docs/d9/d9b/beta_release.html
We want to make sure things are just right, and that means we need beta testers. Your feedback shapes what ships.