Posted by Jérémy Faivre on February 9, 2024

It's 2024! What's up with Ceramic?

Time flies! Let’s dive into what’s been happening with Ceramic and what’s coming up next.

What's up Ceramic?

Some insights of the past year

With 226 commits over the year 2023, it has been a good iteration for Ceramic! It reached its v1.0 milestone on March 19th, with new features such as LDtk and Aseprite support, moving the tech a few steps closer to a versatile tool for creating 2D games, especially for those working with tilemap-based level design and pixel art.

LDtk banner

LDtk, now compatible with Ceramic • https://ldtk.io

Aseprite banner

Aseprite files can be loaded as sprite sheet assets in Ceramic • https://aseprite.org

2023 has also been a year welcoming new contributors, who pushed bug fixes and small features to Ceramic, and that's amazing! I can't express how much I appreciate this, as it shows more people are starting to pay attention to Ceramic, are using it for their own projects and willing to improve it!

Reaching more maturity

Ceramic has proven it can be used to release games in production for several years already, but I'm glad to say that more and more edge cases are also being addressed over time, thanks to a contined use of the tech and thanks to users feedback (mostly from the Discord server). The API of Ceramic has been pretty stable for a while too, with very rare breaking changes, only when it is truly necessary going forward. In fact, Ceramic is becoming more and more mature, with many moving parts all working together in a reliable way.

It also seems that, within the Haxe community, more and more people are willing to try Ceramic, which is a good signal, showing that the tech and its design choices are resonating well within the existing ecosystem of tools!

In 2024, let's continue that trend and make Ceramic even better!

I believe infortunate events of 2023, such as Unity's runtime fee debacle, are strong confirmation that we should aim for more diversity in the technology used to create apps and games, as well as keeping it free and open source. In that sense, crafting Ceramic is a modest contribution to that ideal, one I'm willing to continue working on.

And yes! Ceramic can export to Unity, but it doesn't depend on it.

Now in 2024, what's next?

Although Ceramic is usable right now by anybody, there is still so much to do!

Some long term ideas I am considering

  • Remove the dependency to Node.js for the tools part of Ceramic. It's not urgent nor a big problem. But getting rid of Node.js in favor of compiled binaries would make Ceramic tools take a bit less disk space, and probably boot faster, as well as simplifying the stack in general.

  • Help shaping up the C# Reflaxe target and use it instead of current Haxe C# target for Unity backend. I wish I had more time to spend in 2023 on that one, but other matters demanded much of my attention.

  • Make Clay backend compatible with Google ANGLE so that it can be used as a bridge to Metal and DirectX without changing the whole backend graphics API

  • Using C# target (Reflaxe) to create a new backend for Ceramic that makes it work with FNA and MonoGame, bringing one more alternative to Unity for bringing games to more platforms, including consoles, and without the uncertainty of Unity's future pricing choices

There is no deadline for these. It is highly dependant on my availability to work on it, but I thought it was important to mention them to let you know that there are plans to ensure Ceramic stays relevant over time. Thanks to the Haxe programming language and Ceramic's backend system, we'll always have the possibility to make the tech work on new platforms, even some that might not exist yet, so yeah, Ceramic is there to stay!

Shorter term

There are also things that I'd like to make within a shorter time scale, the main subject of 2024 is...

...A visual editor for Ceramic!

Ceramic Editor experiment

An editor experiment for Ceramic

Several years back, I experimented with creating an editor for Ceramic. You can even try it online. Along the way, I faced some challenges that led me to rethink its implementation and stopped working on it. In the meantime, I introduced an Immediate GUI framework for Ceramic, making the initial editor design somewhat obsolete.

That's fine! It was an experiment after all, but I'd like to resume that work, this time by creating a simpler editor, packed with less but more reliable features, taking advantage of the immediate GUI framework (+ improve that API if needed), and allowing anyone to create Fragments files that Ceramic apps can consume.

