Awesome
Ceramic
<img alt="Ceramic Logo" align="left" src="/tools/tpl/project/empty/assets/ceramic.png" height="130" />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)
- Unity projects
Examples and Documentation
Credits
Ceramic was created by Jérémy Faivre, as well as multiple libraries used internally, 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. Some snippets of Ceramic still directly come fromluxe
. -
HaxeFlixel's FlxColor class by Joe Williamson which was ported into to
ceramic.Color
andceramic.AlphaColor
classes. -
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.
-
Janicek Core Haxe by Richard Janicek, for some borrowed code for
ceramic.Utils.hashCode()
. -
Slugify by Simov, and Slug haxelib port to provide
ceramic.Slug
. -
HaxeFlixel's FlxEmitter class used as a starting point to implement
ceramic.Particles
andceramic.ParticleEmitter
. -
Optimised HashMaps by Mikhail Vorontsov to implement
ceramic.IntIntMap
and related on static targets. -
Some crash logging snippets by Lars Doucet to handle errors with
ceramic.Errors
. -
Cardinal Spline JS by Gleb Denisov, used to create
ceramic.CardinalSpline
. -
Nuclear Blaze's GameBase Camera by Sébastien Bénard, used as a model to create
ceramic.Camera
. -
Bezier Easing by Gaëtan Renaudeau, used to create
ceramic.BezierEasing
. -
Some GLSL shader code by Richman Steward.
-
Some browser mess handling from Holwer.js to help implement Ceramic audio backend for web.
-
Heaps Aseprite by Austin East, from which several snippets were ported for make Ceramic
ase
format parsing and rendering. -
Aseprite Blend Functions by Igara Studio S.A. and David Capello, which were ported to Haxe in order to implement ase frame blending at runtime in Ceramic.
-
Extrude Polyline by Matt DesLauriers, via Haxe port used in Ceramic to draw lines.
-
Earcut from Mapbox, via Haxe port to triangulate shapes.
-
Haxe Format Tiled by Pavel Alexandrov to parse Tiled Map Editor's TMX format.
-
Akifox Async HTTP by Simone Cingano, used to implement HTTP backend on native targets.
-
Nape Physics by Luca Deltodesco and contributors.
-
HSLuv to provide additional color manipulation helpers to
ceramic.Color
andceramic.AlphaColor
. -
Dear ImGui by Omar Cornut, via Haxe bindings initially created by Aidan Lee.
-
Gif Capture ported by Tilman Schmidt and Sven Bergström from Moments.
-
Linc RTMidi by Tilman Schmidt.
-
Rectangle Bin Packing by Sam Twidale, used for
ceramic.TextureAtlasPacker
. -
Ase format parser by Michael Miriti to read
.ase
/.aseprite
files. -
Fuzzaldrin from Atom to provide some auto-completion features at runtime debug UI.
License
Ceramic is MIT licensed.