跳转到内容

第一部 · 把 VRChat 的网络地基看清楚

这是 Vol.2 的第一部。读到这里之前建议先看 前言一页速通

Vol.1 第六部把网络同步铺开就停了:能做到「两个人都看到灯亮了」,再往前走的几个常见问题都没回答:「谁有权改」「迟入玩家怎么办」「网络拥堵会发生什么」。这一部不急着做游戏,先把后面会反复用到的概念讲清楚。

一局游戏要拆出哪几类状态?Local、Network Event、Synced Variable、VRC Object Sync 四种通道分别解决什么?Owner 和 Master 是不是一回事?手动同步的生命周期里 RequestSerializationOnPreSerializationOnPostSerializationOnDeserialization 各自在哪一刻触发?

迟入玩家怎样从当前状态恢复?网络预算的 200 字节、49 KB、约 11 KB/s 各自约束什么?网络 Debug 面板和最小测试矩阵长什么样?最后这一部以闭环 1 收尾:把这些概念拼成一局完整游戏的最小骨架。

一局游戏的时间感:技术决策的好坏,最终都要回到这一句话:这一局玩起来,时间感连贯吗。

  1. 第 0 章 · 从一盏灯到一局游戏(过渡章)
  2. 第 1 章 · 一局游戏需要哪些状态
  3. 第 2 章 · 四种通道:Local、Event、Variable、Object Sync
  4. 第 3 章 · Owner 不是 Master
  5. 第 4 章 · 手动同步的生命周期
  6. 第 5 章 · 迟入玩家怎样恢复世界
  7. 第 6 章 · 网络预算的真实含义
  8. 第 7 章 · 网络 Debug 面板与最小测试矩阵

闭环 1 留下的两个缺陷(待第二部修)

Section titled “闭环 1 留下的两个缺陷(待第二部修)”

闭环 1 把所有状态归 Master Owner 托管,做出一局能跑的最小游戏。这是为了让第一部七章的概念立刻有用武之地,但同时故意保留了两个明显问题:

  • Master 离开整局丢失:没人接替托管,他一离开状态就断了。
  • Ready 字段被共用:每位玩家的 Ready 状态共用一份字段,两位玩家同时按 Ready 会互相覆盖。

这两个问题正好是第二部「玩家对象与权威拓扑」要解决的。