explaingit

love2d/love

8,299C++Audience · developerComplexity · 3/5Setup · easy

TLDR

A free, open-source framework for making 2D games with Lua, a simple scripting language, that runs on Windows, macOS, Linux, Android, and iOS without needing to compile anything for most users.

Mindmap

mindmap
  root((LOVE2D))
    What it does
      2D game framework
      Lua scripting
      Cross-platform
    Features
      Graphics rendering
      Audio playback
      Input handling
    Platforms
      Windows and Mac
      Linux
      Android and iOS
    Community
      Wiki tutorials
      Discord server
      Active forums
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build and ship a small 2D game to Windows, macOS, Linux, Android, and iOS from a single Lua codebase.

USE CASE 2

Prototype a game idea quickly using built-in graphics, audio, and input functions without complex engine setup.

USE CASE 3

Learn game development fundamentals by following community tutorials and running example projects from the LOVE wiki.

Tech stack

C++LuaSDL3OpenGLOpenALVulkan

Getting it running

Difficulty · easy Time to first run · 30min

Download the official binary for your platform and run Lua scripts directly, no compilation needed for Windows, macOS, or Linux.

In plain English

LOVE (stylized with an umlaut as LOVE) is a framework for making 2D games using Lua, a lightweight scripting language. It is free and open-source, and the same code you write will run on Windows, macOS, Linux, Android, and iOS. The project has a stable release track, a wiki-based documentation site, active forums, a Discord server, and a subreddit community. The framework provides functions for drawing graphics, playing audio, reading input, and managing game state, all controlled through Lua scripts you write. You do not need to compile anything to get started on most platforms: official binary downloads are available on GitHub, and the project website links to the latest release. For those who want to try the latest unreleased work, nightly and unstable builds are also available. LOVE's source code is written in C++ and depends on several well-known libraries for rendering (SDL3, OpenGL, Vulkan, Metal), audio (OpenAL), text shaping (FreeType and HarfBuzz), and media playback (Vorbis, Theora, ModPlug). You only need to care about this if you are building the framework from source. Building follows different steps depending on your platform: Windows uses a companion repository called megasource, Linux uses CMake, and Apple platforms use an Xcode project with a separately downloaded set of prebuilt dependencies. The project includes a full test suite that covers all LOVE APIs in the same style a game developer would use them. Contributions are welcome through pull requests and the issue tracker, though the maintainers explicitly do not accept contributions made with AI or generative AI tools. If you want to make a small 2D game without dealing with complex engine setup, LOVE is a practical choice. Lua is readable and approachable for beginners, the framework is well-documented, and the community has published many tutorials and example projects on the wiki.

Copy-paste prompts

Prompt 1
Create a LOVE2D Lua script that draws a player as a rectangle, moves it with arrow keys, and bounces a ball around the screen.
Prompt 2
Show me how to load and play background music and a sound effect in a LOVE2D game using love.audio.
Prompt 3
How do I structure a LOVE2D game into scenes so I can switch between a main menu, a gameplay screen, and a game-over screen?
Prompt 4
Write a LOVE2D example that loads a sprite sheet, plays a walking animation, and shows the character moving across the screen.
Open on GitHub → Explain another repo

← love2d on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.