创作者视角 2 · 每位玩家有自己的轨迹
这一篇写在第二部之前。
VRCPlayerObject 给每位玩家分配一份固定 Owner 的对象。看起来像优化技巧:把全局状态切片,让每位玩家管自己那份。
往上抬一层看,这个机制承认了一件设计上的事:每位玩家有自己的轨迹。
每位玩家进入房间的时间不同,准备节奏不同,掉线和回来的方式也不同。把这些都塞进一个集中的 GameState 数组里也能跑,但每次新增一个 per-player 字段都要小心数组下标和迟入恢复。每位玩家一份对象之后,玩家自己的事归玩家管,房间共享的事归 GameState 管,权限边界自然清晰。
更深一层:把玩家当作独立的轨迹来设计,会影响给他的 UI、反馈、保留的状态。一位玩家点了「准备」,自己应当能立刻看到「准备」的视觉反馈,不必等全场广播确认;掉线后回来,角色血量、技能冷却、未读事件应当能从他自己的 PlayerObject 里恢复;想观战时,他的视角不该污染其他人的进度。
第二部的章节会把这些落到 VRCPlayerObject + GameState 的具体代码里。落地之前先把分权的设计含义点出来:分权的理由不是省带宽,是承认每位玩家本身就承载着独立的一组状态。