LÖVE (game framework)

LÖVE is a free, open-source, cross-platform framework released under the zlib license for developing video games. The framework is written in C++ and uses Lua as its scripting language and is still maintained by its original developers. The framework is cross-platform supporting the platforms Microsoft Windows, macOS, Linux, Android, and iOS.

The API provided by the framework gives access to the video and sound functions of the host machine through the libraries SDL and OpenGL, or since version 0.10 also OpenGL ES 2 and 3. Fonts can be rendered by the FreeType engine. A version of the framework called piLöve has been specifically ported to Raspberry Pi.

The framework is frequently found in the compositions of video game development competitions, such as the game development competition Ludum Dare. In July 2018, it was the 10th most popular game development software used by independent game developers on the site Itch.io, holding a 1.97% share.

Features
The framework provides these features:
 * Supports OpenGL pixel shaders GLSL.
 * Supports touchscreen for mobile devices.
 * Supports joysticks by providing interface for connected joysticks.
 * Supports UTF-8.
 * Supports image formats: PNG, JPEG, GIF, TGA and BMP.
 * Supports audio formats: WAV, OGG, and MP3.
 * Supports video formats: OGV.
 * Supports the physics engine Box2D in games, which can be disabled to lighten the library.
 * Supports the LuaSocket library for network communications TCP/UDP.
 * Supports the lua-enet library, another network library implementing Enet, a reliable protocol based on UDP.

Notable Games
Semi-popular games that have been made with LÖVE.


 * Move or Die
 * Mari0
 * Kingdom Rush
 * BYTEPATH
 * Blue Revolver
 * Warlock's Tower
 * Oh My Giraffe
 * Aeon of Sands - The Trail
 * Metanet Hunter G4
 * Moonring
 * Balatro

Libraries & Implementations
There are various libraries and forks of LÖVE to improve basic functions, such as OOP with inheritance and overloading, interpolations, cameras, gamestates, etc. This is a small list of some:


 * The Simple Tiled Implementation library allows users to load levels as tiles, edit using Tiled and display them in games. It works in conjunction with Box2D for collision management with this decor.
 * The anim8 library allows users to load animations, for characters for example, from an image grid into a bitmap file (PNG or JPEG).
 * LIKO-12 is a free platform inspired by the PICO-8 fantasy console and uses LÖVE. It allows users to develop applications in a limited resolution, backup/restore in the modified PNG format, in the same way as video game cartridges or some of the first microcomputers, and export them to HTML5 or to systems supported by LÖVE.
 * Lutro is a Lua game framework for libretro, a partial port of the LÖVE API. ChaiLove follows a similar path by offering an implementation in ChaiScript, an embedded and cross-platform scripting language for C++ (C++14).
 * love.js is a port of LÖVE that aims to make it possible to run LÖVE games on the web via HTML5, WebGL, and Emscripten.
 * g3d is a 3D engine that simplifies 3D capabilities in LÖVE. It allows for 3D model rendering, .obj file loading, first person movement and camera controls, perspective and orthographic projections, 3D collisions and more.