A comprehensive Lua utility library that extends the standard library and provides common algorithms and data structures for game development.
Batteries is a Lua library that extends the standard library and provides a suite of utilities, algorithms, and data structures tailored for game development. It solves the problem of Lua's sparse standard library by offering ready-to-use modules for common tasks, helping developers get projects off the ground faster.
Lua developers, especially those using the LÖVE framework for 2D game development, who need robust utilities without reinventing the wheel.
Developers choose Batteries for its comprehensive coverage of game development needs, minimal footprint, and pragmatic design that reduces boilerplate through optional global exports, all while being fully documented and modular.
Reusable dependencies for games made with lua (especially with love)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Extends Lua's core modules and provides geometry helpers, state machines, and async tasks, covering many common needs in game development as outlined in the module overview.
The entire library is around 100KB uncompressed and can be stripped down, making it lightweight for performance-sensitive games.
All documentation is in code comments, ensuring it stays up-to-date and is easily accessible through editor tools, as stated in the README.
Offers an export function to make modules global, reducing boilerplate and simplifying usage, which is strongly encouraged in the FAQ for ease of use.
The author is open to collaboration, available on Discord, and encourages pull requests, fostering a supportive ecosystem for contributions.
Operates on a rolling-release model with breaking changes admitted in the FAQ, making it unreliable for projects requiring long-term stability without careful update management.
Documentation is primarily inline with examples in a separate repo, which can hinder quick learning and reference for those preferring standalone docs.
The encouraged use of global exports can conflict with projects that enforce strict no-globals policies, leading to potential naming clashes and maintenance issues.
Some modules, like vec3 and intersect, are admitted to be under-polished or work-in-progress in the TODO section, affecting reliability for critical spatial calculations.