Cross-platform 2D framework written in Haxe. |
---|
Ceramic is a cross-platform 2D framework written in Haxe that can export natively to desktop (windows, mac, linux), mobile (ios, android), web (js + webgl) and to unity projects.
Ceramic is almost ready to be used by more developers.
At the moment, it lacks a lot of documentation, but you can already read a few articles:
- Start with the introduction: Discover ceramic, a cross-platform and open-source 2D framework
- Then, follow the Guides. Start with the Getting Started section, to install Ceramic and create your first project, and continue learning the the additional guides.
- Check the Ceramic API docs (still rough, will be improved iteratively).
- Take a look at the Samples repository to see small example projects that demonstrate ceramic features (new samples will be added on a regular basis).
- Join the #ceramic channel on the Haxe Discord server.
Ceramic is made with a few goals in mind:
- Provide a runtime with high level cross-platform Haxe API to make apps, 2d games, animations and creative coding projects.
- Bundle a set of command line tools that handle building for different targets. Currently supported: iOS, Android, HTML5 (WebGL), PC (Win/OSX/Linux), Headless (Node.js).
- Make it extensible with a plugin system. A plugin can extend both the runtime and the command line tools.
- Ensure adding new backends is as easy as possible by keeping the API clean and platform independant. New backends/targets can be added via separate plugins without changing the framework itself.
- Provide opinionated features out of the box (event system, observables, physics, data model...), but always try to make these optional.
Ceramic is built using Haxe, a high level strictly typed programming language that can compile to multiple platforms.
It consists on a high level cross-platform API for Haxe, the runtime, and makes it work on different platforms with backends.
Ceramic comes with command line tools, also written in Haxe language, then run with Node.js.
Take a look at the Wiki.
-
Current default backend is
clay
. It allows to natively target Mac, Windows, Linux, iOS, Android and HTML5 (WebGL). -
A
headless
backend allows to run ceramic as a server/cli app (via Node.js for now, even if that could work with other language targets too). -
A
unity
backend allows to run a ceramic app inside Unity Editor and take advantage of all the platforms Unity provides.
Ceramic was created by Jérémy Faivre but is also possible thanks to the following works:
-
Luxe Engine (alpha) by Sven Bergström which was used as a transitional backend before
clay
backend was ready.Luxe
is also a great source of inspiration that influenced how ceramic works in various aspects. Some snippets ofceramic
directly come fromluxe
. -
HaxeFlixel's FlxColor class by Joe Williamson which was ported into
ceramic.Color
class. -
OpenFL by Joshua Granick and PixiJS by Mathew Groves to implement
ceramic.Transform
class. -
Haxe by Nicolas Cannasse, maintained by the Haxe Foundation, which is a fantastic cross-platform toolkit and programming language making it much easier to create a portable engine.
-
Node.js and its huge amount of community supported modules, helping a lot to create feature-complete and cross-platform command line tools.
Ceramic is MIT licensed.