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

m
m
Line 3: Line 3:
 
ターゲット別にゲームを配布するには好ましい方法です (.love ファイルを使用して作成します):
 
ターゲット別にゲームを配布するには好ましい方法です (.love ファイルを使用して作成します):
  
* Windows → [[Game_Distribution#Creating_a_Windows_Executable (日本語)|Windows 実行可能形式]]
+
* Windows → [[Game_Distribution (日本語)#Creating_a_Windows_Executable|Windows 実行可能形式]]
* macOS → [[Game_Distribution#Creating_a_Mac_OS_X_Application (日本語)|macOS アプリケーション]]
+
* macOS → [[Game_Distribution (日本語)#Creating_a_Mac_OS_X_Application|macOS アプリケーション]]
 
* Linux → 平文の .love ファイル、または [[Game_Distribution (日本語)#Distribution_for_Linux|Appimages]]
 
* Linux → 平文の .love ファイル、または [[Game_Distribution (日本語)#Distribution_for_Linux|Appimages]]
  
Line 169: Line 169:
 
<source lang="lua">
 
<source lang="lua">
 
function love.conf(t)
 
function love.conf(t)
     t.version = "0.10.1"
+
     t.version = "0.10.3"
 
end
 
end
 
</source>
 
</source>

Revision as of 04:47, 9 December 2019

いったんゲームを完成させたならば、きっとほかの人にも遊んで欲しいと思うでしょう。一般に .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

標準で右クリックメニューによる 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 ファイルを作成することができます。

この方法は 結合型実行形式(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 = "0.10.3"
end

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

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

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


Debian

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

Packaging Love2d

AppImages

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

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

care -o love.tar.gz love

.

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

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

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

Android

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

 git clone https://bitbucket.org/MartinFelis/love-android-sdl2

次に、 Android SDK および NDK (現在のところ ndk 14b またはそれ以下 と互換性があります) をダウンロードします。そしてプロジェクトのルートパスにある local.properties という名前のファイルの内容を記述してください:

ndk.dir=... 
sdk.dir=...

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

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

./gradlew build

Linux/macOS システムでは事前に次のコマンドを実行する必要があります: chmod +x gradlew

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

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

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

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 に対応しており、さらに多数の機能があります。
  • Love Distrubution Pack[sic] は、 .love ファイルおよび .exe を作成できる Windows 専用ツールです。
  • love-dist は、 ファイルに対して LuaC の処理を行い .exe を作成する Windows 専用ツールです。

そのほかの言語