LÖVE - Le Bottin des Jeux Linux

LÖVE

🗃️ Specifications

📰 Title: LÖVE 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Development 🚦 Status: 05. Tested & Working (status)
🏷️ Category: Development ➤ Framework & Tool ➤ Game Framework 🌍️ Browser version:
🔖 Tags: Development; 2D engine; Framework; RAD; Scripting support; Lua; Physics; Löve engine; libretro compatible; Prototyping; Easy To Use; Keyboard; Mouse; Controller; Touchscreen; Flagship; Multi-platform 📦️ Package Name: love
🐣️ Approx. start: 2009-07-26 📦️ Arch package: ✓
🐓️ Latest: 2022-04-17 📦️ RPM package: ✓
📍️ Version: Latest: 11.4 / Dev: 5175b0d 📦️ Deb package: ✓
🏛️ License type: 🕊️ Libre 📦️ Flatpak package:
🏛️ License: zlib & (libpng, LGPL-3, GPL-3) 📦️ AppImage package: ✓
🏝️ Perspective: Third & First person 📦️ Snap package: ✓
👁️ Visual: 2D ⚙️ Generic binary:
⏱️ Pacing: Real Time 📄️ Source: ✓
👫️ Played: Single & Multi 📱️ PDA support: ✓
🎖️ This record: 5 stars 🕳️ Not used:
🎀️ Game design: 5 stars 👫️ Contrib.: goupildb & Louis
🎰️ ID: 11805 🐛️ Created: 2010-08-20
🐜️ Updated: 2023-04-14

📖️ Summary

[en]: A libre, multi-platform, game engine for making 2D games written in Lua language with no detailed knowledge of the system or graphical functions. It allows not only to focus on the game without wasting time in the development of the engine, but also to create very quickly multi-platform games. There are already many examples of good games using this awesome engine. Some games require a specific version of the engine that you will need to install separately. [fr]: Un moteur de jeu libre et multi-plateforme permettant de concevoir des jeux en 2D écrits en langage Lua sans connaissance approfondie du système ou des fonctions graphiques. Il permet non seulement de se concentrer sur le jeu sans perdre de temps dans le développement du moteur, mais aussi de créer très rapidement des jeux multi-plateformes. Il y a déjà de très nombreux exemples de bons jeux utilisant ce moteur génial. Certains jeux nécessitent une version spécifique du moteur qu'il vous faudra installer séparément.

🎥️ Videos


🦝️ From Users: (201602), (201909),


🕯️ How To: (202104), (202007), [fr](202004),


🎮️ Showcase: (202110), (201507), (201702),

🕸️ Links

🏡️ Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos t(202xxx) gd(202xxx) gu(201909) gu(201703) r(202xxx) lp(202xxx) ht(202104) ht(202007) ht(201504) ht(201602) ht(201307) ht(0.9.1/201404) ht[fr](202004) d(202110) d(201507) d(201702) d(201304) d(201508) d(201604) d(201603) d(201606) d(201306) d(201203) d(201506) d(201110) d(201508) d(201110) d(200912) d(200909) g(202xxx) g[fr](202xxx) g[de](202xxx) g[ru](202xxx) g[pl](202xxx) g[cz](202xxx) g[sp](202xxx) g[pt](202xxx) g[it](202xxx) g[tr](202xxx)] [WIKI] [FAQ] [RSS] [Changelog 1 2 3 4]

💰 Commercial: [Support their work (Donate)]

🍩️ Resources
• LÖVE Games: [LÖVE (Games)]
• LÖVE engine (misc. versions, Sources & AppImage packages): [LÖVE (Tags)]
• Port of this engine to libretro: [Libretro (Lutro) (WIKI)]

🛠️ Technical informations
[Open Hub] [PCGamingWiki] [MobyGames] [itch.io (tagged love2d)]

