前言
“vrchat geoguesser china“ 接近尾声,虽然有许多bug要修改,但是看到vrchat上并没有中文版的“谁是卧底”,就想着趁现在有激情把想法写下来。当然这份文件在后续应该会有改进。实际的完成效果我也不清楚咯。哈哈哈
游戏基础设置
- 玩家人数:10人上限,游戏开始后不能加入主游戏(所以一开始的时候要求玩家sgin in知道谁加入游戏)
- 游戏角色:普通玩家和卧底(Imposter)
- 等候区域:后来者在观众区观看,大屏幕直播当前对局
数据结构优化
|
|
游戏流程完善
- 准备阶段
- 房主可以设置游戏参数(卧底人数、每轮描述时间)
- 玩家加入游戏位置
- 房主点击"开始游戏"
- 游戏开始
- 系统随机分配卧底和普通玩家
- 系统分发卡牌(只对持有者可见)
- 显示首轮发言玩家(高亮效果)
- 游戏轮次
- 描述阶段:玩家按顺序描述自己拿到的词语(不能直接说出词语)
- 投票阶段:所有未淘汰玩家可以投票选择怀疑的卧底
- 结算阶段:得票最高者被淘汰(平票则无人淘汰)
- 胜利条件
- 普通玩家胜利:所有卧底被淘汰
- 卧底胜利:卧底数量大于或等于普通玩家数量
功能设计增强
- 投票系统
- 投票UI:圆形布局,点击玩家头像进行投票
- 投票确认:需确认后提交
- 投票显示:实时显示已投票人数(不显示投给谁)
- 计票:
{ playerID1: votesCount1, playerID2: votesCount2, ... }
- 交互设计
- 当前回合高亮:玩家头顶光环效果
- 被淘汰效果:玩家模型变暗/半透明
- 卡牌显示:私人UI只对玩家自己可见
- 游戏状态显示:大屏幕显示当前游戏阶段
- 观战模式
- 观众席:可以看到游戏进行
- 信息限制:观众无法看到词语和卧底身份
技术实现建议
- VRChat Udon脚本
- 使用UdonSharp编写逻辑
- 使用同步变量处理多人游戏状态
- UI设计
- 世界中央大屏:游戏状态和计时器
- 个人UI:词语卡和投票界面
- 房主控制面板:游戏设置和开始按钮
- 性能优化
- 减少同步变量数量
- 设置合理的网络同步频率
额外创新功能
- 时间限制
- 描述阶段:每人60秒
- 投票阶段:30秒