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、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。