案例研究 / 05
商业游戏客户端开发
Unreal / C++ / Lua / Gameplay Systems
商业客户端开发经历:在腾讯游戏参与大型 Unreal 游戏项目,在哔哩哔哩参与手游开发。
← 全部项目商业游戏系统Unreal Engine
C++ × Lua
地图与导航玩法 UI背包系统
客户端状态↔服务器事件
生产管线 / Perforce / 策划与 QA
角色游戏客户端工程师
背景腾讯游戏与哔哩哔哩的项目团队
状态商业项目 / 保密
挑战
在成熟的生产管线与分布式团队中,交付可维护的玩法与界面系统。
我的贡献
开发地图与导航系统、玩法 UI、背包与物品系统、客户端—服务器流程,并参与 UMG 从 C++ 到 SLua 的工作流迁移。
交付过程
这项工作
是如何成形的。
从对问题的第一个模型,到检验系统的实际行为。
负责一个系统
承担地图与导航功能,覆盖 UI 呈现、坐标转换、特效与寻路。
融入生产环境
在既有的客户端—服务器接口、内容管线、代码评审与跨地协作中工作。
改进迭代效率
参与把 UI 工作从编译沉重的 C++ 路径迁向 SLua 热更新,缩短迭代时间。
跨职能交付
与策划、美术和 QA 协同实现与调试,而不是把客户端孤立看待。
工程证据
那些
真正重要的细节。
- 地图、小地图、寻路与坐标系统
- 登录、背包与副本入口 UI
- C++ 到 SLua 的工作流迁移
- 与策划、QA 的跨职能交付
- Perforce 与代码评审的生产流程
- 约 240 人分布式团队的协作经验
决策细节 / 展开阅读
01把地图视图与导航规则分开
大地图与小地图在不同尺度上呈现世界坐标、路线与玩家状态。让坐标转换与导航规则独立于视图,两者才更容易一起推理。
02用 SLua 缩短 UI 迭代周期
编译沉重的 C++ UI 工作流拖慢了频繁的表现层改动。我在项目既有的客户端架构内,参与推动向 SLua 热更新的迁移。
03跨越客户端边界调试
一个可见的 UI 缺陷,可能源自网络状态、数据、资源或客户端逻辑。生产环境的调试意味着沿着这些边界追踪状态,并与相关团队协同修复。
04在共享的生产管线中构建
Perforce、代码评审以及与策划、QA 的协调都是功能交付的一部分。本案例说明我的职责,团队的商业源码与资源不予公开。
结果
为腾讯已上线的《逆战:未来》(NIZHAN: Future)所做的地图、导航与玩法 UI 工作,奠定了我如今带进独立游戏与运营软件的商业工程基础。
我在腾讯参与的 NIZHAN: Future 此后已上线。更早在哔哩哔哩参与的手游项目在上线前被取消。本案例只描述我的职责,不公开任何商业源码或受保护的资源。
- Unreal Engine
- C++
- Lua / SLua
- UMG
- Perforce
- Client-server
下一个案例
01酒店运营平台→