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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8b62437 · Feb 7, 2025
Jan 17, 2025
Dec 20, 2024
Jul 22, 2022
Dec 28, 2024
Dec 28, 2024
Jun 7, 2021
Dec 28, 2024
Feb 7, 2025
Jun 6, 2023
Dec 28, 2024
Dec 28, 2024
Dec 28, 2024
Mar 29, 2018
Feb 7, 2025

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 ruby0x1 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 Howler.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.

  • LibGDX, used as a reference for polygon triangulation.

  • 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