Difference between revisions of "Game Distribution (Français)"
(→AppImages) |
(→Distribution sur mobile: traduction de l'anglais de la section outils de la communauté) |
||
(4 intermediate revisions by one other user not shown) | |||
Line 27: | Line 27: | ||
Une fois que vous avez votre fichier .zip, changez l'extension en .love. Voilà! | Une fois que vous avez votre fichier .zip, changez l'extension en .love. Voilà! | ||
− | Si vous utiliser un système de fichier insensible à la casse (c'est à dire Windows), il est envisageable de déplacer le fichier .love à un endroit différent du dossier où est votre jeu, et de le tester de nouveau. Cela devrait mettre en avant tout problème lié à la différence de casse que d'autres utilisateurs pourrait subir lors de l'utilisation de votre jeu. Si il fonctionne dans le même dossier, il y trouvera les fichiers qu'il ne trouve pas dans le fichier <code>.love</code>, vous devez donc le déplacer avant tout test. Un endroit approprié pour le déplacer est un dossier à l' | + | Si vous utiliser un système de fichier insensible à la casse (c'est à dire Windows), il est envisageable de déplacer le fichier .love à un endroit différent du dossier où est votre jeu, et de le tester de nouveau. Cela devrait mettre en avant tout problème lié à la différence de casse que d'autres utilisateurs pourrait subir lors de l'utilisation de votre jeu. Si il fonctionne dans le même dossier, il y trouvera les fichiers qu'il ne trouve pas dans le fichier <code>.love</code>, vous devez donc le déplacer avant tout test. Un endroit approprié pour le déplacer est un dossier à l'intérieur de votre dossier de jeu, c'est à dire <code>love/MonJeu.love</code>. |
=== Notes spécifiques à certaines plate-formes === | === Notes spécifiques à certaines plate-formes === | ||
Line 39: | Line 39: | ||
==== Linux / macOS ==== | ==== Linux / macOS ==== | ||
− | En | + | En supposant que le répertoire actif soit <tt style="font-size:1.3em">SuperJeu/</tt>, vous pouvez créer le fichier .love directement en utilisant la commande |
zip -9 -q -r SuperJeu.love . | zip -9 -q -r SuperJeu.love . | ||
Line 76: | Line 76: | ||
* SDL2.dll | * SDL2.dll | ||
* OpenAL32.dll (note: s'appelle tout de même 'OpenAL32.dll' sur 64 bits) | * OpenAL32.dll (note: s'appelle tout de même 'OpenAL32.dll' sur 64 bits) | ||
− | * | + | * SuperJeu.exe |
* license.txt (note: l'inclusion de ce fichier est '''obligatoire''' dans toute distribution) | * license.txt (note: l'inclusion de ce fichier est '''obligatoire''' dans toute distribution) | ||
− | * DevIL.dll | + | * DevIL.dll ''[facultatif voire obsolète ? Absent désormais quand on installe LÖVE]'' |
* love.dll | * love.dll | ||
* lua51.dll | * lua51.dll | ||
Line 270: | Line 270: | ||
== Distribution pour le web == | == Distribution pour le web == | ||
− | Il existe un projet expérimental pour lancer les jeux .love dans un navigateur supportant WebGL (Firefox, Opera, Safari, Chrome... '''à jour''') sans plugins, | + | Il est possible de publier un jeu sous HTML5 ou JavaScript grâce à [https://github.com/TannerRogalsky/love.js TannerRogalsky/love.js]. Les fils d'exécution par exemple ne sont pas pris en charge, cependant, et la lecture dépend du navigateur. |
+ | |||
+ | Une version plus moderne du projet ci-dessus est maintenue à [https://github.com/Davidobot/love.js Davidobot/love.js] et est compatible avec LÖVE v11.3. | ||
+ | |||
+ | |||
+ | Il existe un projet expérimental pour lancer les jeux .love dans un navigateur supportant WebGL (Firefox, Opera, Safari, Chrome... '''à jour''') sans plugins, cf. [https://love2d.org/forums/viewtopic.php?f=5&t=8487 le fil de discussion sur le forum] (en anglais) | ||
== Distribution sur mobile == | == Distribution sur mobile == | ||
Il existe un projet expérimental pour lancer des jeux .love de manière native sur Android, c.f. [https://love2d.org/forums/viewforum.php?f=11 le sous-forum] (en anglais) | Il existe un projet expérimental pour lancer des jeux .love de manière native sur Android, c.f. [https://love2d.org/forums/viewforum.php?f=11 le sous-forum] (en anglais) | ||
+ | |||
+ | == Outils de la communauté == | ||
+ | |||
+ | Il existe différents outils développés par la communauté, afin d'aider dans la distribution du jeu : | ||
+ | * [https://github.com/love-actions LÖVE Actions] - Construit & déploie les jeux en paquet sur la majorité des plateformes les plus populaires, à l'aide de GitHub Actions. Supporte Android, iOS, Linux, macOS, Windows. Le HTML5/WASM n'est pas supporté | ||
+ | * [https://github.com/pfirsich/makelove makelove], outil multiplatforme avancé pour fusionner vos jeux, écrit en Python 3. Supporte Windows et Linux à l'aide d'AppImage. | ||
+ | * [https://github.com/MisterDA/love-release love-release] ([https://love2d.org/forums/viewtopic.php?t=75387 forum]), un script Lua permettant d'automatiser la distribution de jeux. Supporte Windows, macOS, Debian, Linux, avec plus ou moins de fonctionnalités. | ||
+ | * [https://github.com/camchenry/boon boon] ([https://love2d.org/forums/viewtopic.php?t=86573 forum]), un outil multiplatforme, simple à utiliser, fonctionnant sous Windows, macOS et Linux. | ||
+ | * [https://love2d.org/forums/viewtopic.php?f=3&t=80565 Love Distribution Pack][sic], un outil uniquement pour Windows, qui crée des fichiers .love et .exe. | ||
+ | * [https://www.love2d.org/forums/viewtopic.php?f=5&t=30259 love-dist], un outil uniquement pour Windows qui peut [[LuaC]] vos fichiers et créer un .exe. | ||
+ | * [https://github.com/dmoa/love-export love-export], un outil simple et facile en ligne de commande qui construit les binaires pour vous. Supporte Windows, MacOS, et Linux. | ||
+ | |||
+ | Vous pouvez également trouver d'autres bibliothèques dans la section distribution dans la liste [https://github.com/love2d-community/awesome-love2d#distribution Awesome Löve2d]. | ||
[[Category:LÖVE]] | [[Category:LÖVE]] |
Latest revision as of 07:41, 6 April 2023
Une fois votre jeu terminé, vous voudrez sûrement le rendre accessible aux autres. En général vous devriez commencer par créer un fichier .love qui peut être soit directement distribué (ce qui requiert l'installation de LÖVE par les utilisateurs), soit utilisé pour créer des paquets spécifiques a certaines plate-formes.
Voici les manières les plus appropriées de distribuer votre jeu selon la cible (tous utilisent le fichier .love):
- Windows → Exécutable Windows
- Mac OS X → Application OS X
- Linux → simple fichier .love ou Appimages
Contents
Créer un fichier .love
Gardez à l'esprit que certains systèmes d'exploitation utilisent des chemins de fichiers sensibles à la casse. Pour éviter les embrouilles, vérifiez bien que les chemins que vous précisez dans votre code correspondent à ceux de vos dossiers et fichiers.
Pour créer un fichier .love, vous devez créer un fichier .zip du dossier contenant le leu. Veillez à ce que main.lua soit à la racine de l'archive, par ex. si vous avez
<undossier>/SuperJeu/gfx/character.png <undossier>/SuperJeu/main.lua <undossier>/SuperJeu/conf.lua
Vous devez vérifier que le zip contient
gfx/character.png main.lua conf.lua
et pas le dossier SuperJeu/.
Une fois que vous avez votre fichier .zip, changez l'extension en .love. Voilà!
Si vous utiliser un système de fichier insensible à la casse (c'est à dire Windows), il est envisageable de déplacer le fichier .love à un endroit différent du dossier où est votre jeu, et de le tester de nouveau. Cela devrait mettre en avant tout problème lié à la différence de casse que d'autres utilisateurs pourrait subir lors de l'utilisation de votre jeu. Si il fonctionne dans le même dossier, il y trouvera les fichiers qu'il ne trouve pas dans le fichier .love
, vous devez donc le déplacer avant tout test. Un endroit approprié pour le déplacer est un dossier à l'intérieur de votre dossier de jeu, c'est à dire love/MonJeu.love
.
Notes spécifiques à certaines plate-formes
Windows
Windows permet la création de fichiers zip sans logiciel externe. Pour des instructions détaillez rendez vous sur http://windows.microsoft.com/fr-fr/windows/compress-uncompress-files-zip-files
Vous pouvez aussi utiliser l'Utilitaire de Distribution (Distribution Utility, en anglais) disponible https://www.love2d.org/forums/viewtopic.php?f=5&t=30259 ici]
Linux / macOS
En supposant que le répertoire actif soit SuperJeu/, vous pouvez créer le fichier .love directement en utilisant la commande
zip -9 -q -r SuperJeu.love .
Créer un exécutable Windows
Une fois votre jeu compressé dans un .love, vous pouvez créer un exécutable qui lancera directement votre jeu.
Pour ce faire il faut ajouter le fichier .love à la fin du fichier love.exe qui vient avec l'archive .zip officielle de LÖVE. Le fichier en résultant est votre exécutable de jeu.
Une fois que vous avez votre exécutable, vous pouvez compresser avec les autres fichiers DLL de LÖVE dans un .zip et le partager avec le monde.
Note: Certaines personnes n'ont pas de version 64 bit de Windows, donc il est une bonne pratique de soit distribuer une version 32 et une version 64, soit uniquement une version 32 (qui fonctionne aussi sur 64).
Instructions spécifiques à certaines plate-formes
Windows
Pour créer votre exécutable, utilisez la ligne de commande pour lancer
copy /b love.exe+SuperJeu.love SuperJeu.exe
Note: Il se peut que vous ayez à lancer la ligne de commande en tant qu'administrateur. Pour se faire, allez dans le dossier Windows\System32, clic droit sur cmd.exe puis sélectionnez l'option Exécuter en tant qu'administrateur. Vous devrez taper la commande cd C:\Program Files\LOVE\ (ou autre selon le dossier d'installation de LÖVE) pour revenir dans le dossier de LÖVE et exécuter la commande ci-dessus.
Vous pouvez aussi créer un fichier .bat (par ex. creer_exe_jeu.bat) avec le contenu suivant
copy /b love.exe+%1 "%~n1.exe"
puis déplacer SuperJeu.love sur le fichier .bat, il créera tout seul SuperJeu.exe, que vous pourrez utiliser pour la distribution.
Cette méthode crée un jeu fusionné.
Pour distribuer votre jeu vous devrez inclure les fichiers DLL venant avec LÖVE (ne mélangez pas les DLL 32 et 64 bits). Sans ces fichiers SuperJeu.exe ne donnera qu'un message d'erreur et se fermera.
Le contenu de l'archive finale devrait ressembler à ceci:
- SDL2.dll
- OpenAL32.dll (note: s'appelle tout de même 'OpenAL32.dll' sur 64 bits)
- SuperJeu.exe
- license.txt (note: l'inclusion de ce fichier est obligatoire dans toute distribution)
- DevIL.dll [facultatif voire obsolète ? Absent désormais quand on installe LÖVE]
- love.dll
- lua51.dll
- mpg123.dll
- msvcp110.dll
- msvcr110.dll
Linux / macOS
Vous pouvez créer l'exécutable Windows depuis Linux ou OS X en utilisant la ligne de commande.
Téléchargez l'archive zip officielle (32 ou 64 bits, pas l'installeur) depuis https://www.love2d.org/. Sous x86 et la majorité des ARM, Les jeux 32 bits peuvent fonctionner sur les systèmes 64 bits mais pas le contraire, donc pour gagner du temps pouvez ne fournir qu'une version 32 bits.
Lancez alors cette commande dans un terminal une fois le contenu extrait
cat love.exe SuperJeu.love > SuperJeu.exe
pour obtenir l'exécutable SuperJeu.exe.
Créer une application Mac OS X
Une fois votre jeu compressé en .love, vous pouvez le publier pour les utilisateurs de Mac OS X en téléchargeant le zip de LÖVE pour Mac depuis https://www.love2d.org.
Suivez ces instructions:
- Téléchargez et décompressez l'archive de LÖVE pour Mac
- Renommez love.app en SuperJeu.app
- Copiez SuperJeu.love dans SuperJeu.app/Contents/Resources/
- Modifiez SuperJeu.app/Contents/Info.plist (détails plus bas)
- Zipez le dossier SuperJeu.app et distribuez le
Lors de la modification de SuperJeu.app/Contents/Info.plist veillez à bien changer les valeurs des balises XML suivantes:
- CFBundleIdentifier
- CFBundleName
et supprimez la section UTExportedTypeDeclarations pour éviter que Mac OS n'associe tous les fichiers .love avec votre application. Les changements devraient ressembler à ceci:
Info.plist original | Info.plist modifié |
---|---|
... <key>CFBundleIdentifier</key> <string>org.love2d.love</string> ... <key>CFBundleName</key> <string>LÖVE</string> ... <key>NSPrincipalClass</key> <string>NSApplication</string> <key>UTExportedTypeDeclarations</key> <array> ... </array> </dict> </plist> |
... <key>CFBundleIdentifier</key> <string>com.SuperCompanie.SuperJeu</string> ... <key>CFBundleName</key> <string>SuperJeu</string> ... <key>NSPrincipalClass</key> <string>NSApplication</string> </dict> </plist> |
Distribution pour Linux
Pour Linux, il n'y a pas (encore) de moyen facile de distribuer un jeu LÖVE, à cause de l'infinité de configurations et de versions de logiciels utilisés. La première chose à faire est d'installer LÖVE à l'aide du gestionnaire de paquets de distribution Linux utilisée (apt-get, pacman, emerge, ...), puis de lancer le jeu avec la commande
love SuperJeu.love
ou, si le paquet créé une association de fichier (type MIME application/x-love-game), de (double-)cliquer sur le fichier .love depuis un explorateur de fichier par exemple.
Assurez vous de bien inclure in fichier conf.lua
comportant au moins la version de LÖVE utilisée.
function love.conf(t)
t.version = "11.4"
end
Une erreur fréquente est d'utiliser la méthode pour Windows avec les binaires Linux;
cat /usr/bin/love SuperJeu.love > SuperJeu
chmod a+x ./SuperJeu
Bien que le binaire « SuperJeu » se lancera sur votre machine, ainsi que les distributions similaires avec les mêmes bibliothèques logicielles, il y a de fortes chances qu'il ne fonctionne pas sur une autre distribution, ou même après une mise à jour des paquets dont LÖVE dépend.
AppImage officiel
À partir de 11.4, l'AppImage est repositionnable. Cela signifie que si le contenu de l'AppImage est extrait et déplacé quelque part, l’exécutable qu'il contient (<root>/bin/love
) fonctionnera toujours sans problèmes. Cela signifie que la fusion du style Windows utilisant les binaires de l'AppImage est maintenant supportée.
- Téléchargez l'AppImage depuis la page de téléchargement
- Créez un nouveau dossier, puis lancer l'.AppImage dans ce dossier, avec le paramètre de ligne de commande --appimage-extract.
- Un nouveau dossier squashfs-root sera créé. Fusionnez votre jeu à l'aide de la commande
cat squashfs-root/bin/love SuperJeu.love > squashfs-root/bin/SuperJeu
- Définissez le drapeau exécute
chmod +x squashfs-root/bin/SuperJeu
Vous pouvez alors mettre dans une archive tar tout ce qui est dans squashfs-root ou le rempaqueter dans un fichier AppImage. Si vous choisissez ce dernier,
- Définissez le dossier de travail en premier (
cd squashfs-root
) - Créez un nouveau script de lancement qui lance
bin/SuperJeu
, relatif à la position actuelle du script, puis archivez toue le contenu du dossier à l'aide detar czvf ../SuperJeu.tar.gz *
Si vous choisissez de rempaqueter le jeu en AppImage,
- Récupérez appimagetool depuis ici.
- Modifiez le fichier love.desktop pour correspondre à la description de votre jeu. Assurez vous de modifier
Exec=love %f
enExec=SuperGame %f
. - Si vous avez besoin de changer l'icône, positionnez votre icône PNG (SuperJeu.png par exemple) ou SVG (SuperJeu.svg) à ĉôté de love.desktop puis modifiez les
Icon=love
enIcon=SuperJeu
. Vous pouvez alors supprimer love.svg. - Rempaquetez le enfin en AppImage en lancant
appimagetool squashfs-root SuperGame.AppImage
.
Linux
Il n'a pas été démontré que cela fonctionne dans tous les scenarii, mais c'est une façon de distribuer votre jeu pour Linux.
- Téléchargez la version de Love (avec l'extension de fichier .tar.gz) appropriée, soit pour x86_64, soit pour i686. Page de téléchargement
- Désarchivez le .tar.gz. Vous pouvez le faire soit en double-cliquant sur l'icône du fichier et en pressant « extraire le fichier », ou désarchivez le via la ligne de commande :
tar -xvzf love.tar.gz
- Déplacez votre fichier game.love dans le dossier désarchivé.
- Éditez le fichier appelé love en remplaçant "$@" par "${LOVE_LAUNCHER_LOCATION}/game.love”
Debian
Il y a des règles pour inclure les jeu LÖVE dans l'archive Debian. Elles peuvent être suivies pour créer un paquet pour un jeu, même si il n'a pas été conçu pour être inclus dans une archive :
AppImages
Le format AppImage est un format pour empaqueter des applications d'une façon qui leur permet de fonctionner sur une grande diversité de systèmes cible (bases de distributions de systèmes d'exploitations) sans d'avantage de modification. Le kit complet peut être télécharge depuis ici.
Pour empaqueter les jeux en utilisant AppImage, les bibliothèques et dépendances nécessaire au fonctionnement de love doivent être agglomérées, ce qui peut être fait facilement en utilisant CARE (disponible empaqueté dans les dépôts d'Ubuntu) en exécutant :
care -o love.tar.gz love
.
Ce programme crée une archive, qui contient l'exécutable love, ses dépendances et fichiers liés conservés à la façons de votre système. Secondairement le fichier de jeu .love nécessite d'être 'fusionnés' par les moyens expliqués dans la section ci-dessus. Maintenant les fichiers doivent être placés de la façon suivante dans le dossier :
Dossier d'Application/
├── <nom de jeu>.desktop --> Ce fichier contient le chemin vers le fichier d'icône du programme,
│ le nom du programme et la commande pour l'éxecuter.
├── <nom de jeu>.png --> L'icône de votre jeu
└── usr/
├── bin/ --> Vos binaires fusionnés doivent être placés ici
├── lib/ --> Vos bibliothèques doivent être placés ici
└── share/ --> Vos fichier de données (ou ceux de LÖVE) et d'autres choses, doivent être placés ici, si il y en a
Finalement, le dossier nécessite d'être convertit en une AppImage, en utilisant AppImageAssistant disponible dans le kit. D'avantage d'informations peuvent être trouvées dans la documentation d'AppImage.
Android
Compilation depuis les sources
Premièrement, récupérez les codes source soit en les téléchargeant depuis la page de téléchargement ou en clonant projet Android de LÖVE :
git clone --recurse-submodules https://github.com/love2d/love-android
(optionnellement avec --depth 1
pour économiser le temps de téléchargement)
Téléchargez alors le SDK d'Android (précisément l'API 31 pour la 11.4) est le NDK d'Android (précisément la version 21.3.6528147 ou r21d pour la 11.4).
Définissez le ANDROID_SDK_ROOT
à l’emplacement du SDK d'Android puis de l'un de ceux-là pour fusionner votre jeu :
1. Placez vos fichiers de jeu dans (project)/app/src/embed/assets de façon à ce que le chemin de votre main.lua soit (project)/app/src/embed/assets/main.lua (11.4 et supérieur, recommandé); ou
2. Placez votre *.love to (project)/app/src/embed/assets/game.love zippé, notez le nom de fichier game.love (ancien, déprécié dans la prochaine mise à jour majeur)
Vous pourriez avoir besoin de créer les dossiers nécessaires.
Changez le nom du lanceur d'app (android:label) dans (project)/app/src/main/AndroidManifest.xml
. Changez le nom du paquet (applicationId), le code de version (versionCode), et les la chaîne de caractère de version (versionName) dans (project)/app/build.gradle
.
Pour les systèmes Linux et macOS il peut être nécessaire de régler les permissions de l’exécutable :
chmod +x gradlew
Et finalement pour générer l'APK, faire :
./gradlew assembleEmbedNoRecordRelease
L'APK sera placé à (project)/app/build/outputs/apk/embedNoRecord/release/app-embed-noRecord-release-unsigned.apk
Et si vous avez besoin de générer AAB pour le charger dans Play Consode, faire :
./gradlew bundleEmbedNoRecordRelease
Le AAB sra placé à (project)/app/build/outputs/bundle/embedNoRecordRelease/app-embed-noRecord-release.aab
Pour de plus amples informations, voie le dépôt GitHub.
En utilisant APKTool
Cette méthode est maintenant dépréciée puisque le Play Store va rendre nécessaire les Android Application Bundle en 2021 et cette méthode est sujette à la suppression ! |
Cette méthode n'est plus supportée. Pour des raisons historiques, les étapes peuvent être trouvées ici : Game Distribution/APKTool.
Distribution pour le web
Il est possible de publier un jeu sous HTML5 ou JavaScript grâce à TannerRogalsky/love.js. Les fils d'exécution par exemple ne sont pas pris en charge, cependant, et la lecture dépend du navigateur.
Une version plus moderne du projet ci-dessus est maintenue à Davidobot/love.js et est compatible avec LÖVE v11.3.
Il existe un projet expérimental pour lancer les jeux .love dans un navigateur supportant WebGL (Firefox, Opera, Safari, Chrome... à jour) sans plugins, cf. le fil de discussion sur le forum (en anglais)
Distribution sur mobile
Il existe un projet expérimental pour lancer des jeux .love de manière native sur Android, c.f. le sous-forum (en anglais)
Outils de la communauté
Il existe différents outils développés par la communauté, afin d'aider dans la distribution du jeu :
- LÖVE Actions - Construit & déploie les jeux en paquet sur la majorité des plateformes les plus populaires, à l'aide de GitHub Actions. Supporte Android, iOS, Linux, macOS, Windows. Le HTML5/WASM n'est pas supporté
- makelove, outil multiplatforme avancé pour fusionner vos jeux, écrit en Python 3. Supporte Windows et Linux à l'aide d'AppImage.
- love-release (forum), un script Lua permettant d'automatiser la distribution de jeux. Supporte Windows, macOS, Debian, Linux, avec plus ou moins de fonctionnalités.
- boon (forum), un outil multiplatforme, simple à utiliser, fonctionnant sous Windows, macOS et Linux.
- Love Distribution Pack[sic], un outil uniquement pour Windows, qui crée des fichiers .love et .exe.
- love-dist, un outil uniquement pour Windows qui peut LuaC vos fichiers et créer un .exe.
- love-export, un outil simple et facile en ligne de commande qui construit les binaires pour vous. Supporte Windows, MacOS, et Linux.
Vous pouvez également trouver d'autres bibliothèques dans la section distribution dans la liste Awesome Löve2d.
Autres langues
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info