Skip to content

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

License

Notifications You must be signed in to change notification settings

ceramic-engine/ceramic

Repository files navigation

Ceramic

Ceramic Logo

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

https://ceramic-engine.com

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 from luxe.

  • HaxeFlixel's FlxColor class by Joe Williamson which was ported into to ceramic.Color and ceramic.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 and ceramic.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 and ceramic.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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published