Jump to content

Löve (game framework)

From Wikipedia, the free encyclopedia
LÖVE
Initial releaseJanuary 13, 2008; 17 years ago (2008-01-13)[1]
Stable release
11.5[2] / December 3, 2023; 17 months ago (2023-12-03)
Repository
Written inC++
Platform
TypeApplication framework
Licensezlib license
Websitelove2d.org

Löve (stylized in all caps) 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.[3] Fonts can be rendered by the FreeType engine.[4] A version of the framework called piLöve has been specifically ported to Raspberry Pi.[5]

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

Version history

[edit]
Version Code name Added Release date
0.1.1 Santa-Power
  • Reading and displaying images.
  • Reading and playing sounds.
  • Loading and rendering fonts.
  • Keyboard and mouse support.
January 13, 2008
0.2.0 Mini-Moose
  • Added a screen that displays if no game is loaded.
  • Adding an animation system.
  • Added text formatting functions.
February 6, 2008
0.2.1 Impending Doom
  • Added many filesystem functions.
  • Added dedicated save folders for games.
March 29, 2008
0.3.0 Mutant Vermin
  • Addition of the particle system.
June 17, 2008
0.3.1 Meat Space
  • Bug fixes.
June 21, 2008
0.3.2 Lemony Fresh
  • Added several graphical functions.
July 4, 2008
0.4.0 Taco Beam August 29, 2008
0.5.0 Salted Nuts
  • Added joystick support.
  • Support of protocols TCP/UDP using luasocket.
January 2, 2009
0.6.0 Jiggly Juice
  • Removed the animation system.
  • Added support for managing events like key presses.
December 24, 2009
0.6.1 Jiggly Juice
  • Added function to set and get a Box2D body's fixed rotation.
  • Added function to set the inertia of a Box2D body.
February 7, 2010
0.6.2 Jiggly Juice
  • Bug fixes.
March 6, 2010
0.7.0 Game Slave
  • Added support for working with fonts.
December 5, 2010
0.7.1 Game Slave
  • Bug fixes.
February 14, 2011
0.7.2 Game Slave
  • Updated libraries for Windows version.
May 4, 2011
0.8.0 Rubber Piggy
  • Added UTF-8 support for fonts.
  • Added PNG and JPEG encoding.
April 2, 2012
0.9.0 Baby Inspector
  • Added better multiplayer networking support.
December 13, 2013
0.9.1 Baby Inspector
  • Added support for opening a URL with a web or file browser.
April 1, 2014
0.9.2 Baby Inspector
  • Added UTF-8 encoding support.
February 14, 2015
0.10.0 Super Toast
  • Supports Android and iOS.[9]
  • Added touch screen support.
  • Added video support.
December 22, 2015
0.10.1 Super Toast
  • Added configuration option for saving files in internal or external storage on Android devices.
February 14, 2016
0.10.2 Super Toast
  • Added the ability to restart the application.
October 31, 2016
11.0 Mysterious Mysteries
  • Support for meshes.
  • Various additions to shaders (such as the effect method).
  • Ability to record from a microphone.
  • Consolidation of many object methods into new methods.
  • Added many new formats to stencil/depth buffers.
  • Audio effects such as reverberation and echoing.
  • Added support for Base64 encoding, MD5 hashing, and more.
April 1, 2018
11.1 Mysterious Mysteries
  • Bug fixes.
April 15, 2018
11.2 Mysterious Mysteries
  • Added functions to set and get a Box2D body's transform.
November 25, 2018
11.3 Mysterious Mysteries
  • Added support for loading FLAC audio files.
  • Added support for recording audio from the microphone on Android devices.
  • Added support for uncompressed DirectDraw Surface files.
October 27, 2019
11.4 Mysterious Mysteries
  • Added native Apple Silicon support on macOS.
January 22, 2022
11.5 Mysterious Mysteries
  • Added new game launcher on Android for easier loading of games.
December 3, 2023
12.0 Bestest Friend In development

Features

[edit]

The framework provides these features:

  • Supports OpenGL pixel shaders GLSL.
  • Supports touchscreen for mobile devices.[10]
  • Supports joysticks by providing interface for connected joysticks.[11]
  • Supports UTF-8.[12]
  • Supports image formats: PNG, JPEG, GIF, TGA and BMP.[13]
  • Supports audio formats: WAV, OGG, and MP3.[14]
  • Supports video formats: OGV.[15]
  • Supports the physics engine Box2D in games, which can be disabled to lighten the library.[16]
  • Supports the LuaSocket library for network communications TCP/UDP.[17]
  • Supports the lua-enet library, another network library implementing Enet, a reliable protocol based on UDP.[18]

Notable games

[edit]

Some of the games that have been made with LÖVE:

Libraries and implementations

[edit]

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[35] and display them in games. It works in conjunction with Box2D for collision management with this decor.[36]
  • The anim8 library allows users to load animations, for characters for example, from an image grid into a bitmap file (PNG or JPEG).[37][38]
  • 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.[39]
  • Lutro is a Lua game framework for libretro, a partial port of the LÖVE[40] API. ChaiLove follows a similar path by offering an implementation in ChaiScript, an embedded and cross-platform scripting language for C++ (C++14).[41]
  • 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.[42]
  • 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.[43]

References

