Friends of OpenJDK Today

FXGL Game Engine 17 Released

January 03, 2022


  • Avatar photo
    Almas Baimagambetov

    Principal Lecturer, Computing Department Lead at the University of Brighton. Author of #FXGL game engine. #Java #JavaFX #Kotlin open sourcerer. PhD in Computer Science.

Version 17 of the FXGL game engine brings a number of improvements in many areas. Key changes include:

  • FXGL source is now built with Java 17 and JavaFX 17.
  • The changelog is now automatically generated from commits.
  • Animated textures (sprite sheet animations) are now driven by the unified FXGL system, meaning you can use interpolators, play in reverse and many other supported features.
  • 3D skybox implementation.
  • DialogueContext object for storing data that is local to the context in which the dialogue is being run.
  • Improvements to avoid various crashes on the Raspberry Pi.

Auto-generated Changelog

The full changelog is given below.


  • kotlin 1.5.10 -> 1.5.32 commit
  • maven pmd plugin 3.13.0 -> 3.15.0 commit
  • base Java 17, switch to 17+dev-SNAPSHOT commit
  • javafx 16 ->, closes #1107 commit


  • added commit message guidelines for changelog generation commit
  • clarified release process commit


  • FXGL 17 intro commit
  • added transferFrom() to Inventory commit
  • new API to set time to animation directly and to build sequential animations commit
  • dialogue syntax check, show an error icon if there are incomplete paths, #651 commit
  • added showChoiceBox to DialogService, closes #1094 commit
  • added audioFileName support to nodes, #651 commit
  • bind debug camera to CTRL+8, to avoid issues with CTRL+C commit
  • added DialogueContext, #1116 commit
  • added bulk dialogue editor actions commit
  • undo (ctrl+z) is complete for main editor actions, #651 commit
  • added TimeComponent::copy, #1041 commit
  • Added draft skybox implementation commit
  • add Platform.EMBEDDED, #1079 commit
  • added public API to change render fill of FXGLPane, set default to White for consistency with native mode, #1085 commit
  • added randomColorHSB() commit
  • added embeddedShutdown() that allows restarting an FXGL instance without the need to exit JavaFX, added sample, #1075 commit


  • fixed non-uniform frame distribution for AnimationTexture, closes #1067 commit
  • fixed a bug that causes audio service to not load properly on embedded devices commit
  • fixed a bug that would cause FS access via gluon attach on embedded devices commit


  • internal refactor Inventory commit
  • clean up MDIWindow, closes #815 commit
  • remove redundant code, active is always false at that point, closes #1024 commit


  • ignore auto-generated changelog files commit


You can contribute to the development on GitHub.


Related Articles

View All
  • Game Development Basics with FXGL

    Game Development is a large field of Computer Science with a lot of underpinning theory behind the concepts and practices used in the industry.

    In this short article, we will learn some fundamental basics of these concepts, which will be explored within the context of the FXGL game engine.

    However, the concepts themselves are language-agnostic and engine-agnostic.

    Please note that the material presented here is deliberately simplified to provide a gentle introduction. Those seeking in-depth coverage are encouraged to pursue further research.

    Read More
    Avatar photo
    June 17, 2021
  • Getting Started with FXGL Game Development

    FXGL is a JavaFX Game Library Engine for Java and Kotlin, created by Almas Baimagambetov.

    In this article, you’ll read what FXGL is, what it is good for, what its dependencies are, as well as a complete scenario with a video and code snippets to set up your first FXGL scenario from scratch.

    Read More
    Avatar photo
    Avatar photo
    November 12, 2020
  • High Performance Rendering in JavaFX

    In this article, we comparatively evaluate four different approaches to render particles in JavaFX in terms of runtime performance.

    The approaches are Canvas, PixelBuffer AWT, PixelBuffer CPU and PixelBuffer GPU.

    The evaluation suggests the following order of approaches from fastest to slowest:

    – PixelBuffer GPU (fastest).
    – PixelBuffer CPU.
    – PixelBuffer AWT.
    – Canvas (slowest).

    Read More
    Avatar photo
    January 18, 2021


  • Avatar photo
    Almas Baimagambetov

    Principal Lecturer, Computing Department Lead at the University of Brighton. Author of #FXGL game engine. #Java #JavaFX #Kotlin open sourcerer. PhD in Computer Science.

Comments (0)

Your email address will not be published. Required fields are marked *

Highlight your code snippets using [code lang="language name"] shortcode. Just insert your code between opening and closing tag: [code lang="java"] code [/code]. Or specify another language.

Save my name, email, and website in this browser for the next time I comment.

Subscribe to foojay updates:
Copied to the clipboard