Featured image of post 谁是卧底 VRChat 中文版

谁是卧底 VRChat 中文版

初步构想一款基于 VRChat 平台的中文社交推理游戏,包含游戏机制、角色设计、UI、技术结构等规划。

前言

“vrchat geoguesser china“ 接近尾声,虽然有许多bug要修改,但是看到vrchat上并没有中文版的“谁是卧底”,就想着趁现在有激情把想法写下来。当然这份文件在后续应该会有改进。实际的完成效果我也不清楚咯。哈哈哈

游戏基础设置

  • 玩家人数:10人上限,游戏开始后不能加入主游戏(所以一开始的时候要求玩家sgin in知道谁加入游戏)
  • 游戏角色:普通玩家和卧底(Imposter)
  • 等候区域:后来者在观众区观看,大屏幕直播当前对局

数据结构优化

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 玩家数据结构
let players = [
  {
    playerName: "xxx",  // 玩家名称
    playerId: "xxx",    // 玩家唯一ID
    isImposter: false,  // 是否为卧底
    isOut: false,       // 是否被淘汰
    cardContent: "Apple", // 玩家拿到的词语
    votes: 0,           // 当前回合获得的票数
    canVote: true       // 是否有投票权(被淘汰后为false)
  }
]

// 游戏状态数据
let gameState = {
  isGameActive: false,   // 游戏是否激活
  currentRound: 0,       // 当前回合数
  currentTurnPlayer: "", // 当前回合玩家ID
  votingPhase: false,    // 是否在投票阶段
  winners: null,         // 获胜方("imposter"或"normal")
  normalWord: "苹果",    // 普通玩家的词
  imposterWord: "梨"     // 卧底的词
}

游戏流程完善

  1. 准备阶段
    • 房主可以设置游戏参数(卧底人数、每轮描述时间)
    • 玩家加入游戏位置
    • 房主点击"开始游戏"
  2. 游戏开始
    • 系统随机分配卧底和普通玩家
    • 系统分发卡牌(只对持有者可见)
    • 显示首轮发言玩家(高亮效果)
  3. 游戏轮次
    • 描述阶段:玩家按顺序描述自己拿到的词语(不能直接说出词语)
    • 投票阶段:所有未淘汰玩家可以投票选择怀疑的卧底
    • 结算阶段:得票最高者被淘汰(平票则无人淘汰)
  4. 胜利条件
    • 普通玩家胜利:所有卧底被淘汰
    • 卧底胜利:卧底数量大于或等于普通玩家数量

功能设计增强

  1. 投票系统
    • 投票UI:圆形布局,点击玩家头像进行投票
    • 投票确认:需确认后提交
    • 投票显示:实时显示已投票人数(不显示投给谁)
    • 计票:{ playerID1: votesCount1, playerID2: votesCount2, ... }
  2. 交互设计
    • 当前回合高亮:玩家头顶光环效果
    • 被淘汰效果:玩家模型变暗/半透明
    • 卡牌显示:私人UI只对玩家自己可见
    • 游戏状态显示:大屏幕显示当前游戏阶段
  3. 观战模式
    • 观众席:可以看到游戏进行
    • 信息限制:观众无法看到词语和卧底身份

技术实现建议

  1. VRChat Udon脚本
    • 使用UdonSharp编写逻辑
    • 使用同步变量处理多人游戏状态
  2. UI设计
    • 世界中央大屏:游戏状态和计时器
    • 个人UI:词语卡和投票界面
    • 房主控制面板:游戏设置和开始按钮
  3. 性能优化
    • 减少同步变量数量
    • 设置合理的网络同步频率

额外创新功能

  1. 时间限制
    • 描述阶段:每人60秒
    • 投票阶段:30秒
Licensed under CC BY-NC-SA 4.0
Last updated on Apr 08, 2025 00:00 UTC
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy