Skip to content

Releases: ceramic-engine/ceramic

Ceramic v2.0.2

25 Jul 21:42
Compare
Choose a tag to compare

This is another follow-up update after Ceramic v2.0.0 major release.

Changelog

  • Revert some screen scaling changes made in v2.0.1 about screen scaling (they were breaking too many things, will try a better version of that in a future release)
  • Fix a regression when shutting down the app that would make it freeze

Full Changelog: v2.0.1...v2.0.2

Ceramic v2.0.1

11 Jul 23:03
Compare
Choose a tag to compare

This is a follow-up update after Ceramic v2.0.0 major release. Comes with several bug fixes.

Changelog

  • Fix wrong architecture of Haxe binary being embedded on linux archives
  • More accurate native window size and density resolution when using SDL
  • Fix log output not being flushed, causing not seeing all logs on windows
  • Fix vscode URI scheme being incorrect on windows logs
  • Various fixes to restore automatic api-docs generation

Full Changelog: v2.0.0...v2.0.1

Ceramic v2.0.0

10 Jul 23:07
Compare
Choose a tag to compare

This is a major update of Ceramic with a lot of internal changes, yet mostly compatible with any existing project.

A lot of care have been taken to ensure the transition is smooth, but if you find any regression since previous version, please file an issue and it will get addressed!

Main changes

  • Remove dependency to Node.js for CLI tools: they are now compiled as native C++ binary (Node.js is only required when installing Ceramic from Git, any recent version like Node 22 or higher should work)
  • Add installer for Windows and Mac
  • Update native targets to SDL3 (it was previously SDL2)
  • Use Google ANGLE as default OpenGLES3 backend on Mac (Metal), iOS (Metal) and Windows (D3D11) for future-proof compatibility
  • Improve audio API on all targets: support of cross-platform realtime audio processing with AudioFilter and AudioFilterWorklet classes
  • Update Unity target to make it compatible with latest Unity 6 and Render Graph

Contributions

  • Use new arm64 CI runners in place of docker by @l0go in #146
  • Update luxe credit with creator's username by @l0go in #132
  • Update for Haxe nightlies by @kLabz in #147
  • [ase] Fix out-of-bounds write in AsepriteParser by @Frixuu in #150
  • Check numpad enter for text input submissions by @Jarrio in #149
  • Open links in default browser by @MSGhero in #148

Full Changelog: v1.6.0...v2.0.0

Ceramic v1.6.0

04 Dec 20:55
Compare
Choose a tag to compare

This release brings a lot of small bugfixes and improvements. It also bumps Haxe version to 4.3.6 (latest on this day) as well as latest HXCPP (from git).

How to update Ceramic

Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git

Changelog

  • [android] Update project template to target API 34
  • [runtime] Add Utils.sign()
  • [android] Add gamepad support to Android 🎮
  • [android] Add support of --run-apk option when using clay run android: builds an apk and runs it with adb. Displays clean and coloured logs like other platforms
  • [runtime] Add eagerTween() and eagerTransition() to start tweens and transitions that update using current frame delta instead of 0
  • [runtime] Reuse start vertices when looping arc, and do not change mesh size from MeshExtensions
  • [runtime] Add GeometryUtils.intersectCircles()
  • [tools] Better output when running Ceramic via vscode
  • [runtime] A few Camera improvements
  • [tools] Better vscode launch.json
  • Add text.glyphCode optional callback used to override the char code of each glyph to be displayed. #140
  • Allow to track down meshes with invalid colors or floatColors array using debug build or ceramic_debug_mesh_colors as well as ceramic_debug_entity_allocs defines. Fix #141
  • [runtime] Remove the use of data field (can still use it with ceramic_entity_data define)
  • [runtime] Add EntityData util to manage data associated with an entity (using DynamicData component internally)
  • [tilemap] Add hasTileAtPosition()
  • [arcade] Explicitly fail when giving invalid tile size
  • [tools] Use absolute paths when debugging, use relative paths for release builds but make tools smarter to resolve paths when displaying them in vscode and similar
  • [ldtk] Fixes (thanks @carlito767 !)
  • [runtime] Fix variant asset not being removed properly in some situations
  • [runtime] Additional checks when adding a visual child

Dependency updates

  • Update to haxe 4.3.6
  • Update tracker
  • Update ase
  • Move to hxcpp from git

New Contributors

Full Changelog: v1.5.0...v1.6.0

Release v1.5.0

21 Jun 16:23
Compare
Choose a tag to compare

This release fixes several bugs and brings new features, mostly on the observable data model side of things (tracker library)

How to update Ceramic

Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git

