sh-dave / ceramic

Cross-platform 2D multimedia framework

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

At the moment, the only available backend is luxe (a stripped-down version of luxe engine alpha written in Haxe, specifically edited for ceramic).

It allows to target Mac, Windows, Linux, iOS, Android, HTML5 (WebGL).

More backends may be implemented in the future.

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 is the low-level-ish tech used by ceramic's default backend to display graphics, play sounds, manage input through OpenGL, OpenAL and SDL. 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

License:MIT License


Languages

Language:Haxe 84.7%Language:Java 10.8%Language:Objective-C 1.1%Language:CSS 1.1%Language:HTML 0.7%Language:JavaScript 0.6%Language:GLSL 0.5%Language:Shell 0.1%Language:Swift 0.1%Language:Batchfile 0.0%Language:Objective-C++ 0.0%Language:Ruby 0.0%Language:C++ 0.0%