Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. LÖVE
  3. batteries

batteries

ZlibLua

A comprehensive Lua utility library that extends the standard library and provides common algorithms and data structures for game development.

GitHubGitHub
432 stars32 forks0 contributors

What is batteries?

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.

Target Audience

Lua developers, especially those using the LÖVE framework for 2D game development, who need robust utilities without reinventing the wheel.

Value Proposition

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.

Overview

Reusable dependencies for games made with lua (especially with love)

Use Cases

Best For

  • Extending Lua's core modules with additional functionality
  • Adding object-oriented programming with inheritance and interfaces to Lua
  • Implementing finite state machines for game AI or UI states
  • Performing 2D and 3D vector math in game physics
  • Using functional programming patterns like map and reduce in Lua
  • Managing asynchronous tasks or timers in game loops

Not Ideal For

  • Projects enforcing strict no-globals policies or modular dependency management
  • Teams needing stable, versioned dependencies for long-term maintenance
  • Developers who prefer extensive standalone documentation over inline comments

Pros & Cons

Pros

Comprehensive Game Dev Utilities

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.

Minimal Footprint

The entire library is around 100KB uncompressed and can be stripped down, making it lightweight for performance-sensitive games.

Inline Documentation Resilience

All documentation is in code comments, ensuring it stays up-to-date and is easily accessible through editor tools, as stated in the README.

Pragmatic Global Exports

Offers an export function to make modules global, reducing boilerplate and simplifying usage, which is strongly encouraged in the FAQ for ease of use.

Active Community Engagement

The author is open to collaboration, available on Discord, and encourages pull requests, fostering a supportive ecosystem for contributions.

Cons

Unstable API Risks

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.

Sparse External Documentation

Documentation is primarily inline with examples in a separate repo, which can hinder quick learning and reference for those preferring standalone docs.

Global Namespace Pollution

The encouraged use of global exports can conflict with projects that enforce strict no-globals policies, leading to potential naming clashes and maintenance issues.

Incomplete Module Maturity

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.

Frequently Asked Questions

Quick Stats

Stars432
Forks32
Contributors0
Open Issues3
Last commit1 month ago
CreatedSince 2020

Tags

#functional-programming#open-source#geometry#helper#data-structures#game-development#framework#utility-library#lua-library#lua#game-engine#love2d

Built With

L
Lua

Included in

LÖVE4.3k
Auto-fetched 5 hours ago

Related Projects

lumelume

Lua functions geared towards gamedev

Stars1,238
Forks86
Last commit2 years ago
Simple Tiled ImplementationSimple Tiled Implementation

Tiled library for LÖVE

Stars1,063
Forks137
Last commit2 years ago
knifeknife

A collection of useful micro-modules for Lua.

Stars516
Forks40
Last commit7 years ago
lua-state-machinelua-state-machine

A finite state machine lua micro framework

Stars401
Forks67
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub