登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

基于强化学习的TankWar游戏对弈策略的设计与实现毕业论文

 2021-11-07 09:11  

摘 要

在当今的社会电子游戏生态圈中,游戏AI的诞生对应着玩家的必然需求,同时它的应用构成了每个游戏领域不可或缺的重要部分。而基于强化学习进行游戏模型的训练并且不断进行优化,将更加智能和优质的游戏AI模型应用到所用的场景当中,这便是当前促使该领域不断进步和完善的一大重要途径。相比基于状态机和其他有限算法的旧版本游戏AI设计方式,产生了更加丰富的实践方法和更加优化的结果。在这样的游戏AI和强化学 习背景下,本文主要设计了一款基于强化学习的人机对战游戏项目。

本文的工作内容主要通过unity3D平台建立一款借助机器学习代理工具即ml-agents工具进行坦克的强化学习的对战系统。在设计的3D模型中坦克通过方向键控制前进后退,左右旋转,通过空格控制坦克进行发射炮弹,同时可以通过延长控制进行力度和距离的控制。在一个设计为符合物理定律的环境下可以进行双向对战或三方坦克大战,在三维地图中设定障碍物以及边境限制便于进行有效的控制和使用更利于玩家掌控的环境。在设定为人机对战时,将导入训练文件控制游戏AI进行对战,训练这一AI的过程是在代理C#文件中设定奖励函数和重置函数等参数的基础设定上进行。在对接至anaconda环境下的ml-agents插件代理每一次训练时,它可以在设定训练的环境和参数时产生不同的训练结果并保留至项目的数据文件中。同时可以观察导入文件下训练结果,基于训练的基本算法为PPO(Proximal Policy Optimization)算法,内含于ml-agents代理训练工具当中的学习框架。在配置环境中采用GPU(Graphic Processing Unit)加速的方式进行项目的训练,同时通过TFSharpPlugin导入unity开发环境当中进行训练文件的识别和应用。对战开始后通过对血量的伤害结果控制,显示对应的剩余量,并且在血量为负时控制产生对战结果并显示在屏幕正中,然后初始化坦克位置并开始下一局对战。

关键词:强化学习;机器学习代理工具;unity3D;游戏AI;PPO算法

Abstract

In today's social video game ecosystem, the birth of game AI corresponds to the inevitable needs of players, and its application constitutes an indispensable and important part of every game field. The training of game models based on reinforcement learning and continuous optimization, applying more intelligent and high-quality game AI models to the scenarios used, is currently an important way to promote continuous improvement and improvement in this field. Compared with the old game AI design methods based on state machines and other limited algorithms, it has produced richer practical methods and more optimized results. In this game AI and reinforcement learning background, this article mainly designed a human-computer battle game project based on reinforcement learning.

The work content of this article is mainly to build a combat system that uses the machine learning agent tool, which is the ml-agents tool, to perform tank intensive learning through the unity3D platform. In the designed 3D model, the tank is controlled by the arrow keys to move forward and backward, rotate left and right, and control the tank to launch shells through the space. At the same time, the strength and distance can be controlled by extending the control. In an environment designed to meet the laws of physics, two-way battles or three-way tank battles can be carried out. Obstacles and border restrictions are set in the three-dimensional map for effective control and an environment more conducive to player control. When set to human-machine battle, the training file will be imported to control the game AI for battle. In the process of training this AI, the basic settings of parameters such as reward function and reset function are set in the proxy C # file. The ml-agents plug-in agent connected to the anaconda environment is trained every time, and different training results are generated when the training environment and parameters are set and retained in the project data file. At the same time, you can observe the training results under the imported file. The basic algorithm based on the training is the PPO (Proximal Policy Optimization) algorithm, which is included in the learning framework of the ml-agents agent training tool. In the configuration environment, the project is trained using GPU (Graphic Processing Unit) acceleration, and at the same time, it is imported into the unity development environment through TFSharpPlugin to identify and apply the training file. After the battle starts, the damage result of the blood volume is controlled to display the corresponding remaining amount. When the blood volume is negative, the battle result is generated and displayed on the center of the screen. Then the tank position is initialized and the next round of battle is started.

Key Words: Reinforcement learning; machine learning agent tool; unity3D; game AI; PPO algorithm

目 录

摘要Ⅰ

AbstractⅡ

第一章 绪论1

1.1研究背景及意义1

1.1.1游戏AI发展历程1

1.2.1基于强化学习tankwar游戏对弈策略设计与实现意义1

1.2研究现状2

1.2.1强化学习的研究现状2

1.2.2游戏AI行业现状 2

1.3主要工作3

1.4结构安排3

第二章 基于强化学习训练环境的设计4

2.1引言4

2.2强化学习插件ml-agents应用4

2.2.1机器学习代理内部框架4

2.2.2 PPO算法6

2.2.3交互环境配置7

2.3训练实验及分析7

2.3.1实验目的及要求7

2.3.2场景角色定义8

2.3.3训练方法及调整8

2.4本章小结12

第三章 坦克大战游戏系统设计13

3.1系统整体描述13

3.2详细功能设计13

3.2.1对战流程设计13

