LÖVE + Lua
A code-led 2D workflow with Lua and LÖVE: write the game loop and systems yourself, with rendering, input, audio, and physics APIs supplied by the framework.
Sources verified Sep 2026
When to use it
- The game is 2D and the developer wants to work primarily in Lua
- A small team prefers source files and its own architecture to a visual scene editor
- Desktop release is the initial target and packaging can be tested early
How the pieces fit
LÖVE supplies graphics, audio, input, and physics APIs; Lua modules hold your game state and rules. Use love.load for setup, love.update for simulation, and love.draw for presentation. Keep simulation timing deliberate and avoid tying movement to frame count. Organize assets and levels in your own format, then package and test the game with the matching runtime. This is Lua development, distinct from Roblox's Luau and hosted services.
Tools and responsibilities
Architectural examples
Each example links to a public source — no claims about private internals.
Mari0
The public repository contains Lua source using LÖVE callbacks. A historical source example; do not assume it runs unchanged on the latest runtime.
sourceDuck Marines
The project's main.lua shows a LÖVE-based game with update and draw callbacks. A historical code example, not a current packaging template.
sourceSkip if
Skip if you need a visual scene editor, 3D, or an official browser or console export workflow.