Skip to content

Releases: gurkenlabs/litiengine

Rendering and GUI improvements v0.4.7-alpha

01 Oct 11:28
Compare
Choose a tag to compare

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 all Mapobjects
  • 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 the GameInfo which was a bit weired
  • The Camera can now be directly accessed via Game.getCamera() instead of Game.getScreenManager().getCamera() because actually it is more convenient that way
  • Issue #29 Implement Appearance objects to collect all visual properties of GuiComponents ->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

Code quality & core improvements v0.4.6-alpha

09 Sep 23:05
Compare
Choose a tag to compare

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 to AIBehavior
  • Inventory system is no longer part of the engine
  • Reorganize util namespace
  • GameConfiguation interface has been changed from static fields to methods
  • Input 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

28 May 19:18
Compare
Choose a tag to compare

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

11 Apr 23:46
Compare
Choose a tag to compare

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