Difference between revisions of "Game Distribution (日本語)"

m (Android: Added Admob information link.)
m
 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
いったんゲームを完成させたならば、きっとほかの人にも遊んで欲しいと思うでしょう。一般に .love ファイルを作成して直接配布するか(利用者は LÖVE の導入が必要です)、特定プラットフォーム用のパッケージを利用します。
+
ゲームの完成後、きっとほかの人にも遊んで欲しいと思うでしょう。一般に <tt>.love</tt> ファイル形式での配布 (LÖVE の導入が必要)、あるいは各プラットフォーム専用のパッケージを利用します。
  
これらはターゲット別にゲームを配布するには好ましい方法です (作成には全て .love ファイルを使用します):
+
ターゲット別にゲームを配布するには好ましい方法です (<tt>.love</tt> ファイルを使用して作成します):
  
* Windows &rarr; [[Game_Distribution#Creating_a_Windows_Executable|Windows 実行可能形式]]
+
* Windows &rarr; [[Game_Distribution (日本語)#Creating_a_Windows_Executable|Windows 実行可能形式]]
* Mac OS X &rarr; [[Game_Distribution#Creating_a_Mac_OS_X_Application|OS X アプリケーション]]
+
* macOS &rarr; [[Game_Distribution (日本語)#Creating_a_Mac_OS_X_Application|macOS アプリケーション]]
* Linux &rarr; 平文の .love ファイル、または [[Game_Distribution#Distribution_for_Linux|Appimages]]
+
* Linux &rarr; 平文の <tt>.love</tt> ファイル、または [[Game_Distribution (日本語)#Distribution_for_Linux|Appimages]]
  
 
__TOC__
 
__TOC__
  
== .love ファイルの作成 ==
+
== <tt>.love</tt> ファイルの作成 ==
  
一部のオペレーティング・システムではパスに対して大文字・小文字を区別して使用することに注意してください。不要な苦闘を避けるために列挙されたフォルダおよびファイルパスがコードにて一致して使用されていることを確認してください。
+
一部のオペレーティング・システムでは大文字・小文字を区別してパスを使用できるに注意してください。不要な苦闘を避けるために列挙されたフォルダおよびファイルパスがコードにて一致して使われていることを確認してください。
  
.love ファイルを作成するにはゲーム・ディレクトリ全体の zip 書庫ファイルを作成してください。書庫のルートに main.lua があることを確認してください。例えば、
+
<tt>.love</tt> ファイルを作成するにはゲーム・ディレクトリ全体の zip 書庫ファイルを作成してください。書庫のルートに main.lua があることを確認してください。例えば、
  
 
     <somedir>\SuperGame\gfx\character.png
 
     <somedir>\SuperGame\gfx\character.png
Line 19: Line 19:
 
     <somedir>\SuperGame\conf.lua
 
     <somedir>\SuperGame\conf.lua
  
がある場合はディレクトリは <tt style="font-size:1.3em">SuperGame\</tt> '''ではなく'''、
+
のとき、ディレクトリは <tt style="font-size:1.3em">SuperGame\</tt> '''ではなく'''、
  
 
     gfx\character.png
 
     gfx\character.png
Line 25: Line 25:
 
     conf.lua
 
     conf.lua
  
を zip ファイルに確実に含まれるようにする必要があります。
+
を zip ファイルへ確実に収録する必要があります。
  
いったん zip ファイルを作成してファイル末尾(拡張子)を .zip から .love へ名称変更すれば完成です!
+
zip ファイルを作成後にファイル末尾(拡張子)を .zip から <tt>.love</tt> へ名称変更すれば完成です!
  
=== プラットフォーム特有の注釈 ===
+
英数大小文字同一視型のファイルシステム (Windows など) では、ゲームのあるフォルダ以外の場所に .love ファイルを移動して再検証することを推奨します。これにより、ゲームの実行時に発生する恐れがある英数大小文字同一視の問題を発見できます。同一フォルダでの実行時に検出不能な .love ファイルを見つけるには、検証前に移動してください。移動先のフォルダとして好ましいゲームのディレクトリは、例えば <code>love/MyGame.love</code> などです。
 +
 
 +
=== プラットフォーム別の注釈 ===
  
 
==== Windows ====
 
==== Windows ====
Line 35: Line 37:
 
標準で右クリックメニューによる zip ファイルの作成に対応しています。詳細な手順は [https://support.microsoft.com/ja-jp/help/14200/windows-compress-uncompress-zip-files ファイルの圧縮と圧縮解除を行う (zip ファイル)] を参照してください。
 
標準で右クリックメニューによる zip ファイルの作成に対応しています。詳細な手順は [https://support.microsoft.com/ja-jp/help/14200/windows-compress-uncompress-zip-files ファイルの圧縮と圧縮解除を行う (zip ファイル)] を参照してください。
  
==== Mac OS X ====
+
==== macOS ====
  
 
ゲーム内のフォルダで、ゲームのファイルとフォルダを選択してから、右クリック/Ctrl+クリックおよび '''n 個のアイテムを圧縮''' を選択します。そして作成された <code>.zip</code> ファイルの拡張子を <code>.love</code> へ名称変更します。
 
ゲーム内のフォルダで、ゲームのファイルとフォルダを選択してから、右クリック/Ctrl+クリックおよび '''n 個のアイテムを圧縮''' を選択します。そして作成された <code>.zip</code> ファイルの拡張子を <code>.love</code> へ名称変更します。
Line 51: Line 53:
 
== Windows 実行可能形式の作成 ==
 
== Windows 実行可能形式の作成 ==
  
いったんゲームを .love ファイルへ書庫化するとゲームを実行可能形式として作成できるためゲームを直接実行できるようになります。
+
ゲームを .love ファイルへ変換した後は、実行可能ファイルを生成することで直接実行できるようになります。
  
これについては公式な LÖVE の .zip ファイルにある love.exe ファイルへ .love ファイルを追加する必要があります。この結果としてファイルは実行可能形式のゲームとなります。
+
詳しく述べるとは公式配布版の LÖVE の .zip ファイルにある love.exe ファイルへ .love ファイルを追加する必要があります。この結果としてファイルは実行可能形式のゲームとなります。
  
いったんゲームを実行可能形式にしておくと、 公式な LÖVE の .zip にある他の全 DLL ファイルと一緒に新規の .zip ファイルへ圧縮することで、世界中にゲームを共有できるようになります。
+
ゲームを実行可能形式にしておくと、 公式配布版の LÖVE の .zip にある他の全 DLL ファイルと一緒に新規の .zip ファイルへ圧縮することで、世界中にゲームを共有できるようになります。
  
'''注釈:''' 一部の人々は 64 bit 版の Windows を所有していませんので、ゲームの 32/64 bit 版の両方を配布するか、 32 bit 版のみを配布するのは良い考えです。
+
'''注釈:''' 一部の人々は 64 bit 版の Windows を所有していませんので、ゲームの 32/64 bit 版の両方を配布、あるいは 32 bit 版のみを配布するのは良い考えです。
  
=== プラットフォーム特有の手順 ===
+
=== プラットフォーム別の手順 ===
  
 
==== Windows ====
 
==== Windows ====
Line 73: Line 75:
 
     copy /b love.exe+%1 "%~n1.exe"
 
     copy /b love.exe+%1 "%~n1.exe"
  
そして単に SuperGame.love ファイルを .bat ファイルへドラッグすることで配布用に使用できる SuperGame.love.exe ファイルを作成することができます。
+
そして SuperGame.love ファイルを .bat ファイルへドラッグしてください。これで配布用の SuperGame.love.exe ファイルを作成することができます。
 +
 
 +
cmd ではなく '''PowerShell''' をお使いならば、コマンドは少し違います:
 +
 
 +
    cmd /c copy /b love.exe+SuperGame.love SuperGame.exe
  
この方法は '''fused (ヒューズ)''' 形式のゲームを作成します。
+
この方法は '''結合型実行形式(fused)''' のゲームを作成します。
  
 
===== Windows アイコン =====
 
===== Windows アイコン =====
Line 83: Line 89:
 
[https://youtu.be/WTk_HJdXVNQ?t=2m22s 動画チュートリアル]および[http://gamedev.stackexchange.com/a/121947/9093 順序による手順書]を利用できます。
 
[https://youtu.be/WTk_HJdXVNQ?t=2m22s 動画チュートリアル]および[http://gamedev.stackexchange.com/a/121947/9093 順序による手順書]を利用できます。
  
==== Linux / OS X ====
+
==== Linux / macOS ====
  
Linux および OS X からでもコマンドラインまたはターミナルを使用することで Windows 実行可能形式を作成できます。
+
Linux および macOS からでもコマンドラインまたはターミナルを使用することで Windows 実行可能形式を作成できます。
  
 
最初に https://www.love2d.org/ から公式で提供されている Windows 用 32 bit または 64 bit 版実行可能形式がある .zip ファイル(インストーラーでは'''ありません''') をダウンロードします。 32 bit 版のゲームは 64 bit 版 Windows で実行できますが逆はできないため、小型のゲームでは時間を節約するために、 32 bit 版のみ提供することもできます。
 
最初に https://www.love2d.org/ から公式で提供されている Windows 用 32 bit または 64 bit 版実行可能形式がある .zip ファイル(インストーラーでは'''ありません''') をダウンロードします。 32 bit 版のゲームは 64 bit 版 Windows で実行できますが逆はできないため、小型のゲームでは時間を節約するために、 32 bit 版のみ提供することもできます。
Line 109: Line 115:
 
* msvcr120.dll
 
* msvcr120.dll
  
== Mac OS X アプリケーションの作成 ==
+
== macOS アプリケーションの作成 ==
いったん .love ファイルとして自作ゲームを用意すれば Mac OS X の利用者は次の手順に従うことで自作ゲームを遊ぶことができるようになります ([https://youtu.be/SU2RpGdezP4 動画による手順書]を利用できます):
+
<tt>.love</tt> ファイルとして自作ゲームを用意すれば macOS の利用者は次の手順に従うことで自作ゲームを遊ぶことができるようになります ([https://youtu.be/SU2RpGdezP4 動画による手順書]を利用できます):
  
# [https://www.love2d.org LÖVE ホームページ] から Mac 版をダウンロードして展開します。
+
# [https://www.love2d.org LÖVE ホームページ] から macOS 版をダウンロードして展開します。
 
# <tt>love.app</tt> を <tt>SuperGame.app</tt> へ名称変更します。
 
# <tt>love.app</tt> を <tt>SuperGame.app</tt> へ名称変更します。
# <tt>SuperGame.love</tt> を <tt>SuperGame.app/Contents/Resources/</tt> へ複写します (右クリック/Ctrl+クリックおよび OS X で "パッケージの内容表示" を選択)
+
# <tt>SuperGame.love</tt> を <tt>SuperGame.app/Contents/Resources/</tt> へ複写します (右クリック/Ctrl+クリックおよび OS X で "パッケージの内容表示" を選択)。これにより、ゲームは結合型実行形式で実行されるようになります。
 
# <tt>SuperGame.app/Contents/Info.plist</tt>  を変更します (詳細は下記参照)。
 
# <tt>SuperGame.app/Contents/Info.plist</tt>  を変更します (詳細は下記参照)。
 
#  
 
#  
Line 124: Line 130:
 
* <tt>CFBundleName</tt>
 
* <tt>CFBundleName</tt>
  
さらに <tt>UTExportedTypeDeclarations</tt> セクションを削除すると Mac OS があなたのアプリケーションに対して全ての .love ファイルを関連付けないことを保証するようになります。全体的に変更はこのようになるはずです:
+
さらに <tt>UTExportedTypeDeclarations</tt> セクションを削除すると macOS があなたのアプリケーションに対して全ての .love ファイルを関連付けないことを保証するようになります。全体的に変更はこのようになるはずです:
  
 
{| border="1" cellpadding="1" cellspacing="0"
 
{| border="1" cellpadding="1" cellspacing="0"
Line 160: Line 166:
 
|}
 
|}
  
== Linux 版の配布 ==
+
== Linux 版の配布方法 ==
  
Linux に関してはゲームを簡単に配布する方法は未だありません。ここで一般的な方法は https://www.love2d.org/ にある公式の LÖVE パッケージを指示することです。いったんパッケージがインストールされると、通常において .love パッケージは インストールされた LÖVE パッケージを使用して自動的に実行するかコマンドラインを使用して実行します:
+
Linux では簡単な配布方法はありません。一般的な方法は https://www.love2d.org/ にある公式の LÖVE パッケージの指示に従うことです。通例として、パッケージのインストール後は <tt>.love</tt> パッケージはインストールされた LÖVE パッケージで自動的に実行、あるいはコマンドラインから実行します:
  
 
<source lang="bash">love SuperGame.love</source>
 
<source lang="bash">love SuperGame.love</source>
Line 169: Line 175:
 
<source lang="lua">
 
<source lang="lua">
 
function love.conf(t)
 
function love.conf(t)
     t.version = "0.10.1"
+
     t.version = "11.3"
 
end
 
end
 
</source>
 
</source>
  
よくある間違いとして LÖVE 版 Linux バイナリに .love ファイルを結合してヒューズ化しようとしてしまうことです:
+
よくある間違いとして Linux 版の LÖVE バイナリに <tt>.love</tt> ファイルを結合して結合型実行形式にしてしまうことです:
  
 
<source lang="bash">
 
<source lang="bash">
Line 181: Line 187:
  
 
留意していただきたいのは、あなたの計算機上で `SuperGame' のバイナリは実行できるでしょうが、 同じアーキテクチャおよび同じバージョンのライブラリがあるその他の Linux ディストロ、および'''その他の多数の Linux ディストロにおいて実行できない'''酷い可能性があります。
 
留意していただきたいのは、あなたの計算機上で `SuperGame' のバイナリは実行できるでしょうが、 同じアーキテクチャおよび同じバージョンのライブラリがあるその他の Linux ディストロ、および'''その他の多数の Linux ディストロにおいて実行できない'''酷い可能性があります。
 +
 +
==== Linux 向けの不安定な方法 ====
 +
 +
これは Linux 版のゲームの配布方法ですが、あらゆる状況での動作は検証されていません。予告なく変更されることがあります。
 +
 +
# Linux 版の LOVE をダウンロードします (x86_64 または i686 のうち使用したいもの) 。 [https://bitbucket.org/rude/love/downloads/ ダウンロード先]
 +
# <tt>.tar.gz</tt> を展開します。これはファイルを右クリックして “ファイルの展開”または、コマンドラインからファイルを展開します: <source lang="bash"> tar -xvzf love.tar.gz </source>
 +
# <tt>game.love</tt> ファイルを展開先へ移動します。
 +
# <tt>love</tt> ファイルを編集して "$@" を "${LOVE_LAUNCHER_LOCATION}/game.love”へ書き換えます。
 +
 +
==== Debian ====
 +
 +
Debian アーカイブに LÖVE 製のゲームを同梱することに関してはポリシーがあります。それを同梱するつもりがなくてもアーカイブでゲーム配布用のパッケージ作成するためのものとして理解することができます。
 +
 +
[https://wiki.debian.org/Games/Love2d Packaging Love2d]
  
 
==== AppImages ====
 
==== AppImages ====
AppImage 形式は追加変更なしで様々な異なる対象システム (オペレーティング・システム、オペレーティング・システムに基づき) での実行を可能にする方法でありアプリケーションのパッケージを行うための形式です。[https://github.com/probonopd/AppImageKit/ こちら]からキット全体をダウンロードできます。
+
AppImage 形式は追加変更なしで対象となる各種派生システム (オペレーティング・システム、ディストリビューションに基づき) での実行を可能にする方法であり、アプリケーションのパッケージを行うためのファイル形式です。[https://github.com/probonopd/AppImageKit/ こちら]からキット全体をダウンロードできます。
  
 
AppImage を使用してゲームをパッケージ化するには、 LÖVE により要求されるライブラリおよび依存性を集める必要があり、それは [https://github.com/proot-me/PRoot/blob/master/doc/care/manual.txt CARE] (Ubuntu レポジトリからパッケージを利用できます) を実行することにより容易に行えます:
 
AppImage を使用してゲームをパッケージ化するには、 LÖVE により要求されるライブラリおよび依存性を集める必要があり、それは [https://github.com/proot-me/PRoot/blob/master/doc/care/manual.txt CARE] (Ubuntu レポジトリからパッケージを利用できます) を実行することにより容易に行えます:
 
   
 
   
<source lang='text'>care -o love.tar.gz love</source>.
+
<source lang='bash'>care -o love.tar.gz love</source>.
 +
 
 +
このプログラムはシステムによる方法で保存された LOVE 実行可能形式と依存性、そして関連ファイルの書庫を作成します。次に、ゲームの <tt>.love</tt> ファイルは上述の項目で示されている手段で結合型実行形式を作成する必要があります。さて、下記のとおりファイルを新しいディレクトリへ配置する必要があります:
  
このプログラムはシステムによる方法で保存された LOVE 実行可能形式と依存性、そして関連ファイルの書庫を作成します。次に、ゲームの .love ファイルは上述の項目で示されている手段でヒューズ化を行う必要があります。さて、次のようにファイルは新しいディレクトリへ配置される必要があります:
 
 
<source lang='text'>
 
<source lang='text'>
  アプリケーションのディレクトリ/
+
アプリケーションのディレクトリ/
  |
+
├── <ゲーム名称>.desktop  --> このファイルにはプログラムのアイコンファイル、
  |--usr/
+
│                            プログラムの名称および実行するコマンドのパスが記載されています。
  |  |
+
├── <ゲーム名称>.png      --> 自作ゲームのアイコン。
  |  |-bin/ --> ここにヒューズ化したバイナリを配置する必要があります。
+
└── usr/
  |  |-lib/ --> ここにライブラリを配置する必要があります。
+
    ├── bin/   --> ここに結合型実行形式にしたバイナリを配置する必要があります。
  |  |-share/ --> もしあれば、ここに自作 (または LOVE) のデータファイル (および他のもの)を配置する必要があります。
+
    ├── lib/   --> ここにライブラリを配置する必要があります。
  |  |-...
+
    └── share/ --> もしあれば、ここに自作 (または LOVE) のデータファイル (および他のもの)を配置する必要があります。
  |  -
 
  |--<ゲームの名称>.desktop --> このファイルにはプログラムのアイコンファイル、プログラムの名称および実行するコマンドのパスが記載されています。
 
  |--<ゲームの名称>.png --> 自作ゲームのアイコン。
 
  -
 
 
</source>
 
</source>
 +
 
最後に、キットで利用できる AppImageAssistant を使用してディレクトリを AppImage へ変換する必要があります。
 
最後に、キットで利用できる AppImageAssistant を使用してディレクトリを AppImage へ変換する必要があります。
より詳細な情報は [https://github.com/probonopd/AppImageKit/wiki AppImage Wiki] にあります。
+
詳細情報は [https://docs.appimage.org/ AppImage 取扱説明書] にあります。
  
 
== Android ==
 
== Android ==
 +
=== ソースからのコンパイル ===
 +
Android 版 LÖVE プロジェクトのクローンを行います:
 +
 +
<source lang='bash'>git clone https://github.com/love2d/love-android</source>
 +
 +
次に、 Android SDK (API 28) および NDK をダウンロードします。 NDK r16 以降でも動作します。それ以前のバージョンは未検証です。
 +
 +
環境変数を設定します。
 +
* <code>ANDROID_HOME</code> は Android SDK の場所。
 +
* <code>ANDROID_NDK_HOME</code> は Android NDK の場所。
 +
 +
ゲーム (game.love) をディレクトリに配置してください。 (project)/app/src/main/assets (このディレクトリが存在しない場合は作成します)
  
[https://bitbucket.org/MartinFelis/love-android-sdl2/wiki/Home Android wiki] を参照してください。
+
Linux/macOS システムでは実行権限の設定が必要です:
 +
<source lang="bash">chmod +x gradlew</source>
  
訳註: LOVE はバナー広告が使えないと誤解している方をお見掛けします。ゲーム内バナー広告(Admob)、リーダーボードなど Google Play Game Service の機能を使用したい場合はフォーラムのスレッドに関数一覧など詳細情報がありますので、そちらを参照してください(別途ビルド環境および Android アプリの開発に関する基礎知識が必要です)。
+
最後に APK ファイルを生成します:
 +
<source lang='bash'>./gradlew assemble</source>
 +
 
 +
APK ファイルは (project)/app/build/outputs/apk/ に生成されます。
 +
 
 +
詳細情報は [https://bitbucket.org/MartinFelis/love-android-sdl2/wiki/Home Android wiki] を参照してください。
 +
 
 +
===  Google Play ゲームサービス ===
 +
訳註: LOVE はバナー広告が使えないと誤解している方をお見掛けします。ゲーム内バナー広告 (Admob)、リーダーボードなど Google Play Game Service の機能を使用したい場合はフォーラムのスレッドに関数一覧など詳細情報がありますので、そちらを参照してください(別途ビルド環境および Android アプリの開発に関する基礎知識が必要です)。
 +
 
 +
* [https://love2d.org/forums/viewtopic.php?f=5&t=84226 [11.2]AdMob support for Android + EU Consent - LÖVE]
  
 
* [https://love2d.org/forums/viewtopic.php?f=5&t=82166 〔Android〕 Admob and Google Play Game Services Support]
 
* [https://love2d.org/forums/viewtopic.php?f=5&t=82166 〔Android〕 Admob and Google Play Game Services Support]
 
* [https://love2d.org/forums/viewtopic.php?f=4&t=83761 Help in creating banner with Martin Felis android port]
 
* [https://love2d.org/forums/viewtopic.php?f=4&t=83761 Help in creating banner with Martin Felis android port]
 +
 +
=== APKTool の用法 ===
 +
詳細情報は [[Game Distribution/APKTool (日本語)|Game Distribution/APKTool]] を参照してください。
  
 
== iOS ==
 
== iOS ==
 +
iOS (結合型実行形式の作成を行わない) に対する基本的な手順は [[Getting_Started (日本語)#iOS]] に掲載されています。
  
iOS (ヒューズ化を行わない) に対する基本的な手順は [[Getting_Started (日本語)#iOS]] に掲載されています。
+
LÖVE エンジンに対して自作ゲームを「結合型実行形式」にするには:
 
 
LÖVE エンジンに対して自作ゲームを "ヒューズ化 (組み込み、合体)"  するには:
 
 
# [http://love2d.org/ love2d.org] から iOS 版のソースコードを入手します。
 
# [http://love2d.org/ love2d.org] から iOS 版のソースコードを入手します。
 
# Xcode で platform/xcode/love.xcodeproj を開きます。
 
# Xcode で platform/xcode/love.xcodeproj を開きます。
Line 234: Line 278:
  
 
== コミュニュティ・ツール ==
 
== コミュニュティ・ツール ==
 +
このリストはコミュニティ製のゲーム配布支援用ツールです。
 +
* [https://github.com/MisterDA/love-release love-release] ([https://love2d.org/forums/viewtopic.php?t=75387 フォーラム]) は、ゲームの配布を自動化するための Lua スクリプトです。 Windows, macOS, Debian, Linux および Android に対応しており、機能も充実しています。
 +
* [https://github.com/camchenry/boon boon] ([https://love2d.org/forums/viewtopic.php?t=86573 フォーラム]) は、マルチプラットフォーム対応の手軽に使えるツールです。 Windows, macOS, Linux に対応しています。
 +
* [https://love2d.org/forums/viewtopic.php?f=3&t=80565 Love Distrubution Pack][sic] は、 <tt>.love</tt> ファイルおよび .exe を作成できる Windows 専用ツールです。
 +
* [https://www.love2d.org/forums/viewtopic.php?f=5&t=30259 love-dist] は、 ファイルに対して [[LuaC (日本語)|LuaC]] の処理を行い .exe を作成する Windows 専用ツールです。
  
ゲームの配布を支援するためにコミュニュティにより開発されたツールがいくつかあります。
+
[[Category:LÖVE (日本語)]]
* [https://github.com/MisterDA/love-release love-release] ([https://love2d.org/forums/viewtopic.php?t=75387 フォーラム]) は、ゲームの配布を自動化するための Lua スクリプトです。 Windows, Mac OS X, Debian, Linux および Android に対応しており、さらに多数の機能があります。
 
* [https://love2d.org/forums/viewtopic.php?f=3&t=81409 LÖVE Executor] は、 .exe を作成するためのオンラインツールです。
 
* [https://love2d.org/forums/viewtopic.php?f=3&t=80565 Love Distrubution Pack][sic] は、 .love ファイルおよび .exe を作成できる Windows 専用ツールです。
 
* [https://www.love2d.org/forums/viewtopic.php?f=5&t=30259 love-dist] は、 ファイルに対して [[LuaC (日本語)|LuaC]] の処理を行い .exe を作成できる Windows 専用ツールです。
 
 
 
[[Category:LÖVE]]
 
  
 
== そのほかの言語 ==
 
== そのほかの言語 ==
{{i18n|Game Distribution}}
+
{{i18n (日本語)|Game Distribution}}

Latest revision as of 08:56, 2 April 2020

ゲームの完成後、きっとほかの人にも遊んで欲しいと思うでしょう。一般に .love ファイル形式での配布 (LÖVE の導入が必要)、あるいは各プラットフォーム専用のパッケージを利用します。

ターゲット別にゲームを配布するには好ましい方法です (.love ファイルを使用して作成します):

.love ファイルの作成

一部のオペレーティング・システムでは大文字・小文字を区別してパスを使用できるに注意してください。不要な苦闘を避けるために列挙されたフォルダおよびファイルパスがコードにて一致して使われていることを確認してください。

.love ファイルを作成するにはゲーム・ディレクトリ全体の zip 書庫ファイルを作成してください。書庫のルートに main.lua があることを確認してください。例えば、

   <somedir>\SuperGame\gfx\character.png
   <somedir>\SuperGame\main.lua
   <somedir>\SuperGame\conf.lua

のとき、ディレクトリは SuperGame\ ではなく

   gfx\character.png
   main.lua
   conf.lua

を zip ファイルへ確実に収録する必要があります。

zip ファイルを作成後にファイル末尾(拡張子)を .zip から .love へ名称変更すれば完成です!

英数大小文字同一視型のファイルシステム (Windows など) では、ゲームのあるフォルダ以外の場所に .love ファイルを移動して再検証することを推奨します。これにより、ゲームの実行時に発生する恐れがある英数大小文字同一視の問題を発見できます。同一フォルダでの実行時に検出不能な .love ファイルを見つけるには、検証前に移動してください。移動先のフォルダとして好ましいゲームのディレクトリは、例えば love/MyGame.love などです。

プラットフォーム別の注釈

Windows

標準で右クリックメニューによる zip ファイルの作成に対応しています。詳細な手順は ファイルの圧縮と圧縮解除を行う (zip ファイル) を参照してください。

macOS

ゲーム内のフォルダで、ゲームのファイルとフォルダを選択してから、右クリック/Ctrl+クリックおよび n 個のアイテムを圧縮 を選択します。そして作成された .zip ファイルの拡張子を .love へ名称変更します。

あるいは、ターミナルを使用できます。ゲームフォルダ内へ移動してから実行します:

   zip -9 -r SuperGame.love .

Linux

現在のディレクトリが SuperGame/ であると仮定したときコマンドラインを使用することで .love ファイルを直接作成できます

   zip -9 -r SuperGame.love .

Windows 実行可能形式の作成

ゲームを .love ファイルへ変換した後は、実行可能ファイルを生成することで直接実行できるようになります。

詳しく述べるとは公式配布版の LÖVE の .zip ファイルにある love.exe ファイルへ .love ファイルを追加する必要があります。この結果としてファイルは実行可能形式のゲームとなります。

ゲームを実行可能形式にしておくと、 公式配布版の LÖVE の .zip にある他の全 DLL ファイルと一緒に新規の .zip ファイルへ圧縮することで、世界中にゲームを共有できるようになります。

注釈: 一部の人々は 64 bit 版の Windows を所有していませんので、ゲームの 32/64 bit 版の両方を配布、あるいは 32 bit 版のみを配布するのは良い考えです。

プラットフォーム別の手順

Windows

Windows で実行可能形式のゲームを作成するにはコマンドラインにて下記を実行してください

   copy /b love.exe+SuperGame.love SuperGame.exe

注意: 計算機上でコマンドを管理者権限で実行する必要がある場合があります。これは Windows\System32 へ移動して cmd.exe を右クリックして選択肢から管理者として実行を選択することで行うことができます。その後に、cd "C:\Program Files\LOVE\" (または標準の LOVE ディレクトリ) を必ず打鍵して下さい。そして通常の作業を継続します。

代わりに下記の内容の .bat (例えば create_game_exe.bat) ファイルを作成することもできます

   copy /b love.exe+%1 "%~n1.exe"

そして SuperGame.love ファイルを .bat ファイルへドラッグしてください。これで配布用の SuperGame.love.exe ファイルを作成することができます。

cmd ではなく PowerShell をお使いならば、コマンドは少し違います:

   cmd /c copy /b love.exe+SuperGame.love SuperGame.exe

この方法は 結合型実行形式(fused) のゲームを作成します。

Windows アイコン

例えばフリーウェアの Resource Hacker (リソースハッカー)、ResEdit (レスエディット)などのツールを使うことで自作のアイコン画像を使うことができます。

動画チュートリアルおよび順序による手順書を利用できます。

Linux / macOS

Linux および macOS からでもコマンドラインまたはターミナルを使用することで Windows 実行可能形式を作成できます。

最初に https://www.love2d.org/ から公式で提供されている Windows 用 32 bit または 64 bit 版実行可能形式がある .zip ファイル(インストーラーではありません) をダウンロードします。 32 bit 版のゲームは 64 bit 版 Windows で実行できますが逆はできないため、小型のゲームでは時間を節約するために、 32 bit 版のみ提供することもできます。

さてコマンドラインまたはターミナル(端末)からコマンドを実行します

   cat love.exe SuperGame.love > SuperGame.exe

するとゲームの実行可能形式として SuperGame.exe が作成されます。


Windows 実行可能形式の配布時に使用した love.exe のフォルダにある DLL ファイルも一緒に同梱する必要があります(従って 32 bit DLL と 64 bit DLL は併用できません)。これらのファイルが導入されていない Windows 計算機で SuperGame.exe を実行しようとするとエラー・メッセージが発生します。

最終的に配布用フォルダの内容はこのようになるはずです:

  • SDL2.dll
  • OpenAL32.dll (注釈: このファイルは 'OpenAL32.dll' という名称であるにもかかわらず 64 bit 版のダウンロードでは同一ファイルではありません)
  • SuperGame.exe
  • license.txt (注釈: いかなる配布物であろうとライセンスを同梱することが義務づけられています)
  • love.dll
  • lua51.dll
  • mpg123.dll
  • msvcp120.dll
  • msvcr120.dll

macOS アプリケーションの作成

.love ファイルとして自作ゲームを用意すれば macOS の利用者は次の手順に従うことで自作ゲームを遊ぶことができるようになります (動画による手順書を利用できます):

  1. LÖVE ホームページ から macOS 版をダウンロードして展開します。
  2. love.appSuperGame.app へ名称変更します。
  3. SuperGame.loveSuperGame.app/Contents/Resources/ へ複写します (右クリック/Ctrl+クリックおよび OS X で "パッケージの内容表示" を選択)。これにより、ゲームは結合型実行形式で実行されるようになります。
  4. SuperGame.app/Contents/Info.plist を変更します (詳細は下記参照)。

SuperGame.app フォルダを書庫化 (例えば SuperGame_osx.zip) して配布します。 -y フラグを有効にすると書庫ファイルのシンボリックリンクを保持します。

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 では簡単な配布方法はありません。一般的な方法は https://www.love2d.org/ にある公式の LÖVE パッケージの指示に従うことです。通例として、パッケージのインストール後は .love パッケージはインストールされた LÖVE パッケージで自動的に実行、あるいはコマンドラインから実行します:

love SuperGame.love

最低でも conf.lua ファイルに使用されている LÖVE のバージョンが記載されていることを確認してください。

function love.conf(t)
    t.version = "11.3"
end

よくある間違いとして Linux 版の LÖVE バイナリに .love ファイルを結合して結合型実行形式にしてしまうことです:

cat /usr/bin/love SuperGame.love > SuperGame
chmod a+x ./SuperGame

留意していただきたいのは、あなたの計算機上で `SuperGame' のバイナリは実行できるでしょうが、 同じアーキテクチャおよび同じバージョンのライブラリがあるその他の Linux ディストロ、およびその他の多数の Linux ディストロにおいて実行できない酷い可能性があります。

Linux 向けの不安定な方法

これは Linux 版のゲームの配布方法ですが、あらゆる状況での動作は検証されていません。予告なく変更されることがあります。

  1. Linux 版の LOVE をダウンロードします (x86_64 または i686 のうち使用したいもの) 。 ダウンロード先
  2. .tar.gz を展開します。これはファイルを右クリックして “ファイルの展開”または、コマンドラインからファイルを展開します:
     tar -xvzf love.tar.gz
    
  3. game.love ファイルを展開先へ移動します。
  4. love ファイルを編集して "$@" を "${LOVE_LAUNCHER_LOCATION}/game.love”へ書き換えます。

Debian

Debian アーカイブに LÖVE 製のゲームを同梱することに関してはポリシーがあります。それを同梱するつもりがなくてもアーカイブでゲーム配布用のパッケージ作成するためのものとして理解することができます。

Packaging Love2d

AppImages

AppImage 形式は追加変更なしで対象となる各種派生システム (オペレーティング・システム、ディストリビューションに基づき) での実行を可能にする方法であり、アプリケーションのパッケージを行うためのファイル形式です。こちらからキット全体をダウンロードできます。

AppImage を使用してゲームをパッケージ化するには、 LÖVE により要求されるライブラリおよび依存性を集める必要があり、それは CARE (Ubuntu レポジトリからパッケージを利用できます) を実行することにより容易に行えます:

care -o love.tar.gz love

.

このプログラムはシステムによる方法で保存された LOVE 実行可能形式と依存性、そして関連ファイルの書庫を作成します。次に、ゲームの .love ファイルは上述の項目で示されている手段で結合型実行形式を作成する必要があります。さて、下記のとおりファイルを新しいディレクトリへ配置する必要があります:

アプリケーションのディレクトリ/
├── <ゲーム名称>.desktop  --> このファイルにはプログラムのアイコンファイル、
│                            プログラムの名称および実行するコマンドのパスが記載されています。
├── <ゲーム名称>.png      --> 自作ゲームのアイコン。
└── usr/
    ├── bin/    --> ここに結合型実行形式にしたバイナリを配置する必要があります。
    ├── lib/    --> ここにライブラリを配置する必要があります。
    └── share/  --> もしあれば、ここに自作 (または LOVE) のデータファイル (および他のもの)を配置する必要があります。

最後に、キットで利用できる AppImageAssistant を使用してディレクトリを AppImage へ変換する必要があります。 詳細情報は AppImage 取扱説明書 にあります。

Android

ソースからのコンパイル

Android 版 LÖVE プロジェクトのクローンを行います:

git clone https://github.com/love2d/love-android

次に、 Android SDK (API 28) および NDK をダウンロードします。 NDK r16 以降でも動作します。それ以前のバージョンは未検証です。

環境変数を設定します。

  • ANDROID_HOME は Android SDK の場所。
  • ANDROID_NDK_HOME は Android NDK の場所。

ゲーム (game.love) をディレクトリに配置してください。 (project)/app/src/main/assets (このディレクトリが存在しない場合は作成します)

Linux/macOS システムでは実行権限の設定が必要です:

chmod +x gradlew

最後に APK ファイルを生成します:

./gradlew assemble

APK ファイルは (project)/app/build/outputs/apk/ に生成されます。

詳細情報は Android wiki を参照してください。

Google Play ゲームサービス

訳註: LOVE はバナー広告が使えないと誤解している方をお見掛けします。ゲーム内バナー広告 (Admob)、リーダーボードなど Google Play Game Service の機能を使用したい場合はフォーラムのスレッドに関数一覧など詳細情報がありますので、そちらを参照してください(別途ビルド環境および Android アプリの開発に関する基礎知識が必要です)。

APKTool の用法

詳細情報は Game Distribution/APKTool を参照してください。

iOS

iOS (結合型実行形式の作成を行わない) に対する基本的な手順は Getting_Started (日本語)#iOS に掲載されています。

LÖVE エンジンに対して自作ゲームを「結合型実行形式」にするには:

  1. love2d.org から iOS 版のソースコードを入手します。
  2. Xcode で platform/xcode/love.xcodeproj を開きます。
  3. love-ios (love-macosx でありません) ターゲットを選択します。
  4. 'love-ios' ターゲットの ビルドフェーズ を選択してから 組み込みリソースのコピー で自作の 'game.love' ファイルを追加します。
  5. プロジェクトをビルドします。
  6. 自作ゲームはアプリとして iOS デバイスに表示されます。

Xcode のユーザインタフェースに関連する要素を見つけらない場合は YouTube にある動画チュートリアル を参照することができます。

ウェブ上での配布

TannerRogalsky/love.js のお陰で HTML5 または JavaScript 形式のゲームとして公開することは可能です。しかし、一部機能 (例えばスレッド)が実装されていません。もちろん、再生に関しては使用するウェブ・ブラウザに依存します。

コミュニュティ・ツール

このリストはコミュニティ製のゲーム配布支援用ツールです。

  • love-release (フォーラム) は、ゲームの配布を自動化するための Lua スクリプトです。 Windows, macOS, Debian, Linux および Android に対応しており、機能も充実しています。
  • boon (フォーラム) は、マルチプラットフォーム対応の手軽に使えるツールです。 Windows, macOS, Linux に対応しています。
  • Love Distrubution Pack[sic] は、 .love ファイルおよび .exe を作成できる Windows 専用ツールです。
  • love-dist は、 ファイルに対して LuaC の処理を行い .exe を作成する Windows 専用ツールです。

そのほかの言語