https://reddit.com/link/1rwfst8/video/f4d1oxjgknpg1/player

我正在开发一个基于Android的实时战略游戏(RTS)原型——瓦登岛(Warden Island),强调自治代理而不是直接单位控制。

村民自动:

  • 采集资源
  • 送货至建筑物
  • 根据附近需求动态分配任务

这意味着大量实体频繁:

  • 搜索目标
  • 更新任务
  • 与共享系统进行交互(建筑物,资源)

当前挑战:

  1. 性能
    我现在经常使用邻近实体搜索(半径查找)进行非常频繁的查找。
    它作用良好,但我担心当单位数量增加时,它是否能扩展。

  2. 行为清晰度 vs 成本
    提高可读性通常意味着添加更多逻辑(槽位,优先次序,过滤),这将导致开销增加。

  3. 更新模式
    大多数逻辑都在每个实体的更新循环中运行,我正在考虑将逻辑转移到更为集中化或者事件驱动的系统中。

问题:

  • 您如何优化Android上频繁的“找到距离较近的实体”的查询查询?
  • 您会将其转向空间分割(网格/四叉树)还是工作队列?
  • 有什么模式可以高效处理軽量人工智能代理?

视频展示了多个代理同时进行当前行为。

任何提示或参考都将大有帮助。