这里是背景... 在我的空闲时间,我正在设计一个名为 Staker 的炮兵战争游戏(灵感来自旧的 BASIC 游戏Tank Wars和Scorched Earth),我正在用 MATLAB 对其进行编程。您的第一个想法可能是“为什么选择 MATLAB?还有很多其他语言/软件包更适合游戏设计。” 你是对的。然而,我是个笨蛋,我有兴趣学习如何从头开始设计游戏的具体细节,所以我不一定想使用任何带有预制模块的东西。此外,我已经使用 MATLAB 多年,我喜欢用它来做其他人没有真正尝试过的事情的挑战。
现在到了手头的问题:我想加入人工智能,这样玩家就可以对抗电脑了。我才刚刚开始思考如何设计算法来选择方位角、仰角和弹丸速度来击中目标,然后每转一圈进行调整。我觉得我可能一开始就过度思考了这个问题,并试图让 AI 变得过于复杂,所以我想我会在这里停下来向社区询问他们如何设计算法的想法。
一些具体问题:
您是否会建议我查看有关 AI 设计的具体参考资料?
你会设计 AI 玩家以连续的方式改变难度(难度从 0(容易)到 1(困难),都仍然使用相同的通用算法)还是会为离散数量的 AI 玩家设计特定的算法(就像一个向随机方向射击的简单敌人或一个能够解释风影响的顽固敌人)?
您将从哪种数学算法(伪代码描述)开始?
一些附加信息:我用来模拟弹丸运动的模型结合了流体阻力和风的影响。“流体”可以是空气或水。在空气中,根据一些简单的大气模型,空气密度(以及阻力效应)随离地高度而变化。在水中,阻力非常大,以至于弹丸通常需要额外的推力。换句话说,抛射物可能会受到重力以外的力的影响。