Difference between revisions of "Game Distribution (Українська)"
(to be continued) |
(to be continued) |
||
Line 3: | Line 3: | ||
Ось найбільш зручні способи розповсюдження ігор на різних платформах (для всіх них потрібен файл .love): | Ось найбільш зручні способи розповсюдження ігор на різних платформах (для всіх них потрібен файл .love): | ||
− | * Windows → [[Game Distribution (Українська)#Створення | + | * Windows → [[Game Distribution (Українська)#Створення виконуваного файлу для Windows|Виконуваний файл для Windows]] |
* macOS → [[Game Distribution (Українська)#Створення застосунку macOS|Застосунок для macOS]] | * macOS → [[Game Distribution (Українська)#Створення застосунку macOS|Застосунок для macOS]] | ||
* Linux → звичайний файл .love, або образи [[Game Distribution (Українська)#Розповсюдження в Linux|Appimage]] | * Linux → звичайний файл .love, або образи [[Game Distribution (Українська)#Розповсюдження в Linux|Appimage]] | ||
Line 51: | Line 51: | ||
zip -9 -r SuperGame.love . | zip -9 -r SuperGame.love . | ||
− | == Створення | + | == Створення виконуваного файлу для Windows == |
− | + | Після запакування гри в файл .love, можна створити виконуваний файл, щоб гра запускалася напряму. | |
− | + | Для цього потрібно додати зміст вашого файлу .love до файлу love.exe з офіційного .zip-файла LÖVE. Об'єднаний виконуваний файл і буде використовуватися для запуску гри. | |
− | + | Коли у вас буде об'єднаний виконуваний файл гри, його можна буде запакувати разом з файлами DLL та іншими файлами з офіційного .zip-файлу LÖVE в новий .zip-файл, і передавати його кому завгодно. | |
− | ''' | + | '''Зауваження:''' Не у всіх є 64-бітна версія Windows, тому краще або створити і 32-, і 64-бітну версію вашої гри, або розповсюджувати тільки 32-бітну версію. |
− | === | + | === Інструкції для різних платформ === |
==== Windows ==== | ==== Windows ==== | ||
− | + | Щоб створити виконуваний файл в Windows, виконайте в командному рядку таку команду: | |
copy /b love.exe+SuperGame.love SuperGame.exe | copy /b love.exe+SuperGame.love SuperGame.exe | ||
− | ''' | + | '''Зауваження''': Можливо, вам доведеться виконати цю команду як адміністратор комп'ютера. Для цього можна зайти в папку '''Windows\System32''', натиснути правою кнопкою миші на файл '''cmd.exe''' і вибрати варіант '''Run as administrator''' (Запустити як адміністратор). Після цього потрібно набрати '''cd C:\Program Files\LOVE\''' (замініть це на шлях до директорії з LÖVE) і виконати команду там. |
− | + | Альтернативний спосіб: можна створити файл .bat (наприклад, create_game_exe.bat), записати в ньому такий текст: | |
copy /b love.exe+%1 "%~n1.exe" | copy /b love.exe+%1 "%~n1.exe" | ||
− | + | і просто перетягнути ваш файл SuperGame.love на .bat-файл — після цього буде створено файл SuperGame.love.exe, який можна розповсюджувати. | |
− | + | Якщо ви використовуєте '''PowerShell''' замість cmd, то команда буде трошки інакшою: | |
cmd /c copy /b love.exe+SuperGame.love SuperGame.exe | cmd /c copy /b love.exe+SuperGame.love SuperGame.exe | ||
− | + | Цей метод створює '''приєднану''' (fused) до програми гру. | |
− | ===== Windows | + | ===== Значок для Windows ===== |
− | + | Значок своєї гри можна змінити програмами на кшталт безкоштовного [http://www.angusj.com/resourcehacker/ Resource Hacker] (англ.). | |
− | [https://youtu.be/WTk_HJdXVNQ?t=2m22s | + | Є [https://youtu.be/WTk_HJdXVNQ?t=2m22s відеоурок] (англ.) та [http://gamedev.stackexchange.com/a/121947/9093 покрокова інструкція] (англ.). |
− | ==== Linux / | + | ==== Linux / macOS ==== |
− | + | В Linux та macOS можна створити виконуваний файл для Windows з командного рядка. | |
− | + | Спочатку завантажте офіційний 32-бітний або 64-бітний виконуваний файл в архіві ZIP (zipped, '''не''' встановлювач) з [https://www.love2d.org/ https://www.love2d.org/]. 32-бітні ігри можна виконувати і на системах з 64-бітним Windows, але навпаки робити не можна. Тому, щоб тратити менше часу, для невеличких ігор вистачить тільки 32-бітної версії. | |
− | + | Після цього в командному рядку/терміналі виконайте таку команду: | |
cat love.exe SuperGame.love > SuperGame.exe | cat love.exe SuperGame.love > SuperGame.exe | ||
− | + | щоб отримати ігровий виконуваний файл <tt style="font-size:1.3em">SuperGame.exe</tt>. | |
+ | Для розповсюдження гри треба разом з виконуваним файлом додати файли .dll з тої директорії, в якій був файл love.exe (важливо не переплутати 32-бітні .dll-файли з 64-бітними). Якщо їх не додати, при запуску SuperGame.exe в Windows буде виводитися помилка. | ||
− | + | В результаті ваш фінальний архів має виглядати приблизно так: | |
− | |||
− | |||
* SDL2.dll | * SDL2.dll | ||
− | * OpenAL32.dll ( | + | * OpenAL32.dll (зауваження: 64-бітній версія цього файла відрізняється від 32-бітної, хоч назва в нього і залишиться 'OpenAL32.dll') |
* SuperGame.exe | * SuperGame.exe | ||
− | * license.txt ( | + | * license.txt (зауваження: згідно з ліцензією, її '''обов'язково''' треба копіювати при копіюванні файлів) |
* love.dll | * love.dll | ||
* lua51.dll | * lua51.dll | ||
Line 117: | Line 116: | ||
== Створення застосунку macOS == | == Створення застосунку macOS == | ||
− | + | Коли ви підготувати файл .love зі своєї грою, його можна зробити доступним для гравців та гравчинь з системою macOS, виконавши описані кнопки (також є [https://youtu.be/SU2RpGdezP4 відеоурок] англійською): | |
− | # | + | # Завантажте і розпакуйте версію LÖVE для Mac з [https://www.love2d.org the домашньої сторінки LÖVE] |
− | # | + | # Переіменуйте <tt>love.app</tt> в <tt>SuperGame.app</tt> |
− | # | + | # Скопіюйте <tt>SuperGame.love</tt> в <tt>SuperGame.app/Contents/Resources/</tt> (в macOS натисніть правою кнопкою миші/утримуючи Ctrl в оберіть "Показати зміст пакунку" / "Show Package Content"). В результаті гра буде працювати в об'єднаному режимі. |
− | # | + | # Змініть <tt>SuperGame.app/Contents/Info.plist</tt> (див. нижче) |
− | # | + | # Запакуйте папку <tt>SuperGame.app</tt> в формат ZIP (напр. SuperGame_osx.zip) і розповсюджуйте її. Включіть флаг ''-y'' zip-архіву, щоб зберегти символічні посилання. |
− | + | Коли будете міняти <tt>SuperGame.app/Contents/Info.plist</tt>, обов'язково змініть текст в наступних XML-тегах: | |
* <tt>CFBundleIdentifier</tt> | * <tt>CFBundleIdentifier</tt> | ||
* <tt>CFBundleName</tt> | * <tt>CFBundleName</tt> | ||
− | + | і видаліть розділ <tt>UTExportedTypeDeclarations</tt>, щоб macOS не зв'язав .love-файли інших ігор з вашою грою. В цілому зміни мають виглядати приблизно так: | |
{| border="1" cellpadding="1" cellspacing="0" | {| border="1" cellpadding="1" cellspacing="0" | ||
− | !width="300"| | + | !width="300"|Оригінальний Info.plist |
− | !width="300"| | + | !width="300"|Змінений Info.plist |
|- style="vertical-align: top;" | |- style="vertical-align: top;" | ||
| | | | ||
Line 188: | Line 187: | ||
Вважайте, що хоч `SuperGame` і запуститься на вашому комп'ютері, в інших дистрибутивах Linux може бути інша архітектура або інші версії бібліотек, тому '''є велика імовірність, що на інших комп'ютерах з Linux вона не запуститься'''. | Вважайте, що хоч `SuperGame` і запуститься на вашому комп'ютері, в інших дистрибутивах Linux може бути інша архітектура або інші версії бібліотек, тому '''є велика імовірність, що на інших комп'ютерах з Linux вона не запуститься'''. | ||
− | ==== | + | ==== Нестабільний метод для Linux ==== |
− | + | Поки що не гарантується, що цей метод буде працювати у всіх можливих ситуаціях, але можна попробувати його для розповсюдженні ігор в Linux. | |
− | # | + | # Завантажте актуальну версію LÖVE для Linux (з розширенням .tar.gz), або x86_64, або i686. [https://bitbucket.org/rude/love/downloads/ Сторінка завантаження] (англ.) |
− | # | + | # Розпакуйте файл <tt>.tar.gz</tt>. Для цього можна або натиснути на нього правою кнопкою миші і вибрати «Розпакувати файл» (Extract file), або розпакувати його з командного рядку: <source lang="bash"> tar -xvzf love.tar.gz </source> |
− | # | + | # Перенесіть свій файл <tt>game.love</tt> в директорію, яка з'явилася після розпакування. |
− | # | + | # Відредагуйте файл <tt>love</tt> і замініть "$@" на "${LOVE_LAUNCHER_LOCATION}/game.love" |
==== Debian ==== | ==== Debian ==== | ||
− | + | Архів Debian має правила включення ігор на LÖVE. Навіть якщо ви не плануєте додавати гру в цей архів, ви можете використовувати їх інструкції. | |
− | [https://wiki.debian.org/Games/Love2d | + | [https://wiki.debian.org/Games/Love2d Створення пакетів Love2d] (англ.) |
==== AppImages ==== | ==== AppImages ==== | ||
− | + | Формат AppImage дозволяє створити пакунок з програмою, який можна буде використовувати на багатьох різних системах (основних операційних системах, дистрибутивах) без змін. Весь набір інструментів для нього можна завантажити [https://github.com/probonopd/AppImageKit/ тут] (англ.). | |
In order to package games using AppImage, the libraries and dependencies required by love need to be gathered, which can be done easily using [https://github.com/proot-me/PRoot/blob/master/doc/care/manual.txt CARE] (available packaged in the Ubuntu repositories) by executing: | In order to package games using AppImage, the libraries and dependencies required by love need to be gathered, which can be done easily using [https://github.com/proot-me/PRoot/blob/master/doc/care/manual.txt CARE] (available packaged in the Ubuntu repositories) by executing: | ||
Line 252: | Line 251: | ||
== iOS == | == iOS == | ||
− | Basic instructions for iOS (without fusing) are available at [[ | + | Basic instructions for iOS (without fusing) are available at [[Getting Started (Українська)#iOS]]. |
To '''fuse''' your game into the LÖVE engine: | To '''fuse''' your game into the LÖVE engine: | ||
Line 278: | Line 277: | ||
[[Category:LÖVE]] | [[Category:LÖVE]] | ||
− | == | + | == Іншими мовами == |
{{i18n|Game Distribution}} | {{i18n|Game Distribution}} |
Revision as of 08:07, 31 January 2020
Коли ви зробите свою гру, ви, безумовно, захочете поділитися нею з іншими. Для цього звичайно треба створити файл .love. Потім можна або передати цей файл іншим (щоб зіграти в таку гру, гравцям потрібно спочатку встановити LÖVE), або створити на його основі пакети для конкретних платформ.
Ось найбільш зручні способи розповсюдження ігор на різних платформах (для всіх них потрібен файл .love):
- Windows → Виконуваний файл для Windows
- macOS → Застосунок для macOS
- Linux → звичайний файл .love, або образи Appimage
Contents
Створення файлу .love
Зверніть увагу, що в деяких операційних системах великі і малі літери в назвах файлів та директорій вважаються різними літерами. Щоб у вас не було проблем, переконайтеся, що назви файлів в коді та на диску написані однаково.
Щоб створити файл .love, треба створити файл zip усієї директорії з грою. Переконайтеся, що файл main.lua знаходиться в корені архіву. Тобто якщо ваші файли зберігаються так:
<somedir>\SuperGame\gfx\character.png <somedir>\SuperGame\main.lua <somedir>\SuperGame\conf.lua
то в zip-архіві вони мають зберігатися так:
gfx\character.png main.lua conf.lua
Не треба включати директорію гри SuperGame\.
Після створення .zip-файлу просто перейменуйте його з .zip в .love, і все готово!
Якщо ви працюєте на системі, яка не розрізняє великі та малі літери в іменах файлів (наприклад, в Windows), рекомендується перенести свій файл .love в іншу директорію, запустити його звідти і протестувати гру. Таким чином можна знайти проблеми з різними іменами файлів, з якими можуть зіштовхнутися інші гравці або гравчині. Якщо ви запускатимете гру в тій же директорії, то навіть якщо .love не знайде в архіві якісь файли, він відкриє їх копію з диску. Для тестування зручно перенести файл .love в нову директорію всередині директорії гри, наприклад, love/MyGame.love
.
Створення пакетів на різних платформах
Windows
В Windows вбудована можливість створення zip-файлів через контекстне меню. Детальніше див. в інструкції Запакування та розархівування файлів.
macOS
В директорії гри оберіть файли гри та під-директорії, натисніть правою кнопкою миші/з затиснутим Ctrl, після чого оберіть Compress n items (Запакувати N елементів). Після цього перейменуйте створений файл .zip
, щоб в нього було закінчення .love
ending.
Альтернативний варіант — використати термінал. Зайдіть в папку гри та виконайте таку команду:
zip -9 -r SuperGame.love .
Linux
В командному рядку, якщо вашою активною директорією є SuperGame/, файл .love можна створити таким чином:
zip -9 -r SuperGame.love .
Створення виконуваного файлу для Windows
Після запакування гри в файл .love, можна створити виконуваний файл, щоб гра запускалася напряму.
Для цього потрібно додати зміст вашого файлу .love до файлу love.exe з офіційного .zip-файла LÖVE. Об'єднаний виконуваний файл і буде використовуватися для запуску гри.
Коли у вас буде об'єднаний виконуваний файл гри, його можна буде запакувати разом з файлами DLL та іншими файлами з офіційного .zip-файлу LÖVE в новий .zip-файл, і передавати його кому завгодно.
Зауваження: Не у всіх є 64-бітна версія Windows, тому краще або створити і 32-, і 64-бітну версію вашої гри, або розповсюджувати тільки 32-бітну версію.
Інструкції для різних платформ
Windows
Щоб створити виконуваний файл в Windows, виконайте в командному рядку таку команду:
copy /b love.exe+SuperGame.love SuperGame.exe
Зауваження: Можливо, вам доведеться виконати цю команду як адміністратор комп'ютера. Для цього можна зайти в папку Windows\System32, натиснути правою кнопкою миші на файл cmd.exe і вибрати варіант Run as administrator (Запустити як адміністратор). Після цього потрібно набрати cd C:\Program Files\LOVE\ (замініть це на шлях до директорії з LÖVE) і виконати команду там.
Альтернативний спосіб: можна створити файл .bat (наприклад, create_game_exe.bat), записати в ньому такий текст:
copy /b love.exe+%1 "%~n1.exe"
і просто перетягнути ваш файл SuperGame.love на .bat-файл — після цього буде створено файл SuperGame.love.exe, який можна розповсюджувати.
Якщо ви використовуєте PowerShell замість cmd, то команда буде трошки інакшою:
cmd /c copy /b love.exe+SuperGame.love SuperGame.exe
Цей метод створює приєднану (fused) до програми гру.
Значок для Windows
Значок своєї гри можна змінити програмами на кшталт безкоштовного Resource Hacker (англ.).
Є відеоурок (англ.) та покрокова інструкція (англ.).
Linux / macOS
В Linux та macOS можна створити виконуваний файл для Windows з командного рядка.
Спочатку завантажте офіційний 32-бітний або 64-бітний виконуваний файл в архіві ZIP (zipped, не встановлювач) з https://www.love2d.org/. 32-бітні ігри можна виконувати і на системах з 64-бітним Windows, але навпаки робити не можна. Тому, щоб тратити менше часу, для невеличких ігор вистачить тільки 32-бітної версії.
Після цього в командному рядку/терміналі виконайте таку команду:
cat love.exe SuperGame.love > SuperGame.exe
щоб отримати ігровий виконуваний файл SuperGame.exe.
Для розповсюдження гри треба разом з виконуваним файлом додати файли .dll з тої директорії, в якій був файл love.exe (важливо не переплутати 32-бітні .dll-файли з 64-бітними). Якщо їх не додати, при запуску SuperGame.exe в Windows буде виводитися помилка.
В результаті ваш фінальний архів має виглядати приблизно так:
- SDL2.dll
- OpenAL32.dll (зауваження: 64-бітній версія цього файла відрізняється від 32-бітної, хоч назва в нього і залишиться 'OpenAL32.dll')
- SuperGame.exe
- license.txt (зауваження: згідно з ліцензією, її обов'язково треба копіювати при копіюванні файлів)
- love.dll
- lua51.dll
- mpg123.dll
- msvcp120.dll
- msvcr120.dll
Створення застосунку macOS
Коли ви підготувати файл .love зі своєї грою, його можна зробити доступним для гравців та гравчинь з системою macOS, виконавши описані кнопки (також є відеоурок англійською):
- Завантажте і розпакуйте версію LÖVE для Mac з the домашньої сторінки LÖVE
- Переіменуйте love.app в SuperGame.app
- Скопіюйте SuperGame.love в SuperGame.app/Contents/Resources/ (в macOS натисніть правою кнопкою миші/утримуючи Ctrl в оберіть "Показати зміст пакунку" / "Show Package Content"). В результаті гра буде працювати в об'єднаному режимі.
- Змініть SuperGame.app/Contents/Info.plist (див. нижче)
- Запакуйте папку SuperGame.app в формат ZIP (напр. SuperGame_osx.zip) і розповсюджуйте її. Включіть флаг -y zip-архіву, щоб зберегти символічні посилання.
Коли будете міняти SuperGame.app/Contents/Info.plist, обов'язково змініть текст в наступних XML-тегах:
- CFBundleIdentifier
- CFBundleName
і видаліть розділ UTExportedTypeDeclarations, щоб macOS не зв'язав .love-файли інших ігор з вашою грою. В цілому зміни мають виглядати приблизно так:
Оригінальний Info.plist | Змінений Info.plist |
---|---|
... <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.SuperCompany.SuperGame</string> ... <key>CFBundleName</key> <string>SuperGame</string> ... <key>NSPrincipalClass</key> <string>NSApplication</string> </dict> </plist> |
Розповсюдження в Linux
В Linux поки що немає простого способу розповсюдження ігор. Основний підіх — дати посилання на офіційні пакунки LÖVE на https://www.love2d.org. Після встановлення LÖVE файли .love звичайно запускаються автоматично, або такою командою в командному рядку:
love SuperGame.love
Обов'язково додайте файл conf.lua
і вкажіть в ньому використану версію LÖVE.
function love.conf(t)
t.version = "11.2"
end
Часта помилка — спроба приєднати до лінуксової програми файл .love:
cat /usr/bin/love SuperGame.love > SuperGame
chmod a+x ./SuperGame
Вважайте, що хоч `SuperGame` і запуститься на вашому комп'ютері, в інших дистрибутивах Linux може бути інша архітектура або інші версії бібліотек, тому є велика імовірність, що на інших комп'ютерах з Linux вона не запуститься.
Нестабільний метод для Linux
Поки що не гарантується, що цей метод буде працювати у всіх можливих ситуаціях, але можна попробувати його для розповсюдженні ігор в Linux.
- Завантажте актуальну версію LÖVE для Linux (з розширенням .tar.gz), або x86_64, або i686. Сторінка завантаження (англ.)
- Розпакуйте файл .tar.gz. Для цього можна або натиснути на нього правою кнопкою миші і вибрати «Розпакувати файл» (Extract file), або розпакувати його з командного рядку:
tar -xvzf love.tar.gz
- Перенесіть свій файл game.love в директорію, яка з'явилася після розпакування.
- Відредагуйте файл love і замініть "$@" на "${LOVE_LAUNCHER_LOCATION}/game.love"
Debian
Архів Debian має правила включення ігор на LÖVE. Навіть якщо ви не плануєте додавати гру в цей архів, ви можете використовувати їх інструкції.
Створення пакетів Love2d (англ.)
AppImages
Формат AppImage дозволяє створити пакунок з програмою, який можна буде використовувати на багатьох різних системах (основних операційних системах, дистрибутивах) без змін. Весь набір інструментів для нього можна завантажити тут (англ.).
In order to package games using AppImage, the libraries and dependencies required by love need to be gathered, which can be done easily using CARE (available packaged in the Ubuntu repositories) by executing:
care -o love.tar.gz love
.
This program makes an archive, which contains the love executable and its dependencies and related files kept in the way of your system. Secondly, the game's .love file needs to be 'fused' by the means shown in the above section. Now, the files need to be placed in the following way in a new directory:
Application Directory/
├── <game name>.desktop --> This file contains path to the program's icon file,
│ the name of the program and the command to execute it.
├── <game name>.png --> Your game's icon
└── usr/
├── bin/ --> Your fused binary needs to be placed here
├── lib/ --> Your libraries need to be placed here
└── share/ --> Your (or LÖVE's) data files (and other things) need to be placed here, if any
Finally, the directory needs to be converted into an AppImage, using AppImageAssistant available in the kit. More information can be found in the AppImage documentation.
Android
Compiling from source
Firstly clone the android LÖVE project, specifying which branch to use:
git clone https://github.com/love2d/love-android
Then, download the Android SDK (API 28) and NDK. For the NDK, r16 and later is known to work. Older version is untested.
Set these environment variables
ANDROID_HOME
to your Android SDK location.ANDROID_NDK_HOME
to your Android NDK location.
Put the game (game.love) in the directory (project)/app/src/main/assets (if this directory don't exist create it).
For Linux or macOS systems it may be necessary set the executable permission:
chmod +x gradlew
And finally to generate the apk, do:
./gradlew assemble
The apk will be in (project)/app/build/outputs/apk/
For more information see the Android wiki.
Using APKTool
Please see Game Distribution/APKTool for more information.
iOS
Basic instructions for iOS (without fusing) are available at Getting Started (Українська)#iOS.
To fuse your game into the LÖVE engine:
- Get iOS source code from love2d.org.
- Open platform/xcode/love.xcodeproj with Xcode.
- Select love-ios target (not love-macosx)
- Select Build Phases of the 'love-ios' target and add your 'game.love' file into Copy Bundle Resources.
- Build the project.
- Your game should appear on your iOS device as an app.
If you can't find the relevant XCode UI elements, you can refer to video tutorial on YouTube.
Distribution on the web
Publishing as a HTML5 or JavaScript game is possible thanks to TannerRogalsky/love.js. Threads for example are not supported though and playback of course depends on the browser.
Community Tools
There are a few tools developed by the community to help with game distribution.
- love-release (forum), a Lua script that automates game distribution. Supports Windows, macOS, Debian, Linux, with much more features.
- boon (forum), a multi-plateform, easy to use tool supporting Windows, macOS, Linux.
- Love Distrubution Pack[sic], a windows-only tool that can create .love files and exes.
- love-dist, a windows-only tool that can LuaC your files and create an exe.
Іншими мовами
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