FXGL Versions Save

Java / JavaFX / Kotlin Game Library (Engine)

21.1

1 month ago

Auto-generated changelog

docs

  • added a directory for 3rd party licenses commit
  • added README_RU.md commit

feat

  • added ResourceExtractor that extracts resource files from deployed jar to local FS commit
  • added software cursor, closes #1090 commit
  • the initial framework for PropertyMapView is implemented, closes #704 commit
  • added MazeGrid as a traversable grid commit
  • added Dungeon Generator, closes #1130 commit
  • completed implementation of QuestService, closes #848 commit
  • added EngineService onVarsInitialized() to notify services when game vars are ready to use commit
  • added EngineService onGameReset() to allow services to clean up and get ready for a new game commit
  • web api service can now use both Chrome and Firefox based on availability commit
  • Support 8 directions AStar pathfinding, closes #1213 commit
  • Add SerializableType to PropertyMap, closes #1250 commit
  • added WebAPI and RPC services commit
  • AsyncService for parallel EngineService processing commit
  • Support 8 directional Grids commit
  • added initial impl of tts service commit
  • added HttpClientService that allows sending http requests commit
  • added intial impl hand tracking service commit
  • added initial impl of speech recognition API commit
  • added a new module fxgl-intelligence commit
  • added support for loading source images from relative paths in .tmx, closes #1302 commit
  • SceneService now provides direct access to intro, loading, game, main menu, game menu scenes, closes #1315 commit
  • updated russian.lang commit

fix

  • emit particles at initial Entity zIndex instead of zIndex 0, closes #1318 commit
  • TriggerSequence Minigame check if trigger is between two lines, closes #796 commit
  • modifier keys shift, ctrl, alt are not released when a different key is released, related to #1313 commit
  • UI loaded from fxml file now correctly loads Image tags, closes #1343 commit

refactor

  • load fxgl-intelligence locally, keep consistent package structure commit
  • removed deprecated fireEvent() commit
  • replace bit flag with a boolean commit
  • encapsulate islang flag in Body commit
  • extracted reflection based function calling to be reusable commit
  • replace deprecated URL() call with URI.toURL() commit
  • clean up weld joint commit

test

  • added WaypointComponentTest commit

New Contributors

Full Changelog: https://github.com/AlmasB/FXGL/compare/21...21.1

21

4 months ago

Auto-generated changelog

build

  • javafx 20 -> 21.0.1 commit
  • mvn compiler 3.8.0 -> 3.11.0' commit
  • jacoco 0.8.8 -> 0.8.11 commit
  • base Java 21, switch to 21+dev-SNAPSHOT commit
  • maven PMD 3.15.0 -> 3.20.0 commit

docs

  • updated to match JDK 21 baseline, simplify wording commit

feat

  • added a particle callback function that will be executed when the particle is removed commit
  • added asset loader loadCutscene shortcut commit
  • Dialogue Editor can now exit the dialogue from any node, related to #1322 commit
  • added a property view for String properties commit
  • DialogueGraph Function node now supports add sub mul div commit
  • added PropertyMap divide Double and Int commit
  • added PropertyMap multiply Double and Int commit
  • dialogue editor will now highlight the selected node view commit
  • dialogue editor now supports node duplication, shortcut CTRL+D, related to #1322 commit
  • dialogue nodes can now be copied commit
  • DialogueScene is no longer limited to showing 5 choices and uses a scroll bar when needed to show more choices, related to #1322 commit
  • added video cutscenes, closes #1120 commit
  • added loadVideo() to asset loader, related to #1120 #406 commit
  • MultiplayerService now provides ping (round-trip time) information for a given connection, closes #877 commit
  • added MovingAverageQueue commit
  • RechargeableComponents now maintain the value is not greater than max value relationship, added valuePercent, closes #833 commit
  • added choice dialog box API for List and Enum options commit
  • added convenience methods onBtn* for Primary and Secondary mouse buttons commit
  • added interpolateIntermediateImages() commit
  • new API for extracting Image from a channel given the frame index commit
  • added AnimatedImage which animates between corresponding pixels to produce a new image commit
  • basic hex support for Tiled .tmx, closes #702 commit
  • added Image.getPixel(x, y) API commit
  • javafx sliders are now replaced with FXGLSlider type commit

fix

  • MDIWindow controls now function correctly commit
  • viewport now correctly unbinds itself from an entity commit
  • blending operations now always produce valid pixel colors through limiting values to [0..1], closes #712 commit
  • adding a message handler while handling a message does not cause concurrency exceptions commit
  • added missing implementations in EmbeddedPaneWindow commit
  • a new copy of PropertyMap is returned from AssetLoader, closes #977 commit
  • layout of audio menu is now correctly aligned regardless of volume, closes #1152 commit

