Bye 2025, Hi 2026!
Another year has passed, and what a year it has been for Ceramic! Let's take a moment to look back at what happened and what's coming next.

2025 by the numbers
With around 140 commits in 2024 alone, after my previous dev log, and 200 commits in 2025, it has been a productive period for Ceramic with a total of 340 commits, 130k additions and 34k deletions (a high number of additions partly due to a lot of API documentation being added to the codebase)! The highlight was definitely the release of Ceramic 2.0 in July 2025, a milestone that brought some significant changes under the hood, especially on the tools/CLI part.
Here's a quick overview of the versions released:
| Version | Date | Highlights |
|---|---|---|
| Ceramic 1.5.0 | June 2024 | LDtk improvements, EntityData utility, mesh debugging tools |
| Ceramic 1.6.0 | December 2024 | Haxe 4.3.6 support, prebuilt HXCPP, various runtime fixes |
| Ceramic 2.0.0 | July 2025 | Tools rewritten in Haxe/C++, SDL3 + ANGLE, audio filters, Unity 6 + Render Graph |
| Ceramic 2.0.1 / 2.0.2 | July 2025 | SDL3-related fixes and stability improvements |
| Ceramic 2.1.0 | December 2025 | Cross-platform shader system (Shade) |
Delivering on promises
In the previous blog post, I mentioned some long-term ideas I was considering. I'm happy to report that some of them are now done!
Node.js dependency removed
This was the main change behind Ceramic 2.0. The tools part of Ceramic used to rely on Node.js, but not anymore! The whole tooling has been rewritten in Haxe and now compiles to native C++ binaries.
This means the tools start more quickly, the stack is simpler and node.js doesn't need to be embedded with Ceramic anymore.
As a bonus, this rewrite also brought a new CPPIA-based plugin system, which replaces the previous plugins architecture that was relying on node module loading.
ANGLE support for Clay backend
Google ANGLE is now integrated into the Clay backend, working on Windows, Mac, and iOS. This means Ceramic can use ANGLE as a bridge to Metal and DirectX without having to change the graphics API. We don't have to worry about Ceramic not working on Apple devices in the future because OpenGL gets retired (it's been deprecated for a long while now). In practice, that doesn't change much for you, it's all handled behind the scenes!
What's the status about consoles?
In the 2024 post, I also mentioned the idea of using Reflaxe/C# to create backends for FNA and MonoGame, as a path to bring games to consoles.
While Reflaxe/C# is still on the roadmap (though not a priority right now), and adding FNA/MonoGame targets are more at the idea stage right now, I have some good news: internal work has confirmed that Ceramic's backend architecture is console-ready. Everything is prepared for proper native console support: there are no technical blockers! Any console API could be plugged in a fairly short amount of time, using the Ceramic-Clay stack as a base (without Unity).
In the meantime, Unity export remains available as a fallback solution to export on consoles right now for anyone who has the related console dev kits. This guarantees that no matter what, a Ceramic game can be exported on consoles.
Major features of 2025
Beyond the 2.0 milestone, quite a few features and improvements landed this year.
SDL3 Migration
The Clay backend has been migrated to SDL3, the latest version of the Simple DirectMedia Layer library. This brings a more modern and future-proof foundation across all platforms, along with a C++17 upgrade on native targets and better platform support overall (Linux, Android, Windows, Mac, iOS).
Audio Filters
A new audio filter system has been added! You can now apply filters like LowPassFilter and HighPassFilter to your sounds, or write your own audio filters using the Haxe language. Those audio filters will work on all Ceramic targets and take advantage of each platform: use SoLoud audio filters on native, Web Audio Worklet on web...
Unity 6 + Render Graph
The Unity backend continues to be well supported. It now works with Unity 6 and is compatible with the new Render Graph API (the new rendering API in Unity's Universal Render Pipeline). Again, this is just another step towards making sure Ceramic stays up to date in the long run. Ceramic's Unity export is probably one of the most uncommon features a game engine could provide, but it isn't going anywhere in the foreseeable future: I plan to keep maintaining it.
Loreline Plugin
A new plugin has been added to integrate Loreline, a dialogue and narrative system I've been working on. It's a tool similar to Ink or Yarn Spinner, but with a different flavour. As a matter of fact, I have been wanting to work on this specific subject for a long while, as I have been writing multiple in-house dialogue systems for previous games, and Loreline is the concretisation of it: a versatile dialogue system with a concise yet powerful language. Can't wait to share more about it in the future! Anyway, the Loreline plugin for Ceramic provides loreline scripts loading, making it easy to iterate on your game's dialogues.
Note that Loreline itself is still in preview state, but the Ceramic integration is ready to use if you want to try it out!
A first draft of a visual editor
A first version of a new visual editor for Ceramic now exists! It's still pretty basic, but it's there and functional. The editor is built using Ceramic's immediate GUI framework and can be found on its GitHub repository.
Don't expect much yet, but hopefully there will be more to show in 2026 when I spend more time on this specifically!

API Documentation
More API documentation has been exposed on the website. The navigation is not perfect, but I'm hopeful that I'll find some time to improve that in the coming year! Regardless, it's a good step forward making Ceramic more accessible and easier to get started with!
Brand new: Cross-platform Shaders
Ceramic 2.1 introduces a new cross-platform shader system. You can now write shaders in Haxe and Ceramic will take care of converting that to the correct target language (GLSL for clay native or web, HLSL/ShaderLab for Unity target...).
This is powered by a new project called Shade, which handles the shader compilation. I have been using it for a while and can't wait to make this the new default for every Ceramic user!
class Textured extends Shader<Textured_Vert, Textured_Frag> {}
class Textured_Vert extends Vert {
var projectionMatrix:Mat4;
var modelViewMatrix:Mat4;
var vertexPosition:Vec3;
var vertexTCoord:Vec2;
var vertexColor:Vec4;
var tcoord:Vec2;
var color:Vec4;
function main():Vec4 {
tcoord = vertexTCoord;
color = vertexColor;
return projectionMatrix * modelViewMatrix * vec4(vertexPosition, 1.0);
}
}
class Textured_Frag extends Frag {
var mainTex:Sampler2D;
var tcoord:Vec2;
var color:Vec4;
function main():Vec4 {
var texColor = texture(mainTex, tcoord);
return color * texColor;
}
}
Finally: an entire Ceramic project, including its custom shaders, is now fully cross-platform!
What's coming next
Longer term
A few things are on my radar for the longer term:
-
GC-free audio filters: As mentioned, audio filters are written in Haxe so they run on every target. It's all working very well already, but on native targets, I plan to use Reflaxe/CPP instead of HXCPP. This will export more optimised C++ code that isn't tied to the HXCPP runtime, thus will never be interrupted by "Stop the World" GC events and prevent any risk of audio crackling. This is mostly an internal change that wouldn't affect user code, but yes, that's planned to make sure this won't bite us in the future!
-
Official Haxe 5 support: Once Haxe 5 is out of preview, I'll make sure Ceramic works well with it. Note that Haxe 4 compatibility will be maintained in the long run as well, as the C# target (required for Unity export) is only supported on Haxe 4.
Radiant Zenith
On a personal note, I'm still working on my game project! It was previously mentioned as "Jerry and the Sunlight" but now has a more definitive name: Radiant Zenith.
It's a pixel art puzzle-platformer about using mirrors and light to power generators, and slowly exploring an underground world full of mysteries. Progress is pretty slow but it's been moving forward consistently, and I'm hoping to share more about it in 2026!
If you're curious about the progress, I occasionally post updates on Bluesky.
By the way, that game exports just fine on all Ceramic targets. It's taking advantage of many features of the engine, including the new shader language. Let's say it's the current living proof of the dedication behind Ceramic!
Looking ahead
2025 has been a solid year for Ceramic. The 2.0 release was a significant step, and the 2.1 release with cross-platform shaders is a nice way to close the year.
As always, Ceramic isn't going anywhere. Can't wait to see what will come up around it in 2026!
That's a wrap for 2025! Looking forward to sharing what comes next 👾
Want to try Ceramic?
➔ Install it and get started now!
➔ Join the Discord server