3.2.2坦克控制方法14

3.2.3系统细节优化15

3.3系统测试17

3.4运行效果18

3.5本章小结20

第四章 总结与展望21

4.1本文工作总结21

4.2下一步展望22

参考文献23

致谢25

第1章 绪论

1.1 研究背景及意义

1.1.1 游戏AI发展历程

自从电子游戏诞生伊始,就必然的产生了相关人机交互的初级人工智能原型,在最初的设计和实现过程中往往基于事先设计好的各种既定条件的判断语句的实现,这一过程仍然处于伪智能阶段。而随着游戏类型和方法的不断演变,AI的角色和功能不断发生着各种各样的变化,在这个过程中,部分单机游戏在针对人机对抗环境下加入了对敌玩家的反应机制,这种模式的出现也促进了游戏AI的使命和角色范围的扩大。在之后的三十余年的发展过程中,电子游戏在算法,硬件设备和计算能力持续提升的情况下进一步发展,这也直接导致了在基于状态机等方式设计的AI模型逐渐优化并代替了人类的操作方式和操作速度,这一点在许多射击类游戏当中得到展现,在整个发展过程中,只剩下及时战略游戏还没有被AI完全代替,而当前算力足以支撑强化学习算法的阶段,将更加丰富成熟的人机对抗方式应用到这一类游戏当中已经试验了一段时间[1]。而改进这些对抗的AI的细节仍然依靠更改这一些强化学习或模拟学习的方法逐步进行,这一过程也是当今算法研究游戏AI中最重要的组成部分。

1.1.2 基于强化学习tankwar游戏对弈策略的设计实现意义

在当前整个基于强化学习进行游戏AI设计的具体环境形势下,依据这一方法进行一款策略对战游戏的设计和实现可以对强化学习算法及其流程产生更多的认识,在算法阶段可以针对调用的工具算法内容进行学习,在调用流程的方面产生针对相关开发环境的更加深刻的了解,同时在设计的过程中对其中的具体环境转化的物理和数学模型进行了解,这种学习方式也是建模和开发的一种重要手段,在设计实现这样一项人机或人人对战的坦克大战游戏的过程中,可以对于实时对弈策略和训练过程的联系产生更加切实际的认识,也在整个实现过程中对于策略的调整和更换相关训练的参数等方法产生深刻认知。

另一方面,本文涉及项目希望在设计理念和风格方面能够进一步影响阅读和使用者对于游戏AI以及行为逻辑和游戏策略的学习,在感受游戏趣味的过程中,同样可以感受其中的设计方法,对于玩家产生良好的反馈效应,基于这一目的,还希望玩家和用户对于网络AI和强化学习技术产生更加深刻的理解,在学习和娱乐的过程中获取知识。

1.2 研究现状

1.2.1 强化学习的研究现状

在当前的强化学习发展状况下,针对强化学习的定义和三大难点,人们对于其中的内容不断完善和深究,首先强化学习以最接近自然动物的学习方式进行自学习和在线学习,而这一点构成了机器学习的一个重要分支,这一方法通过试错与环境交互中获得策略的改进[2]。在理论已经成熟许多年并且在算法不断演化的情况下,在当前应用理论的实现当中,一个重要实践是和深度学习进行结合并且处理数据的泛化问题,该方法应用在许多自动玩游戏比如2048,FlappyBird的方向上,包括对于AlphaGo的模型上也有影响。在强化学习的应用领域中,针对环境外界反馈并且运用反馈指导进化策略的方式在许多领域都有需求,在金融学,医学,自动驾驶等方向上都有所应用,而在游戏产业当中可进化的boss是强化学习应用的重要方向。在脑科学和神经学方向上的研究是强化学习理论进一步发展的研究限制,而这一点在计算神经科学上不断得到深入研究[3]

1.2.2 游戏AI行业现状

游戏AI在社会行业当中的最重要的需求是用户体验,在让用户感受到AI的智能程度,并且可以合理的恰到好处地对抗,这一点就构成了当前游戏AI领域的工作重点,事实上,在游戏中使用AI技术的目标,不是要给玩家创造一个无与法击败的对手,而是要在很长一段时间内最大限度地提高玩家的参与度和体验感。AI是一个含义非常广泛的术语,它只表示能够从玩家的行为中学习的模型,在以往所涉及的有限状态机无法满足的情况下,现在采用机器学习的方式进行AI的自我进步,在实现的过程中,同时可以控制进度并且带给用户玩家逐渐进步和强化的满足感,游戏通过沉浸式的互动体验给无数玩家带来欢乐,更通过创造虚拟世界给开发者带来无限可能,为人工智能的探索研究、落地应用提供了绝佳的场景[4]。以网易设立的伏羲实验室作为举例,在智能机器人平台,用户可以在10分钟之内一键定制不同性格、不同技能的AI机器人,这一方法直接砍掉近95%的工作量。人工智能对游戏的意义并不局限在做机器人,对游戏制作的各个环节都可以极大程度上提升效率。比如用工具输入语音和文字,让AI自动生成表情动作,可以让动画制作变得极为高效并且更加优良[5]

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图