基于实体组件系统以及深度强化学习的游戏的设计与实现
作者单位:上海交通大学
学位级别:硕士
导师姓名:杨旭波;张奕
授予年度:2020年
学科分类:12[管理学] 1201[管理学-管理科学与工程(可授管理学、工学学位)] 081104[工学-模式识别与智能系统] 08[工学] 0835[工学-软件工程] 0811[工学-控制科学与工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
摘 要:现今,电脑与手机等智能设备普及到每家每户,游戏已逐步成为大众休闲时间的首选。在硬件与技术不断发展提升的同时,游戏开发技术也在不断的进步,以达到日益精细和高质量的游戏品质。本研究论文设计与实现了一个完整的游戏项目。在项目中,构建了实体组件系统(Entity Component System,简称ECS),并在此架构模式下开发游戏功能与逻辑。同时,为了使功能逻辑与底层脱离,达到独立性与可移植性,本研究论文设计与实现了一个游戏框架。此外,本研究论文实现了一套数据表工作流,目的是实现游戏数据的可配置性,灵活性与可扩展性。最后,本研究论文对深度强化学习(Deep Reinforcement Learning,简称DRL)进行了探索与研究,并将其应用于训练游戏中的NPC(Non-Player Character,非玩家角色)。具体来说,本研究论文主要完成如下工作内容:1.构建了实体组件系统,它是一种架构模式。通过在运行时添加或删除组件,达到更改实体行为的目的,具备很大的灵活性。此外,在实体组件系统的实现中,会将数据集中布局,从而可以有效的利用CPU缓存,达到提升性能的目的。游戏项目中的功能与逻辑都是在此架构模式下开发的,因此在游戏性能上具有很大的提升。2.本研究论文所实现的游戏项目中会创建一个NPC,为了让NPC在智能表现方面可以达到一个较高的水平,本论文探索与研究了深度强化学习,并应用它来训练游戏中的NPC。在测试环节,使用深度强化学习训练的NPC在与使用状态机实现的NPC的对抗中获得胜利,展现出了较高的智能水平。3.本研究论文实现了一个游戏框架。游戏框架对底层模块进行了封装,并为上层逻辑模块提供支持。在游戏框架中最重要且常用的三个模块为:状态机模块、资源管理模块与日志模块。在游戏框架的基础上,逻辑功能的开发效率得到了极大的提升,并且大大增强了代码的可移植性。4.为了可以在excel中配置数据,并将数据导出以及在游戏运行时可用,本研究论文设计并实现了一套数据表工作流。在工作流中,包括了制定数据表配置规范、导出数据表数据以及加载、使用数据的逻辑代码的自动化生成。数据表工作流可以极大的简化从配置数据到使用数据之间的流程复杂度。在完成以上工作内容后,会对项目进行详细的测试。通过整体测试,从总体表现上来看,游戏客户端运行良好,各个部分符合预期需求,在性能等非功能性方面也满足要求。