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

(translate by english to japanese.)
 
m
 
(29 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== .loveファイルの作り方 ==
+
ゲームの完成後、きっとほかの人にも遊んで欲しいと思うでしょう。一般に <tt>.love</tt> ファイル形式での配布 (LÖVE の導入が必要)、あるいは各プラットフォーム専用のパッケージを利用します。
  
.loveファイルはzip圧縮ファイルの拡張子を変更したものです。加えて二点、注意事項があります。
+
ターゲット別にゲームを配布するには好ましい方法です (<tt>.love</tt> ファイルを使用して作成します):
  
* main.luaファイルがファイルアーカイブのトップ階層に含まれていなければいけません。
+
* Windows &rarr; [[Game_Distribution (日本語)#Creating_a_Windows_Executable|Windows 実行可能形式]]
* .loveファイルに含まれるファイルおよびフォルダ名は大文字・小文字を区別します。WindowsやMac OS XでLÖVEを使う人達を困惑させるかもしれません。これらのOSのファイルシステムは大文字・小文字を区別しないことがあり、圧縮前のゲームフォルダをからは正常に動作します。しかし、圧縮すると動かなくなってしまうので注意が必要です。
+
* macOS &rarr; [[Game_Distribution (日本語)#Creating_a_Mac_OS_X_Application|macOS アプリケーション]]
 +
* Linux &rarr; 平文の <tt>.love</tt> ファイル、または [[Game_Distribution (日本語)#Distribution_for_Linux|Appimages]]
  
ここでは.loveファイルの作り方を解説します。この情報は [http://love2d.org/forum/viewtopic.php?f=4&t=451 こちらのスレッド(英語)]より強奪したものです。
+
__TOC__
  
=== Windows ===
+
== <tt>.love</tt> ファイルの作成 ==
  
# まず、zipファイルを作ります。<br /><small>(XP、Vista、Windows7では標準機能でzipに圧縮できます)</small>
+
一部のオペレーティング・システムでは大文字・小文字を区別してパスを使用できるに注意してください。不要な苦闘を避けるために列挙されたフォルダおよびファイルパスがコードにて一致して使われていることを確認してください。
# main.luaと関連するファイルとフォルダ全てをzipファイル内にコピーします。<br /><small>(フォルダごとzipに入れちゃうと動きませんのでご注意ください)</small>
 
# 拡張子を.zipから.loveに修正してください<br /><small>
 
おっと、Windowsは標準では拡張子が表示されないため変更できませんね。(以下訳者追補含む)Windows7を例にとって、拡張子を表示する手順を説明します。エクスプローラを開いてAltキーでメニューを開き、「ツール」→「フォルダーオプション」を選び、「表示」タブを選択して下さい。詳細設定の中にある「登録されている拡張子は表示しない」チェックボックスを外すと、晴れてzip拡張子を変更できます。</small>
 
# (訳者注:以下の項目は、原文が????になっててよく分からないので保留してます。ここまでの手順で.loveファイルは作れると思います)
 
  
=== Linux / OS X ===
+
<tt>.love</tt> ファイルを作成するにはゲーム・ディレクトリ全体の zip 書庫ファイルを作成してください。書庫のルートに main.lua があることを確認してください。例えば、
  
コマンドラインでやっちゃいましょう。
+
    <somedir>\SuperGame\gfx\character.png
# あなたのプロジェクトフォルダに移動します。一例:''<tt style="font-size:1.3em"> cd ~/Projects/EpicGame</tt>''
+
    <somedir>\SuperGame\main.lua
# zipコマンドでまるごと.loveファイルとしてzip圧縮をかけます:''<tt style="font-size:1.3em"> zip -r ../${PWD##*/}.love *</tt>''
+
    <somedir>\SuperGame\conf.lua
# これで完全な.loveファイルができてます。
 
# 以上!
 
  
== 実行可能ファイルの作り方 ==
+
のとき、ディレクトリは <tt style="font-size:1.3em">SuperGame\</tt> '''ではなく'''、
  
エンドユーザーがLÖVEゲームを実行できるか心配でしょう。単独の.loveファイルを受け取ったユーザーは、当然ながらLÖVEをインストールしなきゃいけません。でもLÖVE 0.5.0からは実行ファイルが作れるようになりました。
+
    gfx\character.png
通常は.loveファイルで配布することをお勧めします。追加でプラットホームごとの実行可能な「merged」バージョンを提供すると判りやすいでしょう。
+
    main.lua
 +
    conf.lua
  
二つほどご注意。
+
を zip ファイルへ確実に収録する必要があります。
  
# 単独で実行可能なファイルにはなりません。(LÖVEの実行に必要な)いくつかのDLLファイルと一緒にzipファイルとして配布することになるでしょう。
+
zip ファイルを作成後にファイル末尾(拡張子)を .zip から <tt>.love</tt> へ名称変更すれば完成です!
# 実行可能ファイルはアーカイブソフトで読める場合があります。WinZipとか。(訳者注:隠蔽にはならないよ、っていう注意だと思います)
 
  
 +
英数大小文字同一視型のファイルシステム (Windows など) では、ゲームのあるフォルダ以外の場所に .love ファイルを移動して再検証することを推奨します。これにより、ゲームの実行時に発生する恐れがある英数大小文字同一視の問題を発見できます。同一フォルダでの実行時に検出不能な .love ファイルを見つけるには、検証前に移動してください。移動先のフォルダとして好ましいゲームのディレクトリは、例えば <code>love/MyGame.love</code> などです。
  
=== Windows ===
+
=== プラットフォーム別の注釈 ===
  
Windowsでは、コンソールからcopy /bコマンドを利用して実行可能ファイルを作れます。下記はgame.loveというファイルとlove.exeが同じパスにある場合の例です。
+
==== Windows ====
''<tt style="font-size:1.3em"> copy /b love.exe+game.love game.exe</tt>''
 
  
これでgame.exeが生成されます。配布するには、必要なDLLとセットでさらにzip圧縮する必要があります。(以下翻訳自信なし)LÖVEのプライベートコピーを作ることになりますが、問題ありません。ひとつのパッケージで複数のプラットホームで利用して欲しいという場合は.loveを単体で配布してください。
+
標準で右クリックメニューによる zip ファイルの作成に対応しています。詳細な手順は [https://support.microsoft.com/ja-jp/help/14200/windows-compress-uncompress-zip-files ファイルの圧縮と圧縮解除を行う (zip ファイル)] を参照してください。
  
=== Linux ===
+
==== macOS ====
  
Linuxでは、love実行ファイルとgame.loveのあるフォルダで下記のようにcatコマンドを実行してください。
+
ゲーム内のフォルダで、ゲームのファイルとフォルダを選択してから、右クリック/Ctrl+クリックおよび '''n 個のアイテムを圧縮''' を選択します。そして作成された <code>.zip</code> ファイルの拡張子を <code>.love</code> へ名称変更します。
''<tt style="font-size:1.3em"> cat love game.love > game</tt>''
 
  
(訳注:以下、Linux環境に疎いためよく分かりませんでした。原文そのまま載せます)
+
あるいは、ターミナルを使用できます。ゲームフォルダ内へ移動してから実行します:
Then, you'll have to make a package for various packaging systems with dependencies as the love package. Were you to make a .deb package this way, for instance, the user would not have to install the love package separately.
 
  
Eventually, we will provide scripts which do this automatically for various package systems. You'll have to figure it out yourself until then.
+
    zip -9 -r SuperGame.love .
 +
 
 +
==== Linux ====
 +
 
 +
現在のディレクトリが <tt style="font-size:1.3em">SuperGame/</tt> であると仮定したときコマンドラインを使用することで .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 アイコン =====
 +
 
 +
例えばフリーウェアの [https://ja.wikipedia.org/wiki/Resource_Hacker Resource Hacker] (リソースハッカー)、[http://forest.watch.impress.co.jp/library/software/resedit/ ResEdit] (レスエディット)などのツールを使うことで自作のアイコン画像を使うことができます。
 +
 
 +
[https://youtu.be/WTk_HJdXVNQ?t=2m22s 動画チュートリアル]および[http://gamedev.stackexchange.com/a/121947/9093 順序による手順書]を利用できます。
 +
 
 +
==== 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
 +
 
 +
するとゲームの実行可能形式として <tt style="font-size:1.3em">SuperGame.exe</tt> が作成されます。
 +
 
 +
 
 +
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 アプリケーションの作成 ==
 +
<tt>.love</tt> ファイルとして自作ゲームを用意すれば macOS の利用者は次の手順に従うことで自作ゲームを遊ぶことができるようになります ([https://youtu.be/SU2RpGdezP4 動画による手順書]を利用できます):
 +
 
 +
# [https://www.love2d.org LÖVE ホームページ] から macOS 版をダウンロードして展開します。
 +
# <tt>love.app</tt> を <tt>SuperGame.app</tt> へ名称変更します。
 +
# <tt>SuperGame.love</tt> を <tt>SuperGame.app/Contents/Resources/</tt> へ複写します (右クリック/Ctrl+クリックおよび OS X で "パッケージの内容表示" を選択)。これにより、ゲームは結合型実行形式で実行されるようになります。
 +
# <tt>SuperGame.app/Contents/Info.plist</tt>  を変更します (詳細は下記参照)。
 +
#
 +
<tt>SuperGame.app</tt> フォルダを書庫化 (例えば SuperGame_osx.zip) して配布します。 ''-y'' フラグを有効にすると書庫ファイルのシンボリックリンクを保持します。
 +
 
 +
<tt>SuperGame.app/Contents/Info.plist</tt> ファイルを修正する場合は下記の XML タグの値を変更するために確認を行ってください:
 +
 
 +
* <tt>CFBundleIdentifier</tt>
 +
* <tt>CFBundleName</tt>
 +
 
 +
さらに <tt>UTExportedTypeDeclarations</tt> セクションを削除すると macOS があなたのアプリケーションに対して全ての .love ファイルを関連付けないことを保証するようになります。全体的に変更はこのようになるはずです:
 +
 
 +
{| border="1" cellpadding="1" cellspacing="0"
 +
!width="300"|変更前の Info.plist
 +
!width="300"|変更後の Info.plist
 +
|- style="vertical-align: top;"
 +
|
 +
    ...
 +
    <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 パッケージの指示に従うことです。通例として、パッケージのインストール後は <tt>.love</tt> パッケージはインストールされた LÖVE パッケージで自動的に実行、あるいはコマンドラインから実行します:
 +
 
 +
<source lang="bash">love SuperGame.love</source>
 +
 
 +
最低でも [[Config Files (日本語)|<code>conf.lua</code> ファイル]]に使用されている LÖVE のバージョンが記載されていることを確認してください。
 +
<source lang="lua">
 +
function love.conf(t)
 +
    t.version = "11.3"
 +
end
 +
</source>
 +
 
 +
よくある間違いとして Linux 版の LÖVE  バイナリに <tt>.love</tt> ファイルを結合して結合型実行形式にしてしまうことです:
 +
 
 +
<source lang="bash">
 +
cat /usr/bin/love SuperGame.love > SuperGame
 +
chmod a+x ./SuperGame
 +
</source>
 +
 
 +
留意していただきたいのは、あなたの計算機上で `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 ====
 +
AppImage 形式は追加変更なしで対象となる各種派生システム (オペレーティング・システム、ディストリビューションに基づき) での実行を可能にする方法であり、アプリケーションのパッケージを行うためのファイル形式です。[https://github.com/probonopd/AppImageKit/ こちら]からキット全体をダウンロードできます。
 +
 
 +
AppImage を使用してゲームをパッケージ化するには、 LÖVE により要求されるライブラリおよび依存性を集める必要があり、それは [https://github.com/proot-me/PRoot/blob/master/doc/care/manual.txt CARE] (Ubuntu レポジトリからパッケージを利用できます) を実行することにより容易に行えます:
 
   
 
   
=== Mac OS X ===
+
<source lang='bash'>care -o love.tar.gz love</source>.
 +
 
 +
このプログラムはシステムによる方法で保存された LOVE 実行可能形式と依存性、そして関連ファイルの書庫を作成します。次に、ゲームの <tt>.love</tt> ファイルは上述の項目で示されている手段で結合型実行形式を作成する必要があります。さて、下記のとおりファイルを新しいディレクトリへ配置する必要があります:
 +
 
 +
<source lang='text'>
 +
アプリケーションのディレクトリ/
 +
├── <ゲーム名称>.desktop  --> このファイルにはプログラムのアイコンファイル、
 +
│                            プログラムの名称および実行するコマンドのパスが記載されています。
 +
├── <ゲーム名称>.png      --> 自作ゲームのアイコン。
 +
└── usr/
 +
    ├── bin/    --> ここに結合型実行形式にしたバイナリを配置する必要があります。
 +
    ├── lib/    --> ここにライブラリを配置する必要があります。
 +
    └── share/  --> もしあれば、ここに自作 (または LOVE) のデータファイル (および他のもの)を配置する必要があります。
 +
</source>
 +
 
 +
最後に、キットで利用できる AppImageAssistant を使用してディレクトリを AppImage へ変換する必要があります。
 +
詳細情報は [https://docs.appimage.org/ AppImage 取扱説明書] にあります。
 +
 
 +
== 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 (このディレクトリが存在しない場合は作成します)
 +
 
 +
Linux/macOS システムでは実行権限の設定が必要です:
 +
<source lang="bash">chmod +x gradlew</source>
 +
 
 +
最後に 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]
  
LÖVEの0.6.1から、配布してそのまま単体で動作するLoveゲームが簡単に作れるようになりました。
+
* [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]
  
 +
=== APKTool の用法 ===
 +
詳細情報は [[Game Distribution/APKTool (日本語)|Game Distribution/APKTool]] を参照してください。
  
# love.appを複製してください。
+
== iOS ==
# 複製したlove.appを右クリックかControl+Clickしてコンテキストメニューを開き、「パッケージの内容を表示」を選んでください。
+
iOS (結合型実行形式の作成を行わない) に対する基本的な手順は [[Getting_Started (日本語)#iOS]] に掲載されています。
# Contentsフォルダの中のResourcesフォルダに移動します。二つの「.icns」ファイルがあると思います。このフォルダに、あなたの作成した.loveファイルを放り込んでください。
 
  
これだけで、いま複製したlove.appがそのままOS Xで実行可能なLÖVEゲームになります。必要に応じていくつか作業しなければいけない点があります。起動するとアプリケーションタイトルが「love」になっています。これを修正するためにはパッケージの中のContentsフォルダにある「info.plist」ファイルを修正する必要があります。テキストエディットでも編集できますが(訳注:XML書式なので若干判りにくいです)、もしあなたのMacにDevelopers toolsがセットアップされているならそれに含まれている「Property List Editor.app」を利用したほうが簡単に理解できるでしょう。ダブルクリックで各々のValue値を修正できます(Keyは修正しないでください)。
+
LÖVE エンジンに対して自作ゲームを「結合型実行形式」にするには:
 +
# [http://love2d.org/ love2d.org] から iOS 版のソースコードを入手します。
 +
# Xcode で platform/xcode/love.xcodeproj を開きます。
 +
# love-ios (love-macosx でありません) ターゲットを選択します。
 +
# 'love-ios' ターゲットの '''ビルドフェーズ''' を選択してから ''組み込みリソースのコピー'' で自作の  'game.love' ファイルを追加します。
 +
# プロジェクトをビルドします。
 +
# 自作ゲームはアプリとして iOS デバイスに表示されます。
  
 +
Xcode のユーザインタフェースに関連する要素を見つけらない場合は [https://youtu.be/MsYanwcU42E YouTube にある動画チュートリアル] を参照することができます。
  
* Bundle identifier - 「com.yourcompany.whatever」のように修正しましょう。
+
== ウェブ上での配布 ==
* Bundle name - Dockに表示される名前です。
+
[https://github.com/TannerRogalsky/love.js TannerRogalsky/love.js] のお陰で HTML5 または JavaScript 形式のゲームとして公開することは可能です。しかし、一部機能 (例えばスレッド)が実装されていません。もちろん、再生に関しては使用するウェブ・ブラウザに依存します。
* Bundle OS Type code
 
* Bundle creator OS Type code - これらをユニークな値にしておくと、.loveファイルがあなたの作ったゲームファイルで開かれる事がなくなります。
 
* Icon file - あなたが作ったアイコンに差し替えたい場合は、Resourcesに.icnsを追加した後、ここでそのアイコンファイルのファイル名を入力します(もちろん、ここを編集せずResourcesの中のLove.icnsを置き換えても構いません)。
 
  
 +
== コミュニュティ・ツール ==
 +
このリストはコミュニティ製のゲーム配布支援用ツールです。
 +
* [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 (日本語)]]
  
[[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 専用ツールです。

そのほかの言語