Castagne Engine

Open-Source Fighting Game Creation Framework

Changelog Castagne v0.54

Published : May 10, 2024

Hey! First update in a looong time (almost 9 months!) and it shows! The long delay was due to various things, but it's mainly because it's a turning point where the engine starts going from experimental and prototypey to an actual mature project bit by bit.

So you may have noticed the long scrollbar on the side, that's because this update is massive! There were a lot of internal improvements, new feature, QoL, you name it! Since it's over so long a period, which itself was pretty busy for me in general, I had to reread the whole codebase to analyze what changed. I spent quite a few hours just preparing this release, but I still might have missed some details! Please also read the breaking changes, you didn't lose a lost of functionality but will probably have to pass over a fair amount of moves.

Additionally, a lot went into project management and presentation. That work is not done, but considering Castagne is becoming more serious I've had to make a lot of non-programming work so that it's sustainable over time. That's why I also split this changelog intro into several parts.

We're also seeing growing pains, as some editor systems are being stretched a lot beyond what they were supposed to be and handle! Mainly the parser that got roped into being a compiler that becomes more and more complex, and the editor having to dance around new UI systems. While not a big issue, considering it's still very usable and part of the lifecycle (they have reworks planned since the beginning specifically because this would happen), this means that there will be a bit of jank during editing that won't go away in the very near future!

Project management

So this is the main part and I've talked about it before, but the thing is that the project is becoming more serious, and the environment changes around it. Therefore, in order for it to stay healthy and scale correctly, I've made the decision to change the license from MIT to MPL. This is a weak copyleft, which won't change anything for most projects. What it aims to do mainly, is to ensure Castagne is not completely forgotten by the projects that use it by making them say they used Castagne (meaning more users come to it, and keep the ecosystem nice), and share back some improvements made they make to the engine (bugfixes mostly).

The idea here is not so much to limit what you do with it, but rather ensure projects give back a bit when they can. The license is light enough to still permit an ecosystem around it, as you can still make proprietary extensions (although at this point in the engine lifecycle I wouldn't recommend it).

Another change to go with it, is the future addition of a CLA (contributor license agreement), in order to allow me to act as a single owner when needed. I've talked with several experts and done some research, and this has been a recurring recommendation, as it will allow me to enforce said license agreement and to react to the needs of the project as needed (for instance, for console ports which are not always full open-source compatible). Since this is a bit more complex and needs additional time to be finalized, there is a temporary stop to contributions (unless MIT licensed). If you're contributing, we'll discuss it case by case for a bit until I can sort this out, but I decided to not delay the release even more.

Another issue in the project management was the more freeform release scheme and process, which wasn't clear and resulted in a few bugs at times. Now I've made more tools to help me do that quickly (a release can take hours to release properly before) and with more quality checks. The branches are now as follows:

On top of these, the updater now allows patching directly, meaning the project can now support a lot more iteration. That's going to be nice! I've also updated the packaging to make it simpler to use, including launchers for the editor and a project option as the "Castagne only" option instead of just the repo.

Dependencies have also been managed, I've removed the strict rollback pluggin from dsnopek requirement as the codebase is not performant enough atm, and won't be until v0.7 and Godot 4. I've also added gdunzip as a dependency for patching.

The four main features, and the rest

This release is centered around four main additions:

There are also other improvements, including engine optimizations (around 23% faster), more advanced sprite management (backported from v0.55), and CASP script improvements (S branches, modulo, and freeze / halt phases).

Next up

The next main version is v0.55, which focuses on two things: menus and graphics. As mentioned, some of the improvements of this version are backported from my own branch of v0.55, considering v0.54 has been code-ready for a while. I'm intending v0.55 as a release where you can actually make a real playable build of your game.

If you remember correctly, there are two pilot projects for Castagne: Kronian Titans, which is the progenitor of Castagne and pushes its more advanced features, and Molten Winds, which is built on more standard features and pushes Castagne to be release ready faster. I'll do a more in-depth announcement later, but due to how things evolve, the Molten Winds project as is has been rebranded to Molten Winds: Open Edition, and is currently on Steam. You can wishlist it here, it's currently in a sort of closed beta that will open up with time. MWOE is still meant as an open source release using only vanilla Castagne and its 2D module, but considering the change in my own environment and what I potentially want to do with the project, these limitations are starting to be a bit too stifling, and as such MWOE will release with "only" 9 characters.

The reason I bring it up is that, considering my dev profile, 2D doesn't really make much sense for me. The 2D module has always been a community addition and want, and as such I don't plan on really adding new features to the 2D module / sprite flow after v0.55. Considering Castagne is FOSS, I believe the development of this part should also reflect its users, and as such it's up to you if you want to improve it beyond what I did! I'm always available to give a hand (as usual), but I prefer focusing on the more general features that will be useful to everyone, since the module will be functionally complete. 2D flow is less standardized than 3D, and it tends to be a target by a lot of beginner users, therefore it's a lot of UI/UX work and I'll be eating my share with the menus already.

In parallel, I do want to improve the presentation of the project over time, including the website (fun fact, it looks good on my screen but after viewing how other screens change the colors I understand the criticism over my palette choice a bit more lol). The characters also are gonna get a rework, and I'll try to include the community as much as possible with a moveset jam! More details to come, as I want the pieces to be ready before throwing people at a wall. We're also overdue for a second Castagne survey / birthday celebration, but with how things are going we might be going straight to the third one instead, considering people need to be more comfortable with the new version for the answers to be meaningful.

And with that, I hope you enjoy this new release, and I'll leave you with the complete changelog. See you for the next one (hopefully not in 9 months lol)!

Main Additions!

Breaking Changes

Known Bugs

Full Changelist