【实机演示】几十万单位同屏乱战!我用 Cocos 做了个《星核防线·无限战场》
https://www.bilibili.com/video/BV1nf8v6yEpM/

最近一直在折腾一个比较极端的 Cocos 实验项目——《星核防线·无限战场》。
最开始只是想做一个“大规模同屏战斗”,后来越做越上头:
几千 → 几万 → 十万级 → 继续往几十万单位规模压。
最终就变成了现在这种满屏单位、弹幕、敌群同时运动和交战的“无限战场”。
目前主要做了什么
整个项目的核心目标很简单:
尽可能把同屏单位规模做大,同时保持战斗本身是动态的,而不是单纯摆几十万个静态模型。
目前主要包含:
- 大规模敌人实时移动
- 海量单位同屏
- 实时目标搜索与攻击
- 大量弹幕/子弹飞行
- 敌群包围与聚集
- 超大范围战场
- 玩家自由移动、观察战场
- 不同单位规模下的性能测试
- 十万级甚至更高规模的压力测试
下面这些都是实际运行过程中录制的画面。





我比较想挑战的一件事
很多游戏做到几百、几千个动态对象之后,就已经开始考虑:
DrawCall、节点数量、碰撞、AI、寻路、GC、对象池……
但我这个项目想尝试的是另外一种思路:
如果一开始目标就是十万、几十万甚至更高数量级,还能不能按照传统游戏对象的思路去设计?
所以《星核防线》目前更像一个:
游戏 Demo + 大规模战斗实验场 + Cocos 性能压力测试项目。
我也一直在不断拆掉原来不适合超大规模单位的设计。
为什么要做这么多单位?
其实并不是单纯为了跑分。
我比较喜欢那种真正有“战争规模感”的画面。
不是屏幕上十几个敌人围着玩家,而是镜头拉远以后:
整个地平线、战场、包围圈全部都是敌人。
再配合弹幕、攻击轨迹、阵型和大范围运动以后,那种压迫感是普通规模很难做出来的。





后面还准备继续测试
目前这还不是最终形态。
接下来我比较想继续折腾:
- 更高单位数量
- 更复杂的敌群行为
- 更大的无限战场
- 更密集的弹幕系统
- 多玩家 / AI 玩家同时参战
- 更极端情况下的 CPU / GPU 性能表现
- 尽量让“单位数量增加”和“性能下降”之间的曲线更平缓
看看最后到底能把 Cocos 推到什么程度。
也想听听大家意见
这里很多朋友都是长期做 Cocos 的,所以也想交流一下。
如果是你们来做这种 十万级 / 几十万级动态单位同屏,最先会考虑优化哪一块?
渲染?AI?碰撞?数据结构?GPU 计算?还是干脆完全不用传统 Node/Component 模型?
后面如果大家感兴趣,我也可以继续整理一些:
实现思路、踩坑记录、性能变化、不同方案对比,以及这种超大规模单位到底应该怎么组织。
项目:《星核防线·无限战场》
作者:Cocos 小有
更的很慢的~

1.用ecs优化数据查询,但是cocos的ts并不像C#一样支持SoA,所以必须选择TypedArray 2.将部分合适的(纯计算无引擎api调用)代码转为Wasm 3.碰撞系统肯定是得手搓了,看gif帧间连续性较强可以用SAP,如果可以的话3d场景也能简化为使用2D的碰撞检测,(碰撞系统就挺适合转成Wasm的)