🦣️ Social
Devs (LÖVE Development Team 1 2 [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
The Project: [Blog] [Forums] [mastodon] [PeerTube] [YouTube] [PressKit] [reddit] [Discord]

🐝️ Related
[Wikipedia (Löve) [fr] [en] [de]]
[Wiki ubuntu-fr [fr]] [The Linux Game Tome] [Mod DB] [Indie DB] [Korben [fr]]

📦️ Misc. repositories
[Repology] [pkgs.org] [Generic binary] [Arch Linux / AUR] [openSUSE] [Debian/Ubuntu] [Flatpak] [AppImage] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB] [Stranded Soft (Tutorial – Getting started with Löve2D)]

🕊️ Source of this Entry: [Site (date)]

🦣️ Social Networking Update (on mastodon)

🛠️ Title: LÖVE
🦊️ What's: A libre game engine for making 2D games written in Lua
🏡️ https://love2d.org
🐣️ https://github.com/love2d
🔖 #LinuxGameDev #Flagship #LibreGameEngine #Löve
📦️ #Arch #RPM #Deb #AppIm #Snap
📖 Our entry: https://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/

🥁️ Update: 11.4
⚗️ New features 💎
📌️ Changes: https://love2d.org/forums/viewtopic.php?f=3&t=92477
🦣️ From: https://mastodon.social/@game_programming/108334039331280534

🦝️ https://www.youtube.com/embed/ZQCky-_Ad5Y
🎮️ https://www.youtube.com/embed/l55Pm8khC8M

📕 Description [en]

📕🐧"A libre game engine for making 2D games written in Lua"🐧📕

LÖVE is an *awesome* framework you can use to make 2D games in Lua. It's free, open-source, and works on Windows, Mac OS X and Linux.

Open Source

LÖVE is licensed under the liberal zlib/libpng license. This means that:
• It costs nothing.
• You can use it freely for commercial purposes with no limitations.
The source can be found on Bitbucket.

Community

If you get stuck, many friendly people are ready to help you at the forums. Be warned, however, that it sometimes gets too friendly.
People also post their games and projects on the forums, so it's a nice way of exploring what LÖVE can do. Or at least what people choose to use it for.
There is also an IRC channel #love@irc.oftc.net and a Discord server.


🍥️ Debian:

2D game development framework based on Lua and OpenGL

LÖVE was created to be a user-friendly engine in which simple (or complicated) games could be made without having extensive knowledge of system or graphics functions and without having to dedicate time towards developing the same engine features time and time again.

Developed with multi-platform implementation in mind, it utilizes the latest open source libraries to deliver a similar game experience, independent of operating system. By relying on the Lua scripting language for game-specific programming, it allows even the novice game creator to quickly and efficiently develop an idea into a fully working game.


🌍️ Wikipedia:

LÖVE (or Love2D) 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. Fonts can be rendered by the FreeType engine. A version of the engine called piLöve has been specifically ported to Raspberry Pi.

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.

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

📕 Description [fr]

Un moteur de jeu libre et multi-plateforme permettant de concevoir des jeux en 2D, par la LÖVE Development Team (Anders Ruud, Michael Enger, Tommy Nguyen).
En C++. Il intègre la bibliothèque Box2D (pour la physique des jeux).

LÖVE (pour Legendary Orthogonal Virtual Environment) est un moteur de jeu libre et multi-plateforme permettant de concevoir des jeux en 2D écrits en langage Lua sans connaissance approfondie du système ou des fonctions graphiques. Il permet non seulement de se concentrer sur le jeu sans perdre de temps dans le développement du moteur, mais aussi de créer très rapidement des jeux multi-plateformes. Il y a déjà de très nombreux exemples de bons jeux utilisant ce moteur génial. Certains jeux nécessitent une version spécifique du moteur qu'il vous faudra installer séparément.

Un fork du source (voir la section "Resources" ci-dessus) le rend compatible avec libretro (pour plus de précision concernant l'application libreto, voir la fiche "Libretro (& RetroArch)"


LÖVE est un framework * génial * que vous pouvez utiliser pour faire des jeux 2D en Lua. C'est libre, open-source, et fonctionne sur Windows, Mac OS X et Linux.

Open source

LÖVE est sous licence libre zlib / libpng. Cela signifie que:
• Ça ne coûte rien.
• Vous pouvez l'utiliser librement à des fins commerciales sans aucune limitation.
Le source peut être trouvé sur Bitbucket.

Communauté

Si vous êtes coincé, de nombreuses personnes amicales sont prêtes à vous aider sur les forums. Soyez averti, cependant, que cela devient parfois trop amical.
Les gens publient aussi leurs jeux et leurs projets sur les forums, c'est donc une bonne façon d'explorer ce que LÖVE peut faire. Ou du moins ce pourquoi les gens choisissent de l'utiliser.
Il y a aussi un canal IRC #love@irc.oftc.net et un serveur Discord.



🍥️ Debian:

Framework de développement de jeux 2D, basé sur Lua et OpenGL

LÖVE a été conçu pour être un moteur de développement facile d'accès, dans lequel des jeux simples (voire même des programmes plus compliqués) peuvent être créés sans connaissances poussées des fonctions systèmes ou graphiques de l'ordinateur et sans avoir à passer du temps à développer plusieurs fois les mêmes fonctionnalités.

Développé dans un souci d'interopérabilité, il utilise des bibliothèques libres et récentes permettant de ne pas se soucier du système informatique sous-jacent. En se basant sur le langage de script Lua, il permet au créateur de jeux, même le plus novice, de développer rapidement et facilement une idée de base en un jeu complet.


🌍️ Wikipedia:

LÖVE (ou Love2D) est un moteur libre multi-plateforme 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 librairies 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 juillet 2018, il était le 10e 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 librairie plus légère)
• Librairie luasocket pour les communications réseau TCP/UDP
• Librairie 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.

Portabilité et utilisation

Löve est basé sur un langage et des librairies qui ont pour objectif d'être multi-plateforme. Löve est donc multi-plateforme.
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, etc...

La bibliothèque Simple Tiled Implementation permet de charger des niveaux sous formes de tuiles, é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

(...)

🚧️ Installation ➜ 🚀️ Launching [fr]

➥ Installation du moteur LÖVE à partir de son binaire :

📦️ Installation à partir du paquet Manjaro/Arch :

☝️ Nota: la version des dépôts de votre distribution sera probablement la dernière version disponible. Néanmoins certains anciens jeux requerront l'installation d'une version plus ancienne. Dans ce cas vous pouvez conserver la version des dépôts déjà installée, et pourrez installer en plus la version requise au format AppImage (voir ci-après) qui s'exécutera en priorité si vous la lancez en console.

• (✔ 11.4) Il est dans les dépôts Manjaro/Arch (souvent dans sa dernière version), il suffit d'installer le(s) paquet(s).

📦️ Installation (méthode alternative) à partir du binaire au format AppImage :

☝️ Nota: si vous avez une architecture 64-bits, choisissez le livrable love-version-linux-x86_64.AppImage

• (✔ v. 11.1) Un binaire au format AppImage est disponible. Pour l'installer, il suffit de le rendre exécutable (clic droit sous votre gestionnaire de fichier).
Il s'exécutera ensuite à la manière d'un binaire classique : $ ./ love-version-linux-x86_64.AppImage nomdujeu.love


➥ Installation du moteur LÖVE à partir de son source :

☝️ Nota: à partir de la version 11.0, les développeurs fournissent des binaires au format AppImage, voir la section "Installation à partir du binaire au format AppImage" ci-dessus.

▸ Installation des dépendances (en dépôt):
• Installez au préalable les paquets suivants : devil lua-socket luajit libmodplug libtheora freetype2 libvorbis mpg123 openal sdl2 shared-mime-info hicolor-icon-theme desktop-file-utils
(pour Debian/Ubuntu, installez les paquets les paquets spécifiques suivants : liblualib50-dev lua-socket-dev libluajit-5.1-dev libmodplug-dev libtheora-dev libphysfs-dev libmpg123-dev )

▸ Téléchargement du source (sur GitHub) :
☝️ Nota : Évitez le téléchargement du source via les liens https, car ils ne fournissent pas les dépendances
Version stable, dans le répertoire souhaité, lancez : $ git clone -b "Nom_de_la_release" --recursive https://github.com/love2d/love
Nom_de_la_release : à remplacer par le nom d'une release valide indiquée sur la page de développement : sur GitHub, dans la section Release, le nom valide est l'étiquette située à gauche du titre, ou cliquez sur "Tags" pour obtenir la liste des étiquettes valides).
ou Version récente (non stable), dans le répertoire souhaité, lancez : $ git clone --recursive https://github.com/love2d/love

