LÖVE - Le Bottin des Jeux Linux

LÖVE

Specifications

Title: LÖVE Type: Tool
Genre: Development Status:
Category: Development ➤ Engine ➤ 2D ➤ Misc. Commercial:
Tags: 2D engine; Frameworks; Scripting language; Physics; Löve engine; libretro compatible; Prototyping; Easy To Use; Keyboard; Mouse; Controller; Touch Friendly; Multi-platform Demo:
Released: Latest : 11.3 [Mysterious Mysteries] / Dev : E557ae9 Package Name: love
Date: 2020-01-24 Extern Repo: AppImage
License: zlib & (libpng, LGPL v3, GPL v3) Repo: Debian
Perspective: Third person Package: ✓
Visual: 2D Binary: ✓
Pacing: Real Time Source: ✓
Played: Single & Multi PDA: ✓
Quality (record): 5 stars Quality (game):
Contrib.: Goupil & Louis ID: 11805
Created: 2010-08-20 Updated: 2020-06-06

Summary

[fr]: Un framework 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. [en]: A libre, multi-platform, framework 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.

Videos

Présentation des utilisateurs / Users presents :


How To utilisateur / User How To :


Quelques exemples / Some examples (Showcase) :

Links

Website & videos
[Homepage] [Dev site] 2] [Features/About] [Screenshots] [Videos t ts gd gu id r lp ht ht ht ht d d d d d d d d d d d d d d d d g g[fr] g[de] g[ru] g[pl] g[cz] g[sp] g[pt] g[it] g[tr] g] [WIKI] [FAQ] [RSS] [Changelog 1 2 3 4]

Commercial : [Support their work (Donate)]

Resources
• LÖVE Games : [LÖVE (Games)]
• LÖVE engine (Other versions, deb files & sources) : [LÖVE (Tags) (Downloads)]
• 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 [en]) : [Site] [Forums] [twitter] [YouTube] [Interview 1 2]
Game : [Blog] [Forums] [twitter] [YouTube]

On other sites
[Wikipedia (Löve) [fr] [en] [de]]
[UBUNTU [fr]] [The Linux Game Tome] [Debian] [Mod DB] [Indie DB] [Korben [fr]]

Reviews
[metacritic]

News / Source of this Entry (SotE) / News (SotN)
[Changes with v. 11.3 (20191027)]

Description [fr]

Un framework 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, dans le Bottin).

LÖVE (pour Legendary Orthogonal Virtual Environment) est un framework 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)"

Utilisé par ces jeux / Used by these games : Debug Quest, Duck Marines, fox flux, Go farm!, GunFu Deadlands, In Your Face City Trains, Lalalove, Mari0, Metanet Hunter, Metanet Hunter SE, Metanet Hunter: REMIX!, Mr. Rescue, Not Tetris 2, Nova Pinball, oh my giraffe, Ortho Robot, Possession, Seduction Quest, Shplat, Sienna, Snayke, Süsse, Swervin Mervin, Tetragon, Threaten to Evolve, Thrust II Reloaded, TrAInsported, Zabuyaki,


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

Historique

(...)

Lutro est un framework de jeu en lua pour libretro, port partiel l'API de LÖVE10. 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.

Description [en]

"A libre framework for making 2D games written in Lua" -- Le Bottin

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.

Installation [fr]

INSTALLATION :

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

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.

(NEW!) 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)]


1ere alternative, les paquets Debian/UBUNTU :
Le moteur LÖVE est en dépôt, mais pas nécessairement dans la version requise (une version inférieure ou supérieure ne fonctionnera vraisemblablement pas).
Des paquets UBUNTU du moteur LÖVE sont disponibles sur le site du moteur dans la plupart des versions. Le problème de ces paquets est qu'en fonction du jeu testé, il sera nécessaire de dés-installer la précédente version avant d'installer la nouvelle.

2nde alternative, les binaires statiques :
Des binaires statiques sont disponibles sur le site de développement (un grand merci aux développeurs).
Pour utiliser ce type de livrable, il suffit de le décompresser et de copier votre fichier de jeu ".love" dans le répertoire racine du moteur (pour le lancer il vous suffira ensuite de lancer en console : $ ./love jeu.love)

Si vous ne trouvez pas de binaire LÖVE dans la version requise, il vous faudra compiler son source.

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

Cette alternative s'avère nécessaire si :
• le lancement de certains jeux aboutit à une erreur, car nécessitant une version spécifique du moteur LÖVE différente de celle installée sur votre distribution (cas des jeux utilisant soit des fonctionnalités nouvelles, soit anciennes et non reconduites dans la dernière version du moteur).
• vous souhaitez tester la dernière version (de développement) du moteur et qu'elle n'est pas dans les dépôts de votre distribution, et qu'un binaire statique de la version requise n'est pas disponible.

Dans ce cas :
• Téléchargez le source du moteur LÖVE, dans la version souhaitée (voir les liens "LÖVE (Tags)" et "(Downloads)" ci-dessus)
• Installez au préalable les paquets suivants : liblualib50-dev lua-socket-dev libluajit-5.1-dev libmodplug-dev libtheora-dev libphysfs-dev libmpg123-dev

• Décompressez son source, puis 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 (versions de développement) de votre jeu.
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".


LANCEMENT DU JEU :

• 1ere méthode (à tester d'abord, si vous avez installé le moteur LÖVE à partir de paquets Debian/UBUNTU) : sélectionnez votre jeu par un clic droit et "Ouvrir avec LÖVE".
• 2nde méthode (si vous avez compilé le moteur LÖVE ou avez téléchargé l'une de ses versions statiques, voir ci-dessus) : après avoir copié votre jeu dans le répertoire contenant le script LÖVE, 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 :

(test de fonctionnement)

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)


Côté ☺ :
• 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 !

Côté ☹ :
• 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 :

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 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 !