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

À 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. Il existe également une compétition LÖVE jam, l'édition 2019 de la compétition comportait 37 entrées.

En , il était le moteur de jeu le plus utilisé par les indépendants sur le site itch.io.

Implémentations de frameworks compatibles Lutro est un framework de jeu en Lua pour libretro, port partiel de l'API de LÖVE. 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).

Fonctionnalités 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 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.

La version 12, supportera l'API Vulkan sur l'ensemble des plateformes, ainsi que l'API Metal sur OS-Xhttps://love2d.org/wiki/12.0.

Portabilité et utilisation 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 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.

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

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).

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.

Historique +VersionNom de codeAjoutsDate de sortie0.1.1Santa-Power Lire et afficher des images Lire et jouer des sons Charger et utiliser des polices de caractères0.2.0Mini-Moose Ajout d'un écran qui s'affiche quand aucun jeu n'est chargé Ajout d'un système d'animation0.2.1Impending Doom0.3.0Mutant Vermin Ajout du système de particules0.3.1Space Meat0.3.2Lemony Fresh29 Aout 20080.4.0Taco Beam Ajout du moteur physique Box2D0.5.0Salted Nuts Support des Joystick Support des protocoles TCP/UDP grâce à luasocket0.6.0Jiggly Juice Retire le système d'animation0.6.1Jiggly Juice0.6.2Jiggly Juice0.7.0Game Slave0.7.1Game Slave0.7.2Game Slave0.8.0Rubber Piggy0.9.0Baby Inspector0.9.1Baby Inspector0.9.2Baby Inspector0.10.0Super Toast Supporte Android et iOS0.10.1Super Toast0.10.2Super Toast11.0Mysterious Mysteries11.1Mysterious Mysteries11.2Mysterious Mysteries11.3Mysterious Mysteries11.4Mysterious Mysteries LuaJIT 2.1 est désormais utilisé dans toutes les versions où LuaJIT est intégré avec LÖVE (macOS, Windows, iOS, Android, Linux AppImage)

Prise en charge native des processeurs Apple Silicon (arm64) sur macOS2 janvier 202211.5Mysterious Mysteries Correction de bug dans l'itérateur de paires de LuaJIT, d'une erreur de jointure sur les lignes parallèle, un nouveau lanceur pour Android et la désactivation du JIT sur les Apple Silicon qui y épuisait rapidement la mémoire.3 décembre 202312.0 Support de Vulkan et Metal, nombreux changements.à venir

Quelques projets notoires ModularLöve, un synthétiseur modulaire logiciel. Balatro

Annexes Notes et références

Bibliographie

Tutoriels en ligne

Liens externes

— Liste de Itch.io des jeux faits avec LÖVE

Catégorie:Moteur de jeu vidéo Catégorie:Logiciel libre sous licence Zlib Catégorie:Lua