Battlefield 6 Portal Book

Battlefield 6 Portal 體驗製作大全

一本 BF6 Portal 製作指南與參考資料,涵蓋體驗建構器、Portal Custom、Godot SDK、TypeScript SDK、官方範例、發布與營運。

本書以日文原文為準。英文與中文(簡體/繁體)為機器翻譯,因此部分表述可能與原意不同。

Battlefield 6 Portal 體驗製作大全封面

目錄

  1. 第 0 章 關於本書本書面向「想在 Battlefield 6 Portal 裡親手做點有趣內容」的讀者,目標是從基礎的編輯器用法開始,學習 Portal 獨有的機制。 本書也會介紹為了長期營運 Portal 伺服器而需要的程式改進,目標是掌握 Portal 的腳本功能和地圖編輯器。 需要說明的是,本書不講解積木式視覺化程式設計,而...
  2. 第 1 章 Battlefield Portal 是什麼提到 Battlefield 系列,很多人首先想到的,應該是貫穿整個系列的「戰爭體驗的真實感」,例如宏大的戰場、小隊協作、可破壞的環境等。 不過,在這個系列中,2021 年登場的 Battlefield Portal(以下簡稱 Portal)是 Battlefield 歷史上最具實驗性,也最具革新性的機制之一。
  3. 第 2 章 Portal Builder 的使用方法與設計思考本書中稱為「Portal Builder」,但正式名稱是 「Battlefield Portal Experience Builder」。
  4. 第 3 章「Portal Custom」的環境建構本章會準備進入後續章節所需的工具。 如果不完成這些步驟,就無法開發「Portal Custom」,請務必注意。
  5. 第 4 章 地圖編輯器實務指南(放置與關聯)本章會整理「可以放置的東西來自哪裡」「哪些地圖可以放哪些東西」「哪些物件會影響遊戲行為」等問題,並把 Godot 中的實際實體(.tscn)和 Portal 側的名稱對應起來。最終目標是準備到這樣一種狀態:後續的規則設計和 TypeScript 實作可以引用和控制這些物件,也就是已經賦予 ID,並整理成台帳。
  6. 第 5 章 規則設計入門(讓配置「動起來」之前先思考)第 4 章中放在地圖上的物件,已經有了 放置位置 和 用於呼叫的地址(ID)。但是,誰發出訊號、發到哪個地址、傳達什麼事情,還沒有決定。 本章會在轉向 TypeScript 之前,整理 把訊號 - 目標(ID)- 反應設計成一條路徑 的思路。只要這條路徑打通,你的地圖就會從「只是擺好的模型」,變成「會對玩家產生反...
  7. 第 6 章 用腳本建立「自己的模式」本章中的程式碼,是用來理解 Portal SDK TypeScript API 的最小範例。實際發布之前,請務必在 localhost 和實際遊戲中確認動作。
  8. 第 7 章 「整齊拆分」的小設計在第 6 章裡,你已經讓 「按下 - 標記 - 到達 - 光和聲音」 這個最小循環在 TypeScript 中跑起來了。 接下來一旦開始加功能,像訊息顯示、圖示切換、音效播放這些類似的處理,就會慢慢散落到各處。結果常常會變成:本來只想改一小塊,卻把整條流程一起弄壞。
  9. 第 8 章 視覺與演出:掌握 UI、SFX、FX第 7 章中,我們把處理拆成幾個小盒子,讓訊息顯示和標記更新都能更容易地被呼叫。不過,程式碼能執行還不夠。玩家還需要知道「接下來要做什麼」「是否成功了」「現在該往哪裡走」。 本章會把這些反應整理成 能傳達給玩家的演出。我們會把短訊息、WorldIcon、SFX、FX 照 文字 - 標記 - 效果 的順序連接起來,...
  10. 第8.5章 把 Checkpoint Rush 做到發布前到第8章為止,我們已經看過了配置、ID、規則設計、TypeScript、UI、SFX、FX 的基本思路。 不過,這些內容分散在不同章節裡時,真正動手製作時的順序仍然不容易看清。
  11. 第 9 章 發布、託管與營運第 8 章中,我們整理了如何使用訊息、WorldIcon、SFX 和 FX,讓玩家理解下一步行動,並感受到成功回饋。不過,體驗在遊戲內能傳達清楚,並不代表它已經可以在發布後被順利遊玩。 本章會整理如何 把 Portal 體驗以可遊玩的狀態發布,並在不破壞它的前提下營運。標題、說明文、縮圖、公告、測試、更新流程會被...
  12. 第9.5章 把狀況和日誌交給AI來撰寫Portal程式碼第 9 章中,我們整理了完成後的體驗如何發布、說明,並在不破壞它的前提下更新。不過,發布後修復問題或追加新要素時,如果每次都只靠人去追所有 API 和型別,會變得很沉重。 本章會整理 如何把 Portal 程式碼編寫工作交給 AI。我們會建立一個流程,把想做的事、目標地圖、目標物件、觸發時機、實機中發生的現象,以...
  13. 第 10 章 未來的 Portal:BF 系列創造力的去向第 9 章中,我們整理了發布和營運流程;第 9.5 章中,我們講了如何把狀況和日誌交給 AI 來推進修正與實作。不過,Portal 本身、SDK、AI 以及發布相關規則,今後也會繼續變化。 本章會把容易變化的東西和不容易變化的東西分開整理,讓至今建立的思路能夠 以能承受變化的形式留下來。即使工具發生變化,也能重新...
  14. 附錄 A-2:動作/值取得清單(基本操作)這裡,從 mod. 呼叫的函數是依照用途排列的。有些名稱與 Portal 的區塊名稱類似,但 TypeScript 有嚴格的類型,因此你需要傳遞 Player、Team、Vector、Message、Vector、Message、UIWidget 等類型。
  15. 附錄 A-3:動作/值取得清單(UI/參考/值)本附錄涵蓋了 UI、通知和計分板的功能、常用類型、實作說明和最小範本。基本操作功能請參閱「附錄 A-2:動作/值取得清單(基本操作)」。
  16. 附錄 A-1:事件列表本附錄基於官方 SDK code/types/mod/index.d.ts 的 mod 命名空間列出了 BF6 Portal TypeScript 中可用的事件和動作。參考 SDK 以 index.d.ts 為準,為 1.3.2.0。請務必在實作前搜尋 index.d.ts,因為它可能會隨著 SDK 更新而增加或減少。
  17. 附錄 B:導讀:官方範例的閱讀方法SDK 包含官方範例。如果一上來就閱讀大型範例,UI、AI、車輛和狀態管理會同時出現,這可能會讓人感到困惑。
  18. 附錄 B:範例程式說明“AcePursuit(競速/時間生存)”AcePursuit 是使用飛機進行競速/時間生存的範例。
  19. 附錄 B:範例程式說明“_StartHere_BasicTemplate(最先閱讀的基本形)”StartHereBasicTemplate 是一個最小模板,總結了 Portal TypeScript 的入口。
  20. 附錄 B:範例程式說明“BumperCars(車輛小遊戲)”BumperCars 是使用車輛的小型迷你遊戲的範例。
  21. 附錄 B:範例程式說明“CustomCQ(自訂征服)”CustomCQ 是一個大型 Conquest 風格的 Portal 範本。 它不是用來確認單一小 API 的範例,而是接近完整模式的教材,包含地圖、CapturePoint、AreaTrigger、AI、載具、UI、計分板、音樂和 VO。
  22. 附錄 B:範例程式說明“FixedCameraExample(固定相機和 UI 按鈕)”FixedCameraExample 是從 UI 按鈕切換放置在 Godot 中的固定相機的範例。
  23. 附錄 B:範例程式說明“GibraltarGrandprix(地面賽)”GibraltarGrandprix 是基於檢查點的地面競速範例。 這個範例以 Gibraltar 為舞台,採用大獎賽形式,你可以檢查檢查點、車輛、名次 UI 和倒數計時。
  24. 附錄 B:範例程式說明“GolmudTrainExample(列車控制)”GolmudTrainExample 是從 Portal 腳本控制 Railway to Golmud MPGolmudRailway 列車的範例。 這不是普通的物件移動,而是學習 SDK 提供的列車專用事件和函式。
  25. 附錄 B:範例程式說明“HybridExample(混合使用區塊和 TypeScript)”HybridExample 展示如何從 Portal 區塊呼叫 TypeScript 函式。 當你想保留既有區塊邏輯,只把陣列、字串、數學函式、UI 生成等麻煩部分移到 TypeScript 時,這個範例很有用。
  26. 附錄 B:範例程式說明“NightModeExample(夜間效果與 NVG)”NightModeExample 會在玩家進入地圖上的區域時切換夜間效果。 它同時使用 ScreenEffects.Night、NVG 裝備、SFX 和 VFX,因此適合作為「透過事件切換視覺效果和裝備」的教材。
  27. 附錄 B:範例程式說明“PortalGadgetExample(專用 Gadget 輸入)”PortalGadgetExample 是一個範例,讓玩家可以擁有 Portal Gadget,並使用腳本接收瞄準、射擊和雷射切換等輸入。
  28. 附錄 B:範例程式說明“VL7Example(氣體雲和螢幕效果)”VL7Example 是結合 VL7Cloud、ScreenEffect、SoldierEffect、WorldIcon 來切換氣體雲效果的範例。
  29. 附錄 C:modlib 說明:讓 SDK 更容易使用的輔助函式庫modlib 是 BF6 Portal SDK 隨附的 TypeScript 輔助函式庫。 位置是 code/modlib/index.ts。