レベルとは
レベルはディスク上の普通のフォルダーです:レベルファイル、メタデータ、レベルが使うすべてのもの。Jsonで作り、フォルダーのコピーとして渡します。インストールするものはありません
フォルダーの中身
フォルダーはデータベースの1行でも、暗号化されたアーカイブでもありません
メインのファイルは2つです:
level.json:レベル本体。オブジェクト、キーフレーム、テーマ、リソースmetadata.json:表紙にあたる情報。名前、説明、作者、タグ、長さ
その隣に、レベルが使うすべてのものが置かれます:音楽トラック、画像、フォント。ゲームにはテクスチャが1枚も同梱されていません。レベルで見えるものはすべて、組み込みのシェイプか、このフォルダーのファイルです
表紙の情報が別ファイルになっているのは、1000個のレベルを一覧表示するのに1000個のレベルを開かずに済むようにするためです
ファイルの完全な一覧:レベルフォルダーとバックアップ
JsonかBlobか
ファイルのフォーマットはレベルの作成時に選びます:
| フォーマット | 特徴 |
|---|---|
Json | プレーンテキスト。どのエディターでも開けて、手で直せる |
Blob | バイナリファイル。読み込みは数十倍速く、サイズは3分の1だが、目では読めない |
レベルはJsonで作り、完成したらBlobに変換することをおすすめします。レベルが開けなくなっても、Jsonなら読んで手で直せます。Blobはほぼ修復できません:1バイト壊れただけで整合性チェックに通らなくなります
レベルの渡し方
レベルはコピーで受け渡しします。フォルダーをzipにして、送り、展開して、開くだけです。インストールも登録もインポートも必要ありません
PCではいつでもこの方法が使えます。スマートフォンでは、システムがアクセスを許す範囲で使えます
ここから次のことが言えます:
- レベルのバックアップはフォルダーのコピーです
- フォルダー内のファイル名は変えないでください:リソースは名前で探されます
- エディターで開けない
Jsonのレベルでも、目で読むことはできます。生データタブに表示されるのは、すでに開いているレベルだけです
レベルをゲームで開いている間は、level.jsonをテキストエディターで編集しないでください。エディターから保存すると、手で加えた変更は何の通知もなく上書きされます
フォーマットはオープン
レベルのデータモデルは、MITライセンスの別リポジトリにあります:bullet-hero/sdk。そのため、レベルはゲームなしでも読めますし、このフォーマット用の独自ツールも作れます。フォーマットの欠陥も外から見えます
フォーマットの詳細:SDK