LÖVE

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche
Löve
Description de l'image LÖVE logo.svg.

Informations
Développé par Anders Ruud, Michael Enger, Tommy Nguyen
Première version Voir et modifier les données sur Wikidata
Dernière version 11.2 ()[1],[2]Voir et modifier les données sur Wikidata
Dépôt bitbucket.org/rude/love/srcVoir et modifier les données sur Wikidata
Écrit en C++Voir et modifier les données sur Wikidata
Système d'exploitation Android, iOS, Linux, macOS et Microsoft WindowsVoir et modifier les données sur Wikidata
Langues Anglais
Licence Licence zlibVoir et modifier les données sur Wikidata
Site web love2d.orgVoir et modifier les données sur Wikidata

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.

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[3]. Les polices de caractères peuvent être rendues par le moteur FreeType[4]. Une version du moteur appelée piLöve, a été portée spécifiquement sur Raspberry Pi[5].

À 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[6].

En juillet 2018, il était le 10e moteur de jeu le plus utilisé par les indépendants sur le site itch.io[7].

Historique[modifier | modifier le code]

Version Nom de code Ajouts Date de sortie
0.1.1 Santa-Power
  • Lire et afficher des images
  • Lire et jouer des sons
  • Charger et utiliser des polices de caractères
13 Janvier 2008
0.2.0 Mini-Moose
  • Ajout d'un écran qui s'afiche si aucun jeu n'est chargé
  • Ajout d'un système d'animation
6 Février 2008
0.2.1 Impending Doom
29 Mars 2008
0.3.0 Mutant Vermin
  • Ajout du système de particules
Juin 2008
0.3.1 Space Meat
Juin 2008
0.3.2 Lemony Fresh
29 Aout 2008
0.4.0 Taco Beam 4 Juillet 2008
0.5.0 Salted Nuts
  • Support des Joystick
  • Support des protocoles TCP/UDP grâce à luasocket
2 Janvier 2009
0.6.0 Jiggly Juice
  • Retire le système d'animation


24 Décembre 2009
0.6.1 Jiggly Juice
7 Février 2010
0.6.2 Jiggly Juice
6 Mars 2010
0.7.0 Game Slave
5 Décembre 2010
0.7.1 Game Slave
14 Février 2011
0.7.2 Game Slave
5 Mai 2011
0.8.0 Rubber Piggy
2 Avril 2012
0.9.0 Baby Inspector
13 Décembre 2013
0.9.1 Baby Inspector
1 Avril 2014
0.9.2 Baby Inspector
14 Février 2015
0.10.0 Super Toast 22 Décembre 2015
0.10.1 Super Toast
14 Février 2016
0.10.2 Super Toast
31 Octobre 2016
11.0 Mysterious Mysteries
1 Avril 2018
11.1 Mysterious Mysteries
15 Avril 2018

Lutro est un framework de jeu en lua pour libretro, port partiel l'API de LÖVE[10]. 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)[11].

Fonctionnalités[modifier | modifier le code]

Ces 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[12]
  • 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[13].

Portabilité et utilisation[modifier | modifier le code]

Lö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[modifier | modifier le code]

Il 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.[14].

La bibliothèque Simple Tiled Implementation permet de charger des niveaux sous formes de tuiles, éditer à l'aide de Tiled[15] et de les afficher au sein des jeux. Il fonctionne de pair avec Box2D pour la gestion de la collision avec ce décor[16].

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)[17],[18].

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[19].

Annexes[modifier | modifier le code]

Notes et références[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

  • (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, shrestha et Yujan Shrestha, Learn Lua for iOS game development, New York, Apress, (ISBN 9781430246633, OCLC 834071764), chap. 11 (« LÖVE »)

Liens externes[modifier | modifier le code]