此为吉林大学JackaL-U学生AI开发组的一个强化学习项目的API部分代码。开始于2020年初。 现由在ARXIV 上 清华朱军教授和cambridge Tim Pearce已经有了类似的工作(https://arxiv.org/abs/2104.04258) 因此我们选择将代码开源,希望能够帮助到一些希望 从内存信息中读取数据并训练AI 的贫困开发者们。
本api的作用和目的,就是实现对游戏人物状态地址的读和写。
从而最终实现为人工智能算法提供输入和输出、奖励函数(请忽略奖励函数)。
因为这个项目的代码后期修改的比较杂乱,可能会有一些强耦合的内容,还请各位酌情修改,鄙人每周日会定期上线合并代码。 [联系 stone91 370025263@qq.com]
注: ** hazedumper.exe **为开源社区的项目,其自动获得csgo每个版本的基址,免去了手动CE找地址的繁琐。
config.json是dumper的配置文件,不同版本的配置有所不同。
基址+偏移量=最终·地址
项目最终期望完成的输入函数:
1.自己当前位置
2.自己当前的枪口指向
3.自己的血量
4.自己的金钱
5.自己的装备列表
6.自己当前的武器名称
7.自己当前武器的子弹
8.自己护甲状态
9.自己和队伍的金钱
10.当前自己和敌人的比分
11.视觉矩阵
or[枪法机器人]
1.自己当前位置
2.自己当前的枪口指向
3.自己的血量
4.自己的金钱
5.自己的装备列表
6.自己当前的武器名称
7.自己当前武器的子弹
8.视野范围内的敌人的位置
# todo
1.队友当前位置
2.队友当前的枪口指向
3.队友的血量
4.队友的金钱
5.队友的装备列表
6.队友当前的武器名称
7.队友当前武器的子弹
8.队友护甲状态
奖励:
1.KD比
2.金钱增量
3.本局胜负
4.总胜负
5.自己和对方比分
输出:
1.自己鼠标指向 [x轴(+180-180),y轴(+-90)] 2
2.是否开火 left 1
3.是否开镜 right 1
4.购买列表(这个可能要脚本实现)
5.是否拆弹、安包 e [e] 0 1 1
6.移动方向wasd [w,a,s,d] 用 0 1 表示 4
7.跳跃 [space] 0 1 1
8.蹲起 [ctrl] 0 1 1
9.是否更换武器,更换武器名称 [0,1,2,3,4] 用 0 1 表示 4
10.是否丢弃武器 [g] 用 0 1 表示 1
总结: 输出执行脚本 应该等待输入,消费长度为消息16的列表
KOR1: 实现上面基础API(done) KOR2: 写一个基于脚本的决策机器人。(done) KOR3: 探索服务器端强化学习的可能性。(没钱、暂时废止) 解决视觉的问题。