Releases: fastjengine/FastJ
FastJ 1.7.0-SNAPSHOT-2
- add support for .ogg and .mp3 sound by @lucasstarsz in #245
Full Changelog: 1.7.0-SNAPSHOT-1...1.7.0-SNAPSHOT-2
FastJ 1.7.0-SNAPSHOT-1
Most Notable Changes
- updated minimum Java version to 18
- New camera and scene examples
- Reduced verbosity of using
SimpleManager
,SceneManager
,Behavior
, andScene
- deprecated
drawableManager
andinputManager
public access -- use method access instead - fixed tons of concurrency issues
- fixed bug forcing users to destroy game objects/ui in
unload
of scenes - separated game loop into highly customizable system
- added unified events system
- migrated input system to new events system
- migrated sprite animation system to new events system
- replaced
runAfterRender
andrunAfterUpdate
withrunLater
inFastJEngine
- minor improvements to sprite animation system
- shortened
Animation
toAnim
in a number of cases
- shortened
- added games made using FastJ
- added lots of missing documentation
Engine Developer Changes
- combined GitHub Actions scripts into one yml file
- bumped spotless to version 6.9.0
- bumped gradle version to 7.5.1
- bumped slf4j version to 2.0.0-alpha7
- updated source code contribution guidelines
- modified spotless configuration
See More
What's Changed
- Fix PR branch checks by @lucasstarsz in #198
- Add Delta Time by @lucasstarsz in #199
- Remove all input event tests by @lucasstarsz in #200
- Add late-behavior initialization by @lucasstarsz in #201
- Add static lighting game object by @lucasstarsz in #202
- Curve support for Drawables by @lucasstarsz in #203
- (#10, #109) add support for curves in DrawUtil#lengthOfPath by @lucasstarsz in #204
- Create Polygon2D from Path2D, bugfix on DrawUtil#lengthOfPath by @lucasstarsz in #205
- (#119) include example links in feature list by @lucasstarsz in #206
- (#108) Added general/sprite animation engine by @lucasstarsz in #207
- renamed BetterSprite2DBuilder to Sprite2DBuilder by @lucasstarsz in #208
- Generalized tagging system by @lucasstarsz in #209
- Bump com.diffplug.spotless from 5.16.0 to 6.5.2 by @dependabot in #197
- Bump slf4j-api from 2.0.0-alpha5 to 2.0.0-alpha7 by @dependabot in #190
- Bump slf4j-simple from 2.0.0-alpha5 to 2.0.0-alpha7 by @dependabot in #189
- Customizable Game Loop, Event Pipeline & Engine Integration by @lucasstarsz in #211
- too many bug fixes by @lucasstarsz in #212
- (#213) set first timer delta value to zero by @lucasstarsz in #214
- general changes by @lucasstarsz in #216
- Bump com.diffplug.spotless from 6.5.2 to 6.6.1 by @dependabot in #215
- always log exception, only close game engine from display event after render by @lucasstarsz in #217
- README: Fix error in Hello World Code by @billyeatcookies in #219
- add missing module exports for animation events by @lucasstarsz in #220
- (#218) fix issue where FastJEngine#getFPSData returns the wrong value by @lucasstarsz in #221
- add links to Stack Attack by @lucasstarsz in #222
- The rest of 1.7.0 by @lucasstarsz in #232
- Tooling Update by @lucasstarsz in #235
- fix misaligned commits by @lucasstarsz in #236
- remove double init by @lucasstarsz in #237
- improve readme formatting, update with newer information by @lucasstarsz in #238
- Improve animation generics, Improve code formatting with java 18, custom docs css by @lucasstarsz in #239
- increase timer on run later tests by @lucasstarsz in #240
- update jdk version in jitpack.yml by @lucasstarsz in #241
- Bump slf4j-api from 2.0.0-alpha7 to 2.0.0-beta1 by @dependabot in #233
- bump to 1.7.0 snapshot 1 by @lucasstarsz in #242
Full Changelog: 1.6.0...1.7.0-SNAPSHOT-1
FastJ 1.6.0 - Pivot Point to Success
FastJ 1.6.0 - Pivot Point to Success
The beginnings of ideas for the next iteration of FastJ, 1.6.0! With almost 270 commits since 1.5.1, FastJ has been able to grow substantially! Thanks to all of our contributors this time around! β€οΈ
Examples have Moved!
Examples are now visible from the root directory of the FastJ project -- the examples
folder! Check them out.
Plans for the Future
Based on the direction I'm seeing the engine's current code architecture (or lack thereof) head, it's time we hunker down and completely redesign FastJ. As a result of this and lack of time, unfortunately not much effort can be put into 1.6.0's release and information surrounding it.
We're planning to rebuild FastJ from the ground up.
We would love your help in bringing FastJ into a much more cohesive state of being. Join the discord server and help us decide the architecture and features to be brought with us into the next version of FastJ. We're doing this right now (as of February 17, 2022). Bring your experience, your opinions, your ideas for the future.
Thank you for your time.
What's Changed
- (#104) add X11 to list of supported hardware accelerations by @lucasstarsz in #105
- Remove Translation from setMetrics by @lucasstarsz in #107
- Images, Sprites, Animations, and a whole lot more by @lucasstarsz in #117
- Update README for update on Animation Support. by @Sammie156 in #118
- [Documentation] Added package-info documentation for (most) packages by @YeffyCodeGit in #112
- Add set(int) method for both Point classes. by @Sammie156 in #121
- Update feature request issue template by @YeffyCodeGit in #126
- Logging Implementation for FastJ with SLF4J(Simple Logging Facade for Java) by @Sammie156 in #125
- Add logging (SLF4J), add engine configuration, change examples module into subproject by @lucasstarsz in #127
- revamped display system by @lucasstarsz in #124
- updated image support status, latest FastJ version by @lucasstarsz in #135
- fixed package definitions, updated main module description by @lucasstarsz in #134
- fixed display resizing by @lucasstarsz in #136
- updated display event logging with formatting, migrated to debug/trace by @lucasstarsz in #137
- Fix sprite2d constructor by @lucasstarsz in #140
- Add dependabot to repo by @lucasstarsz in #144
- Bump org.sonarqube from 3.1.1 to 3.3 by @dependabot in #145
- Update dialog config by @lucasstarsz in #152
- updated readme project template links by @lucasstarsz in #151
- Fix audio example, finish implementing logging example by @lucasstarsz in #150
- Add Spotless code formatter by @YeffyCodeGit in #153
- Add ObjUtil and MtlUtil unit tests by @lucasstarsz in #154
- add/subtract/multiply/divide overloads, origin vectors, unit vectors, and direction vector functions by @lucasstarsz in #155
- remove redundant BasicStroke equals option by @lucasstarsz in #156
- Patch headless errors by @lucasstarsz in #157
- add distance formula to Point/Pointf by @lucasstarsz in #158
- (resolves #159) move static imports in Spotless to the bottom of the list by @lucasstarsz in #160
- Improved mouse events, unified input events by @lucasstarsz in #161
- (#162, #163) bump slf4j and junit dependencies to latest versions by @lucasstarsz in #164
- Update uses of logger to use formatted strings by @YeffyCodeGit in #169
- Update Project for 1.6.0 by @lucasstarsz in #171
- 1.6.0 by @lucasstarsz in #128
- Update contributing guidelines by @lucasstarsz in #173
- add addScenes function by @YeffyCodeGit in #179
New Contributors
- @dependabot made their first contribution in #145
Full Changelog: 1.5.1...1.6.0
FastJ 1.6.0-SNAPSHOT-3
Most Notable Changes
- SLF4J integration (currently
2.0.0-alpha-3)
in #127 - Fixed dozens of concurrency "random crashes and errors" in #161
- Added
ManagedList
-- a type ofList
with convenient managed list actions via aScheduledExecutorService
to start and stop important list actions at a moment's notice in #161 - Added custom mouse events to match keyboard events in #161
- Added
origin
,unit
, and directional vectors (and more) forPoint/Pointf
in #155 - Deprecated
Point/Pointf.Origin
in commit a961b9 - updated
audio
example with proper resource loading - updated
logging
example with SLF4J content - updated
mouse
example with new mouse event system - added substantial logging to the engine
- more unit tests!
Engine Developer Changes
- Added Spotless integration for import order (and hopefully more things later)
- Added trace-level logging and date/time recording to
test
logging
See More
What's Changed
- (#104) add X11 to list of supported hardware accelerations by @lucasstarsz in #105
- Remove Translation from setMetrics by @lucasstarsz in #107
- Images, Sprites, Animations, and a whole lot more by @lucasstarsz in #117
- Update README for update on Animation Support. by @Sammie156 in #118
- [Documentation] Added package-info documentation for (most) packages by @YeffyCodeGit in #112
- Add set(int) method for both Point classes. by @Sammie156 in #121
- Update feature request issue template by @YeffyCodeGit in #126
- Logging Implementation for FastJ with SLF4J(Simple Logging Facade for Java) by @Sammie156 in #125
- Add logging (SLF4J), add engine configuration, change examples module into subproject by @lucasstarsz in #127
- revamped display system by @lucasstarsz in #124
- updated image support status, latest FastJ version by @lucasstarsz in #135
- fixed package definitions, updated main module description by @lucasstarsz in #134
- fixed display resizing by @lucasstarsz in #136
- updated display event logging with formatting, migrated to debug/trace by @lucasstarsz in #137
- Fix sprite2d constructor by @lucasstarsz in #140
- Update dialog config by @lucasstarsz in #152
- Fix audio example, finish implementing logging example by @lucasstarsz in #150
- Add Spotless code formatter by @YeffyCodeGit in #153
- Add ObjUtil and MtlUtil unit tests by @lucasstarsz in #154
- add/subtract/multiply/divide overloads, origin vectors, unit vectors, and direction vector functions by @lucasstarsz in #155
- remove redundant BasicStroke equals option by @lucasstarsz in #156
- Patch headless errors by @lucasstarsz in #157
- add distance formula to Point/Pointf by @lucasstarsz in #158
- (resolves #159) move static imports in Spotless to the bottom of the list by @lucasstarsz in #160
- Improved mouse events, unified input events by @lucasstarsz in #161
Full Changelog: 1.6.0-SNAPSHOT-2...1.6.0-SNAPSHOT-3
FastJ 1.6.0-SNAPSHOT-2
Most Notable Changes
- added logging system, added engine config, moved example programs in #127
- revamp display system, added dialog system in #124
- (#138) fixed issue with Sprite2D not constructing properly in #140
- more unit tests!
See More
What's Changed
- [Documentation] Added package-info documentation for (most) packages by @YeffyCodeGit in #112
- Add set(int) method for both Point classes. by @Sammie156 in #121
- Update feature request issue template by @YeffyCodeGit in #126
- Logging Implementation for FastJ with SLF4J(Simple Logging Facade for Java) by @Sammie156 in #125
- Add logging (SLF4J), add engine configuration, change examples module into subproject by @lucasstarsz in #127
- revamped display system by @lucasstarsz in #124
- updated image support status, latest FastJ version by @lucasstarsz in #135
- fixed package definitions, updated main module description by @lucasstarsz in #134
- fixed display resizing by @lucasstarsz in #136
- updated display event logging with formatting, migrated to debug/trace by @lucasstarsz in #137
- Fix sprite2d constructor by @lucasstarsz in #140
Full Changelog: 1.6.0-SNAPSHOT-1...1.6.0-SNAPSHOT-2
FastJ 1.6.0-SNAPSHOT-1
Merge pull request #118 from Sammie156/main (@Sammie156) Update README status on Animation Support.
FastJ 1.5.1 - Audio from Java URLs
FastJ 1.5.1 - Audio from Java URLs and More!
FastJ 1.5.1 has been released, with 80 new commits since FastJ 1.5.0. This version of FastJ contains bug fixes, new features, new examples, and more! Read on to find out what's new.
New Example Programs
2 new example programs have been added to FastJ: Simple Audio and Behaviors! Check them out below:
- FastJ Audio -- Simple Audio Playing/Loading in FastJ
- Behaviors -- Behaviors in FastJ
Replace Issue Templates with Issue Forms
All of FastJ's issue templates have been replaced with GitHub's issue forms. Check them out here!
Audio from Java URLs
Loading/Playing Audio with FastJ can now be done using java.net.URL
, enabling easy use of sound files contained in a jarfile through the ClassLoader
.
Added Missing Keyboard Improvements Section to 1.5.0
It seems that I forgot to cover the improvements made to FastJ's keyboard system in the 1.5.0 release. Sorry! Go check it out to see what's up.
General Changelog
Additions
- Added explicit methods to manage behaviors/keys pressed in
LogicManager
initBehaviors
-- requests that theLogicManager
initialize its behaviorsupdateBehaviors
-- requests that theLogicManager
update its behaviorsprocessKeysDown
-- requests that theLogicManager
process keys pressed downBehaviorManager.destroyListenerList
for destroying the behaviors of anyBehaviorHandler
's behavior listener listBehaviorHandler.destroyBehaviorListeners
for calling theBehaviorManager
's behavior destroying method
Breaking Changes
- (by @Sammie156, PR #72) Renamed
SupportedFileFormats
toSupportedModelFormats
SceneManager
no longer handles input at the update() stage. All input dealt with inSceneManager
will be called beforerender()
SceneManager
behavior initialization now occurs after background adjustments and scene initialization
Bug Fixes
- (#96) Fixed issue where
LogicManager
did not initialize, update, or destroy behaviors - Fixed issue where
LogicManager
did not act on keys pressed down - (#99) Added behavior destroy calls to both
SimpleManager
andScene
classes'reset
methods
Other Changes
- (by @SaadRehmanCS, PR #71) include default case in
AudioEventListener.AudioEventProcessor
switch statements which throwsIllegalStateException
- (by @Sammie156, PR #80) removed unnecessary casts in
Gradient.java
andPoint.java
- (by @Sammie156, PR #84) removed more unnecessary casts in
Point.java
andMemoryAudioPlayer.java
- (internal) Replaced
update/init/renderCurrentScene
methods withsafeUpdate/Init/Render
methods, respectively - (internal) Reorganize unit tests to match main package structure
- (internal) Added unit tests to cover loading/playing audio with URLs
- (internal) Added unit tests to cover unloading multiple audio files at once
FastJ 1.5.0
π FastJ 1.5.0 Release π
FastJ 1.5.0 is finally here! With over 300 commits from 7 contributors, the FastJ game engine has grown in maturity and gained new skills.
This version of FastJ includes a revamped Drawable system with gradients and outlines support for polygons, more logic manager options, better keyboard input support, the addition of an audio engine, and much much more! Read on to find out what's new.
Discord Server
I'm proud to announce that the FastJ Discord server is now open -- join here!
New Example Programs
With the popularity and feature list of FastJ growing, 13 new example programs have been added! They cover a range of topics like getting started, engine configuration, keyboard and mouse inpuut, text, polygons, models, scenes, and more.
Examples Source Code
- Hello, FastJ -- Creating a Window in FastJ
- FastJEngine Logging -- Logging information and errors in FastJ
- FastJEngine Configuration -- Configuring FastJ's FPS, UPS, and viewer/game window size
- Polygon2D -- Creating and using
Polygon2D
objects (polygons) in FastJ - Text2D -- Creating and using
Text2D
objects (text) in FastJ - Model2D -- Creating and using
Model2D
objects (models) in FastJ - Model File Read/Write -- Reading and writing
Model2D
objects from/to files in FastJ - Display Rendering Settings -- changing a
Display
's global rendering settings - Behaviors -- Modifying
GameObject
s with behaviors. - Keyboard Input -- Getting keyboard input in FastJ
- Mouse Input -- getting mouse input in FastJ
- Scenes -- Scenes in FastJ
Furthermore, the following examples have been removed:
- "Hello World!" has been removed, in favor of "Hello, FastJ!"
Code Improvements
The full list of new things in FastJ is so long, I couldn't possibly put it all here! Instead, I'll link you to the full post on the FastJ website.
FastJ 1.5.0-SNAPSHOT-2
reordered imports
FastJ 1.4.0 - The "Apparently Math Exists" Update
This isn't a very glamorous update, but it is an essential one. FastJ has been equipped with several useful mathematical methods in order to ease the amount of work that programmers would need to do to create simple games.
...In other words, FastJ's pretty tough to use without these π
That being said, these updates constitute a satisfactory base that can be further built upon.
Other News
Sonarcloud Code Coverage
You may have noticed a shiny new badge on the README! FastJ now makes use of Sonarcloud for code coverage, code smells, and other various helpful code analyses.
Code Style Consistency
I had some extra time while working on this game engine, so I meticulously worked to improve the documentation style and code style. With this update, the code for the library is (hopefully) much more consistent and readable.
New Additions
Maths.java
- Added
Maths#lerp
for basic linear interpolation (by @YeffyCodeGit)
Point.java
- Added
java.awt.Dimension
conversion/equality checking - Added integer/float
magnitude
methods - Added
square magnitude
,dot product
,cross product
,normalize
methods - Added static/object-based, integer/floating-point
angle
,signed angle
, androtate
methods
Pointf.java
- Added
magnitude
methods - Added
square magnitude
,dot product
,cross product
methods - Added static/object-based
normalize
,angle
,signed angle
, androtate
methods
Display.java
- Moved all
GraphicsEnvironment
-related static methods toDisplayUtil.java
FastJEngine.java
- Added
FastJEngine#runAfterUpdate(action)
method to run actions after the next completedLogicManager#update
.
Bug Fixes
- Fixed issue where some
Executors
were not stopped upon exiting the engine, preventing applications from being able to close.
Internal Changes
Display.java
- Broke fullscreen methods into reusable chunks for better readability/use
InputManager.java
- Replaced use of specific methods for input (keyboard, mouse) events with general methods and mappings of specific actions.
- See details in #14
- Lowered floating-point accuracy requirement (
Maths#FloatPrecision
) to 4 digits
Breaking Changes
- Changed all methods using UI elements referring to
GUIObject
to useUIElement
. - Changed all
enum
s to use PascalCase instead of CONSTANT_CASE.
Other
- Removed public modifiers on unit tests/unit test classes
- Added a second (WIP) example program -- a simple bullet hell game