Releases: AlmasB/FXGL
Releases · AlmasB/FXGL
11.13
- 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
- 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
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
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):
11.9
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
andNode
, available for all fxgl modules .properties
or any extension with same properties format can be loaded as aPropertyMap
- Redesigned menu architecture: now there are only two menus: main and game, each controlled separately via
settings.setMainMenuEnabled()
andsettings.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
- Most
FXGL.*
calls are implemented asEngineService
for further modular architecture getGameState()
is now a property map of the game world, accessible viaFXGL.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
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
- 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
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
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