什麼是關卡
關卡是磁碟上的一個普通資料夾:關卡檔案、後設資料和它用到的一切。用Json製作,以資料夾副本的形式交給別人,不需要安裝任何東西
資料夾裡有什麼
這個資料夾不是資料庫裡的一條記錄,也不是加密的歸檔包
主要檔案有兩個:
level.json:關卡本身,包括物體、關鍵幀、主題、資源metadata.json:封面資訊,包括名稱、描述、作者、標籤、時長
關卡用到的所有東西都放在它們旁邊:曲目、圖片、字型。遊戲不附帶任何紋理。關卡里看到的一切,要麼是內建形狀,要麼是這個資料夾裡的檔案
封面資訊單獨放在一個檔案裡,這樣列出一千個關卡時不必開啟一千個關卡
完整的檔案列表:關卡資料夾與備份
Json還是Blob
檔案格式在建立關卡時選擇:
| 格式 | 是什麼 |
|---|---|
Json | 純文本,任何編輯器都能開啟,可以手動修復 |
Blob | 二進位制檔案,載入快幾十倍,體積只有三分之一,無法直接閱讀 |
建議
製作時用Json,完成後再轉換為Blob。如果關卡打不開了,Json可以直接閱讀並手動修復。Blob幾乎無法修復:只要壞一個位元組,完整性校驗就不通過
如何把關卡交給別人
關卡靠複製傳遞。把資料夾打包、傳送、解壓、開啟。不需要安裝、註冊或匯入
在PC上總是可行。在手機上,取決於系統允許你訪問哪些位置
由此可知:
- 關卡的備份就是資料夾的副本
- 不要重新命名資料夾裡的檔案:資源是按名稱查詢的
- 編輯器打不開的
Json關卡,仍然可以直接閱讀。原始資料標籤頁只顯示已經開啟的關卡
注意
關卡在遊戲中開啟時,不要用文本編輯器修改level.json。從編輯器儲存會悄無聲息地覆蓋你的修改
格式是開放的
關卡資料模型放在一個獨立的倉庫中,採用MIT許可證:bullet-hero/sdk。所以不用遊戲也能讀取關卡,也可以為這個格式編寫自己的工具。格式中的缺陷同樣能從外部看到
關於格式的更多內容:SDK