独自开发《Just Dying》这款2D幸存者类轻度Rogue游戏(采用React + PixiJS)。没有团队,除了购买的素材外没有外包——代码、系统、大部分美术方向都由我一人负责。
独立开发的一个难点在于:没有QA人员或第二位工程师对负载下的性能进行合理性检查,所以我直接在游戏中内置了仅供开发使用的压力测试模式。它通过固定阶梯增加敌人数量——300→600→1,191→1,994→2,996→4,466→7,011——这样我就能直观看到帧预算在哪个节点崩溃,而不是凭正常游戏测试(几乎达不到那种密度)来猜测。
附上视频。以下是从构建这套机制中得出的几点心得,可能对独自优化的其他独立开发者有帮助:
- 碰撞检测采用空间哈希是最显著的改进——暴力距离检测在实体数量超过几百个后会急剧失效。
- 原来屏幕上的敌人计数与真实存活实体数量绑定,在大范围AOE下会因为击杀和生成相互竞争而导致卡顿或抖动。将显示的数字与实际实体数量解耦(用脚本控制递增而非实时统计)解决了这个问题——有时候UI问题最诚实的解决办法,就是承认真实数据过于嘈杂无法直接显示。
如果想在压力测试之外的场景中体验,这里有免费试玩版:
Itch.io:https://justdying.itch.io/just-dying
Steam:https://store.steampowered.com/app/4656170/Just_Dying_Demo/
评论 (0)