It would be a good companion app to create things such as a title screen for a game, or any hierarchy of visuals that you'd like to simply load as a file in your Ceramic project.

A Fragment is an asset that can be loaded by Ceramic and contains information to instanciate and layout objects, components etc... Think of it as an equivalent to Unity prefabs, but for Ceramic. Basically a way to setup more advanced graphical objects using an editor instead of just code.

Constant improvements

As always, 2024 will also be one more year of iteration to keep improving Ceramic and fix bugs that are reported (or quietly discovered and fixed by me 🤫). Some more documentation and examples may be added as well!

How is Ceramic being used?

All these efforts would be pointless if Ceramic wasn't used by anyone. Well, to be fair, even if I was the only user of Ceramic, I'd continue making it, but in fact, more people are working on actual projects with it. Here are some project made with Ceramic:

• Ceramic + Haxe-UI

Jarrio (also known as NotBilly on the Haxe Discord server) has been working on a Ceramic backend for Haxe-UI.

Haxe-UI is a cross-platform UI framework maintained by Ian Harrigan, with many built-in components available out of the box. NotBilly's contribution to make it compatible with Ceramic is great, as it brings solid and advanced UI features right into Ceramic!

Haxe-UI home page

Haxe-UI, now compatible with Ceramic thanks to NotBilly's work! • https://haxeui.org

• The Keyboard Editor

l0go and fire-h0und (who both like to put 0 in their github name 😉) have been working on a tool for creating keyboard layouts. They are taking advantage of NotBilly's work on Haxe-UI to create the user interface, and their goal is to replace and existing tool called keyboard-layout-editor which was adequate for its time, but has lacked any updates.

The keyboard editor screenshot 1

The keyboard editor screenshot 2

• Rhythm Magus

goldenPiGames have been working on a rythm-based combat game called Rhythm Magus. The animations are made with Spine (supported by Ceramic) and a lot of work seems to have been put in it. You can try the game on the Rhythm Magus itch.io page!

Rhythm Magus screenshot

• Small wizard game

Gaboose is playing with Ceramic to create a small game, using LDtk and the Generic RPG Pack from Estúdio Vaca Roxa. It's still a work in progress and doesn't have a name yet, but you play as a wizard.

Gaboose game screenshot

Play as a wizard in this work in progress game, made with Generic RPG Pack

• Gadsme Connect

We used Ceramic to create a small puzzle game at my day job, called Gadsme Connect. You can play it online, and even try to win tickets to the Paris 2024 Olympic Games if you finish the game before the 29th of February!

• Six Spaceships

I also participated at the LowrezJam 2023 this summer, and came up with a low resolution rhythm game with spaceships and a punchy music. Go try the game on the Six Spaceships itch.io page (the game is pretty hard, sorry 😅).

• Jerry and the Sunlight

It started as an unfinished Ludum Dare 52 entry, but became my long term game project now. It's a pixel art puzzle-platformer about using mirrors and light to power generators, and slowly explore an underground world full of mysteries...

Past work was mostly focused on creating a dynamic 2D lighting system (which did not exist in the Jam version). I'm pretty happy with the current result, although there are still a lot of iterations needed to make the game look and feel better. As it is not a full-time project and I am mostly working alone on it, we are still far from a release date, but hey that's OK! I enjoy a lot working on it, and it's not like it is the first time I'm tackling a years-long project (looking at you Ceramic 🙃).

A preview of the mirror and light game (work in progress)

The year is just starting...

It's so cool to see an increasing number of projects being made with Ceramic. Although it has never been my primary goal to push for Ceramic's wider use, I'm so happy to see it sparking more and more interest. When some users are even praising how much they like the API or how delightful it is to use (thank you 🙏), it shows that the design choices and care put to Ceramic make sense and can resonate with other people too.

Anyway, Ceramic isn't going anywhere! Can't wait to see what will come up around it this year, and after!

Take care ✨

Want to try Ceramic?
Install it and get started now!
Join the Discord server