SpriteKit - 超过32个碰撞层?发动机的非可视化模拟?

时间:2017-01-29 00:44:23

标签: ios objective-c sprite-kit collision-detection game-physics

2D精灵系统的新手。我有一个不断发展的神经网络,我想在一个视觉环境中进行测试(例如,有两个太空战士在动力的情况下相互飞来飞去,学习AI与静态AI对抗)。

研究SpriteKit,动量和碰撞物理效果很好。然而,遗传算法每个群体将拥有100多个成员,并且每个人都会战斗#34;持续10秒以上。在谈论模拟大量的几代人时,这开始需要很长时间。

  • 加速世界:加速PhysicsWorld减少AI能够思考的时间,'这可以打破模拟(正常运行在一个机器人击中另一个之前有400帧/更新()调用;模拟速度加倍,大约有200个调用,行为可能略有不同)。 有没有办法加速SpriteKit中的模拟(提高速度和FPS)?或者更好的是,一种在后台运行模拟而不必构建我自己的物理引擎的方法?

  • 我考虑过同时运行所有战士,只有同一"层上的玩家/敌人进行碰撞。"看起来SpriteKit只能同时允许32个这样的层 - 有没有办法可以将碰撞层的数量增加到同时运行整个世代?我知道如果有必要的话,我可以添加新的战斗机作为32个解决方案中的每一个,但这可能仍然比一次运行它更慢。

  • 如何将SpriteKit切换到基于tick的时间系统,每次运行update()都会模拟X秒的通过?同样的update()问题将自己限制在60 FPS,但这让我更近了一步。这会杀死电池。

  • 是否有替代精灵库更适合我尝试做的事情?我自己一直在讨论这个问题,但更喜欢图书馆,因为这只是对网络的一次测试,而不是对网络的影响。

谢谢!

0 个答案:

没有答案