This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
game.project ファイルには、プロジェクト全体の設定がすべて含まれています。このファイルはプロジェクトのルートフォルダーに置き、名前を game.project にする必要があります。エンジンが起動してゲームを開始するときは、最初にこのファイルを探します。
ファイル内の各設定は、いずれかのカテゴリーに属します。ファイルを開くと、Defold はすべての設定をカテゴリー別に表示します。

game.project の設定は通常 Defold 内で変更しますが、一般的なテキストエディターでもファイルを編集できます。このファイルは INI ファイル形式の標準に従い、次のように記述します。
[category1]
setting1 = value
setting2 = value
[category2]
...
実際の例を示します。
[bootstrap]
main_collection = /main/main.collectionc
これは、main_collection 設定が bootstrap カテゴリーに属することを意味します。上の例のようにファイル参照を使用するときは、パスの末尾に ‘c’ を付ける必要があります。これは、コンパイル済みのファイルを参照することを示します。また、game.project があるフォルダーがプロジェクトのルートになるため、設定のパスの先頭には ‘/’ が付きます。
sys.get_config_string(key)、sys.get_config_number(key)、sys.get_config_int(key)、sys.get_config_boolean(key) を使うと、実行時に game.project から値を読み取れます。次に例を示します。
local title = sys.get_config_string("project.title")
local gravity_y = sys.get_config_number("physics.gravity_y")
local fullscreen = sys.get_config_boolean("display.fullscreen", false)
キーはカテゴリー名と設定名をドットで区切って組み合わせ、小文字で記述し、空白文字をすべてアンダースコアに置き換えたものです。たとえば、「Project」カテゴリーの「Title」フィールドは project.title、「Physics」カテゴリーの「Gravity Y」フィールドは physics.gravity_y になります。
利用できるすべての設定を、カテゴリー別に示します。
アプリケーションのタイトルです。
アプリケーションのバージョンです。
パブリッシャー名です。
開発者名です。
エンジンがログファイルを書き込む条件を制御します。次の選択肢があります。
エディターから複数のインスタンスを実行している場合、ファイル名は instance_2_log.txt になります。2 はインスタンスのインデックスです。インスタンスを1つだけ実行している場合や、バンドルから実行している場合、ファイル名は log.txt になります。ログファイルの保存先は次のいずれかのパスです(記載順に試します)。
NSDocumentDirectoryContext.getExternalFilesDir()NSApplicationSupportDirectoryCSIDL_APPDATA(例: C:\Users\<username>\AppData\Roaming)Context.getFilesDir()HOME 環境変数ログシステムの最小ログレベルを指定します。このレベル以上のログのみが表示されます。
バンドル作成時のアーカイブ圧縮を有効にします。現在、これは Android 以外のすべてのプラットフォームに適用されます。Android では、apk 内のすべてのデータがすでに圧縮されています。
プロジェクトの Library URL の URL リストです。詳しくは、ライブラリのマニュアルを参照してください。
custom_resources
カスタムリソース(custom resource)は、game.project の Custom Resources フィールド を使って、ゲームのメインアーカイブに同梱されます。
Custom Resources フィールドには、ゲームのメインアーカイブに含めるリソースをカンマ区切りのリストで指定します。ディレクトリを指定すると、そのディレクトリ内のすべてのファイルとディレクトリが再帰的に含まれます。sys.load_resource() を使ってファイルを読み込めます。
カスタムリソースの読み込みについて詳しくは、ファイルアクセスのマニュアルで説明しています。
bundle_resources
バンドルリソース(bundle resources)は、game.project の Bundle Resources フィールド を使用してアプリケーションのバンドル(bundle)の一部として配置される、追加のファイルやフォルダーです。
Bundle Resources フィールドには、バンドル作成時に生成されるパッケージへそのままコピーするリソースファイルやフォルダーを含むディレクトリを、カンマ区切りで指定します。ディレクトリは、たとえば /res のように、プロジェクトのルートからの絶対パスで指定する必要があります。リソースディレクトリには、platform または architecture-platform という形式で名前を付けたサブフォルダーを含める必要があります。
サポートされているプラットフォームは、ios、android、osx、win32、linux、web、switch です。すべてのプラットフォームで共通のリソースファイルを含む、common という名前のサブフォルダーも使用できます。例:
res
├── win32
│ └── mywin32file.txt
├── common
│ └── mycommonfile.txt
└── android
├── myandroidfile.txt
└── res
└── xml
└── filepaths.xml
sys.get_application_path() を使用すると、アプリケーションが保存されている場所のパスを取得できます。このアプリケーションのベースパスを使用して、アクセスする必要があるファイルへの最終的な絶対パスを作成します。これらのファイルの絶対パスを取得したら、io.* と os.* の関数を使用してファイルにアクセスできます。
バンドルリソースの読み込みについて詳しくは、ファイルアクセスのマニュアルで説明しています。
bundle_exclude_resources
バンドルに含めないリソースの、カンマ区切りのリストです。これらのリソースは、bundle_resources ステップで収集したリソースから除外されます。
アプリケーションの起動に使用するコレクション(collection)のファイル参照です。既定値は /logic/main.collection です。
レンダリングパイプラインを定義するレンダー設定ファイルを指定します。既定値は /builtins/render/default.render です。
ライブラリ共有を通じてプロジェクトから共有するディレクトリの、スペース区切りのリストです。詳しくは、ライブラリのマニュアルを参照してください。
チェックすると、すべてのスクリプトの種類で1つの Lua ステートを共有します。
アプリケーションのウィンドウを最小化している間も、エンジンの実行を継続できるようにします(デスクトッププラットフォームのみ)。
fixed_update(self, dt) ライフサイクル関数の更新頻度です。単位はヘルツです。
1フレーム中のタイムステップ(更新やシミュレーションの時間刻み)が大きくなりすぎた場合、この最大値に制限します。単位は秒です。
アプリケーションウィンドウの幅です。単位はピクセルです。
アプリケーションウィンドウの高さです。単位はピクセルです。
対応するディスプレイで高 DPI のバックバッファーを作成します。通常、ゲームは Width と Height の設定値の2倍の解像度で描画されます。これらの設定値は、引き続きスクリプトやプロパティで使用する論理解像度になります。
スーパーサンプリングアンチエイリアシングで使用するサンプル数です。ウィンドウヒント GLFW_FSAA_SAMPLES を設定します。値が 0 の場合、アンチエイリアシングは無効になります。
アプリケーションをフルスクリーンで起動する場合はチェックします。チェックしない場合は、ウィンドウモードで実行されます。
目標のフレームレートです。単位はヘルツです。可変フレームレートにするには 0 に設定します。0 より大きい値にすると固定フレームレートになり、実行時には実際のフレームレートが上限になります(つまり、エンジンの1フレーム内でゲームループを2回更新することはできません)。実行時にこの値を変更するには、sys.set_update_frequency(hz) を使用します。この設定は、画面表示を伴わずに実行するヘッドレスビルドでも機能します。
この整数値は、アプリケーションでの垂直同期(vsync)の扱いを制御します。0 にすると垂直同期が無効になり、既定値は 1 です。OpenGL アダプターを使用する場合、この値はバッファーの交換間にウィンドウを更新するフレーム数を設定します。Vulkan にはスワップ間隔という組み込みの概念がないため、この値は垂直同期を有効にするかどうかを制御します。
従来との互換性のための設定です。この設定は非推奨です。新しいプロジェクトでは Swap Interval を使用してください。無効にすると、実効スワップ間隔は強制的に 0 になります。有効にすると、Swap Interval によって実効値が決まります。
使用するディスプレイプロファイルファイルを指定します。既定値は /builtins/render/default.display_profilesc です。詳しくは、GUI レイアウトのマニュアルを参照してください。
デバイスの回転に合わせて、アプリを縦向きと横向きの間で動的に切り替える場合はチェックします。現在、開発用アプリにはこの設定が反映されません。
起動時に GPU 情報をコンソールに出力します。
クリアカラーの赤チャンネルです。レンダースクリプトとウィンドウ作成時に使用されます。
クリアカラーの緑チャンネルです。レンダースクリプトとウィンドウ作成時に使用されます。
クリアカラーの青チャンネルです。レンダースクリプトとウィンドウ作成時に使用されます。
クリアカラーのアルファチャンネルです。レンダースクリプトとウィンドウ作成時に使用されます。
実行時のフォント生成を使用します。
コリジョンオブジェクト(collision object)の最大数です。コリジョンオブジェクトは、衝突判定や物理特性を持つコンポーネント(component)です。
使用する物理シミュレーションの種類を 2D または 3D から選びます。
ワールドの x 軸方向の重力です。単位はメートル毎秒です。
ワールドの y 軸方向の重力です。単位はメートル毎秒です。
ワールドの z 軸方向の重力です。単位はメートル毎秒です。
デバッグのために物理シミュレーションを可視化する場合はチェックします。
可視化した物理シミュレーションのアルファ成分の値です。範囲は 0–1 です。
同時に存在できる物理ワールドの最大数です。既定値は 4 です。コレクションプロキシ(collection proxy)を通じて4つを超えるワールドを同時に読み込む場合は、この値を増やす必要があります。各物理ワールドはかなりの量のメモリを確保することに注意してください。
数値精度を確保するため、ゲームワールドに対する物理ワールドのスケールを物理エンジンに指定します。範囲は 0.01–1.0 です。値を 0.02 に設定すると、物理エンジンは50単位を1メートルとして扱います($1 / 0.02$)。
ゲームオブジェクト(game object)のトランスフォームを、取り付けられているすべてのコリジョンオブジェクトコンポーネントに物理エンジンが適用する場合はチェックします。これにより、動的なものも含めてコリジョン形状を移動、拡大縮小、回転できます。
物理エンジンで、フレームレートに依存しない固定時間間隔の更新を使用する場合はチェックします。この設定を fixed_update(self, dt) ライフサイクル関数と engine.fixed_update_frequency プロジェクト設定と組み合わせると、一定間隔で物理エンジンとやり取りできます。新しいプロジェクトでは true を推奨します。
物理シミュレーションの3軸表示や法線などの単位オブジェクトを描画する大きさです。
スクリプトに報告する衝突の数です。
スクリプトに報告する接触点の数です。
この設定値より小さい接触力積を無視します。
1フレームあたりの 2d レイキャストリクエストの最大数です。
1フレームあたりの 3d レイキャストリクエストの最大数です。
重なり合う物理トリガーの最大数です。
弾性衝突が発生する最小速度です。
固定タイムステップを使用する場合の、シミュレーションの最大ステップ数です(3D のみ)。
縮小フィルタリングに使用するフィルタリング方法を指定します。
拡大フィルタリングに使用するフィルタリング方法を指定します。
レンダリング呼び出しの最大数です。
テキスト描画バッファーで事前に確保する文字数です。つまり、各フレームで表示できる文字数です。
各フレームで表示できるテキストバッチの最大数です。
デバッグ用頂点の最大数です。物理形状の描画などに使用します。
このプロジェクトで使用するテクスチャプロファイルファイルです。既定値は /builtins/graphics/default.texture_profiles です。
各グラフィックス呼び出しの後で戻り値を検証し、エラーがあればログに報告します。
OpenGL コンテキストのバージョンヒントです。特定のバージョンを選択すると、そのバージョンが必要な最小バージョンとして使用されます(OpenGL ES には適用されません)。
コンテキスト作成時に、OpenGL プロファイルヒントを ‘core’ に設定します。コアプロファイルでは、即時モードレンダリングなどの非推奨機能がすべて OpenGL から除外されます。OpenGL ES には適用されません。
graphics.vulkan_version_major は、Vulkan コンテキスト/API のメジャーバージョンヒントです。Vulkan グラフィックスバックエンドが選択されている場合にのみ適用されます。既定値は 1 です。
graphics.vulkan_version_minor は、Vulkan コンテキスト/API のマイナーバージョンヒントです。Vulkan グラフィックスバックエンドが選択されている場合にのみ適用されます。既定値は 0 です。
OpenGLES 2.0 / WebGL 1.0 を実行するデバイス向けのシェーダーをコンパイルしません。
shader.glsl_es_default_precision_float は、クロスコンパイルされた GLSL ES シェーダー内の浮動小数点値に対する、既定のグローバル精度修飾子を設定します。有効な値は mediump と highp で、既定値は mediump です。
shader.glsl_es_default_precision_int は、クロスコンパイルされた GLSL ES シェーダー内の整数値に対する、既定のグローバル精度修飾子を設定します。有効な値は mediump と highp で、既定値は highp です。
押し続けた入力のリピートが始まるまでの待ち時間です。単位は秒です。
押し続けた入力の、各リピートの間の待ち時間です。単位は秒です。
ゲームパッドの信号を OS に対応付ける、ゲームパッド設定ファイルのファイル参照です。既定値は /builtins/input/default.gamepads です。
ハードウェア入力をアクションに対応付ける、入力設定ファイルのファイル参照です。既定値は /input/game.input_binding です。
チェックすると、エンジンが各フレームで加速度センサーの入力イベントを受信します。加速度センサーの入力を無効にすると、パフォーマンスが多少向上する可能性があります。
チェックすると HTTP キャッシュが有効になり、ネットワーク経由でデバイス上の実行中のエンジンへリソースをより速く読み込めます。
プロジェクトのビルドデータの場所を URI 形式で指定します。
同時に読み込めるリソースの最大数です。
HTTP のタイムアウトです。単位は秒です。タイムアウトを無効にするには 0 に設定します。
HTTP サービスのワーカースレッド数です。
チェックすると、ネットワークリクエスト(http.request() を使用)の HTTP キャッシュが有効になります。HTTP キャッシュはリクエストに対応するレスポンスを保存し、以降のリクエストで保存したレスポンスを再利用します。HTTP キャッシュは、HTTP レスポンスヘッダーの ETag と Cache-Control: max-age をサポートしています。
SSL ハンドシェイク中に証明書チェーンを検証するための、SSL ルート証明書を含むファイルです。
コレクション内のゲームオブジェクトのインスタンスの最大数です。既定値は 1024 です。(コンポーネントの最大数の最適化について参照)。
入力スタック内のゲームオブジェクトの最大数です。
グローバルなゲイン(音量)です。範囲は 0–1 です。
有効にすると、ゲインは線形になります。無効にすると、指数曲線を使用します。
サウンドリソースの最大数です。つまり、実行時の固有のサウンドファイル数です。
(現在は使用されていません)同時に存在できるサウンドバッファーの最大数です。
(現在は使用されていません)同時に再生できるサウンドの最大数です。
同時に存在できるサウンドインスタンスの最大数です。つまり、実際に同時再生されるサウンドの数です。
コレクションあたりのサウンドコンポーネントの最大数です。
各オーディオ更新で使用するサンプル数です。0 は自動を意味します(48 kHz では1024、44.1 kHz では768)。
チェックすると、サウンドシステムはスレッドを使用してサウンドを再生し、メインスレッドの負荷が高いときの音切れのリスクを低減します。
チェックすると、サウンドシステムはストリーミングを使用してソースファイルを読み込みます。
すべての チャンクを含むサウンドチャンクキャッシュの最大サイズです。既定値は 2097152 バイトです。
この値は、読み込まれているサウンドファイル数にストリームチャンクサイズを掛けた値より大きくすることをお勧めします。
そうしないと、各フレームで新しいチャンクがキャッシュから追い出される可能性があります。
ストリーミングされる各チャンクのサイズです。単位はバイトです。
アーカイブから読み込むサウンドファイルの、最初のチャンクのサイズをバイト単位で指定します。
コレクションあたりのスプライトの最大数です。(コンポーネントの最大数の最適化について参照)。
チェックすると、ピクセルに整列しない位置にスプライトを表示できるようになります。
コレクションあたりのタイルマップの最大数です。(コンポーネントの最大数の最適化について参照)。
コレクションあたりの、同時に表示できるタイルの最大数です。
Spine モデルコンポーネントの最大数です。(コンポーネントの最大数の最適化について参照)。
コレクションあたりのメッシュコンポーネントの最大数です。(コンポーネントの最大数の最適化について参照)。
コレクションあたりのモデルコンポーネントの最大数です。(コンポーネントの最大数の最適化について参照)。
頂点数が65536を超えるメッシュを、新しいメッシュに分割します。
ボーン行列テクスチャの最大幅です。アニメーションに必要なサイズを、それ以上で最も近い2の累乗に切り上げたサイズだけ使用します。
ボーン行列テクスチャの最大高さです。アニメーションに必要なサイズを、それ以上で最も近い2の累乗に切り上げたサイズだけ使用します。
GUI コンポーネントの最大数です。(コンポーネントの最大数の最適化について参照)。
GUI 内に同時に存在できるパーティクルの最大数です。
GUI 内のアクティブなアニメーションの最大数です。
ラベルの最大数です。(コンポーネントの最大数の最適化について参照)。
チェックすると、ピクセルに整列しない位置にラベルを表示できるようになります。
同時に存在できるエミッターの最大数です。(コンポーネントの最大数の最適化について参照)。
同時に存在できるパーティクルの最大数です。
Box2D 2.2 物理ソルバーの速度反復回数です。
Box2D 2.2 物理ソルバーの位置反復回数です。
Box2D 3.x 物理ソルバーのサブステップ数です。
コレクションプロキシの最大数です。(コンポーネントの最大数の最適化について参照)。
コレクションファクトリー(collection factory)の最大数です。(コンポーネントの最大数の最適化について参照)。
ゲームオブジェクトのファクトリー(factory)の最大数です。(コンポーネントの最大数の最適化について参照)。
指定した幅と高さ W × H のアプリケーションアイコンとして使用する画像ファイル(.png)です。
ストーリーボードファイル(.storyboard)です。作成方法について詳しくは、iOS のマニュアルを参照してください。
アプリのアイコンを含むアイコンアセットファイル(.car)です。
(iOS 6 以前)アイコンが事前に描画済みである場合はチェックします。チェックしない場合、アイコンに光沢のハイライトが自動的に追加されます。
バンドル識別子により、iOS はアプリの更新を認識できます。バンドル ID は Apple に登録し、アプリ固有のものにする必要があります。iOS アプリと macOS アプリで同じ識別子を使用することはできません。識別子は、ドットで区切った2つ以上のセグメントで構成する必要があります。各セグメントは英字で始める必要があります。各セグメントには、英数字、アンダースコア、ハイフン(-)のみを使用できます(CFBundleIdentifier を参照)。
バンドルの短い名前(15文字)です(CFBundleName を参照)。
バンドルのバージョンです。数値または x.y.z 形式で指定します(CFBundleVersion を参照)。
指定すると、アプリのバンドル作成時に、組み込みの iOS ベースマニフェストの代わりにこの Info.plist ファイルを使用します。組み込みマニフェストには、リリース以外のビルドでエディターがターゲットを検出するために必要な、ローカルネットワークと Bonjour のエントリーが含まれています。カスタムマニフェストを使用し、デバイス上でターゲット検出、プロファイリング、ホットリロード、ログストリーミングが必要な場合は、iOS のマニュアルの説明に従い、それらのエントリーを保持してください。
アプリケーションの Apple プライバシーマニフェストです。このフィールドの既定値は /builtins/manifests/ios/PrivacyInfo.xcprivacy です。
指定すると、指定したプロビジョニングプロファイル(.entitlements、.xcent、.plist)のエンタイトルメントが、アプリケーションのバンドル作成時に指定するプロビジョニングプロファイルのエンタイトルメントとマージされます。
アプリケーションの Localizations リストにユーザーの優先言語がない場合に使用する言語です(CFBundleDevelopmentRegion を参照)。優先言語が2文字の ISO 639-1 規格に含まれている場合はそのコードを、それ以外の場合は3文字の ISO 639-2 コードを使用してください。
このフィールドには、サポートするローカライズの言語名または ISO 言語コードを示す文字列を、カンマ区切りで指定します(CFBundleLocalizations を参照)。
指定した幅と高さ W × H のアプリケーションアイコンとして使用する画像ファイル(.png)です。
Android のカスタムプッシュ通知アイコンとして使用する画像ファイル(.png)です。このアイコンは、ローカルとリモートの両方のプッシュ通知に自動的に使用されます。設定しない場合は、既定でアプリケーションアイコンを使用します。
通知タイトルに使用するペイロードの JSON フィールドを指定します。この設定を空にすると、プッシュ通知は既定でアプリケーション名をタイトルとして使用します。
通知テキストに使用するペイロードの JSON フィールドを指定します。空にすると、iOS と同様に alert フィールドのテキストを使用します。
アプリのバージョンを示す整数値です。以後、更新するたびにこの値を増やしてください。
アプリケーションの実行に必要な最小 API レベルです(android:minSdkVersion)。
アプリケーションが対象とする API レベルです(android:targetSdkVersion)。
パッケージ識別子です。ドットで区切った2つ以上のセグメントで構成する必要があります。各セグメントは英字で始める必要があります。各セグメントには、英数字またはアンダースコアのみを使用できます。
Google Cloud Messaging の Sender Id です。プッシュ通知を有効にするには、Google が割り当てた文字列を設定します。
Firebase Cloud Messaging の Application Id です。
設定すると、バンドル作成時に指定した Android マニフェスト XML ファイルを使用します。カスタムマニフェストは、Defold の組み込みベースマニフェストを置き換えます。ネイティブ拡張のマニフェストフラグメントは引き続きマージされますが、組み込みベースマニフェストへの以後の変更は自動的には反映されません。そのため、アップグレード時にはカスタムマニフェストと現在の組み込みマニフェストを比較してください。ゲームの場合は、android:appCategory="game" を <application> 要素に設定します。ゲーム以外のアプリケーションの場合、android:appCategory は、Android が定義するアプリケーションカテゴリーのいずれかがアプリを正確に表している場合にのみ設定してください。
使用するストアを指定します。有効な選択肢は Amazon と GooglePlay です。詳しくは、extension-iap を参照してください。
Android デバイスでキーボード入力を取得する方法を指定します。有効な選択肢は KeyEvent(従来の方法)と HiddenInputField(新しい方法)です。
設定すると、ナビゲーションバーとステータスバーを非表示にし、画面上のすべてのタッチイベントをアプリで取得できるようにします。
ディスプレイのカットアウトまで表示領域を広げます。
GAPID や Android Studio などのツールを使用して、アプリケーションをデバッグできるかどうかを指定します。Android マニフェストの android:debuggable フラグを設定します(公式ドキュメント)。
最終的な APK から不要な Java クラスを取り除くための、カスタム ProGuard ファイルです。
パッケージインストーラーが APK からファイルシステムへネイティブライブラリを展開するかどうかを指定します。false に設定すると、ネイティブライブラリは APK 内に非圧縮で格納されます。APK が大きくなる可能性はありますが、実行時にライブラリを APK から直接読み込むため、アプリケーションの読み込みが速くなります。Android マニフェストの android:extractNativeLibs フラグを設定します(公式ドキュメント)。
macOS のアプリケーションアイコンとして使用するバンドルアイコンファイル(.icns)です。
設定すると、バンドル作成時に指定した info.plist ファイルを使用します。
アプリケーションの Apple プライバシーマニフェストです。このフィールドの既定値は /builtins/manifests/osx/PrivacyInfo.xcprivacy です。
バンドル識別子により、macOS はアプリの更新を認識できます。バンドル ID は Apple に登録し、アプリ固有のものにする必要があります。iOS アプリと macOS アプリで同じ識別子を使用することはできません。識別子は、ドットで区切った2つ以上のセグメントで構成する必要があります。各セグメントは英字で始める必要があります。各セグメントには、英数字、アンダースコア、ハイフン(-)のみを使用できます。
アプリケーションの Localizations リストにユーザーの優先言語がない場合に使用する言語です(CFBundleDevelopmentRegion を参照)。優先言語が2文字の ISO 639-1 規格に含まれている場合はそのコードを、それ以外の場合は3文字の ISO 639-2 コードを使用してください。
このフィールドには、サポートするローカライズの言語名または ISO 言語コードを示す文字列を、カンマ区切りで指定します(CFBundleLocalizations を参照)。
Windows のアプリケーションアイコンとして使用する画像ファイル(.ico)です。.ico ファイルの作成方法について詳しくは、Windows のマニュアルを参照してください。
これらの選択肢の多くについて詳しくは、HTML5 プラットフォームのマニュアルを参照してください。
Emscripten が使用するヒープサイズです。単位はメガバイトです。
バンドル作成時に、指定したテンプレート HTML ファイルを使用します。既定値は /builtins/manifests/web/engine_template.html です。
バンドル作成時に、指定したテーマ CSS ファイルを使用します。既定値は /builtins/manifests/web/light_theme.css です。
設定すると、作成したバンドルの起動時に、Defold ロゴの代わりに指定したスプラッシュ画像を使用します。
HTML5 向けにバンドルを作成すると、ゲームデータは1つ以上のアーカイブデータファイルに分割されます。エンジンがゲームを開始するときに、これらのアーカイブファイルをメモリに読み込みます。この設定を使用して、データの場所を指定します。
アーカイブファイルに追加するサフィックスです。たとえば、CDN からキャッシュされていないコンテンツを強制的に取得する場合に便利です(例: ?version2)。
エンジンに渡す引数のリストです。
wasm ファイルのストリーミングを有効にします(より高速でメモリ使用量も少なくなりますが、MIME タイプ application/wasm が必要です)。
index.html ファイルの Fullscreen Button を有効にします。
index.html ファイルの Made With Defold リンクを有効にします。
この選択肢を有効にすると、エンジン起動時に、エンジンとそのバージョンに関する情報をブラウザーのコンソールへ出力します(console.log() を使用)。
ゲームのキャンバスを拡大縮小する方法を指定します。
エンジン起動時にファイルのダウンロードを試みる回数です(Retry Time を参照)。
ダウンロードに失敗した場合に、次のファイルダウンロードの試行まで待機する秒数です(Retry Count を参照)。
グラフィックスコンテキストの背景を透明にする場合はチェックします。
IAP トランザクションを自動的に完了する場合はチェックします。チェックしない場合、トランザクションの成功後に iap.finish() を明示的に呼び出す必要があります。
バンドル作成時に使用する Live Update 設定リソースファイルです。
設定すると、アプリケーションマニフェストを使用してエンジンのビルドをカスタマイズします。これにより、エンジンから使用しない部分を削除して、最終的なバイナリのサイズを小さくできます。使用しない機能の除外方法については、アプリケーションマニフェストのマニュアルを参照してください。
App Manifest の Profiler 設定は、デバッグビルドとリリースビルドにプロファイラーのコードをリンクするかどうかを制御します。以下の設定は、選択したビルドに含まれるプロファイラーのコードの実行時の動作を制御します。詳しくは、プロファイリングのマニュアルを参照してください。
ゲーム内のプロファイラーを有効にします。
デバッグビルドでは、CPU 使用率のサンプリングが既定で有効になります。App Manifest を通じてプロファイラー対応を含めたリリースビルドでも CPU サンプリングが必要な場合は、この設定を有効にします。
サーバー更新の間にスリープするミリ秒数です。
ブラウザー内のパフォーマンスタイムラインを有効にします(HTML5 のみ)。
profiler.max_sample_count は、1フレーム内に各スレッドで記録するプロファイラーサンプルの最大数です。既定値は 4096、最小値は 128 です。正当なプロファイルがこの上限を超える場合にのみ値を増やしてください。まず、ネイティブ拡張のプロファイリングコードで、スコープの開始と終了の呼び出しに不一致がないか確認してください。
エンジン起動時に、game.project の設定を上書きする設定値をコマンドラインから渡せます。
# Specify a bootstrap collection
$ dmengine --config=bootstrap.main_collection=/my.collectionc
# Set two custom config values
$ dmengine --config=test.my_value=4711 --config=test2.my_value2=foobar
カスタム値は、他の設定値と同様に、実行時のアクセスで説明した対応する関数で読み取れます。
local my_value = sys.get_config_number("test.my_value")
local my_value2 = sys.get_config_string("test.my_value2")
local my_flag = sys.get_config_boolean("test.my_flag", false)
game.project 設定ファイルには、特定のリソース(resource)が同時に存在できる最大数を指定する値が数多くあります。この数は、読み込まれたコレクション(collection、ワールドとも呼ばれます)ごとに数えられることがよくあります。Defold エンジンはこれらの最大値を使用して、その数に応じたメモリを事前に割り当て、ゲームの実行中に動的な割り当てやメモリの断片化が起きるのを防ぎます。
Defold でコンポーネント(component)やその他のリソースを表すデータ構造は、メモリ使用量をできるだけ少なくするように最適化されています。それでも、実際に必要な量を超えるメモリを割り当てないように、値を設定する際には注意が必要です。
メモリ使用量をさらに最適化するため、Defold のビルド処理ではゲームの内容を解析し、正確な数を確実に把握できる場合は最大数を上書きします。
メインプロジェクトまたはネイティブ拡張のカスタム設定を定義できます。メインプロジェクトのカスタム設定は、プロジェクトのルートにある game.properties ファイルで定義する必要があります。ext.properties という名前のファイルは、プロジェクト内と取得済みの依存ライブラリ内のどこにあっても検出されます。同じ場所に ext.manifest がある必要はありません。検出されたすべての拡張メタデータがマージされた後、ルートの game.properties ファイルが適用され、その内容を上書きできます。
設定ファイルは game.project と同じ INI 形式を使用し、プロパティの属性はサフィックス付きのドット記法で定義します。
[my_category]
my_property.private = 1
...
常に適用される既定のメタファイルは、こちらで確認できます。
現在、次の属性を使用できます。
[my_extension]
// `type` - used for the value string parsing
my_property.type = string // one of the following values: bool, string, number, integer, string_array, resource
// `help` - displayed as a help tooltip in the editor
my_property.help = string
// `default` - value used as default if user didn't set value manually
my_property.default = string
// `private` - private value used during the bundle process but will be removed from the bundle itself
my_property.private = 1 // boolean value 1 or 0
// `label` - editor input label
my_property.label = My Awesome Property
// `minimum` and/or `maximum` - valid range for numeric properties, validated in the editor UI
my_property.minimum = 0
my_property.maximum = 255
// `options` - drop-down choices for the editor UI, comma-separated value[:label] pairs
my_property.options = android: Android, ios: iOS
// `resource` type only:
my_property.filter = jpg,png // allowed file extensions for resource selector dialog
my_property.preserve-extension = 1 // use original resource extension instead of a built one
// deprecation
my_property.deprecated = 1 // mark property as deprecated
my_property.severity-default = warning // if deprecated property is specified, but set to a default value
my_property.severity-override = error // if deprecated property is specified and set to a non-default value
さらに、設定カテゴリーには次の属性を設定できます。
[my_extension]
// `group` - game.project category group, e.g. Main, Platforms, Components, Runtime, Distribution
group = Runtime
// `title` - displayed category title
title = My Awesome Extension
// `help` - displayed category help
help = Settings for My Awesome Extension
Bob とエディターの両方が、これらのメタデータファイルを解析します。エディターはそれらを使用して、game.project ビューアー内に対応するフィールド、選択肢、検証、ヘルプツールチップを作成します。