▸ Compilation du moteur :
• Dans son répertoire racine lancez successivement :
$ platform/unix/automagic
$ ./configure
$ make
(ou, pour accélérer la compilation, "$ make -j8" si vous disposez d'un processeur 8 threads, à adapter pour vous)

• La compilation produisant non seulement le binaire love, mais aussi une bibliothèque liblove.so spécifique, le plus simple pour utiliser votre binaire love fraîchement compilé reste probablement de copier votre jeu.love dans le répertoire src/ où se trouve le script love.


➥ Installation d'un source de jeu LÖVE (conversion d'un source de jeu LÖVE en binaire de jeu LÖVE) :

Opération nécessaire si vous souhaitez tester la dernière version de votre jeu (une version de développement) ou si le développeur ne livre pas de livrable au format ".love".
Pour convertir au format '.love" le source de votre jeu conçu pour ce moteur, sélectionnez la totalité du contenu du répertoire où se trouve le fichier main.lua, clic droit, "Compresser..." puis sélectionnez le format ".zip". Ensuite renommez son extension de fichier ".zip" en ".love".


➥ Installation d'un binaire de jeu LÖVE :

▸ Version du moteur LÖVE nécessaire : (à vérifier pour chaque jeu)
• Pour qu'un jeu conçu avec le moteur LÖVE fonctionne, vous devez installer le moteur LÖVE dans la version requise par ce jeu. Si la version n'est pas précisée, tentez la dernière version.
• Des binaires statiques au format AppImage sont disponibles sur le site du moteur, voir la section "Installation à partir du binaire au format AppImage" ci-dessus.

