Software:Löve (game engine)

From HandWiki
Revision as of 19:47, 7 March 2023 by LinuxGuru (talk | contribs) (update)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Löve
LÖVE logo.svg
Initial releaseJanuary 13, 2008; 16 years ago (2008-01-13)[1]
Stable release
11.4[2] / January 2, 2022; 2 years ago (2022-01-02)
Written inC++
PlatformMicrosoft Windows,
Linux,
macOS,
iOS, Android, other
TypeGame engine
Licensezlib license
Websitelove2d.org

Löve is an open-source cross-platform engine for developing 2D video games. The engine is written in C++ and uses Lua as its scripting language. It is published under the zlib license.

The API provided by the engine 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 engine called piLöve has been specifically ported to Raspberry Pi.[5]

It also provides a basic "sandbox" management of the files in order to avoid giving access to all its disk to the executed games.

Löve is still maintained by its original developers.

This engine is frequently found in the compositions of video game development competitions, such as the international competition Ludum Dare.[6]

In July 2018, it was the 10th game engine most used by independents on the site itch.io,[7] holding a 1.97% share.

History

Version Code name Added Release date
0.1.1 Santa-Power
  • Reading and displaying images
  • Reading and playing sounds
  • Load and use fonts
January 13, 2008
0.2.0 Mini-Moose
  • Added a screen that displays if no game is loaded
  • Adding an animation system
February 6, 2008
0.2.1 Impending Doom March 29, 2008
0.3.0 Mutant Vermin
  • Addition of the particle system
June 17, 2008
0.3.1 Meat Space June 21, 2008
0.3.2 Lemony Fresh July 4, 2008
0.4.0 Taco Beam August 29, 2008
0.5.0 Salted Nuts
  • Joystick support
  • Support of protocols TCP/UDP using luasocket
January 2, 2009
0.6.0 Jiggly Juice
  • Removes the animation system
December 24, 2009
0.6.1 Jiggly Juice February 7, 2010
0.6.2 Jiggly Juice March 6, 2010
0.7.0 Slavic Game December 5, 2010
0.7.1 Slavic Game February 14, 2011
0.7.2 Slavic Game May 4, 2011
0.8.0 Rubber Piggy April 2, 2012
0.9.0 Baby Inspector December 13, 2013
0.9.1 Baby Inspector April 1, 2014
0.9.2 Baby Inspector February 14, 2015
0.10.0 Super Toast December 22, 2015
0.10.1 Super Toast February 14, 2016
0.10.2 Super Toast 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)
April 1, 2018
11.1 Mysterious Mysteries April 15, 2018
11.2 Mysterious Mysteries
  • Added the ability 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
12.0 In Development

Features

These features come with the game engine:

  • support of OpenGL pixel shaders GLSL,
  • touchscreen support,
  • support for UTF-8,
  • supports image formats PNG, JPEG, GIF, TGA and BMP,[10]
  • possibility to use the 2D physics engine Box2D (can be disabled, to lighten the library),
  • luasocket library for network communications TCP/UDP,
  • lua-enet library, another network library implementing Enet, a reliable protocol based on UDP

Portability and usage

Löve is cross-platform.

Application compatibility is not ensured between different Löve versions.

Additional Libraries & Implementations

There are various libraries and forks of Löve to improve basic functions, such as object-oriented programming with inheritance and overloading, interpolations, camera management, network multiplayer management, game state management, configuration, etc.

  • The Simple Tiled Implementation library allows users to load levels as tiles, edit using Tiled[11] and display them in games. It works in conjunction with Box2D for collision management with this decor.[12]
  • The anim8 library allows users to load animations, for characters for example, from an image grid into a bitmap file (PNG or JPEG).[13][14]
  • There is also a free platform (GPLv3) called LIKO-12, inspired by the PICO-8 fantasy console and using Löve, allowing to develop applications in a limited resolution, backup/restore in the modified PNG format, in the same way as the video game cartridges of the game consoles or some of the first microcomputers, and export them to HTML5 or to systems supported by Löve.[15]
  • Lutro is a Lua game framework for libretro, a partial port of the Löve[16] API. ChaiLove follows a similar path by offering an implementation in ChaiScript, an embedded and cross-platform scripting language for C++ (C++14).[17]
  • 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.[18]

Bibliography

References

  1. "LÖVE version history". https://love2d.org/wiki/Version_History. 
  2. "LÖVE 11.4". https://love2d.org/wiki/11.4. 
  3. "0.10.0 - Love". https://love2d.org/wiki/0.10.0. 
  4. Korben (January 14, 2011). "The power of Löve !" (in en). http://korben.info/love-framework.html. 
  5. "PiLove - LÖVE on RaspberryPI" (in en). http://pilove.mitako.eu/. 
  6. "Posts Tagged'love2d'" (in en). http://ludumdare.com/compo/tag/love2d/. 
  7. Rob Beschizza (July 17, 2018). "The most popular engines for indie games". https://boingboing.net/2018/07/17/the-most-popular-engines-for-i.html. 
  8. Florent Zara (September 1, 2008). "Löve Output 0.4.0 free game engine, 2D". https://linuxfr.org/news/sortie-de-l%C3%B6ve-040-engine-free-play-2d. 
  9. Christian Nutt (December 22, 2015). "New version of free LÖVE 2D game framework adds mobile support" (in en). http://www.gamasutra.com/view/news/262568/New_version_of_free_LVE_2D_game_framework_adds_mobile_support.php. 
  10. Marius Nestor (17 September 2018). "An Open Source and cross-platform 2D game engine that provides dynamic gaming experiences" (in en). http://linux.softpedia.com/get/GAMES-ENTERTAINMENT/Arcade/LOVE-34309.shtml. 
  11. "Tiled" (in en). http://www.mapeditor.org/. 
  12. "Simple Tiled Implementation". 8 April 2022. https://github.com/karai17/Simple-Tiled-Implementation. 
  13. "Anim8" (in en). https://love2d.org/wiki/anim8. 
  14. "An animation library for LÖVE" (in en). 8 April 2022. https://github.com/kikito/anim8. 
  15. "[LIKO-12 V0.0.5 PRE An open-source pico-8-inspired game dev environment for love2d"]. September 18, 2016. https://love2d.org/forums/viewtopic.php?f=5&t=82913. 
  16. "Lutro" (in en). 2 March 2022. https://github.com/libretro/libretro-lutro. 
  17. RobLoach (December 26, 2017). "ChaiLove - Another Take on 2D Game Development" (in en). https://www.libretro.com/index.php/chailove/. 
  18. "love.js - A port of LÖVE in Emscripten" (in en). 8 April 2022. https://github.com/Davidobot/love.js. 

External links