我正在尝试开发一个机器学习系统来玩超级马里奥。
应用程序应根据当前游戏状态决定按下哪个键(游戏控制键)。因此,
- 如何模拟击键?(即按箭头键、Ctrl 键等,就像用户玩游戏一样)
- 如何读取游戏状态?(即敌人碰撞,加电等..)
这是可能的还是我需要为此实现自己的游戏?
我正在尝试开发一个机器学习系统来玩超级马里奥。
应用程序应根据当前游戏状态决定按下哪个键(游戏控制键)。因此,
这是可能的还是我需要为此实现自己的游戏?
鉴于您无法访问超级马里奥兄弟的源代码,我认为您最好的选择是找到一个类似的开源游戏平台游戏。这样做可以让您将代码的用户输入部分替换为您的 AI 代码,并且您可以向其公开任何您想要的游戏状态信息。
还有其他专为此类挑战设计的 AI 竞赛项目——我在大学时为TORCS做过类似的事情。TORCS 是一个赛车模拟器,您可以为其编写一个 AI 插件,它提供有关您的汽车的某些状态信息以及它在赛道上的位置,然后您对其进行处理以向汽车控制提供输入。
1)马里奥也可以。给定,您模拟游戏的击键。如果您正在播放 Direct2D 克隆,则需要 DirectInput 扫描码。查看 MSDN 中的 SendInnput。
2)模拟器保存游戏状态。许多也是开源的。查看他们的论坛,您可能会得到您正在寻找的答案。