├── logo.png ├── .travis.yml ├── .github └── workflows │ └── lint.yml ├── CONTRIBUTING.md ├── LICENSE.md └── README.md /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nekromoff/awesome-love2d/master/logo.png -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | rvm: 3 | - 2.2 4 | before_script: 5 | - gem install awesome_bot 6 | script: 7 | - awesome_bot README.md 8 | -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | 2 | name: Lint Awesome List 3 | on: [push, pull_request] 4 | jobs: 5 | lint: 6 | name: Lint 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@v1.0.0 10 | - uses: max/awesome-lint@v2.0.0 -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Please ensure your pull request adheres to the following: 4 | 5 | ## New Categories 6 | 7 | * Ensure the new category has at least one entry within. 8 | * Ensure categories are listed in alphanumeric order. 9 | * Ensure category is properly linked to in the table of contents (see Formatting). 10 | 11 | ## New Entries 12 | 13 | * Ensure that new entry is not a duplicate. 14 | * Make an individual pull request for each new entry. 15 | * Use the following format: \[NAME\]\(LINK\) - DESCRIPTION. 16 | * Keep descriptions simple. 17 | * Do not use the entry's name in the description. 18 | * Do not use "LOVE", "LOVE2D", or any other variant within the description unless absolutely necessary. 19 | * If the entry is written for Lua or LuaJIT, it is okay to mention this. 20 | * Do not use periods/full stops (.) in description. 21 | * Separate ideas using a semi-colon (;). 22 | * Ensure the new entry does not have trailing whitespace. 23 | * Try to ensure your pull requests only have one commit if possible. You can squash your commits into one before submitting. 24 | * Make your pull request titles and descriptions as detailed as possible. Explain why an asset or resources deserves to be added to the list. 25 | * Ensure entries are listed in alphanumeric order. 26 | * Ensure that the content you submit is of high quality, documented well, and is recently maintained. 27 | 28 | ## Formatting 29 | 30 | * Categories must be double spaced, entries must be single spaced 31 | 32 | ```md 33 | ## Category 34 | 35 | * [Entry](#link) - Description of the entry 36 | * [Another Entry](#link2) - Description of the entry 37 | 38 | ## Category2 39 | 40 | * [Entry](#link) - Description of the entry 41 | * [Another Entry](#link2) - Description of the entry 42 | ``` 43 | 44 | * New categories must use the `##` prefix 45 | 46 | ```md 47 | ## Category 48 | ``` 49 | 50 | * New categories with more than one word in the name must use an anchor for linking purposes 51 | 52 | ```md 53 | ## New Category 54 | ``` 55 | 56 | * New entries must use the `*` prefix 57 | 58 | ```md 59 | * [Entry](#link) - Description 60 | ``` 61 | 62 | Thanks! 63 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | CC0 1.0 Universal 2 | 3 | Statement of Purpose 4 | 5 | The laws of most jurisdictions throughout the world automatically confer 6 | exclusive Copyright and Related Rights (defined below) upon the creator and 7 | subsequent owner(s) (each and all, an "owner") of an original work of 8 | authorship and/or a database (each, a "Work"). 9 | 10 | Certain owners wish to permanently relinquish those rights to a Work for the 11 | purpose of contributing to a commons of creative, cultural and scientific 12 | works ("Commons") that the public can reliably and without fear of later 13 | claims of infringement build upon, modify, incorporate in other works, reuse 14 | and redistribute as freely as possible in any form whatsoever and for any 15 | purposes, including without limitation commercial purposes. These owners may 16 | contribute to the Commons to promote the ideal of a free culture and the 17 | further production of creative, cultural and scientific works, or to gain 18 | reputation or greater distribution for their Work in part through the use and 19 | efforts of others. 20 | 21 | For these and/or other purposes and motivations, and without any expectation 22 | of additional consideration or compensation, the person associating CC0 with a 23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright 24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work 25 | and publicly distribute the Work under its terms, with knowledge of his or her 26 | Copyright and Related Rights in the Work and the meaning and intended legal 27 | effect of CC0 on those rights. 28 | 29 | 1. Copyright and Related Rights. A Work made available under CC0 may be 30 | protected by copyright and related or neighboring rights ("Copyright and 31 | Related Rights"). Copyright and Related Rights include, but are not limited 32 | to, the following: 33 | 34 | i. the right to reproduce, adapt, distribute, perform, display, communicate, 35 | and translate a Work; 36 | 37 | ii. moral rights retained by the original author(s) and/or performer(s); 38 | 39 | iii. publicity and privacy rights pertaining to a person's image or likeness 40 | depicted in a Work; 41 | 42 | iv. rights protecting against unfair competition in regards to a Work, 43 | subject to the limitations in paragraph 4(a), below; 44 | 45 | v. rights protecting the extraction, dissemination, use and reuse of data in 46 | a Work; 47 | 48 | vi. database rights (such as those arising under Directive 96/9/EC of the 49 | European Parliament and of the Council of 11 March 1996 on the legal 50 | protection of databases, and under any national implementation thereof, 51 | including any amended or successor version of such directive); and 52 | 53 | vii. other similar, equivalent or corresponding rights throughout the world 54 | based on applicable law or treaty, and any national implementations thereof. 55 | 56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of, 57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and 58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright 59 | and Related Rights and associated claims and causes of action, whether now 60 | known or unknown (including existing as well as future claims and causes of 61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum 62 | duration provided by applicable law or treaty (including future time 63 | extensions), (iii) in any current or future medium and for any number of 64 | copies, and (iv) for any purpose whatsoever, including without limitation 65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes 66 | the Waiver for the benefit of each member of the public at large and to the 67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver 68 | shall not be subject to revocation, rescission, cancellation, termination, or 69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work 70 | by the public as contemplated by Affirmer's express Statement of Purpose. 71 | 72 | 3. Public License Fallback. Should any part of the Waiver for any reason be 73 | judged legally invalid or ineffective under applicable law, then the Waiver 74 | shall be preserved to the maximum extent permitted taking into account 75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver 76 | is so judged Affirmer hereby grants to each affected person a royalty-free, 77 | non transferable, non sublicensable, non exclusive, irrevocable and 78 | unconditional license to exercise Affirmer's Copyright and Related Rights in 79 | the Work (i) in all territories worldwide, (ii) for the maximum duration 80 | provided by applicable law or treaty (including future time extensions), (iii) 81 | in any current or future medium and for any number of copies, and (iv) for any 82 | purpose whatsoever, including without limitation commercial, advertising or 83 | promotional purposes (the "License"). The License shall be deemed effective as 84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the 85 | License for any reason be judged legally invalid or ineffective under 86 | applicable law, such partial invalidity or ineffectiveness shall not 87 | invalidate the remainder of the License, and in such case Affirmer hereby 88 | affirms that he or she will not (i) exercise any of his or her remaining 89 | Copyright and Related Rights in the Work or (ii) assert any associated claims 90 | and causes of action with respect to the Work, in either case contrary to 91 | Affirmer's express Statement of Purpose. 92 | 93 | 4. Limitations and Disclaimers. 94 | 95 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 96 | surrendered, licensed or otherwise affected by this document. 97 | 98 | b. Affirmer offers the Work as-is and makes no representations or warranties 99 | of any kind concerning the Work, express, implied, statutory or otherwise, 100 | including without limitation warranties of title, merchantability, fitness 101 | for a particular purpose, non infringement, or the absence of latent or 102 | other defects, accuracy, or the present or absence of errors, whether or not 103 | discoverable, all to the greatest extent permissible under applicable law. 104 | 105 | c. Affirmer disclaims responsibility for clearing rights of other persons 106 | that may apply to the Work or any use thereof, including without limitation 107 | any person's Copyright and Related Rights in the Work. Further, Affirmer 108 | disclaims responsibility for obtaining any necessary consents, permissions 109 | or other rights required for any use of the Work. 110 | 111 | d. Affirmer understands and acknowledges that Creative Commons is not a 112 | party to this document and has no duty or obligation with respect to this 113 | CC0 or use of the Work. 114 | 115 | For more information, please see 116 | 117 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Löve [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) 2 | ![Awesome Löve](logo.png) 3 | 4 | A categorized community-driven collection of high-quality, awesome [LÖVE](http://love2d.org) libraries, projects, and resources. 5 | 6 | ## Contents 7 | 8 | * [3D](#3d) 9 | * [AI](#ai) 10 | * [Animation](#animation) 11 | * [Camera](#camera) 12 | * [Development](#development) 13 | * [Drawing](#drawing) 14 | * [Entity](#entity) 15 | * [Helpers](#helpers) 16 | * [Input](#input) 17 | * [Lighting](#lighting) 18 | * [Math](#math) 19 | * [Music](#music) 20 | * [Networking](#networking) 21 | * [OO](#oo) 22 | * [Performance](#performance) 23 | * [Physics](#physics) 24 | * [Platforms](#platforms) 25 | * [Publishing](#publishing) 26 | * [Serialization](#serialization) 27 | * [Shaders](#shaders) 28 | * [Testing](#testing) 29 | * [Tweening](#tweening) 30 | * [UI](#ui) 31 | * [Utilities](#utilities) 32 | * [Tutorials](#tutorials) 33 | * [IDEs](#ides) 34 | * [Distribution](#distribution) 35 | * [Related](#related) 36 | 37 | ## 3D 38 | *3D-centric Libraries* 39 | 40 | * [3DreamEngine](https://github.com/3dreamengine/3DreamEngine) - An awesome 3D engine for LÖVE. 41 | * [anim9](https://github.com/excessive/anim9) - 3D skeletal animation library (design to be used with IQM and IQE). 42 | * [Brinevector3D](https://github.com/flamendless/brinevector3D) - FFI-enabled vector library for 3D (x,y,z). 43 | * [bump-3dpd](https://github.com/oniietzschan/bump-3dpd) - A 3D collision detection library for Lua. 44 | * [IQE](https://github.com/excessive/iqe) - Inter-Quake Export loader (text). 45 | * [IQM](https://github.com/excessive/iqm-exm) - Inter-Quake Model loader (binary). 46 | * [love-gltf](https://gitlab.com/Alloyed/love-gltf) - Gltf asset loader and test renderer; Supports skeletal animations and morph targets. 47 | * [Lovox](https://github.com/tjakka5/Lovox) - Pseudo-3D library for working with voxels. 48 | * [g3d](https://github.com/groverburger/g3d) - Simple and easy 3D engine for LÖVE. 49 | * [model_renderer](https://github.com/xiejiangzhi/model_renderer) - A simple 3d model renderer for love2d. 50 | * [Menori](https://github.com/rozenmad/Menori) - Library for 3D rendering with LÖVE. 51 | 52 | 53 | ## AI 54 | *Navigation, Decision-Making and AI Libraries* 55 | 56 | * [Jumper](https://github.com/Yonaba/Jumper) - Grid-based pathfinding library. 57 | * [Lua-star](https://github.com/wesleywerner/lua-star) - Easy and pure Lua A* path finding. 58 | * [astar](https://github.com/xiejiangzhi/astar) - An other A* library. Any map(gird, point, mesh or infinite map) and support path cost. 59 | * [pathfun](https://github.com/apicici/pathfun) - Pure Lua library for 2D pathfinding using the funnel algorithm. 60 | * [beehive.lua](https://github.com/drhayes/beehive.lua) - A functional behavior tree implementation. 61 | 62 | ## Animation 63 | *Animation & Frame-Managing Libraries* 64 | 65 | * [andross](https://github.com/pfirsich/andross) - A Lua library for 2D skeletal/bone animations with a Löve backend. 66 | * [anim8](https://github.com/kikito/anim8) - Animation library. 67 | * [animx](https://github.com/YoungNeer/animx) - A featureful Animation library for loading animations from XML files!. 68 | * [Aseprite loader](https://github.com/elloramir/love-ase) - Complete ase/aseprite file loader (no json). 69 | * [chiro](https://github.com/bjornbytes/chiro) - Convenience wrapper around [Spine](http://esotericsoftware.com). 70 | * [Peachy](https://github.com/josh-perry/peachy) - A parser/renderer for Aseprite animations in LÖVE. 71 | * [skeletor](https://github.com/pelevesque/skeletor) - 2D skeletal animation system. 72 | * [Walt](https://github.com/davisdude/Walt) - Animation library. 73 | * [Lump](https://github.com/sixFingers/lump) - Adobe Flash animation runtime. 74 | * [lovanim](https://github.com/patrixr/love-animation) - A minimal stateful animation library. 75 | * [SYSL-Text](https://github.com/SystemLogoff/SYSL-Text) - Text animation and automatic wrapping library based on tags. 76 | 77 | ## Camera 78 | *Viewport & Camera Libraries* 79 | 80 | * [Brady](https://github.com/davisdude/Brady) - Camera library with parallax scrolling. 81 | * [cam11](https://notabug.org/pgimeno/cam11) - Camera library that leverages the Transform object introduced in love2d 11.0+. 82 | * [Editgrid](https://github.com/bakpakin/Editgrid) - Gamera and HUMP compatible scaling grid. 83 | * [gamera](https://github.com/kikito/gamera) - Camera system. 84 | * [hump.camera](https://hump.readthedocs.io/en/latest/camera.html) - Camera library with window locking and smooth camera movement interpolation. 85 | 86 | ## Development 87 | *Development assisting Libraries, that enrich your development experience* 88 | 89 | * [FPSGraph](https://github.com/icrawler/FPSGraph) - Small FPS graphing utility. 90 | * [debugGraph](https://github.com/Mechazawa/Love-Debug-Graph) - Small OO FPS graphing utillity based on FPSGraph. 91 | * [Lovebird](https://github.com/rxi/lovebird) - Browser-based debug console. 92 | * [LoveDebug](https://github.com/flamendless/lovedebug) - Inline console-like debugger utility. 93 | * [lurker](https://github.com/rxi/lurker) - Auto-swaps changed Lua files in a running game. 94 | * [LÖVE API](https://github.com/love2d-community/love-api) - The complete API documentation of LÖVE in a Lua table. 95 | * [LÖVE Build](https://github.com/nhartland/love-build) - GitHub Action for automated cross-platform builds. 96 | * [LÖVE TypeScript Definitions](https://github.com/hazzard993/love-typescript-definitions) - Write LÖVE games with TypeScript. 97 | * [lovelier](https://github.com/patrixr/lovelier) - A LÖVE live reloader with Moonscript support. 98 | * [loveprofiler](https://github.com/dknight/loveprofiler) - LoveProfiler is an extremely simple logger and profiler. 99 | * [vudu](https://github.com/deltadaedalus/vudu) - Broad in-game debugging gui with a console, variable browser/editor, speed controls, and more. 100 | 101 | ## Drawing 102 | *Drawing specific Libraries, that simplify the Drawing process* 103 | 104 | * [Artal](https://github.com/unXedDani/Artal) - A .PSD parsing library for LÖVE. 105 | * [Autobatch](https://github.com/rxi/autobatch) - Small LÖVE module to automate the use of SpriteBatches. 106 | * [center](https://github.com/S-Walrus/center) - A simple module to dynamically align and fit content to screens of any size. 107 | * [deep](https://github.com/Nikaoto/deep) - Adds Z axis; allows you to queue actions and draw calls. 108 | * [draft](https://github.com/pelevesque/draft) - A module for drawing complex shapes. 109 | * [grove.draworder](https://github.com/FloatingBanana/Grove/blob/master/grove/draworder.lua) - Similar to deep, but you can set a custom sorting method and create multiple, nestable instances. 110 | * [HSLUV](https://github.com/hsluv/hsluv-lua) - Lua implementation of HSLuv (a human-friendly alternative to HSL). 111 | * [Maid64](https://github.com/adekto/maid64) - Low resolution scaler for LÖVE. 112 | * [Push](https://github.com/Ulydev/push) - A simple resolution-handling library for LÖVE. 113 | * [renderplanet](https://github.com/meric/renderplanet/) - Realistic orthographic planet rendering. 114 | * [Resolution Solution](https://github.com/Vovkiv/resolution_solution) - Scale library, that help you add resolution support to your games! 115 | * [svglover](https://github.com/globalcitizen/svglover) - Library to import and display simple SVGs in LÖVE. 116 | * [SYSL-Pixel](https://github.com/SystemLogoff/Sysl-Pixel) - Pixel art focused scaler for graphics, position, screen-captures and shaders. 117 | * [Sölar](https://github.com/JanWerder/soelar) - A fairly simple solar system simulator. 118 | * [Tove2d](https://github.com/poke1024/tove2d) - Animated vector graphics for LÖVE. 119 | * [turtle.lua](https://github.com/arthurealike/turtle.lua) - Turtle graphics library for LÖVE. 120 | * [Runtime-TextureAtlas](https://github.com/EngineerSmith/Runtime-TextureAtlas) - Texture atlas packer and renderer at runtime; no external tools. 121 | * [Export-TextureAtlas](https://github.com/EngineerSmith/Export-TextureAtlas) - Extends Runtime-TextureAtlas as a commandline tool to export an atlas. 122 | 123 | ## Entity 124 | *Entity and Gameobject Managing Libraries* 125 | 126 | * [adorbs](https://github.com/JosephShering/adorbs) - Minimal, Functional Entity Component System. 127 | * [Concord](https://github.com/Tjakka5/Concord) - A feature-complete ECS library. 128 | * [ecs-lua](https://github.com/nidorx/ecs-lua) - ECS Lua is a fast and easy to use ECS (Entity Component System) engine for game development. 129 | * [knife.system](https://github.com/airstruck/knife/blob/master/readme/system.md) - Minimalist functional ECS. 130 | * [nata](https://github.com/tesselode/nata) - Hybrid OOP/ECS entity management. 131 | * [tiny-ecs](https://github.com/bakpakin/tiny-ecs) - Entity Component System for Lua that's simple, flexible, and useful. 132 | 133 | ## Helpers 134 | *Game specific Library bundles, that provide reuseable functions* 135 | 136 | * [astray](https://github.com/SiENcE/astray) - Astray is a lua based maze, room and dungeon generation library for dungeon crawlers and roguelike video games. 137 | * [batteries](https://github.com/1bardesign/batteries/) - Fills out lua's sparse standard library and provides implementations of common algorithms and data structures useful for games. 138 | * [cartographer](https://github.com/tesselode/cartographer) - Small Tiled map loader and drawer. 139 | * [clove](https://github.com/YoungNeer/clove) - A helper library which allows you to quickly loads huge amount of assets. 140 | * [grove.color](https://github.com/FloatingBanana/Grove/blob/master/grove/color.lua) - Blend, convert and interpolate colors using 'color objects'. 141 | * [hump](https://github.com/HDictus/hump) - Collection of tools for developing games with LÖVE (Gamestates, Timers/Tweens, Vectors, Classes, Signals, Cameras). 142 | * [iffy](https://github.com/YoungNeer/iffy) - A SpriteSheet and Tileset helper library for LÖVE. 143 | * [knife](https://github.com/airstruck/knife) - Collection of useful micro-modules for Lua (Class, State Machines, Bind, Chain, Coroutines, Event, Memoize, Entity, Tests, Timer). 144 | * [shard](https://github.com/MineGame159/shard) - Collection of useful mini modules. 145 | * [lovely-windows](https://github.com/flamendless/lovely-windows) - A Window/Screen Manager Module for virtual windows. 146 | * [love-state-switcher](https://github.com/nekromoff/love-state-switcher) - State switcher class for Lua LÖVE Engine. 147 | * [lua-state-machine](https://github.com/kyleconroy/lua-state-machine) - Lua Finite State Machine. 148 | * [lue](https://github.com/Ulydev/lue) - Lue is a LÖVE library that allows you to display hue color effects in your game. 149 | * [lume](https://github.com/rxi/lume/) - Collection of functions for Lua, geared towards game development. 150 | * [Manami](https://github.com/MikuAuahDark/NPad93/blob/master/manami.lua) - An improved "reflowprint" with UTF-8, multicolor, and justify support. 151 | * [narrator](https://github.com/astrochili/narrator) - An Ink narrative scripting language parser and runtime implementation. 152 | * [reflowprint](https://github.com/josefnpat/reflowprint) - A library designed for alignment of text that is shown one character at a time. 153 | * [roomy](https://github.com/tesselode/roomy) - Screen management library for LÖVE. 154 | * [rotLove](https://github.com/paulofmandown/rotLove) - Roguelike Toolkit in LÖVE. A LÖVE/lua port of rot.js. 155 | * [YAS](https://github.com/kithf/yas) - Yet Another Screen manager. 156 | * [Scenery](https://github.com/paltze/scenery) - A dead simple scene/state management system. 157 | * [ScreenManager](https://github.com/rm-code/screenmanager) - Screen/State Management for the LÖVE framework. 158 | * [shack](https://github.com/Ulydev/shack) - Shack is a LÖVE library that lets you easily add screen effects such as shake and rotation. 159 | * [Simple Tiled Implementation](https://github.com/karai17/Simple-Tiled-Implementation) - Tiled map loader and renderer. 160 | * [Vivid](https://github.com/WetDesertRock/vivid) - Color math, manipulation and conversion library. 161 | * [Yonder](https://github.com/thenerdie/Yonder) - A ridiculously easy to use game state management library for LOVE2D. 162 | 163 | ## Input 164 | *Input & Binding Libraries* 165 | 166 | * [baton](https://github.com/tesselode/baton) - Input library for LÖVE that bridges the gap between keyboard and gamepad controls. 167 | * [input](https://github.com/xiejiangzhi/input) - Simple and powerful input library. support check operation time, sequence. 168 | * [Kazari](https://github.com/MikuAuahDark/Kazari) - Multitouch gesture and input library. 169 | * [love-microphone](https://github.com/LPGhatguy/love-microphone) - Simple microphone support for LÖVE. 170 | * [LoveKeys](https://github.com/SpaceCat-Chan/LoveKeys) - A simple input handeling library that keeps track of things for you. 171 | * [Swipe](https://github.com/zombrodo/swipe) - A simple radial keyboard library. 172 | * [tactile](https://github.com/tesselode/tactile) - A straightforward and flexible input library. 173 | 174 | ## Lighting 175 | *Lighting & Shadow Libraries* 176 | 177 | * [lighter](https://github.com/speakk/lighter) - A performant dynamic light implementation with a simple API. 178 | * [Shädows](https://github.com/matiasah/shadows) - A Shadows & Lights engine for LÖVE. 179 | * [Light World](https://github.com/tanema/light_world.lua) - A lighting model. 180 | * [Simple Love Lights](https://github.com/dylhunn/simple-love-lights) - A very simple raycasting light implementation. 181 | * [Light](https://github.com/xiejiangzhi/light) - A simple dynamic light implementation. 182 | 183 | ## Math 184 | *Math specific Libraries* 185 | 186 | * [Bresenham](https://github.com/rm-code/Bresenham) - Bresenham's line algorithm written in Lua. 187 | * [brinevector](https://github.com/novemberisms/brinevector) - Standalone lightweight luajit ffi-accelerated 2D vector library for great performance. 188 | * [Cirno's Perfect Math Library](https://github.com/excessive/cpml) - Math/intersection library designed for games. 189 | * [delaunay](https://github.com/Yonaba/delaunay) - Delaunay triangulation for convex polygons. 190 | * [hump.vector](https://hump.readthedocs.io/en/latest/vector.html) - Powerful 2D vector class. 191 | * [MLib](https://github.com/davisdude/mlib) - Math and shape-intersection detection library written in Lua. It's aim is to be robust and easy to use. 192 | * [nvec](https://github.com/MikuAuahDark/NPad93/blob/master/nvec.lua) - Hump.vector-compatible LuaJIT FFI-accelerated 2D vector library. 193 | * [shash](https://github.com/rxi/shash) - A simple, lightweight spatial hash for Lua. 194 | * [vector.lua](https://github.com/themousery/vector.lua) - A simple vector library based on the PVector class from processing. 195 | 196 | ## Music 197 | *Music related libraries* 198 | 199 | * [denver](https://github.com/superzazu/denver.lua) - A Löve custom waveform generation library. 200 | * [lovebpm](https://github.com/rxi/lovebpm) - A LÖVE library for syncing events to the BPM of an audio track. 201 | * [ripple](https://github.com/tesselode/ripple) - An audio manager with tagging support. 202 | * [wave](https://github.com/Ulydev/wave) - A sound manager with audio parsing and rhythm functionalities. 203 | 204 | ## Networking 205 | *Networking & Online-Play Libraries* 206 | 207 | * [Grease](https://github.com/bartbes/love-misc-libs/tree/master/grease) - Networking library intended to make networking easy for lovers (TCP, UDP, Enet). (IPv6) 208 | * [LoverNet](https://github.com/josefnpat/LoverNet) - A networking library that leverages bitser and enet. (IPv4) 209 | * [NoobHub](https://github.com/Overtorment/NoobHub) - OpenSource multiplayer and network messaging. (IPv6) 210 | * [Sock.lua](https://github.com/camchenry/sock.lua) - A Lua networking library for LÖVE games. (IPv4) 211 | * [löve-ws](https://github.com/holywyvern/love-ws) - A websocket client and server library. 212 | * [love2d-lua-websocket](https://github.com/flaribbit/love2d-lua-websocket) - A simple event-driven websocket client library. (IPv4) 213 | 214 | ## OO 215 | *Object Orientation Libraries that support [Class-Commons](https://github.com/bartbes/Class-Commons)* 216 | 217 | * [30log](https://github.com/Yonaba/30log) - Minified framework for object-orientation in Lua. It features named (and unnamed) classes, single inheritance and a basic support for mixins. 218 | * [classic](https://github.com/rxi/classic/) - Tiny class module for Lua. Attempts to stay simple and provide decent performance by avoiding unnecessary over-abstraction. 219 | * [hump.class](https://hump.readthedocs.io/en/latest/class.html) - Small, fast class/prototype implementation with multiple inheritance (class-commons). 220 | * [knife.base](https://github.com/airstruck/knife/blob/master/readme/base.md) - Extremely minimal base class providing single inheritance and constructors. 221 | * [middleclass](https://github.com/kikito/middleclass) - Simple OOP library for Lua; has inheritance, metamethods (operators), class variables and weak mixin support (class-commons). 222 | * [muun](https://github.com/megagrump/muun) - Moonscript compatible class implementation. 223 | * [selene](https://github.com/novafacing/selene) - Project template for writing games in Moonscript instead of Lua without precompiling. 224 | 225 | ## Performance 226 | *Performance measurement tools* 227 | 228 | * [AppleCake](https://github.com/EngineerSmith/AppleCake) - Profiling library for LÖVE, with detailed profiling and thread support. 229 | * [jprof](https://github.com/pfirsich/jprof) - Profiling library/tool for LÖVE. 230 | * [Piefiller](https://github.com/Polynominal/Piefiller) - Graphical profiler for LÖVE. 231 | * [ProFi](https://gist.github.com/rm-code/383c98a6af04652ed9f39b7ae536bcc5) - A simple lua profiler that works with LuaJIT and prints a pretty report file in columns. 232 | 233 | ## Physics 234 | *Collision Detection & Physics Wrappers* 235 | 236 | * [breezefield](https://github.com/HDictus/breezefield) - A lightweight and easy love.physics wrapper (windfield alternative). 237 | * [Bump](https://github.com/kikito/bump.lua) - Collision detection library for Lua. 238 | * [HC](https://hc.readthedocs.io/en/latest/) - Collision detection with arbitrary polygons; allows rotation of objects. 239 | * [loveblobs](https://github.com/exezin/loveblobs) - A softbody library with support for both dynamic and static arbitrary softbodies. 240 | * [Strike](https://github.com/Aweptimum/Strike) - 2D collision detection library. Extendable, based on Separating-Axis-Theorem. 241 | 242 | 243 | ## Platforms 244 | *Ports for Platforms other than the ones officially supported by LÖVE* 245 | 246 | * [LoveDos](https://github.com/rxi/lovedos) - A Lua framework for 2D DOS games, implementing a subset of the LÖVE API. 247 | * [LoveFTW](https://bitbucket.org/T-BoneISS/l-veftw) - Work-in-progress port to Windows phone 8.1. 248 | * [LovePotion](https://github.com/TurtleP/LovePotion) - Unofficial work-in-progress implementation of the LÖVE API for Nintendo 3DS and Nintendo Switch Homebrew. 249 | * [LOVE-WrapLua](https://github.com/LukeZGD/LOVE-WrapLua) - A small and simple wrapper for OneLua, lpp-vita, and Lua Player PS3. 250 | * [Love.js](https://github.com/Davidobot/love.js) - LÖVE ported to the web using Emscripten. 251 | * [LÖVR](https://github.com/bjornbytes/lovr) - LÖVE for virtual reality devices. 252 | 253 | ## Publishing 254 | *Guides to distributing LÖVE games in 3rd party stores* 255 | 256 | * [Love-Snap-Template](https://github.com/popey/love-snap-template) - A template for packaging LÖVE games for distribution in the Snappy Store. 257 | * [AppImageKit](https://github.com/AppImage/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. 258 | 259 | ## Serialization 260 | *Save Game & Storage Libraries* 261 | 262 | * [arson](https://github.com/flamendless/arson.lua) - Companion library for registering custom data types that can be encoded and decoded by json.lua. 263 | * [binser](https://github.com/bakpakin/binser) - Customizable Lua Serializer. 264 | * [bitser](https://github.com/gvx/bitser) - Serializes and deserializes Lua values with LuaJIT. 265 | * [cdata](https://github.com/excessive/cdata) - Serialize between Lua data and C data using LuaJIT's FFI. 266 | * [knife.serialize](https://github.com/airstruck/knife/blob/master/readme/serialize.md) - Serialize data as a Lua script. 267 | * [Lady](https://github.com/gvx/Lady) - Saving and loading savegames; based on Ser. 268 | * [moonblob](https://github.com/megagrump/moonblob) - Binary serialization and data parsing library. 269 | * [Ser](https://github.com/gvx/Ser) - Fast, robust, richly-featured table serialization library for Lua. 270 | * [Smallfolk](https://github.com/gvx/Smallfolk) - A fast, robust, secure, richly-featured table serialization library for Lua. 271 | * [trickle](https://github.com/bjornbytes/trickle) - A bitstream library focused on high compression for use in networking. 272 | 273 | ## Shaders 274 | *GLSL related Libraries* 275 | 276 | * [LoveShaderConverter](https://github.com/tsteinholz/LoveShaderConverter) - Convert Shadertoy Shader files to LÖVE GLSL Files with handy utilities for infinite purposes. 277 | * [ngrading](https://github.com/MikuAuahDark/NPad93/tree/master/ngrading) - Simple color grading library. 278 | * [Shadertoy viewer](http://love2d.org/forums/viewtopic.php?f=5&t=80885) - Run code copied from shadertoy directly or output the converted code to a LÖVE shader. 279 | * [Moonshine](https://github.com/vrld/moonshine) - Repository of common post-processing effects like blur, vignette, color-grading, etc. 280 | 281 | ## Testing 282 | *Libraries and Tools for Unit Testing* 283 | 284 | * [busted](https://github.com/Olivine-Labs/busted) - Simple unit-testing framework with customizable assertions. 285 | * [knife.test](https://github.com/airstruck/knife/blob/master/readme/test.md) - Fixture-free test framework. 286 | * [Luassert](https://github.com/Olivine-Labs/luassert) - Extends `assert()` with additional, customizable tests. 287 | * [Lunatest](https://github.com/silentbicycle/lunatest) - xUnit-style randomized unit testing framework. 288 | * [lust](https://github.com/bjornbytes/lust) - Minimal test framework. 289 | * [Specl](http://gvvaughan.github.io/specl/) - Behavior Driven Development (BDD) tool. 290 | * [Telescope](http://norman.github.io/telescope/) - Highly-customizable BDD-style testing library. 291 | 292 | ## Tweening 293 | *Smoothing & Timer Libraries* 294 | 295 | * [Flux](https://github.com/rxi/flux) - A fast, lightweight tweening library for Lua. 296 | * [hump.timer](https://hump.readthedocs.io/en/latest/timer.html) - Timer and tweening library with flexible tweening methods. 297 | * [knife.timer](https://github.com/airstruck/knife/blob/master/readme/timer.md) - Create timers and tweens with ease. 298 | * [NAniTe](https://github.com/MikuAuahDark/NPad93/blob/master/nanite.lua) - Timeline-based animation system that supports forward and backward update. 299 | * [tick](https://github.com/rxi/tick) - Lua module for delaying function calls. 300 | * [tween.lua](https://github.com/kikito/tween.lua) - Tweening/Easing/Interpolating functions for Lua inspired on jQuery's animate method. 301 | 302 | ## UI 303 | *User Interface Libraries* 304 | 305 | * [CatUI](https://github.com/wilhantian/catui) - A very light-weight GUI library for LÖVE. 306 | * [cimgui-love](https://github.com/apicici/cimgui-love) - LÖVE module for Dear ImGui obtained by wrapping cimgui (programmatically generated C-api) using LuaJIT FFI, easy to update to the latest Dear Imgui version. 307 | * [GOOi](https://github.com/tavuntu/gooi) - Android-oriented GUI library. 308 | * [Gspöt](https://notabug.org/pgimeno/Gspot) - A stateful GUI lib for LÖVE. 309 | * [Hanker](https://gitlab.com/Alloyed/hanker) - Maximalist immediate mode-ish UI elements; gamepad-friendly. 310 | * [Helium](https://github.com/qeffects/helium) - A modern, customizable, high performance retained UI framework. 311 | * [ListBox](https://github.com/darkmetalic/ListBox) - A dynamic ListBox for LÖVE that supports touch, mouse, and keyboard inputs. 312 | * [LoveFrames Fork](https://github.com/linux-man/LoveFrames) - 11.2 Fork of a GUI library. 313 | * [Love Imgui](https://github.com/slages/love-imgui) - Imgui module for the LÖVE game engine. 314 | * [Löve-Nuklear](https://github.com/keharriso/love-nuklear) - Lightweight immediate mode GUI for LÖVE games. 315 | * [Lynx](https://gitlab.com/TSnake41/lynx) - Very-lightweight list-based UI library. 316 | * [NLay](https://github.com/MikuAuahDark/NPad93#nlay) - Flexible layouting library. 317 | * [Patchy](https://github.com/excessive/patchy) - 9patch library. 318 | * [Slicy](https://github.com/wqferr/slicy) - A newer 9patch/9slice library fixing some issues with Patchy. 319 | * [Plan](https://github.com/zombrodo/plan) - A super simple Rule-based layout library. 320 | * [Polywell](https://gitlab.com/technomancy/polywell) - A highly-configurable text editor / coding tool written in Lua that runs on the LÖVE game engine. 321 | * [SafeWord](https://github.com/josefnpat/safeword) - An overscan detection library for LÖVE. 322 | * [Slab](https://github.com/flamendless/Slab) - Slab is an immediate mode GUI toolkit for the LÖVE framework. 323 | * [SUIT](https://github.com/vrld/SUIT) - Small immediate mode GUI library. 324 | * [YALG](https://github.com/sasszem/yalg) - A very simple, cross-platform, reactive UI for last minute UIs. 325 | * [YUI](https://gitea.it/1414codeforge/yui) - Declarative UI library for LÖVE. 326 | * [Inky](https://github.com/Keyslam/Inky) - Any-purpose GUI framework. 327 | 328 | ## Utilities 329 | *Non-Game specific libraries and tools* 330 | 331 | * [ArrayRotation](https://gist.github.com/rm-code/4118d4a97d8cde16952199d94b84ead0) - Rotation of two dimensional arrays (square and non-square). 332 | * [cargo](https://github.com/bjornbytes/cargo) - Asset manager. 333 | * [chance.lua](http://ejmr.github.io/chance.lua/) - Library for generating random data. 334 | * [colorchanger](https://github.com/santoslove/colorchanger) - Change the colors in your LÖVE game. 335 | * [Flirt](https://github.com/Alloyed/flirt) - LÖVE version manager; allows to switch between multiple versions of engine on same machine. 336 | * [GifCat](https://github.com/WetDesertRock/GifCat) - A simple module for saving gifs from LÖVE. 337 | * [hex2color](https://github.com/S-Walrus/hex2color/) - A single function to use HEX color values. 338 | * [i18n](https://github.com/excessive/i18n) - Internationalization library designed to help localize your game. 339 | * [Ini Parser](https://github.com/FivosM/ini_parser) - General purpose ini configuration parser. 340 | * [log.lua](https://github.com/rxi/log.lua) - Library for configurable log output. 341 | * [love-loader](https://github.com/kikito/love-loader) - Threaded resource loading. 342 | * [love2d-assets-loader](https://github.com/Yonaba/love2d-assets-loader) - Assets Loader. 343 | * [love-pe](https://github.com/RamiLego4Game/love-pe) - A tool made in LÖVE for changing LÖVE icon itself. 344 | * [lovely-engine](https://github.com/vinnyhorgan/lovely-engine) - A tool that makes setting up and using LÖVE easier and with Moonscript support. 345 | * [Lily](https://github.com/MikuAuahDark/lily) - Async Asset Loader. 346 | * [luasteam](https://github.com/uspgamedev/luasteam) - Lua bindings for the Steamworks API. 347 | * [Luvent](https://github.com/ejmr/Luvent) - Simple event-driven programming. 348 | * [nativefiledialog](https://github.com/Alloyed/nativefiledialog/tree/master/lua) - Open a file picker on Windows/Mac/Linux. 349 | * [nativefs](https://github.com/EngineerSmith/nativefs) - Read and write files outside of LÖVE's allowed paths. 350 | * [Optikon](https://optikon.co.uk/) - WYSIWYG visual level designer. 351 | * [ParticleEditor](https://github.com/MusouCrow/ParticleEditor) - An editor of particle for LÖVE. 352 | * [particle-system-playground](https://github.com/santoslove/particle-system-playground) - A basic LÖVE particle system editor. 353 | * [require.lua](https://github.com/premek/require.lua) - Require all files in a folder. 354 | * [splashy](https://github.com/videah/splashy) - Splash Screen Library. 355 | * [ShakeDetectorLua](https://github.com/azoyan/ShakeDetectorLua) - Uses accelerometer data for shake device detection written in Lua. 356 | * [tick](https://github.com/bjornbytes/tick) - Useful timing tweaks for LÖVE's run loop. 357 | 358 | ## Tutorials 359 | *Blogs and tutorials* 360 | 361 | * [learn2love](https://rvagamejams.com/learn2love/) - Book for learning programming with Lua and LÖVE (Version 11.0+). 362 | * [Using Tiled Maps in LÖVE](http://lua.space/gamedev/using-tiled-maps-in-love) - An article about using maps created with Tiled in your LÖVE game. 363 | * [Tutorial on making an Arkanoid-type game](https://github.com/noooway/love2d_arkanoid_tutorial/wiki) - A complete tutorial on how to make a breakout clone by nooowaay. 364 | * [Simple Game Tutorials](https://simplegametutorials.github.io/) - Tutorials for making simple games with LÖVE (Snake, Sokoban, Tetris, etc.). 365 | * [How to LÖVE](https://sheepolution.com/learn/book/contents) - A book by Sheepolution teaching LÖVE from the ground up. 366 | * [CS50 Introduction to Game Development](https://cs50.harvard.edu/games/) - Harvard Colleges CS50 OpenCourseWare. 367 | * [Building love2d games for the web with love.js and Docker](https://kalis.me/building-love2d-games-web-docker/) - A tutorial on packaging LÖVE games for the web. 368 | 369 | ## IDEs 370 | *Integrated Development Environments and text editor plugins* 371 | 372 | * [Brackets](http://brackets.io/) - A modern, open source text editor by Adobe (obsolete). 373 | * [Lua Syntax Highlighter](https://github.com/ForbesLindesay/brackets-language-extensions) - Add Lua syntax highlighting in Brackets. 374 | * [LÖVE Hints for Brackets.io](https://gitlab.com/sdonalcreative/brackets-love-hints/) - Provides LÖVE code hints. 375 | * [Run LÖVE](https://github.com/instilledbee/run-love2d) - Run LÖVE projects with a hotkey. 376 | * [ZeroBrane Studio](https://studio.zerobrane.com/) - ZeroBrane Studio is a lightweight Lua IDE with code completion, syntax highlighting, live coding, code analyzer, and debugging support. 377 | * [API Syntax Hightlight](https://github.com/flamendless/LOVE-API-Extractor-for-ZeroBraneStudio) - Script to add LOVE API syntax highlighting to ZBS. 378 | * [IntelliJ IDEA](https://www.jetbrains.com/idea/) - Capable and Ergonomic Java IDE. 379 | * [EmmyLua](https://github.com/EmmyLua/VSCode-EmmyLua) - Lua IDE/Debugger Plugin for VSCode. 380 | * [LÖVE IDEA](https://github.com/rm-code/love-IDEA-plugin) - Snippets and code completion for IntelliJ-IDEA. 381 | * [Vim](https://vim.sourceforge.io/) - Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient. 382 | * [Vim LOVE Docs](https://github.com/davisdude/vim-love-docs) - Syntax highlighting for Vim. 383 | * [Notepad++](https://notepad-plus-plus.org) - Notepad++ is a free source code editor and Notepad replacement that supports several languages. 384 | * [LÖVE API for Notepad++](https://github.com/dail8859/love-api-npp) - Code completion and documentation for Notepad++. 385 | * [Visual Studio Code](https://code.visualstudio.com/) - 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. 386 | * [Visual Studio Code LÖVE Launcher](https://marketplace.visualstudio.com/items?itemName=JanW.love-launcher) - A Löve Launcher Extension for Visual Studio Code. 387 | * [Lua for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=trixnz.vscode-lua) - Provides Intellisense and Linting for Lua in VSCode. 388 | * [Local Lua Debugger](https://marketplace.visualstudio.com/items?itemName=tomblind.local-lua-debugger-vscode) - Simple Lua debugger with no dependencies. Löve specific launch.json example provided. 389 | * [Sublime Text](https://www.sublimetext.com) - Sublime Text is a sophisticated text editor for code, markup and prose. You'll love the slick user interface, extraordinary features and amazing performance. 390 | * [Package Manager](https://packagecontrol.io/) - The Sublime Text package manager that makes it exceedingly simple to find, install and keep packages up-to-date. 391 | * [SublimeLove](https://packagecontrol.io/packages/SublimeLove) - Supports syntax highlighting, auto-completion, and build system. 392 | * [SublimeLinter-luacheck](https://packagecontrol.io/packages/SublimeLinter-luacheck) - Provides linting and static analysis of your Lua code. 393 | 394 | ## Distribution 395 | *Tools that automate game publishing in one way or another* 396 | * [LÖVE Actions](https://github.com/love-actions) - Build & deploy cross-platform game packages on ***ALL*** popular platforms. Supports Android, iOS, Linux, maxOS, Windows. 397 | * [love-packager](https://github.com/simplifylabs/love-packager) - Simple CLI to package your LÖVE Game in seconds. 398 | * [boon](https://github.com/camchenry/boon) - Multi-platform, easy to use tool supporting Windows, macOS, Linux. 399 | * [love-export](https://github.com/dmoa/love-export) - Fast and simple command-line tool that builds binaries for you. Supports Windows, macOS, and Linux. 400 | * [love-release](https://github.com/MisterDA/love-release) - A Lua script that automates game distribution. Supports Windows, macOS, Debian, Linux. 401 | * [makelove](https://github.com/pfirsich/makelove) - Advanced multi-platform tool to fuse your game written in Python 3. Supports Windows and Linux with AppImage. 402 | * [love-deploy](https://github.com/tducasse/love-deploy) - Build and deploy games on itch.io (supports windows and web exports). 403 | * [love-fuser](https://github.com/MikuAuahDark/love-fuser) - Packages LÖVE Games using GitHub Actions. Supports Windows, Linux, and Android. 404 | 405 | ## Related 406 | 407 | * [awesome-lua](https://github.com/LewisJEllis/awesome-lua) - A list like this one, but more general and encompassing all of Lua's uses. 408 | * [awesome-love-shaders](https://github.com/karai17/awesome-love-shaders) - A collection of shaders designed to work in LÖVE. 409 | * [awesome-pico8](https://github.com/pico-8/awesome-PICO-8) - A curated list of PICO-8 resources, tutorials, tools and more. 410 | 411 | Other awesome lists can be found in the [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) list. 412 | --------------------------------------------------------------------------------