← 返回作品

三维交互商业项目· 游戏与品牌官网系

Hunter World:3DGS 真实场景多人寻宝竞速

将 3DGS 真实场景变为多人同屏游戏,以隐形 GLB 碰撞网格承担物理,单机 AI 与在线联机共用一套游戏模式接口。

  • Babylon.js 8
  • Havok 物理(WASM)
  • LiveKit
  • TypeScript
  • Go
  • Chi
我的角色
游戏架构与物理层设计,角色控制器,联机同步与服务端权威规则
材料说明
项目资料与交付记录
单局宝箱数(300 秒竞速)
15
同构运行模式(单机 AI / 在线联机)
2
物理引擎(WASM,胶囊体角色控制器)
Havok
其余 1 项指标与口径
物理引擎(WASM,胶囊体角色控制器)
Havok
游戏视觉层、物理层与服务端双通道的结构示意
游戏架构结构示意(非运行截图)
本页目录

背景问题

3DGS 只有光子级的视觉表示,没有真实的体积,角色无法站立、跳跃或被阻挡。游戏需要一套独立的物理表示,同时保证多人同步的公平性。

约束

  • 场景由平台训练得到,游戏需要复用同一份 3DGS 资产。
  • 多人同屏需要低延迟的位置同步,但分数与宝箱分配必须可信。
  • 前端保持零框架,减少每帧开销。

架构

前端(Babylon.js 8 + Havok)
  ├─ 视觉层:GaussianSplattingMesh(3DGS)
  ├─ 物理层:碰撞 GLB 逐子网格建静态刚体,脱离根节点避免坐标翻转
  └─ 游戏模式接口 GameMode
       ├─ AI 模式:宝箱刷新 + 行为状态机
       └─ 联机模式:LiveKit DataChannel

服务端(Go + Chi + LiveKit SDK)
  ├─ 有损高频通道:玩家位置、朝向、动画
  └─ 可靠权威通道:宝箱生成与认领、敲击抽奖、比赛结算

关键决策与取舍

  • 双轨表示:视觉上使用 3DGS,物理上使用 C-11 碰撞工具生成的 GLB。出生点与宝箱生成区由碰撞体的包围盒推导,地面高度通过垂直射线求得。
  • 胶囊体角色控制器:状态机包含地面、起跳与空中三种状态,并设置掉出场景后的自动重生,防止穿模后永久丢失角色。
  • 同构的游戏模式:单机 AI 与在线联机实现同一个接口,业务规则不分叉。
  • 服务端仲裁:宝箱认领防止双抢,敲击抽奖的概率由服务端按频率计算,分数只在服务端结算。

结果

  • 单机与联机共享地图、宝箱与 HUD 逻辑,联机问题可以在单机模式下复现。
  • 玩家在真实扫描场景中可以跑、跳并与碰撞体交互。

我的职责

  • 游戏架构与 GameMode 接口设计。
  • 物理层的碰撞网格接入与角色控制器。
  • 联机同步协议与服务端规则的协作设计。

OPEN TO WORK

正在招聘相关方向?

Web 图形、空间数据与 AI 业务集成方向的岗位欢迎联系;也承接 3D 查看器与编辑器定制。