Cross-platform 2D multimedia framework. |
---|
You've been warned, everything in this repository is subject to change and it is strongly advised not to use ceramic
yet on your own projects.
ceramic
should be considered usable when its Alpha Milestone gets completed. Until then, no issue will be accepted, and anyway you should not use it at all for now 🙂.
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 (C++/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.
Start with the Setup guide.
-
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 C++ or Node.js). -
A
unity
backend is 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.