Changelog

  • [runtime] A few API improvements to MeshExtensions and MeshUtils
  • [runtime] Fix an edge case where using a texture in a shared wouldn't make it a dependency of the render target, which could lead to wrong rendering order
  • [tilemap] Fix wrong tile texture frame rendering when using tileset with spacing
  • [runtime] Add ceramic_no_log define to disable logging (could be improved by actually removing the log calls from the resulting code), and ceramic_mute_logs that doesn't print logs but still fire log events
  • [runtime] Update soloud to make it work on recent versions of macos
  • [elements] Give more control to scrollbar visibility with immediate GUI with Im.scrollbar()
  • [tools] Change default icons for mac
  • [elements] Support bold font (if assigned to theme) and point size with Im.bold() and Im.pointSize()
  • [elements] Various improvements to make Im.list more versatile and work better when nested in a scrollable window
  • [runtime] Add support of @stateMachine({checkFields: false}) to allow disabling check of {STATE}_enter/update/exit field names
  • [runtime] Fix bindToNativeScreenSize() not updating size when screen native size changes without changing the matrix (when using RESIZE screen scaling)
  • [elements] Better handling of disabled state in TextFieldView
  • [elements] Add a way to know if an Im.editText() field has been blurred (unfocused)
  • [runtime] Add a fix/workaround to prevent rendering to eat too much CPU even if not much is happening
  • [runtime] Add cease() and until() in shortcuts
  • [runtime] When a @component field is destroyed, auto-set it to null
  • [ui] Slightly improve view layout system to make it reuse computed values in more situations
  • [elements] Various improvements in elements UI
  • [runtime] Compatibility with new .fragments file format
  • [runtime] Add EnumAbstractMacro.fromStringSwitch()
  • [http] Add download support on headless (node)
  • [ui] Try to avoid marking a parent view as dirty layout in situations where it's not necessary
  • [elements] Fix blurred status being fired too many times
  • [runtime] Fix runtime assets not premultiplying images all the time
  • [runtime] Smarter Equal.equal()
  • [runtime] Add Fragment.get() overload to get typed entity
  • [http] Fix bad resolution of binary response on iOS and Android
  • [runtime] Allow implicit cast from ReadOnlyArray to Array
  • [runtime] Add SeedRandom.shuffle()

New Contributors

Full Changelog: v1.4.0...v1.5.0

Release v1.4.0

30 Jan 22:13
Compare
Choose a tag to compare

This release brings various fixes and additions. Haxe has also been updated to 4.3.3!

How to update Ceramic

Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git

Changelog

  • [ldtk] Fix tile field type name by @gaboose in #130
  • [runtime] Add initial implementation of RoundedRect by @l0go in #128
  • [ios] Fix build error with more recent version of cocoapods
  • [runtime] depth can now be used with VisualTransition
  • [runtime] Add Visual.childWithType() helper
  • [runtime] Add helpers to know if we are running on iOS or Android (true on web running on ios/android browsers, or when running as native ios/android app)
  • [runtime] Add darkColor field to quad and the possibility to add custom float attributes to quad vertices (requires ceramic_quad_dark_color and ceramic_quad_float_attributes defines)
  • [tools] Do not use hardcoded hxml output path anymore (usage with vscode extension)
  • [tools] Add select: auto option on ide variant
  • [runtime] Add Filter.neverEmpty property
  • [web] Fix async loading failing when watching a directory via electron
  • [sprite] Fix Sprite.timeScale being inverted (⚠️ breaking change)
  • [runtime] Add Scroller.pagingEnabled field, to enable snap to page feature
  • [ui] Expose scroller paging options to ScrollView
  • [ui] Add missing parameters to CollectionView's smooth scroll to item
  • [runtime] Correct missing vertical implementation of scroller paging and optimise CollectionView a bit
  • [ui] Add an implementation of PagerView, with page looping support
  • [runtime] Add ceramic_fake_ios and ceramic_fake_android defines to force Utils.isAndroid/isIos() to return truc for debug purposes
  • [runtime] Add pinch gesture detector
  • [runtime] Add Scroller.dragThreshold to make it wait for a drag to the correct direction before scrolling
  • [runtime] Provide a Transform object as a convenience from the Camera instance
  • [runtime] Remove Rect class (not really used)
  • Update haxe to 4.3.3

New Contributors

  • @l0go made their first contribution in #128

Full Changelog: v1.3.3...v1.4.0

Release v1.3.3

10 Dec 16:54
Compare
Choose a tag to compare

One more release that adds a few contributions (thanks!) and fixes.

How to update Ceramic

Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git

Changelog

  • [windows] Fix a compile error on windows after adding the preloader feature
  • [ldtk] Support pixel offsets in gridTiles and autoLayerTiles (by @gaboose)
  • [spine] Allow to export to a custom output directory (by @goldenPiGames)
  • [runtime] Fix a compile error when using EditText from native

