LÖVE
LÖVE (ou Love2D) est un moteur libre multiplate-forme de développement de jeux informatiques 2D. Conçu en C++, il utilise Lua comme langage de programmation. Il est publié sous la licence zlib.
Développé par | Anders Ruud, Michael Enger, Tommy Nguyen |
---|---|
Première version | |
Dernière version | 11.5 ()[1] |
Dépôt | github.com/love2d/love |
État du projet | En développement actif |
Écrit en | C++ |
Supporte les langages | Lua |
Système d'exploitation | Android, iOS, Linux, macOS et Microsoft Windows |
Langues | Anglais |
Type | Moteur de jeu |
Licence | Licence zlib |
Site web | love2d.org |
L'API fournie par le moteur donne accès aux fonctions vidéo et sonores de la machine hôte grâce aux bibliothèques SDL et OpenGL, ou depuis la version 0.10 également OpenGL ES 2 et 3[2]. Les polices de caractères peuvent être rendues par le moteur FreeType[3]. Une version du moteur appelée piLöve, a été portée spécifiquement sur Raspberry Pi[4].
À noter également, une gestion « bac à sable » des fichiers afin d'éviter de donner l'accès à tout son disque aux jeux exécutés.
Löve est toujours maintenu par ses développeurs originaux.
On retrouve fréquemment ce moteur dans les compositions des compétitions de développement de jeux vidéo, comme la compétition internationale Ludum Dare[5]. Il existe également une compétition LÖVE jam, l'édition 2019 de la compétition comportait 37 entrées[6].
En , il était le 10e moteur de jeu le plus utilisé par les indépendants sur le site itch.io[7].
Implémentations de frameworks compatibles
modifierLutro est un framework de jeu en Lua pour libretro, port partiel de l'API de LÖVE[8]. ChaiLove suit un peu le même chemin en proposant une implémentation en ChaiScript un langage de script embarqué et multi-plateforme pour C++ (C++14)[9].
Fonctionnalités
modifierCes fonctionnalités viennent avec le moteur de jeu :
- support des pixels shaders d'Open GL GLSL
- support des écrans tactiles
- support UTF-8
- supporte les formats d'image PNG, JPEG, GIF, TGA et BMP[10]
- possibilité d'utiliser le moteur physique en 2D Box2D (désactivable si volonté d'utiliser une bibliothèque plus légère)
- bibliothèque luasocket pour les communications réseau TCP/UDP
- bibliothèque lua-enet, autre librairie réseau implémentant Enet, un protocole fiable basé sur UDP
- gestion native des tuiles créées par l'utilitaire Tiled[11].
La version 12, supportera l'API Vulkan sur l'ensemble des plateformes, ainsi que l'API Metal sur OS-X[12].
Portabilité et utilisation
modifierLöve est basé sur un langage et des bibliothèques qui ont pour objectif d'être multiplate-forme. Löve est donc multiplate-forme.
La compatibilité des applications n'est pas assurée entre Love 0.9 et love-0.10.
Bibliothèques supplémentaires
modifierIl existe différentes bibliothèques permettant d'améliorer les fonctions de base, telle que la programmation objet avec héritage et surcharge, des interpolations, des gestions de caméra, de la gestion multijoueur en réseau, de la gestion d'état de jeu, de sauvegarde/restauration de configuration, etc.[13].
La bibliothèque Simple Tiled Implementation permet de charger des niveaux sous forme de tuiles, de les éditer à l'aide de Tiled[14] et de les afficher au sein des jeux. Il fonctionne de pair avec Box2D pour la gestion de la collision avec ce décor[15].
La bibliothèque anim8 permet de charger des animations, pour les personnages par exemple, à partir d'une grille d'image dans un fichier bitmap (PNG ou JPEG)[16],[17].
Il existe également une plateforme libre (GPLv3) appelée LIKO-12, inspiré par PICO-8 fantasy console et utilisant LÖVE, permettant de développer des applications dans une résolution limitée, la sauvegarde/restauration dans le format PNG modifié, à la manière des cartouches de jeu vidéo des consoles de jeu ou de certains des premiers micro-ordinateurs, et de les exporter en HTML5 ou vers les systèmes supportés par LÖVE[18].
Historique
modifierVersion | Nom de code | Ajouts | Date de sortie |
---|---|---|---|
0.1.1 | Santa-Power |
|
|
0.2.0 | Mini-Moose |
|
|
0.2.1 | Impending Doom | ||
0.3.0 | Mutant Vermin |
|
|
0.3.1 | Space Meat | ||
0.3.2 | Lemony Fresh | 29 Aout 2008 | |
0.4.0 | Taco Beam |
|
|
0.5.0 | Salted Nuts |
|
|
0.6.0 | Jiggly Juice |
|
|
0.6.1 | Jiggly Juice | ||
0.6.2 | Jiggly Juice | ||
0.7.0 | Game Slave | ||
0.7.1 | Game Slave | ||
0.7.2 | Game Slave | ||
0.8.0 | Rubber Piggy | ||
0.9.0 | Baby Inspector | ||
0.9.1 | Baby Inspector | ||
0.9.2 | Baby Inspector | ||
0.10.0 | Super Toast | ||
0.10.1 | Super Toast | ||
0.10.2 | Super Toast | ||
11.0 | Mysterious Mysteries | ||
11.1 | Mysterious Mysteries | ||
11.2 | Mysterious Mysteries | ||
11.3 | Mysterious Mysteries | ||
11.4 | Mysterious Mysteries |
|
2 janvier 2022 |
11.5 | Mysterious Mysteries |
|
3 décembre 2023 |
12.0 | à venir |
Quelques projets notoires
modifier- ModularLöve, un synthétiseur modulaire logiciel[21].
- Balatro (jeu vidéo)
Annexes
modifierNotes et références
modifier- « https://love2d.org/forums/viewtopic.php?t=95265 »
- (en) « 0.10.0 », sur love2d.org (consulté le ).
- Korben, « The power of Löve ! », sur Korben.info,
- (en) « PiLove - LÖVE on RaspberryPI », sur mitako.eu
- (en) « Posts Tagged ‘love2d’ », sur Ludum Dare
- (en) Pablo Ariel Mayobre, « LÖVE Jam 2019 », sur Itch.io
- Rob Beschizza, « The most popular engines for indie games », sur Boing Boing,
- (en) « Lutro », sur github
- (en) RobLoach, « ChaiLove – Another Take on 2D Game Development », sur libretro,
- (en) Marius Nestor, « An Open Source and cross-platform 2D game engine that provides dynamic gaming experiences », sur Softpedia
- (en) Landon Manning, « Using Tiled Maps in LÖVE », sur lua.space,
- https://love2d.org/wiki/12.0
- (en) « Category:Libraries », sur love2d.org
- (en) « Tiled », sur mapeditor.org
- (en) « Simple Tiled Implementation », sur github.com
- (en) « Anim8 », sur love2d.org
- (en) « An animation library for LÖVE », sur github
- (en) « [LIKO-12 V0.0.5 PRE] An open-source pico-8-inspired game dev environment for love2d », sur love2d.org,
- Florent Zara, « Sortie de Löve 0.4.0, moteur libre de jeu en 2D », sur LinuxFR,
- (en) Christian Nutt, « New version of free LÖVE 2D game framework adds mobile support », sur Gamasutra,
- (en) Peter Kirn, « Chill out to some granular goodness in Modular Play on Playdate portable », sur CDM,
Bibliographie
modifier- Anthony Cardinale, Initiation à la création de jeux vidéo en Lua avec Löve2D, D-Booker, , 240 p. (ISBN 978-2-8227-0967-5, BNF 46622553)
- (en) Damilare Darmie Akinlaja, LÖVE2d for Lua Game Programming : master the Lua programming language and build exciting strategy-based games in 2D using the LÖVE framework, Birmingham, UK, Packt Pub., (ISBN 9781461946038, OCLC 864886612, présentation en ligne)
- (en) Jayant Varma, Mekha Shrestha et Yujan Shrestha, Learn Lua for iOS game development, New York, Apress, (ISBN 9781430246633, OCLC 834071764), chap. 11 (« LÖVE »)
Tutoriels en ligne
modifier- (en) « Your First Love2d Game in 200 Lines - Part 1 of 3 », sur osmstudios
- (en) Agam More, « How to Learn LÖVE (Love2D) », sur Envato Tuts+ (en),
- (en) « Love2D Using Sprites Tutorial », sur Game From Scratch, 22. mars 2016
- (en) « Love2d – Tutorial Part 1 | Invaders must die! », sur headchant.com
Liens externes
modifier- (en) Site officiel
- (en) « Love », sur dépôt Git des sources sur Github
- (en) « Users blogs », sur blogs.love2d.org
- (en) « made with LÖVE », sur Itch.io — Liste de Itch.io des jeux faits avec LÖVE