Skip to content

Cross-platform 2D multimedia framework

License

Notifications You must be signed in to change notification settings

lagamerie/ceramic

 
 

Repository files navigation

Ceramic

Ceramic Logo Cross-platform 2D multimedia framework.

⚠️ ACTIVE DEVELOPMENT / DON'T USE IT YET! ⚠️

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 🙂.

Why ceramic?

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.

How does it work?

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.

Getting started

Start with the Setup guide.

Available backends

  • 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.

Credits

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 of ceramic directly come from luxe.

  • 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.

License

Ceramic is MIT licensed.

About

Cross-platform 2D multimedia framework

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Haxe 81.5%
  • Java 14.3%
  • Objective-C 1.1%
  • CSS 0.8%
  • ShaderLab 0.6%
  • JavaScript 0.5%
  • Other 1.2%