Changelog LITIengine v0.4.17-alpha

This release comes with a ton of improvements for the utiLITI editor which have been implemented in preparation for LDJAM 44.


  • #249 Fixed an issue that caused the terminating callbacks to be executed after the system was already terminated
  • 7ff4062 5e284be 83e7da3 Fixed rendering of StaticShadows
  • 4cba2a4 Fixed an issue with the SpeechBubble implementation

Features / Improvements

  • 91a81fb Improved the delay() of the loop tick by accounting for the delay error that is inevitably caused by the fact that Thread.sleep uses long instead of double values
  • 012b75d Minor version numbers of Tiled map format releases are no longer considered when checking for version support because they are only used for bugfix releases and have no effect on the .tmx format.
  • b1ca5de Implemented possibility to retrieve a layer by name and ID
  • c7af38a Added methods for text and shape rendering with antialiasing


#243 TMX Overhaul, Part 2

  • All resources except spritesheets are now cached using URLs as keys (they still work with strings)
  • Resources can now be loaded asynchronously
  • Most entities loaded from map objects are now rendered as part of their respective layers
  • Tilesets that use individual images for each tile are now supported
  • Tile types are now supported
  • File custom properties are now supported, though only tentatively
  • Light sources now use an enum for their type
  • Various refinements for several features

Other changes

  • 4fe0e81 Rename collisionboxHeightFactor and collisionboxWidthFactor MapObjectProperties to collisionboxHeight and collisionboxWidthThis might require you to adjust maps created with previous versions of the engine.
  • 4fe0e81 Entities that have a duplicate or invalid ID now get a local map ID
  • 21d2bbc Moved some time related methods from the GameLoop class to the GameTime class (use Game.time()...)
    • 91a81fb Game.loop().getDeltaTime(long tick) has been moved and is now Game.time().since(long tick)
    • 91a81fb Game.loop().execute(...) has been renamed to Game.loop().perform(...) to be consistent with the EntityAction terminology
    • 91a81fb The input loop is no longer a GameLoop and instead “just” a plain UpdateLoop. -> There should only be one GameLoop (that provides enhanced functionality like TimedActions)
  • 4a37838 Renamed the Map class to TmxMap to avoid collisions with java.util.Map
  • d2cb9ba Cleaned up “render entity with layer” feature



  • Fixed a potential exception in the asset tree after closing
  • #240 Fixed issue with cached states of imported maps
  • #246 Fixed issue with the cursor that stopped moving when a menu was open
  • #247 Fixed issue that caused the paste command not to be enabled.
  • #253 Fixed custom panel table cell editor issue.
  • 369056e Fixed issue that caused inconsistent move edit mode
  • 4890d15 Fixed an issue that caused the transform controls not to be rendered properly upon undoing a move command.
  • b673262 Fixed broken map snapshot functionality.

a7d981d Improved utiLITI menus

  • #246 Replaced the AWT menu with a Swing menu.
  • Added a close button
  • Added clear history button
  • Disabled menus and entries that are not available
  • Cleared the entity tree upon closing
  • Reorganized some menu items
  • 628c9f6 Add menu that allows moving entities to other layers.
  • ac84517 Added an “edit” menu.
  • 7818047 Added menu item to center the camera on the current focus
  • 7818047 Added shortcuts to all “Add-Entity” commands. (CRTL-1 -CTRL-9)
  • 4890d15 Removed the toolbar
    The buttons on the toolbar are not really required and can be accessed elsewhere in a more convenient way.

Other Changes

  • Some huge internal code refactorings and improvements
  • 4890d15 Reworked the “MOVE” edit-mode which can now be triggered by clicking the mouse button within the bound of a map object instead of having to press CTRL or manually activate it.
  • 628c9f6 Added option to toggle rendering of entity names.
  • b94433a Improved displaying of severe log messages
  • 34582a8 Added possibility to focus the map center with the camera.
  • 628c9f6 The entity’s layer is now displayed in the UI
  • 1d9dc34 Implemented “selectAll” and “deselect” commands
  • 4266a76 Implemented possibility to revert all changes on a project
  • f9370bc Update mapobject list when ids are reassigned
  • ad265eb Implemented the possibility to set the RenderType of an entity


  • The source code of the LITIengine is now citable for academic use via zenodo: