/awesome-love2d

A curated list of amazingly awesome Love2D libraries, resources and shiny things.

Awesome LÖVE

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

3D

3D-centric Libraries

  • anim9 - 3D skeletal animation library (design to be used with IQM and IQE)
  • IQE - Inter-Quake Export loader (text)
  • IQM - Inter-Quake Model loader (binary)
  • LÖVE3D - 3D extensions to LÖVE

AI

Navigation, Decision-Making and AI Libraries

  • Jumper - Grid-based pathfinding library

Animation

Animation & Frame-Managing Libraries

  • anim8 - Animation library
  • skeletor - 2D skeletal animation system
  • Walt - Animation library

Camera

Viewport & Camera Libraries

  • Brady - Camera library with parallax scrolling
  • Editgrid - Gamera and HUMP compatible scaling grid
  • gamera - Camera system
  • HUMP.camera - Camera can "look" at a position. It can zoom in and out and it can rotate it's view. In the background, this is done by actually moving, scaling and rotating everything in the game world. But don't worry about that.

Development

Development assisting Libraries, that enrich your development experience

  • FPSGraph - Small FPS graphing utility
  • debugGraph - Small OO FPS graphing utillity based on FPSGraph
  • love-ide - Tools for programming LÖVE games in Atom
  • Lovebird - Browser-based debug console
  • Lovecat - Edit your game parameters in a browser and see the changes in the running game in real time
  • 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 Atom - Snippets and autocompletion for Atom
  • LÖVE Hints - Snippets, code hints and autocompletion for Brackets
  • LÖVE IDEA - Snippets and code completion for IntelliJ IDEA

Drawing

Drawing specific Libraries, that simplify the Drawing process

  • draft - A module for drawing complex shapes

Entity

Entity and Gameobject Managing Libraries

  • knife.system - Minimalist functional ECS
  • tiny-ecs - Entity Component System for Lua that's simple, flexible, and useful

Helper Libraries

Game specific Library bundles, that provide reuseable functions

  • HUMP - Collection of tools for developing games with LÖVE (Gamestates, Timer, Vector, Class, Signal, Camera)
  • knife - Collection of useful micro-modules for Lua (Class, State Machines, Bind, Chain, Coroutines, Event, Memoize, Entity, Tests, Timer)
  • lume - Collection of functions for Lua, geared towards game development
  • Simple Tiled Implementation - Tiled map loader and renderer
  • Vivid - Color math, manipulation and conversion library.

Input

Input & Binding Libraries

  • boipushy - A simple and easy to use input handler
  • tactile - A straightforward and flexible input library

Lighting

Lighting & Shadow Libraries

Math

Math specific Libraries

  • Cirno's Perfect Math Library - Math/intersection library designed for games
  • delaunay - Delaunay triangulation for convex polygons
  • MLib - Math and shape-intersection detection library written in Lua. It's aim is to be robust and easy to use

Networking

Networking & Online-Play Libraries

  • LUBE - Networking library intended to make networking easy for lovers (TCP, UDP, Enet)
  • NoobHub - OpenSource multiplayer and network messaging

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)

Physics

Collision Detection & Physics Wrappers

  • Bump - Collision detection library for Lua
  • Hardon Collider - Simplify one important aspect in computer games: Collision detection
  • Lope2D - Wrap for love.physics; makes dealing with the physics API easier and faster

##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
  • LovePotion - Unofficial work-in-progress implementation of the LÖVE API for 3DS Homebrew
  • punchdrunk - An attempt to replicate the LÖVE API in the browser using moonshine

Serialization

Save Game & Storage Libraries

  • binser - Customizable Lua Serializer
  • 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
  • Ser - Fast, robust, richly-featured table serialization library for Lua
  • Smallfolk - A fast, robust, secure, richly-featured table serialization library for Lua

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
  • shine - Postprocessing effect repository for LÖVE

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
  • lua-TestMore - Port of Perl's Test::More package
  • Lunatest - xUnit-style randomized unit testing 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 - Delayed and time-limited function calls and tweening support
  • knife.timer - Create timers and tweens with ease.
  • tween.lua - Tweening/Easing/Interpolating functions for Lua inspired on jQuery's animate method

UI

User Interface Libraries

  • GOOi - Android-oriented GUI library
  • LoveFrames - GUI library
  • SafeWord - An overscan detection library for LÖVE
  • Thranduil - A highly customable and easy to use UI
  • Gspöt - a stateful GUI lib for LÖVE

Utilities

Non-Game specific Library bundles, that provide reuseable functions

Contributing

Please see CONTRIBUTING for details.

Other Awesome Lists

  • awesome-lua - A list like this one, but more general and encompassing all of Lua's uses.
  • awesome-love-shaders - A collection of shaders designed to work in LÖVE.

Other awesome lists can be found in the awesome-awesomeness list.