LITIengine is a 2D game library for Java. It is based on Java 8, but we plan to update to a later Java version soon.
LITIengine is currently in Alpha. To find out what that means, please read our Roadmap.
LITIengine does not collect any user data via telemetry. However, if you register on our forum or subscribe to our newsletters, some of your information will be stored safely on our servers. We guarantee that your data is only used for the purposes you agreed with.
With LITIengine, you can create games for Windows, Linux, and MacOS
LITIengine is made for anyone interested in creating 2D computer games with Java. Simple in nature, it is easy to pick up, yet powerful enough for creating massive worlds.
We think that if you are a relatively inexperienced Java developer seeking to create your first Java game, LITIengine might be the most hassle-free experience for you.
If you are looking for a Java game engine able to deploy to mobile devices and browsers, LITIengine is unfortunately not your tool of choice.
Professional game developers experienced in using other engines might find LITIengine's capabilities a bit limiting, but we encourage you to request missing features via GitHub issue.
LITIengine does not implement bindings for OpenGL or other graphics processing APIs. Hence, the CPU load is increased compared to other java game libraries, while the potential of GPU acceleration stays unexhausted. Most performance issues occur due to CPU-heavy computations (e.g. updating too many particles or scaling lots of images at once). Memory issues, on the other hand, occur rather rarely. While LITIengine per se runs on very low system specs, we have sometimes encountered poor performance when playing our previous games with older PCs, depending on the complexity of the game.
Sure you can make a LITIengine game without using the editor. We've done that in the past and the editor is not a required piece in the development workflow. The main functionality of the utiLITI editor is to provide a convenient UI to position and configure
Entities in your maps and to ultimately provide a resource bundle for your game to simply load with a oneliner: e.g.
Resources.load("game.litidata"). Without such a resource bundle, you need to explicitly load all your resources from code using the
Entities in the LITIengine can be loaded from
MapObjects, an alternative way to get things done is to directly add them in the Tiled editor and provide the required
MapObjectProperties if you want to use the engine's entity framework. This was, by the way, the workflow we went with before we had the editor. So you could say that the editor basically evolved from that. Everything that you see in the editor can also be done directly in code though, so if you want, you can totally skip the editor entirely, although it's not recommended.
Entitiesdon't necessarily have to originate from
MapObjects, you can also add them to your
GameWorld directly from code.