第一部 · 把 VRChat 的网络地基看清楚
Vol.1 第六部把网络同步铺开就停了:能做到「两个人都看到灯亮了」,再往前走的几个常见问题都没回答:「谁有权改」「迟入玩家怎么办」「网络拥堵会发生什么」。这一部不急着做游戏,先把后面会反复用到的概念讲清楚。
这一部回答的核心问题
Section titled “这一部回答的核心问题”一局游戏要拆出哪几类状态?Local、Network Event、Synced Variable、VRC Object Sync 四种通道分别解决什么?Owner 和 Master 是不是一回事?手动同步的生命周期里 RequestSerialization、OnPreSerialization、OnPostSerialization、OnDeserialization 各自在哪一刻触发?
迟入玩家怎样从当前状态恢复?网络预算的 200 字节、49 KB、约 11 KB/s 各自约束什么?网络 Debug 面板和最小测试矩阵长什么样?最后这一部以闭环 1 收尾:把这些概念拼成一局完整游戏的最小骨架。
一局游戏的时间感:技术决策的好坏,最终都要回到这一句话:这一局玩起来,时间感连贯吗。
主线(0–7 章)
Section titled “主线(0–7 章)”- 第 0 章 · 从一盏灯到一局游戏(过渡章)
- 第 1 章 · 一局游戏需要哪些状态
- 第 2 章 · 四种通道:Local、Event、Variable、Object Sync
- 第 3 章 · Owner 不是 Master
- 第 4 章 · 手动同步的生命周期
- 第 5 章 · 迟入玩家怎样恢复世界
- 第 6 章 · 网络预算的真实含义
- 第 7 章 · 网络 Debug 面板与最小测试矩阵
闭环 1 留下的两个缺陷(待第二部修)
Section titled “闭环 1 留下的两个缺陷(待第二部修)”闭环 1 把所有状态归 Master Owner 托管,做出一局能跑的最小游戏。这是为了让第一部七章的概念立刻有用武之地,但同时故意保留了两个明显问题:
- Master 离开整局丢失:没人接替托管,他一离开状态就断了。
- Ready 字段被共用:每位玩家的 Ready 状态共用一份字段,两位玩家同时按 Ready 会互相覆盖。
这两个问题正好是第二部「玩家对象与权威拓扑」要解决的。