L'alternative est que le développeur du jeu livre le moteur avec son jeu, et ça marche ! Voir: [Itch.io (Testers wanted for Linux builds of games made with Löve)]


🚀️ LANCEMENT DU JEU:

• 1ere méthode (à tester d'abord, si vous avez installé le moteur LÖVE à partir des dépôts): après l'avoir rendu exécutable (via un clic droit sous votre gestionnaire de fichier), cliquez sur le livrable.
• 2nde méthode (si votre jeu nécessite une version spécifique du moteur LÖVE et qu'un livrable au format AppImage dans cette version est disponible): après avoir copié votre moteur au format AppImage dans le répertoire de votre jeu et l'avoir rendu exécutable (clic droit sous votre gestionnaire de fichier), lancez en console : $ ./ love-version-linux-x86_64.AppImage nomdujeu.love
• 3eme méthode (si vous avez compilé une version du moteur LÖVE de la version requise par votre jeu): après avoir copié votre moteur dans le répertoire de votre jeu, lancez en console : $ ./love nom_de_votre_jeu.love

💡 Nota:
• les fichiers ".love" sont des containers zip qu'il suffit de renommer en ".zip" pour accéder à leur contenu.

🕵️ Test [fr]

🕵️ Test (0.10.2 et autres versions) de goupildb :

🎯️ Objectif: rédiger/mettre à jour/valider sa notice d'installation, tester son fonctionnement et partager mes premières impressions.

J'ai souhaité tester 2 nouveaux jeux utilisant le moteur LÖVE: [Zuli] et [Zabuyaki].
J'utilise par défaut le moteur LÖVE des dépôts Debian, en l'occurrence sa version 0.9.1-4.

Mais aucun des 2 jeux ne démarre, j'obtiens un écran bleu avec des messages d'erreurs.

➜ Par exemple avec le jeu Zabuyaki + love 0.9.1-4 (debian), j'obtiens le message suivant en console :
"This game was made for a different version of LÖVE.
It may not be not be compatible with the running version (0.9.1)".

J'ai donc testé la compilation du moteur LÖVE 0.10.2, mais malheureusement sa compilation (le make) plante.
Je me suis rendu sur le site du moteur LÖVE et ai testé l'installation des paquets UBUNTU (voir le lien "LÖVE (Downloads)" ci-dessus) en version 32-bits (love_0.10.2ppa1_i386.deb et liblove0_0.10.2ppa1_i386.deb).
Il est d'abord nécessaire de dés-installer les paquets précédents (la version Debian 0.9.1-4).
Ensuite l'installation des paquets LÖVE fonctionne et le jeu Zabuyaki a très bien fonctionné avec cette nouvelle version.

➜ Quant à l'autre jeu (Zuli), il me signale :
"Compatibility Warning : This game indicates it was made for version '0.8.0' of LOVE. It may not be compatible with the running version (0.10.2)."
Il faut donc que je trouve le moyen d'installer plusieurs versions du moteur LÖVE...

1er constat : sur le dépôt du moteur il n'y a pas de binaire Linux statique disponible (nota : depuis la version 11.0, un binaire statique est disponible), il n'y a que des paquets Debian/UBUNTU ou des sources. Or, si j'essaie d'installer une version (antérieure ou non) autre que celle déjà installée, mon gestionnaire de paquets (apt / synaptic) refuse de le faire sans dés-installer au préalable l'autre version, pas moyen de faire cohabiter 2 versions ensemble.
La seule alternative est donc de compiler plusieurs versions du moteur.

Test de compilation de la version 0.8.0 :
La compilation fonctionne bien. Par contre le binaire statique (i386, 32-bits) à une taille de 14.6Mo, ce qui semble élevé par rapport à la taille des paquets Debian/UBUNTU du site qui ne font que quelques centaines de ko.

Test de ce binaire statique avec le jeu [Zuli] :
$ ./love Zuli.love
Ca marche :)

Test de compilation de la version 0.9.2 (pour le jeu: [Interstellar Cruise]): elle plante.

Récapitulatif des compilations testées :
✔ 0.8.0 (commit : e0f98d5)
✘ 0.9.1 (commit : 8b113c3)
✘ 0.9.2 (commit : a5e405c)
✘ 0.10.0 (commit : 14717f0)
✘ 0.10.1 (commit : 3cb3559)
✘ 0.10.2 (commit : afc69c4)
✔ 0.11.0 (commit : d98fda8)

Récapitulatif des paquets testés :
✔ 0.9.1 (dans les dépôts Debian)
✔ 0.10.0 (paquet UBUNTU)
✔ 0.10.2 (paquet UBUNTU)

(rappel : les paquets fonctionnent mais lorsque l'on change de jeu, il faut désinstaller la précédente version / réinstaller la nouvelle)


‣ 🌞️ J'ai aimé
• Un moteur libre, compacte (même avec un poids de 10Mo, çà reste petit) et puissant, permettant de très belles réalisations (voir la section "Resources" ci-dessus).
• Depuis la version 11.0, des binaires statiques sont livrés sur le site. J'ai testé le binaire 32-bit (i686) en version 11.0 avec le jeu [FortRobbing], il marche très bien. Un grand merci aux développeurs !

‣ 🌤️ Axes d'amélioration
• Les jeux nécessitent des versions spécifiques du moteur pour fonctionner. C'est une vraie galère d'identifier quelle version de moteur utiliser (sous Debian il faut dés-installer les paquets love et liblove à chaque changement de version testée, ça prend un temps fou lorsque l'on a de nombreux paquets installés sur notre distribution).
• Sur le site du moteur, il manque les binaires statiques 32-bits/64-bits des anciennes versions (antérieures à la 11.0) du moteur (les paquets Debian/UBUNTU ne sont pas adaptés si plusieurs versions du moteur sont nécessaires). D'autant que la compilation de ces anciennes versions du moteur plante sous Debian.

🕹️ Conclusion :
Impression globale : 👍️

Suggestions :
• Sur ce constat de dépendances moteur / contenu, j'ai plusieurs suggestions :
- faire en sorte (fonctionnalité à prendre en charge par le moteur si possible) qu'à la création d'un jeu, le moteur ajoute automatiquement un marqueur dans le source permettant aux utilisateurs (ou à la dernière version du moteur en cours) d'identifier facilement quel est la version de moteur nécessaire pour faire tourner le jeu (voir de l'afficher de manière automatique, à la place des messages d'erreur).
- je pense que les auteurs de jeux utilisant ce moteur LOVE seraient avisés de livrer le moteur avec leur jeu sous la forme de 2 binaires statiques (l'un en 32-bits, l'autre en 64-bits) et d'un petit script de lancement (sélectionnant l'un ou l'autre automatiquement).
• Proposer également sur le site de téléchargement du moteur LOVE des versions statiques 32-bits et 64-bits. C'est le cas depuis la version 11.0 : un livrable au format AppImage est à présent fournit. Un grand merci aux développeurs !

Un moteur étonnamment puissant et compacte, permettant de très belles réalisations.
👏️ ❤️ Un grand bravo et merci à ses auteurs !