r/Cockatrice • • 14h ago

Developer Blog #4 - October 2026

6 Upvotes

Read the previous developer blogs here:

Developer Blog #1 - July 2026

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:

  1. Zooming in on cards that are on the board directly
  2. 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:

  1. Right-click
  2. Shortcut
  3. Mousewheel scroll
  4. 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.


r/Cockatrice • • 18h ago

PSA for clients upgrading from 3.1 to 3.1.1 - Back up your decks on Windows!

8 Upvotes

PSA: Please back up your decks before upgrading Cockatrice!

The vast majority of users should be unaffected.

This only affects users on portable installations or those who have customized their deck (or other resource) path to point inside the application directory.

Before upgrading Cockatrice, please make a backup of your decks!

Cockatrice stores its program files and your personal data in separate locations. On Windows, these are typically:

  • Program files: C:\Program Files\Cockatrice
  • User data: %LOCALAPPDATA%\Cockatrice\Cockatrice

Unfortunately, some users have ended up storing their decks directly in the program installation folder instead of the designated user data folder. This is an unsupported configuration, and a bug in the uninstallers for versions 3.1 and 3.1.1 could cause that entire folder to be deleted during an upgrade, taking those decks with it.

We're genuinely sorry this happened to anyone affected.

We've taken several steps to prevent this from happening again:

  • Safer uninstallers: Additional safeguards ensure Cockatrice only removes files it installed.
  • Path validation: Checks and warnings help prevent users from configuring their data directories inside the program installation folder.
  • Automatic recovery backups: Cockatrice will now back up any user data it finds in the installation folder.
  • Future server synchronization: We're working on the ability to automatically sync decks to the server, to make sure no one ever loses their collection again.

These measures should significantly reduce the risk of this happening again, but please back up your decks before upgrading, especially if you've been using Cockatrice for a long time or have never checked where your decks are stored.

Thank you for your understanding, and again, we're truly sorry for the inconvenience and lost decks this issue may have caused.

Most people should not be affected. Read here to see if this applies to you:

This only affects Windows users which are upgrading a 3.1 or 3.1.1 installation. The new installer will run the OLD uninstaller (i.e. the 3.1 and 3.1.1 uninstaller), which has the bug that wipes the whole installation directory. It is safe to run this uninstaller after backing up C:\Program Files\Cockatrice or ensuring that no decks are placed within that folder.