文件
下載遊戲,開啟關卡列表,通關任意一個關卡。想做自己的關卡,就在編輯器中建立一個關卡,並把一首1到2分鐘的曲目放進它的資料夾
遊戲錯誤提交到releases的issues,問題發到Discord。附上設定中的版本字串,以及出現錯誤之前的操作步驟
開始遊玩之前,遊戲會用一個五格的指示條顯示關卡在你的裝置上執行起來有多吃力:亮起的格越多,關卡越輕鬆。綠色的格表示執行流暢,黃色表示吃緊,紅色表示幀率會下降
編輯器內建在遊戲中,不需要另外安裝任何東西。在編輯器裡,關卡就是一個裝著曲目和檔案的資料夾,你要把它從空資料夾一路做到可以釋出
關卡是一個裝著檔案的資料夾,第一個關卡六步就能做出來,而整個編輯器建立在六個概念之上:物體、幀、時段、圖層、父級、關鍵幀
關卡是磁碟上的一個普通資料夾:關卡檔案、後設資料和它用到的一切。用Json製作,以資料夾副本的形式交給別人,不需要安裝任何東西
到第一次試玩只需六步:建立關卡、新增曲目、標出節奏、放置物體、開始試玩、儲存
物體、幀、時段、圖層、父級、關鍵幀,整個編輯器建立在這六個概念之上
關卡用自己的幀計時,而不是螢幕幀,所以在任何硬體上玩起來都一樣。關卡長度由你設定,fps最好保持預設的60
關鍵幀是某條軌道在某一幀上的數值,再加上到達這個數值時使用的緩動。關卡中所有會移動、變色或開關的東西,都是一串關鍵幀
最小的關卡只需要一首曲目。圖片和字型由你自己準備,它們都放在關卡資料夾裡
最少只需要一首曲目。其餘都是可選的,而且幾乎都要你自己準備
把曲目轉換為ogg:它的體積是wav的八分之一到十分之一,而且與mp3不同,不會在檔案開頭加入靜音。除了ogg,只能讀取mp3和wav
能用形狀就用形狀:它沒有檔案,不佔記憶體,也沒有版權問題。圖片尺寸與它在螢幕上佔的位置相當即可,移動端關卡不超過2048,其他情況不超過4096
關卡放在遊戲資料夾內levels中自己的資料夾裡。不要重新命名它用到的檔案,完整的備份就是關卡資料夾的副本
你釋出的關卡中只能放開放許可證不比CC BY-NC更嚴格、或者得到作者許可的檔案。給自己玩的關卡可以用任何東西製作
曲目的開放許可證不比CC BY-NC更嚴格,或者作者明確允許把它用在關卡中,就可以使用。來自YouTube、SoundCloud或Spotify的曲目,沒有作者許可就不能使用
資源要麼有合適的許可證,要麼有權利人的許可,才算合格。沒有第三種方式
預設安全的來源:音樂來自ccMixter、Freesound和Kenney,圖片來自Poly Haven、Pexels和Unsplash,字型來自Google Fonts。不能從YouTube、SoundCloud和Spotify獲取
資源記錄寫明資源從哪裡來、按什麼條款使用:連結、許可證、許可、作者。許可證欄位為空的意思是“沒人檢查過”,這樣的資源會被拒絕
每個服務都按自己的規則檢查關卡,所以一個服務可能接受,另一個卻拒絕。只有錯誤會阻止釋出,警告會把關卡送去稽核
按模板給作者寫信,不要刪掉第1到第3點,並儲存回覆。只有明確允許分發關卡的許可才有效,僅限個人使用的許可不行
好關卡是這樣的:玩家明白自己是怎麼死的,跟著音樂移動,並且想再試一次
玩家必須明白自己是被什麼殺死的。在危險變得危險之前就展示它,給出至少12幀的反應時間,並讓危險比裝飾更醒目
先標出節拍網格:先定速度,再定偏移,然後是每小節拍數。把關卡的高潮放在曲目的高潮上,並在間奏處讓玩家喘口氣
按玩家本身的數字設計(全部數字見6_avatar和7_damage),再考慮人12到15幀的反應時間。新的模式先以安全的形式展示
關鍵內容要遠離邊緣:其他螢幕的邊緣在別的位置,手機的挖孔可能擋住子彈。相機震動適合持續一個小節,快速旋轉和劇烈縮放會讓人頭暈
內容的顏色要通過主題引用來設定,直接顏色只留給真正獨一無二的東西。後期處理在高潮處開啟、然後關掉,否則子彈會失去邊緣
主題是由64種顏色組成的調色盤,物體按槽位編號引用這些顏色。更換主題,所有引用它的內容都會隨之改變
先用內建形狀拼圖,只在沒有合適形狀的地方畫自己的形狀。把光和影疊在同一個基礎形狀上,把每個重複的元素做成預製件,再把原圖疊在關卡上核對結果
講的是習慣而不是設計:按什麼順序搭建關卡,怎樣不重複勞動、不丟失成果,怎樣用機器人檢查關卡、把它交給別人,以及怎樣和AI助手一起搭建關卡。從工作順序開始
先定音軌、幀率、節拍標註和標記,再用樸素的形狀搭骨架並試玩。裝飾、主題和特效放在最後
以後需要一起修改的物體,不管有多少,都做成預製件。能用規則描述的內容,用生成器。其他情況直接複製
最省時間的是命令面板(Ctrl+Shift+P)、內容搜尋(Ctrl+F)、“定位”按鈕和時間軸上的方向鍵。任何按鍵都可以在設定中重新繫結
保護工作的是自動儲存、撤銷和關卡資料夾的副本。只有資料夾的副本才是關卡的完整快照。更改檔案格式和刪除關卡無法撤銷
機器人用和你相同的操作遊玩關卡,檢查的是可讀性而不是難度。它不保證能通關
把關卡資料夾打包成zip或tar.gz,需要密碼時用gpg加密。在另一臺電腦上解包後的關卡可以直接遊玩,遊戲也能自己讀取這類歸檔包
支援MCP的AI客戶端可以在你眼前編輯編輯器中開啟的關卡。每個AI批次操作都是一個撤銷步驟,AI不能釋出、刪除檔案,也不能覆蓋其他關卡
關卡能否在玩家的裝置上執行,取決於一幀中的形狀數量和過度繪製。從關卡預算開始,如果你在為手機制作關卡,也要讀一讀移動裝置
手機能流暢承載一幀中約1000個形狀,低配電腦能承載5000-10000個。比數量代價更高的是過度繪製:鋪滿全屏的半透明內容,一層疊一層
在手機上,手指會遮住螢幕,邊緣被系統佔用。重要的內容要遠離邊緣,並在低配手機上測試關卡:最先拖垮它的是全屏半透明
編輯器中某個欄位或按鈕的作用,每個面板、視窗或標籤頁一頁。參考不是用來從頭讀到尾的:你會從搜尋或文章中的連結來到這裡
專案的主要術語列表。遊戲介面、這份文件以及其他所有關於Bullet Hero的文字都使用這些詞,新術語要先新增到這裡
後設資料就是關卡的封面資訊:名稱、描述、圖片、作者、年齡分級、難度和內容警示。現在,關卡以資料夾的形式或通過Steam創意工坊交給別人
時間軸按時間顯示關卡:物體、選中物體的關鍵幀、預製件的模板、音訊和事件。節拍網格幫助你把這一切放到音樂上
層級是當前幀物體按父級組成的樹。每個時間軸都有自己的剪貼簿緩衝區,命令面板可以按名稱找到任意編輯器操作
物體檢視器編輯選中物體的欄位,關鍵幀檢視器編輯選中的關鍵幀,並同時作用於選中項涉及的所有軌道
特效是VFX Graph粒子,它的引數分成幾個模組:粒子有多少、從哪裡飛出、如何運動、什麼顏色和大小。可以在檢視器或特效編輯器中編輯
音訊軌道的聲音會經過一條效果鏈:共11種效果,從標準化、壓縮器到回聲和混響。效果鏈、速度和音量在音訊軌道檢視器中設定
生成器建立內容,並以一次操作應用到關卡,一步就能撤銷。所有生成器都從工具欄上的“生成器”視窗執行
修改器改變關卡中已有的內容:刪除內容、重新計算fps、展平預製件、量化關鍵幀、適配和移動時段。一次執行一步就能撤銷
屬於關卡本身的一切都在這裡設定:長度、fps、種子、方向、後設資料、釋出。關卡也是從這裡啟動、按規則檢查和從副本恢復的
關卡的紋理、形狀、主題、特效和預製件都存放在它的資料夾中,隨關卡一起轉移。每個資源都有自己的卡片,記錄來源、許可證和作者
在預製件模式中,你編輯的是模板,儲存會把改動帶到它的每一個放置。用放置檢視器中的“編輯預製件”按鈕進入,用Ctrl+Shift+E回到關卡
匯出會把關卡連同它用到的所有檔案,以資料夾或歸檔包的形式儲存到遊戲之外。密碼會在磁碟上加密關卡的內容,忘記的密碼無法找回
自動儲存、網格、選擇、控制柄和新關卡的預設都在這裡設定。自動儲存預設開啟,在編輯後60秒觸發
層級、檢視器和時間軸停靠在視口周圍。單擊面板邊緣的手柄可以開啟或關閉面板,拖動可以改變寬度
合集存放你在關卡之間複用的資源。關卡從不引用合集:匯入會把資源複製到關卡內部,關卡在哪裡都能遊玩
關卡只能從關卡設定的“釋出”標籤頁傳送:以壓縮包形式或釋出到Steam創意工坊。報告會自動檢查關卡,其中的錯誤會阻止傳送
編輯器通過你電腦上安裝的ffmpeg,將開啟的關卡渲染為影片檔案。渲染為離線逐幀進行,因此無論電腦多慢,影片都是精確的
SDK是以開源C#庫形式提供的Bullet Hero關卡格式。遊戲通過它讀寫關卡,你的程式也可以這樣做
SDK就是nuget.org上的BulletHero.SDK包,也可以從原始碼構建。在Unity中以git submodule接入,ConsoleSmoke示例用來確認你的關卡能被讀取
關卡是一個資料夾:內容在level.json或level.blob中,後設資料在metadata.json或metadata.blob中,另有封面和媒體檔案。備份、記錄和玩家設定留在裝置上
關卡可匯出為資料夾、tar.gz或zip,並可選擇加密碼:AES-256加密的zip或OpenPGP。SDK根據收到檔案的開頭位元組判斷格式,而不是根據檔名
版本有三種:gv對應遊戲,sv對應SDK,mg對應模型格式的代。SDK依據mg遷移舊檔案,並拒絕讀取代比當前構建更新的檔案
校驗由你自己通過ValidationFacade呼叫,它沒有內建在儲存和載入中。問題分為Error、Warning和Advice,ValidateAndFix會修復能修復的部分
服務用PublishProfile檔案描述自己接受哪些關卡:許可證、資源來源、必填欄位、大小限制。新增一個服務就是寫一個檔案,而不是修改分析器
Bullet Hero是免費的節奏遊戲與彈幕射擊(bullet hell)混合體。不需要賬號,目前還沒有伺服器。關卡由玩家在內建編輯器中製作,以資料夾或歸檔包的形式互相傳遞
筆記
我使用AI,也認為它值得使用。但要用得正確:把它當作一個我會檢查其成果的工具,而不是替我思考的東西。不加思考地使用,它會產出大量看起來正確、實際上並不正確的文本和程式碼
Bullet Hero免費,支援Windows和Android,SDK、文件和構建版本都是開放的。核心在手機上也能讓畫面中同時存在數千個物體,並由8000多個測試覆蓋
提問、反饋和你的關卡都發到Discord。任何人都可以幫助遊戲:修正文件中的錯誤、新增翻譯、報告bug或製作關卡
交流和提問在Discord,影片在YouTube,遊戲錯誤提交到bullet-hero/releases倉庫的issues。原始碼在GitHub上的bullet-hero組織中