Git Product home page Git Product logo

awesome-love2d's Introduction

Awesome Löve

AwesomeCustom badge

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
  • g3d - Simple and easy 3D engine for LÖVE.
  • 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
  • lovanim - A minimal stateful animation library
  • SYSL-Text - Text animation and automatic wrapping library based on tags

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
  • 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
  • input - Simple and powerful input library. support check operation time, sequence.
  • 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

  • lighter - A performant dynamic light implementation with a simple API
  • 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
  • love2d-lua-websocket - A simple event-driven websocket client library [IPv4]

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-WrapLua - A small and simple wrapper for OneLua, lpp-vita, and Lua Player PS3
  • 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.

Game Distribution Tools

Tools that automate game publishing in one way or another

  • boon - Multi-platform, easy to use tool supporting Windows, macOS, Linux.
  • love-export - Fast and simple command-line tool that builds binaries for you. Supports Windows, MacOS, and Linux.
  • love-release - A Lua script that automates game distribution. Supports Windows, macOS, Debian, Linux.
  • makelove - Advanced multi-platform tool to fuse your game written in Python 3. Supports Windows and Linux with AppImage.

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
  • awesome-pico8 - A curated list of PICO-8 resources, tutorials, tools and more

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

awesome-love2d's People

Contributors

janwerder avatar rm-code avatar hdictus avatar karai17 avatar tesselode avatar flamendless avatar hahawoo avatar xiejiangzhi avatar megagrump avatar besnoi avatar josefnpat avatar nikaoto avatar mikuauahdark avatar npinochet avatar yonaba avatar instilledbee avatar paulosergiolima avatar sysl-dev avatar s-walrus avatar zugzug90 avatar phansonloc1999 avatar novemberisms avatar hazzard993 avatar airstruck avatar bjornbytes avatar popey avatar nhartland avatar patrixr avatar thenerdie avatar spacecat-chan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.