perf

  • use LinkedHashSet vs Array to store Updatable, this allows significantly faster deletion of numerous Updatable objects, such as animations commit

refactor

test

  • junit 5.9.2 -> 5.10.0 commit
  • restored RevoluteJointTest commit
  • added missing test property of type float in .tmx objects commit
  • added a test for loading a .tmx map with an error commit

New Contributors

Full Changelog: https://github.com/AlmasB/FXGL/compare/17.3...21

17.3

1 year ago

Auto-generated changelog

build

  • jfx 19.0.2.1 -> 20, kotlin 1.8 -> 1.8.10, attach 4.0.16 -> 4.0.17, jackson 2.14.1 -> 2.14.2 commit
  • JavaFX 19 -> 19.0.2.1 (#1223) commit
  • Kotlin 1.7.10 -> 1.8.0, Jackson 2.13.4 -> 2.14.1, Attach 4.0.15 -> 4.0.16 commit
  • jfx 19-ea+11 -> 19, jackson 2.13.3 -> 2.13.4 (#1207) commit
  • use java 19-ea for tests commit

docs

feat

  • completed basic isometric support for .tmx, closes #1151 commit
  • AnimationTexture can start from a given frame, part of #1244, co-author: @chengenzhao commit
  • Added Inventory::transferAllFrom(), getItemQuantity() returns 0 if no item, closes #1131 commit
  • added setDirectionVector3D, closes #924 commit
  • ViewComponent.getChild() allows retrieving a specific child that is directly cast to given type commit
  • added bindToLookAt3D() which makes a transform look at another transform commit
  • added PropertyMap::addAll(), updated forEach impl and doc, closes #1199 commit
  • audio object is now in public API, closes #1187 commit

fix

  • if title is empty, set to Untitled, closes #1225 (#1257) commit
  • 3D models in .obj format without normals are now loaded correctly, related to #1245 commit
  • PropertyMap remove() correctly removes internal listeners, closes #1229 commit
  • original asset objects are now cast during first load to avoid leaking originals where we shouldnt, #977 commit
  • updating rotationX and rotationY now correctly updates direction3D #924 commit

perf

  • optimise A* pathfinding performance commit

refactor

test

  • added matrix 3x3 test (#1258) commit
  • added missing Mat22 tests commit
  • added initial SweepTest commit
  • added initial DistanceTest commit
  • added initial DistanceProxyTest commit

Contributors

Full Changelog: https://github.com/AlmasB/FXGL/compare/17.2...17.3

17.2

1 year ago

Auto-generated changelog

build

  • kotlin 1.5.32 -> 1.6.0 commit

docs

  • Add Chinese README file (#1186) commit

feat

  • the languages menu now displays the name in the target language, related to #1170 and #1172 commit
  • NotificationService now also accepts Node icon, closes #1149 commit
  • added WaypointMoveComponent which moves the entity based on Point2D, related to #980 commit
  • Input UserAction now provides API for double key/button presses commit
  • trigger listener now supports direct onKey and onButton callbacks which are triggered before the generic onAction callbacks, closes #1070 commit
  • Viewport::bindToFit for entities is now restored, closes #1036 commit
  • FrameData now supports offsets, closes #1181 commit
  • allow access to viewport camera entity via public API, closes #1168 commit
  • added support for Tiled 1.9.0 class property, #1182 commit
  • RechargeableDoubleComponent also has the value in percentage format as a binding commit
  • added KeepInBoundsComponent, fixed KeepOnScreenComponent, closes #842 commit
  • translate animation builder will use current position if from is not set commit
  • added EventBus.removeAllEventHandlers, #1160 commit

fix

  • FPS camera now works even when mouse buttons are pressed, closes #1189 commit

refactor

  • removed redundant onClick() since kotlin now properly reads Consumer<>, closes #1188 commit
  • use joints array size to track joint count commit

17.1

2 years ago

Auto-generated changelog

build

  • javafx 17.0.0.1 -> 18 commit
  • gluon attach 4.0.9 -> 4.0.13 commit
  • junit jupiter 5.7.0 -> 5.8.2, junit platform 1.7.0 -> 1.8.2 commit
  • nexus staging 1.6.7 -> 1.6.8 commit

docs

  • clarified that angle is in radians commit

feat

  • added atDestinationProperty() to AStarMoveComponent, closes #945 commit
  • added QuestService.removeAllQuests() commit
  • added DSL API for world variable changes commit
  • startCutscene() now accepts an extra onFinished param, closes #1156 commit
  • added support for box2d prismatic joint commit
  • DialogService error dialogs will no longer show LOG button since these are for expected exceptions handled by dev, closes #1119 commit
  • added DSL support for loading common assets from URL, closes #971 commit
  • Tiled 1.4.2 support commit
  • .tmx level loader now supports polyline objects, closes #1133 commit
  • TransformComponent can bind its translate X Y Z to another TransformComponent commit

fix

  • removing a ChoiceNode option now correctly disconnects the attached edge, closes #1122 commit
  • setting NotificationService background and text color now correctly updates the view, closes #1143 commit

refactor

  • use Array to store Joints instead of manual linked list commit
  • refine Quest API commit

test

  • improved test coverage for Inventory commit
  • added basic world non-null assertion for broadphase commit

17

2 years ago

Auto-generated changelog

build

  • 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 -> 17.0.0.1, closes #1107 commit

docs

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

feat

  • 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

fix

  • 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

refactor

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

repo

  • ignore auto-generated changelog files commit

11.17

2 years ago
  • Added download file API to NetService
  • Rotation and scale in 3D now support origin points (pivot points)
  • Added a setting that allows music to be paused when the game is minimized, paused by default
  • Added Model3D sample showing how to load .obj models
  • Added JointSample and support for RevoluteJoints from box2d
  • Added fluent API to HearingSenseComponent, thanks to @jo372
  • Updated physics collision sample, thanks to @jo372
  • Ignore and warn during when adding a component during a component update, thanks to @lydianeU
  • Added PropertyMapChangeListener
  • Added replication support for PropertyMap
  • Camera in 3D has a new setting allowing the pitch (rotationX) to be clamped between -90 and 90 deg
  • Multiple superfluous modules merged into few

Bug fixes:

  • AutoRotationComponent smooth now shouldn't make sharp turns

Version bump:

  • jacoco 0.8.6 -> 0.8.7
  • kotlin 1.4.30 -> 1.5.10

11.16

2 years ago
  • Restored and refactored MultiplayerService
  • Added ReplicationEvent (javafx event that can be replicated on a remote machine)
  • FPS camera (camera3D.setFPSCamera(true))
  • Mouse sensitivity setting
  • Removed dependency on javafx.swing module, thanks to @FDelporte
  • Performance improvements in Tiled map loading, thanks to @adambocco
  • isExperimental3D -> 3D
  • isExperimentalNative -> isNative
  • Model3D can be loaded from an .obj
  • Model3D now has a copy()
  • Added Cuboid shape
  • EntityGroup::size(), thanks to @adambocco
  • Allow providing a custom default cursor for all scenes
  • Internal physics refactoring
  • Entity no longer throws an exception when adding a duplicate Component (warns instead), thanks to @Zhack47

Version bump:

  • JavaFX 15 -> 16
  • Compile target for Kotlin: 1.8 -> 11

11.15

3 years ago
  • Custom 3D shapes
  • Allow users to set render width/height when running in embedded mode
  • Game world is less aggressive and warns the user instead when an illegal operation is attempted
  • Added cutscene text format: cutscenes can have author names and images
  • Internal refactorings for physics code
  • Significant performance improvements for collision checks where both entities are at 0 rotation
  • Merged standalone modules
  • Logger prints full stack trace for caught exceptions
  • Draft API for downloading files
  • Screenshot key is now CTRL+8 to avoid issues with P
  • Bug fixes related to mouse UI coordinates
  • Tiled tile flipping support, thanks to @adambocco
  • Initial draft of SenseAI
  • Initial draft of fxgl editor
  • jackson 2.11.1 -> 2.12.1

11.14

3 years ago
  • Major internal refactoring of physics (both light and heavy-weight). Please check your physics related code behaves the same
  • Significantly improved physics performance of collision detection when at least one entity is at non-zero rotation
  • Added experimental embedded mode support, where FXGL can run inside a JavaFX application natively via a Node
  • AssetLoader can now load from any URL, thanks to @sormuras for discussions
  • Added loadJSON() to asset loader
  • Renamed master branch to release to clearly represent branch purpose
  • All of CI is now on GitHub Actions
  • Inventory feature improvements, thanks to @adambocco for PRs
  • Kotlin: 1.4.10 -> 1.4.30

Bug fixes:

  • Fixed a bug in event handling for Input. Now filters and handlers behave a similar way to JavaFX
  • Fixed a bug that would case loop runner to speed up after pause / delay / resume sequence