Make attacks faster than some games load! The Castagne Editor is easy to use when starting out, and unlocks incredible speed once you learn it!
Why limit yourself? Castagne’s flexibility allows you to use it for many action genres! Fighter, Platformer, Beat-them-Up? Go ahead! Want to add a dash of fighting to your TRPG? Use Castagne as a module!
Don’t just make a prototype, make a full game! Castagne has Rollback compatibility at a core level, and support for many game modes and quality of life features!
Castagne is Free and Open Source Software (MPL 2.0 Licence), meaning you will never get locked out. Your game will be your own and in your complete control.
Castagne isn’t a regular game engine: it’s a specialization of any engine. Written in Rust, it’s easy to hook it to general purpose engines like Godot and use the best tool for the job!
Castagne welcomes all. Precision design allows ways to edit code graphically, while still saving it in text for VCS. In a team? Easily define interfaces for your designers to adjust attacks. Experts and beginners alike are delighted.
Castagne’s design allows maximum flexibility within some key, tasteful constraints that allow performance and great tools. Make combo unit tests, analyze your data, and make the best game you can.
![]()
Hey! Panthavma here, I'm Castagne's author! The Godot 3 version was a long prototype, and I'm finally making the complete vision of Castagne! I want to make something that is still useful in 10 years, and all those previous tests help do that. That's not to say the Godot 3 version is lacking: commercial games have already been released in it, you can try it out!
The Rust version of the engine is still a work in progress, which I'll release in beta when I'm proud of it and I'm confident it can handle current projects. You can follow development here or on any of my channels. Stay tuned!
Follow castagne's development!
Youtube - Mailing List - Forum - Discord - Twitter - Bluesky
2D Fighter / Airdasher
Website - Steam - Bluesky - Twitter - Forum
Complex machines fighting at high speed! Tame each mech’s unique weapons using simple inputs and become an ace pilot!
2D Tag Fighter
Magic and technology intertwine in dynamic teamfights! Level up and call upon your allies to decide the fate of the Ashen Island!
2.5D Tag Fighter / Airdasher
A fast-paced tag fighter with only one attack button! A Fabled curse has swept the world… ordinary teens have begun transforming into characters from their favorite classic stories. Put together explosive team combos at Parable Academy for Fabled Youths!
Platform Fighter
A fast-paced, free-flowing platform fighter with a Shibuya Punk and Y2K aesthetic!
Remember the Input Transition system ? It’s now called Input Trigger since it ended up doing more than just transitions. That’s it, send update
To add a bit onto the information, the Input Trigger system allows you to add actions when specific inputs are made, the most common of which is a transition to another state, but it could also be a flag so you can do more advanced behavior. It’s a bit more defined in this version:
Before event, and at the end of a tick, in both cases just before a state transition.If you remember, AttackCancel is actually just a wrapper above InputTransition. This means that to reduce input lag as mentioned the last time, the default cancels will now be part of the Before event, and interact with the Freeze phase in a funny fun fun way, which may make them harder to implement properly from within CASP. This is part of the reason why the system will interact with State Metadata, which can be used for more than just categories and the like, but also to specify cancel conditions etc.
Also I’ve renamed the “S” button to “U”, so your default buttons are now L, M, H, U, E. The reason I did that is to avoid confusion between the S(pecial) button and Specials, just like I used LMH instead of the original ABC otherwise people would wonder why the “A” button doesn’t activate the “A” input. Customisation of the input layout is pretty low on the priority list I’m afraid, as it’s much less critical than the engine working lol
Small update because I just wanted to improve a bit on yesterday’s screenshot.
Castagne now also sends the camera information to the editor! This means that the EdSpec viewer now has everything needed to show cool stuff. I’ll add more to it over time, but for now it’s really competent! Also look at the improved trace:

I’ve also started the motion input system. At the moment, the only motion is a single direction, but that’s a start! The system itself is halfway implemented: it can parse simple motion inputs and match them in the input history, but at the moment it’s not hooked to anything. The next step is going to be the Input Transition system, and hooking it back up to it.
Yo, managed to get regular fighting game movement back into the engine, it’s cool
Look I made so it also leaves a trace in the EdSpec viewer, gonna have to hook up the camera to it too later

Looks smart and technological therefore the new editor is a million times more advanced
Still writing the base gameplay but better, got some time before all mechanics are online but we’ll see
All Progress Updates - RSS Feed
This list is not exhaustive, and can change often. It represents my global progress with this version, which will release in beta when it’s more complete.
Castagne Virtual Machine
Entity Lifecycle
Subentities
Inter-Entity Communication
Module Interface
Castagne Config
Profiling Framework
Memory Stack Rollback
Instanced Data
Castagne Compiler
Semantic Representation
Robust Compilation
Host-Engine Functions
Phases and Events
Basic Branches
State Calls
State Calls with Params
Advanced Branches
Structured Variables
EdSpec / Gizmo System
Skeleton and MechMod
Basic Structure
Game Streaming
Code Editor
Blocks Editor
EdSpec / Gizmo Display
Castagne Config
Tools Framework
Tutorial System
Docs System
Basic Math
Vector Math
Trigonometry
Randomness
State Transitions
Flags
Log / Error
Freeze / Halt Phases
Targetting Functions
Input Layout System
Combination Inputs
State-Derived Inputs
Input Events and Buffer
Motion Inputs
Input Transition / Flag
Fake Press
Input from Config
Replay
Environement Collisions
Expanded Env. Colliders
Colbox Collision
Attack Collision
Expanded Attack Colliders
3D Physics
Battle Init Data Interface
Simple Fighter BID Interface
Simple Level BID Interface
Simple World BID Interface
Rounds and Reset
Custom Exit
Training Mode (basic)
Menus Specification
Host Engine Integration
Options Menu
Input Rebinding
Attack Data Storage
Attack Param Base
Attack Data Optimization
Attack Overrides
Attack Events
Blocking System
CASP Hitstun Management
Basic Attack MechMods
Combo-Awareness MechMods
Attack Cancel Rules
Fighter Flow MechMods
Attack Mechanics MechMods
Movement MechMods
Combo MechMods
Godot Integration
Sprite Sytem & Integration
Shader Modifications
Model Management
VFX System
Camera System
Godot Integration
Audio Parameters
SFX Definition
SFX Parameters
Background Music Support
Dynamic Audio Support