ConfigsJul 4, 2026·3 min read

LOVE — Free 2D Game Framework Powered by Lua

A free, open-source 2D game framework for Lua that provides graphics, audio, physics, and input handling so you can focus on building your game.

Agent ready

Ready-to-run agent install

This asset can be installed after the agent chooses its runtime, checks the plan, and runs the matching command.

Native · 98/100Policy: allow
Agent surface
Any MCP/CLI agent
Kind
Skill
Install
Single
Trust
Trust: Established
Entrypoint
LOVE Overview
Direct install command
npx -y tokrepo@latest install 57baeeff-77c6-11f1-9bc6-00163e2b0d79 --target codex

Run after dry-run confirms the install plan.

Introduction

LOVE (also written as Love2D) is a free, open-source framework for making 2D games in Lua. It handles rendering, audio, input, and physics through a clean API, letting game developers write game logic in Lua without dealing with low-level engine plumbing.

What LOVE Does

  • Provides hardware-accelerated 2D rendering with sprites, shapes, and shaders
  • Includes a complete audio system for music playback and sound effects
  • Integrates Box2D physics for rigid body simulation and collision detection
  • Handles keyboard, mouse, touch, and gamepad input through callback functions
  • Packages games as standalone executables for Windows, macOS, and Linux

Architecture Overview

LOVE is written in C++ and exposes its subsystems to Lua through a module-based API. The main loop calls user-defined love.update and love.draw callbacks each frame. Subsystems include love.graphics (OpenGL-backed rendering), love.audio (OpenAL-backed sound), love.physics (Box2D wrapper), and love.filesystem (sandboxed file access). Each module operates independently and can be used selectively.

Self-Hosting & Configuration

  • Install via package managers (Homebrew, APT, Chocolatey) or download from the website
  • Create a main.lua file defining love.load, love.update, and love.draw callbacks
  • Run your game with the love command pointing to your project directory
  • Configure window settings in a conf.lua file for resolution, fullscreen, and vsync
  • Distribute by zipping your Lua files into a .love archive or fusing with the LOVE binary

Key Features

  • Immediate-mode 2D rendering with sprite batching, canvases, and GLSL shaders
  • Built-in Box2D physics with joints, fixtures, and collision callbacks
  • Cross-platform support for Windows, macOS, Linux, iOS, and Android
  • Hot-reloadable Lua scripts for rapid iteration during development
  • Active community with extensive libraries for UI, networking, ECS, and more

Comparison with Similar Tools

  • Pygame — Python-based; simpler but less performant and no built-in physics engine
  • Raylib — C library with many bindings; lower level with more manual setup required
  • Godot — full game engine with editor; heavier but supports 3D and visual scripting
  • Ebitengine — Go-based 2D engine; statically typed but smaller ecosystem and no built-in physics

FAQ

Q: What version of Lua does LOVE use? A: LOVE uses LuaJIT, a high-performance JIT compiler compatible with Lua 5.1.

Q: Can I make 3D games with LOVE? A: LOVE is designed for 2D. Basic 3D is possible through shaders and custom mesh rendering, but a 3D engine would be more appropriate.

Q: How do I distribute my game? A: Zip your project into a .love file, or fuse it with the LOVE binary to create a standalone executable.

Q: Is LOVE suitable for commercial games? A: Yes, LOVE is licensed under zlib/libpng and can be used for commercial projects without restrictions.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets