我作为一个单人独立开发者,正在开发一个2DRTS游戏战士建筑师,经过多年的开发,我想分享一下我从实际尝试开发一个相对较大的RTS项目中学习到的东西。游戏最初的想法很简单:村民收集资源,建立定居点,研究技术,最后组建军队。但是,范围却比我预期的要大得多。一些我最终工作的系统包括: 资源收集和工人AI 建筑放置和建造 路径寻找和单位移动 大量的NPC 极光平铺地图 随机/生成地图 RTS战斗 生存模式 多人网络 小地图和大世界渲染 UI和保存/加载系统我学到的最重要的一课是,RTS游戏比它们最初看起来要复杂得多。 一个单独的功能通常不会孤立存在。例如,增加村民数量不仅仅是生成更多的角色,它还会影响路径寻找,碰撞避免,模拟性能,渲染,UI更新,资源搜索,最后网络通信。对于我来说,最有趣的问题之一是人口规模化。最初我设计的游戏围绕着一个相对较小的单位数量。后来我开始测试更大的人口规模,必须重新思考不同系统应该更新的频率,NPC如何搜索资源,以及每帧发生的工作量。另一个我学到的课是,优化应该在架构层面考虑,而不是简单地在后期优化单个功能。 我尝试了诸如空间数据结构,多线程,工作者线程,减少模拟频率,以及处理大量单位的更有效方式。 我仍在学习中,并且如果我重新开始这个项目,我会设计不同的系统。 对于其他单人开发者:你尝试开发的最大的系统是什么,它比预期的要复杂得多?* 我特别想听听那些工作过于RTS,模拟,城市建造者,或者其他有许多互相作用的实体的游戏开发者。