Awesome Love Game Engine – Massive Collection of Resources

Table of contents
- 3D
- AI
- Animation
- Camera
- Development
- Drawing
- Entity
- Helper Libraries
- Input
- Lighting
- Math
- Music
- Networking
- Object Orientation
- Performance
- Physics
- Platforms
- Publishing
- Serialization
- Shaders
- Testing
- Tweening
- UI
- Utilities
- Tutorials
- IDEs
3D
3D-centric Libraries
- 3DreamEngine – An awesome 3D engine for LÖVE.
- anim9 – 3D skeletal animation library (design to be used with IQM and IQE)
- Brinevector3D – FFI-enabled vector library for 3D (x,y,z)
- bump-3dpd – A 3D collision detection library for Lua.
- IQE – Inter-Quake Export loader (text)
- IQM – Inter-Quake Model loader (binary)
- love-gltf – gltf asset loader and test renderer; Supports skeletal animations and morph targets
- Lovox – Pseudo-3D library for working with voxels
- ss3d – a simple and easy 3d engine for love2d
- model_renderer – a simple 3d model renderer for love2d
AI
Navigation, Decision-Making and AI Libraries
- Jumper – Grid-based pathfinding library
- Lua-star – Easy and pure Lua A* path finding
- astar – An other A* library. Any map(gird, point, mesh or infinite map) and support path cost.
Animation
Animation & Frame-Managing Libraries
- andross – a Lua library for 2D skeletal/bone animations with a Löve backend
- anim8 – Animation library
- animx – A featureful Animation library for loading animations from XML files!
- chiro – Convenience wrapper around Spine
- Peachy – A parser/renderer for Aseprite animations in LÖVE
- skeletor – 2D skeletal animation system
- Walt – Animation library
- Lump – Adobe Flash animation runtime
Camera
Viewport & Camera Libraries
- Brady – Camera library with parallax scrolling
- Editgrid – Gamera and HUMP compatible scaling grid
- gamera – Camera system
- hump.camera – Camera library with window locking and smooth camera movement interpolation
- STALKER-X – STALKER-X is a camera module for LÖVE
Development
Development assisting Libraries, that enrich your development experience
- FPSGraph – Small FPS graphing utility
- debugGraph – Small OO FPS graphing utillity based on FPSGraph
- Lovebird – Browser-based debug console
- LoveDebug – Inline console-like debugger utility
- lurker – Auto-swaps changed Lua files in a running game
- LÖVE API – The complete API documentation of LÖVE in a Lua table
- LÖVE Build – GitHub Action for automated cross-platform builds
- LÖVE TypeScript Definitions – Write LÖVE games with TypeScript
- MakeLove – Automated build creation for your projects, by monitoring changes in real-time (Windows Only)
- boon – A cross-platform build tool for LÖVE
- lovelier – A Love2D live reloader with Moonscript support
Drawing
Drawing specific Libraries, that simplify the Drawing process
- Artal – A .PSD parsing library for LÖVE
- Autobatch – Small LÖVE module to automate the use of SpriteBatches
- center – A simple module to dynamically align and fit content to screens of any size
- cindy – Use byte color values in LÖVE 11+
- deep – Adds Z axis; allows you to queue actions and draw calls
- draft – A module for drawing complex shapes
- HSLUV – Lua implementation of HSLuv (a human-friendly alternative to HSL)
- Maid64 – Low resolution scaler for LÖVE
- Push – A simple resolution-handling library for LÖVE
- renderplanet – realistic orthographic planet rendering
- svglover – Library to import and display simple SVGs in LÖVE
- SYSL-Pixel – Pixel art focused scaler for graphics, position, screen-captures and shaders
- Sölar – a fairly simple solar system simulator
- Tove2d – Animated vector graphics for LÖVE
- turtle.lua – Turtle graphics library for LÖVE
Entity
Entity and Gameobject Managing Libraries
- adorbs – Minimal, Functional Entity Component System
- Concord – A feature-complete ECS library
- knife.system – Minimalist functional ECS
- nata – Hybrid OOP/ECS entity management
- tiny-ecs – Entity Component System for Lua that’s simple, flexible, and useful
Helper Libraries
Game specific Library bundles, that provide reuseable functions
- astray – Astray is a lua based maze, room and dungeon generation library for dungeon crawlers and roguelike video games
- batteries – fills out lua’s sparse standard library and provides implementations of common algorithms and data structures useful for games.
- cartographer – Small Tiled map loader and drawer.
- clove – A helper library which allows you to quickly loads huge amount of assets
- hump – Collection of tools for developing games with LÖVE (Gamestates, Timers/Tweens, Vectors, Classes, Signals, Cameras). Repo is inactive but improvements are in the works at this fork (branch temp-master)
- iffy – A SpriteSheet and Tileset helper library for LÖVE
- knife – Collection of useful micro-modules for Lua (Class, State Machines, Bind, Chain, Coroutines, Event, Memoize, Entity, Tests, Timer)
- shard – Collection of useful mini modules
- lovely-windows – A Window/Screen Manager Module for virtual windows.
- love-state-switcher – State switcher class for Lua LÖVE Engine
- lue – lue is a LÖVE library that allows you to display hue color effects in your game
- lume – Collection of functions for Lua, geared towards game development
- narrator – An Ink narrative scripting language parser and runtime implementation
- reflowprint – A library designed for alignment of text that is shown one character at a time
- roomy – screen management library for LÖVE
- rotLove – Roguelike Toolkit in Love. A Love2D/lua port of rot.js
- ScreenManager – Screen/State Management for the LÖVE framework
- shack – shack is a LÖVE library that lets you easily add screen effects such as shake and rotation
- Simple Tiled Implementation – Tiled map loader and renderer
- Vivid – Color math, manipulation and conversion library
- Yonder – A ridiculously easy to use game state management library for LOVE2D
Input
Input & Binding Libraries
- baton – Input library for LÖVE that bridges the gap between keyboard and gamepad controls
- boipushy – A simple and easy to use input handler
- love-microphone – Simple microphone support for LÖVE
- LoveKeys – A simple input handeling library that keeps track of things for you
- tactile – A straightforward and flexible input library
Lighting
Lighting & Shadow Libraries
- Shädows – A Shadows & Lights engine for löve
- Light World – A lighting model
- Simple Love Lights – A very simple raycasting light implementation
- Light – A simple dynamic light implementation
Math
Math specific Libraries
- Bresenham – Bresenham’s line algorithm written in Lua
- brinevector – Standalone lightweight luajit ffi-accelerated 2D vector library for great performance
- Cirno’s Perfect Math Library – Math/intersection library designed for games
- delaunay – Delaunay triangulation for convex polygons
- hump.vector – Powerful 2D vector class
- MLib – Math and shape-intersection detection library written in Lua. It’s aim is to be robust and easy to use
- nvec – hump.vector-compatible LuaJIT FFI-accelerated 2D vector library
- shash – A simple, lightweight spatial hash for Lua
- vector.lua – a simple vector library based on the PVector class from processing
Music
Music related libraries
- denver – A Löve custom waveform generation library
- lovebpm – A LÖVE library for syncing events to the BPM of an audio track
- ripple – An audio manager with tagging support
- wave – A sound manager with audio parsing and rhythm functionalities
Networking
Networking & Online-Play Libraries
- Grease – Networking library intended to make networking easy for lovers (TCP, UDP, Enet) [IPv6]
- LoverNet – A networking library that leverages bitser and enet [IPv4]
- NoobHub – OpenSource multiplayer and network messaging [IPv6]
- Sock.lua – A Lua networking library for LÖVE games [IPv4]
- löve-ws – A websocket client and server library
Object Orientation
Object Orientation Libraries that support Class-Commons
- 30log – Minified framework for object-orientation in Lua. It features named (and unnamed) classes, single inheritance and a basic support for mixins
- classic – Tiny class module for Lua. Attempts to stay simple and provide decent performance by avoiding unnecessary over-abstraction
- hump.class – Small, fast class/prototype implementation with multiple inheritance (class-commons)
- knife.base – Extremely minimal base class providing single inheritance and constructors.
- middleclass – Simple OOP library for Lua; has inheritance, metamethods (operators), class variables and weak mixin support (class-commons)
- muun – Moonscript compatible class implementation
- selene – Project template for writing games in Moonscript instead of Lua without precompiling
Performance
Performance measurement tools
- jprof – Profiling library/tool for LÖVE
- Piefiller – Graphical profiler for LÖVE
- profile.lua – Profile.lua is a small, non-intrusive module for finding bottlenecks in your Lua code
- ProFi – A simple lua profiler that works with LuaJIT and prints a pretty report file in columns
Physics
Collision Detection & Physics Wrappers
- breezefield – A lightweight and easy love.physics wrapper [windfield alternative]
- Bump – Collision detection library for Lua
- HC – Collision detection with arbitrary polygons; allows rotation of objects
- loveblobs – A softbody library with support for both dynamic and static arbitrary softbodies.
- Windfield – Physics module wrapper for LÖVE
Platforms
Ports for Platforms other than Windows, Mac and Linux
- LoveDos – A Lua framework for 2D DOS games, implementing a subset of the LÖVE API
- LoveFTW – Work-in-progress port to Windows phone 8.1
- LovePotion – Unofficial work-in-progress implementation of the LÖVE API for Nintendo 3DS and Nintendo Switch Homebrew
- Love.js – LÖVE ported to the web using Emscripten
- LÖVR – LÖVE for virtual reality devices
Publishing
Guides to distributing LÖVE games in 3rd party stores
- Love-Snap-Template – A template for packaging LÖVE games for distribution in the Snappy Store
- AppImageKit – Using AppImageKit you can package LÖVE games as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, Ubuntu, Fedora, debian and derivatives; one game = one file
Serialization
Save Game & Storage Libraries
- binser – Customizable Lua Serializer
- bitser – Serializes and deserializes Lua values with LuaJIT
- cdata – Serialize between Lua data and C data using LuaJIT’s FFI
- knife.serialize – Serialize data as a Lua script
- Lady – Saving and loading savegames; based on Ser
- moonblob – Binary serialization and data parsing library
- Ser – Fast, robust, richly-featured table serialization library for Lua
- Smallfolk – A fast, robust, secure, richly-featured table serialization library for Lua
- trickle – A bitstream library focused on high compression for use in networking
Shaders
GLSL related Libraries
- LoveShaderConverter – Convert Shadertoy Shader files to LÖVE GLSL Files with handy utilities for infinite purposes
- Shadertoy viewer – Run code copied from shadertoy directly or output the converted code to a LÖVE shader
- Moonshine – Repository of common post-processing effects like blur, vignette, color-grading, etc.
Testing
Libraries and Tools for Unit Testing
- busted – Simple unit-testing framework with customizable assertions
- knife.test – Fixture-free test framework
- Luassert – Extends
assert()
with additional, customizable tests - Lunatest – xUnit-style randomized unit testing framework
- lust – Minimal test framework
- Specl – Behavior Driven Development (BDD) tool
- Telescope – Highly-customizable BDD-style testing library
Tweening
Smoothing & Timer Libraries
- Flux – A fast, lightweight tweening library for Lua
- hump.timer – Timer and tweening library with flexible tweening methods
- knife.timer – Create timers and tweens with ease.
- tick – Lua module for delaying function calls
- tween.lua – Tweening/Easing/Interpolating functions for Lua inspired on jQuery’s animate method
UI
User Interface Libraries
- CatUI – A very light-weight GUI library for LÖVE
- GOOi – Android-oriented GUI library
- Gspöt – A stateful GUI lib for LÖVE
- Hanker – Maximalist immediate mode-ish UI elements; gamepad-friendly
- LoveFrames Fork – 11.2 Fork of a GUI library
- Love Imgui – imgui module for the LÖVE game engine
- Löve-Nuklear – Lightweight immediate mode GUI for LÖVE games
- Patchy – 9patch library
- Polywell – A highly-configurable text editor / coding tool written in Lua that runs on the LÖVE game engine.
- SafeWord – An overscan detection library for LÖVE
- Slab – Slab is an immediate mode GUI toolkit for the LÖVE framework.
- SUIT – small immediate mode GUI library
- ListBox – A dynamic ListBox for LÖVE that supports touch, mouse, and keyboard inputs
- Lynx – Very-lightweight list-based UI library.
- YALG – A very simple, cross-platform, reactive UI for last minute UIs.
Utilities
Non-Game specific libraries and tools
- ArrayRotation – Rotation of two dimensional arrays (square and non-square)
- cargo – Asset manager
- chance.lua – Library for generating random data
- colorchanger – Change the colors in your LÖVE game
- Flirt – LÖVE version manager; allows to switch between multiple versions of engine on same machine
- GifCat – A simple module for saving gifs from LÖVE
- hex2color – A single function to use HEX color values
- i18n – Internationalization library designed to help localize your game
- Ini Parser – General purpose ini configuration parser
- log.lua – Library for configurable log output
- love-loader – Threaded resource loading
- love2d-assets-loader – Assets Loader
- love-pe – A tool made in LÖVE for changing LÖVE icon itself
- Lily – Async Asset Loader
- luasteam – Lua bindings for the Steamworks API
- Luvent – Simple event-driven programming
- nativefiledialog – Open a file picker on Windows/Mac/Linux
- nativefs – Read and write files outside of LÖVE’s allowed paths
- Optikon – WYSIWYG visual level designer
- ParticleEditor – An editor of particle for LÖVE
- particle-system-playground – A basic LÖVE particle system editor
- splashy – Splash Screen Library
- ShakeDetectorLua – uses accelerometer data for shake device detection written in Lua
- tick – Useful timing tweaks for LÖVE’s run loop
Tutorials
Blogs and tutorials
- adnzzzzZ’s – A blog by adnzzzzZ with articles about game development using LÖVE
- learn2love – Book for learning programming with Lua and LÖVE (Version 11.0+)
- Using Tiled Maps in LÖVE – An article about using maps created with Tiled in your LÖVE game
- Tutorial on making an Arkanoid-type game – A complete tutorial on how to make a breakout clone by nooowaay
- Simple Game Tutorials – Tutorials for making simple games with LÖVE (Snake, Sokoban, Tetris, etc.)
- How to LÖVE – A book by Sheepolution teaching LÖVE from the ground up
- CS50’s Introduction to Game Development – Harvard College’s CS50 OpenCourseWare
- Building love2d games for the web with love.js and Docker – A tutorial on packaging LÖVE games for the web
IDEs
Integrated Development Environments and text editor plugins
- Atom – A hackable text editor for the 21st Century
- Love-Atom – Smart autocompletion for the LÖVE framework in Atom.
- Autocomplete GLSL – Adds GLSL autocompletion in Atom
- language-glsl – OpenGL Shading Language support in Atom
- language-lua – Lua language support in Atom
- linter-luacheck – Lint Lua on the fly, using luacheck
- Löve Launcher – Launch LÖVE for the current project without having to leave Atom
- Löve IDE – This package auto-installs several utilities for writing Love2D games in Atom
- Autocomplete Löve – Auto-complete and snippets for LÖVE
- Hyperclick Löve – A Hyperclick provider for LÖVE which shows the wiki
- linter-luaparse – Lua syntax error checking in Atom
- Brackets – A modern, open source text editor by Adobe
- Lua Syntax Highlighter – Add Lua syntax highlighting in Brackets
- LÖVE Hints for Brackets.io – Provides LÖVE code hints
- Run LÖVE – Run LÖVE projects with a hotkey
- ZeroBrane Studio – ZeroBrane Studio is a lightweight Lua IDE with code completion, syntax highlighting, live coding, code analyzer, and debugging support
- API Syntax Hightlight – Script to add LOVE API syntax highlighting to ZBS.
- IntelliJ IDEA – Capable and Ergonomic Java IDE
- EmmyLua – Lua IDE/Debugger Plugin for VSCode
- Lua for IDEA – Lua plugin for IntelliJ-IDEA
- LÖVE IDEA – Snippets and code completion for IntelliJ-IDEA
- Vim – Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient
- Vim LOVE Docs – Syntax highlighting for Vim
- Notepad++ – Notepad++ is a free source code editor and Notepad replacement that supports several languages
- LÖVE API for Notepad++ – Code completion and documentation for Notepad++
- Visual Studio Code – VS Code is a new type of tool that combines the simplicity of a code editor with what developers need for their core edit-build-debug cycle
- Visual Studio Code LÖVE Launcher – A Löve Launcher Extension for Visual Studio Code
- Lua for Visual Studio Code – Provides Intellisense and Linting for Lua in VSCode
- Local Lua Debugger – Simple Lua debugger with no dependencies. Löve specific launch.json example provided.
- Sublime Text – Sublime Text is a sophisticated text editor for code, markup and prose. You’ll love the slick user interface, extraordinary features and amazing performance.
- Package Manager – The Sublime Text package manager that makes it exceedingly simple to find, install and keep packages up-to-date.
- SublimeLove – Supports syntax highlighting, auto-completion, and build system.
- SublimeLinter-luacheck – Provides linting and static analysis of your Lua code.
Other Awesome Lists
- awesome-lua – A list like this one, but more general and encompassing all of Lua’s uses
- awesome-unity