All Versions
Latest Version
Avg Release Cycle
64 days
Latest Release
9 days ago

Changelog History
Page 1

  • v11.9

    May 27, 2020

    🔄 Changelog:

    • 👍 Error reporter is no longer a native window. It now runs as an MDI window to improve cross-platform support
    • Animation now has an onCycleFinished() callback
    • Single unified AnimationBuilder for Entity and Node, available for all fxgl modules
    • .properties or any extension with same properties format can be loaded as a PropertyMap
    • Redesigned menu architecture: now there are only two menus: main and game, each controlled separately via settings.setMainMenuEnabled() and settings.setGameMenuEnabled().
    • 🛠 Fixed a bug that incorrectly sorted the rendering order of subscene views
    • 🛠 Fixed a bug that incorrectly resized scenes
    • More detailed OS info is logged to debug (thanks to @ross-holloway94)
    • 🆕 New input trigger: sequence of keys
    • 🆕 New components: AutoRotationComponent, StateComponent
    • 🆕 New Entity and Animation builder convenience methods
    • 👌 Improved internal management of entity views, resulting in significantly improved use of CPU time (especially when there are many entities)
    • Simplified Save/Load API
    • 👌 Improvements to Shop API in the fxgl-trade module
    • 👌 Improvements to Entity API for kotlin users (thanks to @wakingrufus)

    Mobile improvements:

    • no extra IO tasks during FXGL init (faster startup)
    • no runtime proxy functions (avoids mobile runtime crash)
    • 📜 .tmx is now correctly parsed
    • platform os is correctly detected
    • virtual joystick
  • v11.8

    March 08, 2020
    • Most FXGL.* calls are implemented as EngineService for further modular architecture
    • getGameState() is now a property map of the game world, accessible via FXGL.getWorldProperties()
    • Fonts are loaded lazily. Now getUIFactoryService().newText() has unmodifiable fonts
    • Faster window startup
    • 🆕 New events DSL API
    • 🆕 New Action API for entities. An Action is short-term behavior.
    • JavaFX Properties can now be animated using the Animation DSL API
    • WobbleEffect
    • ⬆️ JavaFX upgraded to 13.0.2
    • 🆕 New function to calculate distance between bboxes of entities
    • ⚡️ Minor convenience updates to API

    🛠 Fixes:

    • 🛠 Fixed z-index sorting bug when z is updated at runtime
    • 🛠 Fixed incorrect offset of the pause menu when window is resized
  • v11.7

    January 05, 2020

    🚀 Main focus of this release was on the fxgl-ai module. In particular, A* pathfinding and cell-based movements. Changelog:

    • ➕ Added fxgl-ai module
    • 💻 ProgressBar (fxgl-ui module) value not bindable was fixed (thanks @marvinbuff )
    • Particle effects can now scale with entities
    • Images.kt has new resize() function (thanks @CharlyZhu)
    • Cursor can now be set to invisible in the game scene
    • ➕ Added IntervalSwitchComponent (thanks @CharlyZhu)
    • ➕ Added TrailViewComponent
    • ➕ Added PropertyMapView (thanks @CharlyZhu)
    • 👀 FXGLMath random can now be initialized with a seed (settings.setRandomSeed())
    • 🛠 Minor bug fixes and extra convenience methods to Java and Kotlin DSL
  • v11.6

    November 17, 2019
    • 👍 Unified localization support for both in-game and engine data. Example usage:

      getLocalizationService().addLanguageData(new Language("ENGLISH"), Map.of("some.key", "Hello World")); // just String String s = getLocalizationService().getLocalizedString("some.key"); // a bindable StringProperty StringProperty s = getLocalizationService().localizedStringProperty("some.key");

    • 👌 Support for flipped tiles in .tmx files from Tiled map editor

    • Tiled maps with transparency are now correctly loaded

    • ➕ Added circuit breaker style mini game

    • 👍 Allow entities to call component methods directly using method name:

      class SomeComponent extends Component { public void someMethod() { } } ... entity.addComponent(new SomeComponent());"someMethod");

    • ➕ Added components: ActivatorComponent, FollowComponent, TextViewComponent, GenericBarViewComponent (thanks to @marvinbuff}

    • ➕ Added effect: SlowTimeEffect

    • 🛠 Fixed a rare bug that would crash FXGL on startup

    • ✅ More tests

  • v11.5

    September 22, 2019

    🚀 This release fixes a major bug in fullscreen mode. All developers using fullscreen in their games should upgrade to this version.

    • 🛠 Fixed UI not scaling properly when going fullscreen
    • 🛠 Fixed (via a workaround, thanks to @Madave94) uncapped frame rate on Linux
    • ✅ Larger code coverage for unit tests + added a system test
    • ♻️ Internal code refactorings to reduce inter-class dependencies
    • Cleanup of legacy code and resources
    • ➕ Added static code analyser (thanks to @megaman248)
    • 🆕 New fxgl-tools module with functional dialogue editor
  • v11.4

    August 06, 2019

    🚀 This release completes a lot of the groundwork required to run FXGL 11 natively (desktop + mobile).

    🔄 Changelog:

    • 🐧 The engine core is fully functional on native Linux, Mac + iOS
    • File system access now works on iOS via "attach" storage 4.0.2
    • 🍱 Most of fail-fast calls in AssetLoader are now fail-safe: dummy assets are returned if load fails and a warning message is recorded
    • 🚚 Deprecated API has been removed
    • 🆕 New setting to preserve resize ratio
    • ➕ Add build number, java and javafx runtime versions to FXGL version
    • Developer debug messages that can be used for temporary messages
    • ➕ Added OffscreenPauseComponent
    • ⏪ Restored virtual controls
    • 💻 Menu UI bug is fixed wrt credits
    • ViewComponent API is redesigned to be more intuitive. Access to underlying view (JavaFX Node subclasses) should now be easier. Adding and removing views at runtime should also be easier.
    • 👉 Uses JavaFX 12.0.1
    • 👷 Travis CI now uses OpenJDK11 and 12
    • 🐧 Uber jar now contains all (win, mac, linux) dependencies
  • v11.3

    May 31, 2019

    🚀 This is the first stable release for FXGL 11. All Java 11 users should update to this version.

    🔄 Changelog:

    • Animation channels can be constructed from sprite sheets with different frame sizes
    • Extra built-in components: LiftComponent, DraggableComponent, IntervalPauseComponent
    • ⏪ Restored onPreInit() for single pre-init tasks
    • 👌 Improved Java module names (thanks to @sormuras )
    • 📚 Documentation cleanup in various modules
    • 🆕 New modules: minigames and trade (these are WIP and are not yet used by the main module)
  • v11.2-beta

    April 28, 2019
    • 🆕 New developer pane
    • 🆕 New service API
    • Tentative architecture for Notification and Achievement services
    • 🛠 Fixed problems with scaling of polygonal shapes and hit boxes
    • Input now correctly reports onActionEnd() if a scene is switched
    • Collision handlers now correctly report onCollisionEnd() if an entity becomes ineligible for collision while colliding
    • 🛠 Fixed check for web platform
    • 🛠 Minor bug fixes
  • v11.1-beta

    March 17, 2019
    • Tiled 1.2.3 integration (.tmx spec 1.2)
    • Larger code coverage
    • 🛠 Fixes in the animation, input modules
    • 👍 Copying components is no longer supported by design. Now you should respawn entities instead, which is a much safer and cleaner alternative.
    • JavaFX 11.0.2
    • 👌 Improved Kotlin dsl support
    • ⏪ Restored extra components: EffectComponent, KeepOnScreenComponent, ExpireCleanComponent, OffscreenCleanComponent. They are now located in com.almasb.fxgl.dsl.components, where all new components will be added. The entity module only has core components now.
  • v11.0-alpha

    February 10, 2019
    • 👍 Java / JavaFX 11 support
    • Modular architecture
    • TransformComponent. This now correctly affects the bounding boxes and view.
    • 🚚 All convenience calls have been moved to FXGL., e.g. FXGL.getGameWorld().
    • 🏗 Entity / animations builders now available via FXGL.entityBuilder() / FXGL.animationBuilder() and provide a common API
    • 🚚 Many features removed to focus on the core. As development continues, the features from 0.5.4 will be reintroduced with a thoroughly designed API.