Releases: gurkenlabs/litiengine
Releases · gurkenlabs/litiengine
Rendering and GUI improvements v0.4.7-alpha
Fixes
- A ton of code smells and maintainability issues were fixed in this release (LITIengine quality gate)
- Fixed an issue with the SoundEngine causing a ArgumentNullException when music was stopped while no music was set
- Fixed an issue with the focused entity of the camera requiring an individual handling when calculating its viewport location -> this was only a result of the the gameloop having a lower updaterate than the renderloop which causes flickering because the position of entities was not updated as often as it was rendered
- Fix issue with looping sounds -> Sounds are now properly restarted after the initial playback if they need to be looped
- Fixed an issue that was caused when setting entity locations without the game being initialized.
- Fixed an issue with inactive
Lights
being considered when building the ambient light
Features / Improvements
- Adjusted the
Mouse
to also throw the mouse moved event when manually adjusting the mouse - Added overload to get custom keyframes by
Spritesheet
- Added restart method for an animation which just sets the frame to the start frame
- The default
AnimationController
implementation is now using the memory cache when retrieving the current sprite - Extended the
AnimationController
by some overload constructors that allow to create an simple AnimationController for a spritesheet - Extended the string resource to support language files that are encoded in UTF-8
- Added a flag to the game that allow to check whether the game has been started
- Improved the
ScreenManager
by only applying the screen switch delay when the game has already been started (and therefore allow to define which screen to display first) - Extended the
Camera
with the possibility to clamp the camera to the boundaries of the map - Extended the
Map
to allow iterating allMapobjects
- Extended the
SoundEngine
to allow setting a callback for the listener location - Implemented the possibility to toggle
Lightsources
without the need for any additional programming: it is possible to just send a "toggle" message to any light and set the lights map-id in the target list of a trigger - Issue #9 Implemented propert support for resolutions
- Implemented support for a animation based emitter
- Extended the
CollisionEntity
interface to provide the center point of the entity's collision box - Extended the
Emitter
class to provide a finished event - Extended the
IMovementController
to provide a moved event - Implement the possibility to properly set and retrieve the active state of a
Light
- Introduced a new method that allows to get the mapobjects of a certain type from a MapObjectLayer
- Issue #30 Extended the
IKeyboard
interface to allow registering for individual keyboard events - Issue #22 Implemented enabled property for GuiComponent
- Issue #20 Implement support for horizontal and vertical alignment of image components
- Issue #21 Implement support for image scaling for the ImageComponent
Changes
- Improved the particle constructor by removing some parameters and changing the setters such that they return the particle instance to allow chaining the them
- Introduce a new constant class
GameDirectories
that holds all the static game directories because they are not intended to be changed and were part of theGameInfo
which was a bit weired - The
Camera
can now be directly accessed viaGame.getCamera()
instead ofGame.getScreenManager().getCamera()
because actually it is more convenient that way - Issue #29 Implement
Appearance
objects to collect all visual properties ofGuiComponents
->With this change, it is also possible to globally set default properties for the appearance with the static GuiProperties class - Refactored the multiple redundant Valign and Align implementations
Misc
- The litiengine is now available on the Maven Central Repository
Code quality & core improvements v0.4.6-alpha
Fixes
- Issue #11 Ensure that font styles are set recursively to gui components and their childs.
- Issue #15 Fix issue that caused props to flicker when first being rendered.
- A lot of general bug fixes and improvements
- Fix an issue with the collision entity not updating its collison box when height or width were adjusted seperately.
- Fix issue with the KeyboardEntityController's strange behavior on different update rates.
- Fixed around 400 style issues that were detected after first installing sonar qube
Features / Improvements
- Issue #5 Enhance the usage of custom keyframes from the sprites.info.
- Issue #8 Support for Spawnpoints is now consistent
- Issue #13 Improve map and gamefile serialization by removing elements that hold no information.
- Issue #14 Improve the ScreenManager by reducing FPS when the main jframe gets iconified or lost the focus to save system resources.
- Issue #16 Change the indentation of the output xml for GameFile and Map serialization.
- Issue #19 Display debug bounding boxes for GUI components
OffensiveAbility
is now part of the engine- Implement possiblitly to remove images from the cache by regex.
- Implement the possibility to define props as obstacles which adds their collision boxes to the static collision boxes in the physics engine.
- Extends the TriggerEvent to allow access to the actual Trigger.
- Add missing getters for width and height for
IMapObject
- Extend the map with the possiblitly to retrieve the mapobjectlayer for a specified map object.
- Added string localization support
- Gamepads and KeyBoard now use the same update loop.
Changes
- Issue #17 Improve the intercompatibility of the litiengine map xml output with the original mapeditor xml output. -> Adjusting some fields from double to int
AIController
has been renamed toAIBehavior
- Inventory system is no longer part of the engine
- Reorganize util namespace
GameConfiguation
interface has been changed from static fields to methodsInput
interface has been changed from static fields to methods
Misc
- Source code quality is now enforced by sonarqube
- Started to add unit tests to the project
Performance & Bugfix Release v0.4.5-alpha
Fixes
- Issue #1 Fixed issue with emitters not restarting properly
- Issue #4 Moving around lights in the editor caused Memory leak
- Fixed issue that entities get sometimes stuck even when they cannot collide with each other
- Fixed issue with ArrayOutOfBound Exception that periodically occured while rendering the map
- Fixed bugs that caused caused games not to run properly from a jar file
- Fixed issue with non available font "Arial" on Mac and Linux systems
Features
- Issue #6 Re-introduced cache for static tiles during map rendering process
- Extended environment to allow retrieving entities by class type
- Maps now properly support the name property
- Implemented support to remove multiple entities at once from the environment
- Added possibility to adjust OvalOutlineParticles' Stroke
- Added support for additional buttons to control an an entity with the keyboard controller
- Made gamepad support optional in order to prevent unnecessary threads and calls
- Implemented the possibility to adjust the execution time of registered timed actions on the game loop
Changes
- static shadows are no longer calculated through collision boxes. new MapObjectType "STATICSHADOW" is responsible for this
- Changed the game version to be a string instead of a float value
First Alpha Release v0.4-alpha
This release is the initial LITIengine release available to the public after the port to GitHub. Still a lot of implementation and documentation (!) to do.
The environment builder tool utiLITI is currently not included but the engine itself is functioning and can already be used to make some games.
Get information on how to get started with the engine HERE