跳转到内容

前言

VRChat 里的同步灯,是 Vol.1 留下的承诺:两个玩家在同一个房间里,按下按钮,两边的灯都亮起来。能做到这一步,已经证明 Udon 能写同步逻辑。但合上 Vol.1 之后,下一个想做的世界往往是合作防守、卡牌对战、解谜推理、派对小游戏。这些世界的玩家会问出 Vol.1 没回答的问题:

  • 加入房间的时候,分数应该是多少?
  • Master 玩家退出之后,怪是不是不动了?
  • 我按按钮触发陷阱,按完之后这个陷阱要不要进入冷却?冷却时间显示在哪里?
  • 第三个玩家迟入进来,看到的世界是什么样?

这些都是状态问题,不是同步代码问题。VRChat 的多人架构有自己的形状:每个网络对象都有 Owner,事件不会重放,同步变量受字节预算约束,没有自定义权威服务器。把传统多人游戏的客户端预测、Lag 补偿、反作弊照搬过来会撞墙。这一卷换一个起点:从「一局游戏里有哪些状态」开始,再决定哪些状态归 PlayerObject,哪些归 GameState,哪些通过事件传递,哪些只留在本地。

四个层次按从下到上铺开。

层次在做什么涉及的核心概念
同步层给后面所有章节铺地基Owner / PlayerObject / 同步变量 / 事件 / Object Sync / 字节预算
状态层把同步层组织成一局游戏游戏状态机 / 命令模式 / 版本号 / 迟入与掉线恢复
玩法层落到具体的游戏机制大厅 / 队伍 / 回合制与即时制 / NPC / 物理对象 / 观战
生产层把前面三层放进运营环境调试 / 性能 / 内测 / 上线迭代 / 版本迁移

主项目是 2-4 人合作防守 / 推塔原型。这个题材比 FPS 更适合 VRChat:能覆盖实时状态、NPC、队伍、分数、对象池、观战、结算,又不把精确命中判定当核心承诺。回合制卡牌作为对照案例,在对应章节出现。

视觉风格化、Shader、光照这类属于 Vol.3 的范围;社区工具生态和插件开发归 Vol.4;跨会话持久化和全球榜归 Vol.5。

高强度竞技 FPS 的公平反作弊承诺也不在覆盖范围内。VRChat 没有自定义权威服务器,这类玩法只能讲近似与取舍,不会写成可复制的方案。

读完 Vol.1,或达到 Vol.1 第 30 章水平:

  • 能用 UdonSharp 写同步开关、抓取物、简单计数器。
  • 不再被 C# 基础语法卡住:字段、方法、数组、forforeachnull 检查、枚举。
  • 知道 [UdonSynced]OnDeserializationRequestSerialization 大概是什么。
  • 走过 VCC、Unity、Build & Test、上传发布的常规流程。

不假定读者写过游戏服务器,也不假定读者懂 Mirror、Photon、Unity Netcode。

主线动手章编号 0–46,每章解决一个具体问题,有完整可粘贴的脚本,是阅读的主轴。中间夹着四次闭环演示章(第一部末、第二部末、第四部末、第八部),每次把前面学到的东西拼成一局能跑的游戏,并故意留下缺陷待下一次闭环修;以及四次对照小练,把刚学的架构搬到另一个看似不同的玩法上,验证可迁移性。每部还各有一篇理解章把刚做完的事抬升一层视角,一篇 500–800 字的创作者视角短文把技术操作连接回创作意图。每部开头是部入口页,含「前情速通」和该部的章节列表,第三部入口另外有「中途岔路图」按玩法类型给推荐章节路径。

详细的结构与节奏说明放在 一页速通 里。

第一部 8 章可读。0 章过渡、闭环 1、对照小练 A 占位中。第二部到第八部按规划推进。每部入口页能提前看到该部承诺的范围。

本卷由人类作者与 AI 协作生成。AI 用于资料整理、章节铺写和文风稳定,技术结论、术语取舍、最终判断由人类作者校对后定稿。

正文不伪造作者的具身经历。读到「半小时后我才意识到」「我那时候盯着屏幕」这类细节时,可以直接合理怀疑那不是真实经验。书里的「我」只在前言、关于页和章节的明确立场陈述里出现,操作步骤通篇省略人称主语。