FXGL Versions Save

Java / JavaFX / Kotlin Game Library (Engine)

11.13

3 years ago
  • Introduction of experimental 3D concepts, such as transforms, camera and scene. FXGL now understands 3D for purposes of rendering and animating.
  • z is now used for the depth dimension. Use zIndex to change z-index of entities
  • Significantly simplified Menu API
  • Added AnimatedString
  • Added RandomAStartMoveComponent
  • Added multiple new samples
  • Added CODE_OF_CONDUCT
  • Allow providing a custom startup scene
  • Number of ticks can now be set to arbitrary (does not depend on display refresh rate)
  • Updated color scheme for .fxgl_button (FXGLButton)
  • Updated documentation of multiple modules, see #897

Bug fixes:

  • PropertyMap will now correctly notify when setting an object (same ref)

11.12

3 years ago
  • Expose engine pause/resume and primary stage as public API
  • Fixed a bug that would crash dialogue editor with many graph nodes
  • Fixed a bug that crashed dialogue cutscene when a choice response was pressed before the text animation finished
  • Fixed a bug in dialogue editor related to saving / loading
  • New setting: disables auto-scale on resize. Useful for non-game applications
  • Support for assignment statements in dialogues (in FunctionNode)
  • Support for Tiled text objects
  • Support for high-refresh rate displays: please test
  • Support for audio on Android
  • Support for adding a custom buffer size for UDP packets
  • Improved profiling tools for FPS, CPU and RAM
  • Tentative controller support for windows64 and linux64: QA testing is welcome!
  • Internal code quality improvements
  • More unit tests
  • Faster CI builds due to removal of unnecessary actions
  • Partial CI migration to GitHub Actions
  • kotlin 1.3.41 -> 1.4.10
  • javafx 14 -> 15
  • jacoco 0.8.5 -> 0.8.6
  • junit 5.6 -> 5.7
  • attach 4.0.8 -> 4.0.9
  • Other minor improvements

11.11

3 years ago

This release brings mobile (via Gluon client-maven-plugin) and networking support.

  • TCP support is no longer in draft (feedback welcome)
  • Added draft UDP support
  • Restored FXGLTextFlow
  • AnimationBuilder now has rotate and scale origins, thanks to @AahzBrut
  • Fixed WobbleEffect, thanks to @AahzBrut
  • Various API improvements
  • More tests
  • attach 4.0.6 -> 4.0.8
  • javafx 13.0.2 -> 14
  • Improved peformance in IntroScene
  • Added lifecycle event handlers on mobile
  • Significant performance improvements to Images::merge and sub/superTexture
  • Fixed default logging format
  • Clean up CI scripts

FXGL dialogue editor:

  • can move multiple nodes with CTRL+click
  • latest builds available from builds-editor

11.10

3 years ago

Changelog:

  • Default intro scene updated
  • Draft of fxgl-net TCP
  • Significant improvement in animation performance
  • Anonymous components are now allowed, though still not recommended
  • Component injection can be disabled on a per component basis to improve runtime performance when creating many entities
  • fxgl-trade module is now part of FXGL API
  • Added "global" input object accessible via SceneService
  • More tests
  • Internal code cleanup and refactor
  • fxgl-samples cleanup
  • attach 4.0.2 -> 4.0.6
  • new dep: jackson databind
  • Dialogue editor: added branches / functions / conditions
  • Added a setting to disable all FS write operations
  • Localizations and fonts are now lazily loaded, improving fxgl startup time
  • Camera scene can be entered with CTRL+C in debug / developer modes

Bug fixes:

  • Fixed translation animation along a path, which now doesn't snap to 0,0
  • Fixed a bug where tmx with different tileset sizes would load incorrectly
  • Fixed a bug where viewport would not correctly follow entity if zoomed
  • Fixed a bug where mouse world coordinates would be incorrect when viewport is zoomed
  • Fixed a bug where viewport bounds would not honor zoom level
  • Fixed a bug where resized window would generate incorrect input coordinates

Contribution credits (thanks to):

  • @dykstrom
  • @AahzBrut
  • @CharlyZhu

11.9

3 years ago

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

11.8

4 years ago
  • 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

11.7

4 years ago

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

11.6

4 years ago
  • 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());
entity.call("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

11.5

4 years ago

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

11.4

4 years ago

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