Full Changelog: v1.3.2...v1.3.3

Release v1.3.2

23 Nov 21:39
Compare
Choose a tag to compare

This release brings more fixes and nice to have improvements.

You can now use ceramic.Preloader to create a nice preloader with a progress bar when the assets of your scene are loading.

Let's say you were setting your main scene with:

app.scenes.main = new MainScene();

Adding a preloader is easy, simply replace this line with:

app.scenes.main = new Preloader(() -> new MainScene());
image

You can also create a subclass of Preloader if you want to change how it looks like!

Another addition is the support of text input on web target when running on a mobile device. Previously, this wouldn't work because the on screen/virtual keyboard wouldn't show without a regular DOM <input> element. This new version makes it work by creating <input> elements on the fly from your EditText components.

How to update Ceramic

Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git

Changelog

  • [runtime] Make hscript a dependency only when script plugin is enabled
  • [runtime] Add an option to only triangulate a subset of vertices with Triangulate.triangulate()
  • [runtime] Fix wireframe colors not being mapped correctly on mesh with per-indice colors
  • [runtime] Try to use a better bezier easing cache key
  • [runtime] Add CeramicLogo visual class that you can use to display a Ceramic logo anywhere you want!
  • [runtime] Add a method to move asset from one Assets instance to another (moveAll())
  • [runtime] Allow a root scene to be moved under a different slot (and overwrite target slot if used already)
  • [runtime] Add ceramic.Preloader class to facilitate showing a preloader with a progress bar
  • [runtime] Improve implicit entity subclass constructor generation so that it can support arguments
  • [runtime] Make Ceramic compatible with haxe's thread event loop
  • [runtime] Fix parent asset not being resolved in some cases
  • [runtime] Allow to change edit text cursor width
  • [http] Fix 408 status not being taken into account on desktop targets
  • [elements] More forgiving color field view input
  • [runtime] Add support of text input on web target when running on a mobile devices

Full Changelog: v1.3.1...v1.3.2

Release v1.3.1

01 Nov 17:51
Compare
Choose a tag to compare

A new release with several fixes, including some that come from new contributors, thanks!

How to update Ceramic

Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git

Changelog

  • [ldtk] Ensure tiles without alpha property are treated as opaque
  • [runtime] Fix Files.getBytes on web target by @inc0der in #120
  • [ldtk] Set the def field in LdtkFieldInstance by @gaboose in #122
  • [ldtk] parse array type values in LdtkFieldInstance by @gaboose in #123
  • [spine] Spine.hx clipping attachments by @goldenPiGames in #121

New Contributors

Full Changelog: v1.3.0...v1.3.1

Release v1.3.0

18 Aug 23:01
Compare
Choose a tag to compare

Another release that fixes several bugs and adds some new features to improve Ceramic usage in general.

How to update Ceramic

Via haxelib: haxelib run ceramic setup
Via git: https://ceramic-engine.com/guides/ceramic-via-git/#update-your-existing-ceramic-via-git

Changelog

  • [tilemap] Add support of per-tile alpha, including when using LDtk
  • [runtime] Add Visual.wireframe to render it as wireframe (disabled by default, enable with ceramic_wireframe define)
  • [runtime] Ensure Scene load() and create() are called from a different callstack than asset load callback to prevent weird stack traces
  • [runtime] Add new mesh extensions: createVerticesGrid(), createIndicesGrid() and createUVsGrid()
  • [runtime] Add mesh field to Filter, to allow rendering a texture managed by a filter with a more advanced layout of vertices, not only quads
  • [runtime] Improve entity macro to support @content meta: fields marked with this meta will set contentDirty to true (note: only visuals have that field, but you can create your own on custom Entity subclasses)
  • [runtime] Add Utils.lerp()
  • [runtime] Add assets variants concept, to allow loading the same source asset multiple times under different names, with different options
  • [arcade] Ensure collision events won't explode if editing a group from a callback
  • [ase] Premultiply alpha of resulting pixels by default: fixes alpha not displaying properly
  • [ldtk] Fix compile error when targeting native
  • [sprite] Sprite quad should inherit alpha by default
  • [runtime] Accept width and height options when loading image from ase data
  • [runtime] Support displaying an lcd-style grid when using PixelArt filter (see it in action: https://jeremyfa.itch.io/six-spaceships)
  • [unity] Find a workaround to make Particles<T> compile fine with C# target...
  • [runtime] Fix Visual.destroy() creating a dependency to screen.focusedVisual if object was destroyed under and autorun

Full Changelog: v1.2.0...v1.3.0