[edit]
  1. ^ "LÖVE version history". Archived from the original on 2019-06-01. Retrieved 2019-06-01.
  2. ^ "LÖVE 11.5". Archived from the original on 2023-12-29. Retrieved 2024-01-07.
  3. ^ "0.10.0 - LOVE". love2d.org. Archived from the original on 23 July 2016. Retrieved 7 August 2023.
  4. ^ Korben (January 14, 2011). "The power of Löve !". Korben.info. Archived from the original on May 17, 2019. Retrieved May 25, 2019.
  5. ^ "PiLove - LÖVE on RaspberryPI". mitako.eu. Archived from the original on 2019-05-14. Retrieved 2019-05-25.
  6. ^ "Posts Tagged'love2d'". Ludum Dare. Archived from the original on 2019-05-17. Retrieved 2019-05-25.
  7. ^ Rob Beschizza (July 17, 2018). "The most popular engines for indie games". Boingboing. Archived from the original on May 17, 2019. Retrieved May 25, 2019.
  8. ^ Florent Zara (September 1, 2008). "Release of Löve 0.4.0, a free 2D game engine". LinuxFr. Archived from the original on April 2, 2023. Retrieved March 3, 2023.
  9. ^ Christian Nutt (December 22, 2015). "New version of free LÖVE 2D game framework adds mobile support". Gamasutra. Archived from the original on December 25, 2015.
  10. ^ "love.touch - LOVE". love2d.org. Archived from the original on 5 August 2023. Retrieved 7 August 2023.
  11. ^ "love.joystick - LOVE". love2d.org. Archived from the original on 14 October 2017. Retrieved 7 August 2023.
  12. ^ "utf8 - LOVE". love2d.org. Retrieved 7 August 2023.
  13. ^ "Image Formats - LOVE". love2d.org. Archived from the original on 11 July 2023. Retrieved 7 August 2023.
  14. ^ "Audio Formats - LOVE". love2d.org. Archived from the original on 11 July 2023. Retrieved 7 August 2023.
  15. ^ "love.video - LOVE". love2d.org. Retrieved 7 August 2023.
  16. ^ "love.physics - LOVE". love2d.org. Archived from the original on 14 October 2017. Retrieved 7 August 2023.
  17. ^ "socket - LOVE". love2d.org. Retrieved 7 August 2023.
  18. ^ "lua-enet - LOVE". love2d.org. Archived from the original on 5 August 2023. Retrieved 7 August 2023.
  19. ^ "Kingdom Rush". steamdb.info. Retrieved 26 March 2024.
  20. ^ "Mari0 Source". github.com. Archived from the original on 24 March 2024. Retrieved 26 March 2024.
  21. ^ "oh my giraffe · a delightful game of survival". www.ohmygiraffe.com. Archived from the original on 7 August 2023. Retrieved 7 August 2023.
  22. ^ "BLUE REVOLVER". bluerevolvergame.com. Retrieved 7 August 2023.
  23. ^ "BLUE REVOLVER". steamdb.info. Retrieved 26 March 2024.
  24. ^ "Move or Die". steamdb.info. Archived from the original on 26 March 2024. Retrieved 26 March 2024.
  25. ^ "Warlock's Tower on Steam". store.steampowered.com. Retrieved 7 August 2023.
  26. ^ "Aeon of Sands - The Trail on Steam". store.steampowered.com. Archived from the original on 9 August 2023. Retrieved 7 August 2023.
  27. ^ "BYTEPATH on Steam". store.steampowered.com. Archived from the original on 11 July 2023. Retrieved 7 August 2023.
  28. ^ "BYTEPATH development tutorial". github.com. Retrieved 26 March 2024.
  29. ^ "Metanet Hunter G4 by NIGHT KAWATA". itch.io. Archived from the original on 24 July 2023. Retrieved 7 August 2023.
  30. ^ "Intravenous' IGDB bio". www.igdb.com. Retrieved August 21, 2024.
  31. ^ "Gravity Circuit's IGDB bio". www.igdb.com. Archived from the original on August 22, 2024. Retrieved August 22, 2024.
  32. ^ "Gravity Circuit - LÖVE". www.love2d.org. Archived from the original on 2024-12-11. Retrieved 2024-12-02.
  33. ^ "Moonring". itch.io. Retrieved 12 January 2024.
  34. ^ "Balatro". steamdb.info. Retrieved 26 March 2024.
  35. ^ "Tiled". mapeditor.org.
  36. ^ "Simple Tiled Implementation". github.com. 8 April 2022. Archived from the original on 11 June 2018. Retrieved 25 May 2019.
  37. ^ "Anim8". love2d.org.
  38. ^ "An animation library for LÖVE". github. 8 April 2022.
  39. ^ "[LIKO-12 V0.0.5 PRE] An open-source pico-8-inspired game dev environment for love2d". love2d.org. September 18, 2016. Archived from the original on April 6, 2019. Retrieved May 25, 2019.
  40. ^ "Lutro". github. 2 March 2022.
  41. ^ RobLoach (December 26, 2017). "ChaiLove - Another Take on 2D Game Development". libretro.
  42. ^ "love.js". github.com. Archived from the original on 2021-12-09. Retrieved 2021-12-09.
  43. ^ "g3d". github.com. Archived from the original on 2023-01-12. Retrieved 2023-01-12.
[edit]