Threaded resource loading library for LÖVE game framework to prevent framerate drops during asset loading.
love-loader is a Lua library for the LÖVE 2D game framework that handles resource loading in a separate thread. It solves the problem of framerate drops and gameplay interruptions when loading assets like images, sounds, and fonts from disk by moving blocking I/O operations to a background thread.
LÖVE game developers who need to load multiple resources without interrupting smooth gameplay, particularly those creating games with animations or real-time interactions during loading screens.
Developers choose love-loader because it provides a simple, lightweight solution to a common performance problem in LÖVE games, with minimal API overhead and seamless integration into existing LÖVE project structures.
Threaded resource loading for LÖVE
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Loads resources in a separate thread to prevent blocking the main game loop, ensuring smooth animations and framerate stability during asset loading, as highlighted in the README's philosophy.
Requires just a single Lua file and a call to loader.update() in the game loop, making it easy to add threaded loading to existing LÖVE projects without complex setup.
Provides loadedCount and resourceCount properties for straightforward progress bar implementation, demonstrated in the example code for loading screens.
Handles images, audio sources (static or stream), and fonts with dedicated functions like newImage and newSource, covering common LÖVE asset types efficiently.
Only works with LÖVE 0.9.x, as stated in the README, which can break projects on older or newer LÖVE versions without community updates or forks.
Forces developers to call loader.update() each frame until loading completes, which can clutter game loops and complicate logic in more complex state-based architectures.
Callbacks like loadedCallback and finishCallback lack parameters for error details, making it difficult to diagnose and recover from failed resource loads without custom wrappers.