Courses & Tutorials

Awesome Love Game Engine – Massive Collection of Resources

A categorized community-driven collection of high-quality, awesome LÖVE libraries, projects, and resources.

Table of contents

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

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

IDEs

Integrated Development Environments and text editor plugins

  • Atom – A hackable text editor for the 21st Century
  • Brackets – A modern, open source text editor by Adobe
  • ZeroBrane Studio – ZeroBrane Studio is a lightweight Lua IDE with code completion, syntax highlighting, live coding, code analyzer, and debugging support
  • 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
  • Notepad++ – Notepad++ is a free source code editor and Notepad replacement that supports several languages
  • 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
  • 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

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button