俄罗斯方块游戏的多智能体规范研究
1. 研究背景与目标
在视频游戏开发中,存在多种定义代码结构和建立元素行为逻辑的范式或设计模式。这些模式用于组织元素间的职责分配、定义游戏对象的行为和交互等。常见的有封装执行方法、动作或触发事件所需信息的范式;处理对象间一对多关系,当对象修改时自动通知依赖对象的范式;以及类似状态机,使对象内部状态改变时改变行为的范式。其中,迭代模式对管理信息流至关重要,游戏循环是视频游戏中最常见的迭代模式,它持续执行游戏,每次迭代处理用户交互、游戏元素行为并渲染场景。还有一种变体使用辅助缓冲区存储每次迭代后的变更信息,在周期结束时更新数据模型,以保持迭代前后游戏信息的完整性。此外,基于每个游戏元素的更新函数的更新模型也常被用于执行逻辑动作。
多智能体系统(MAS)由在共享环境中相互交互和决策的一组智能体组成。每个智能体有其属性和行为规则,基于决策理论和博弈论的指标函数,能表现出自主、审议、反应、组织、社交、交互、协调、合作和协商等行为,这些行为传统上用于自主机器人系统解决实时问题。选择MAS作为视频游戏规范的参考系统,是因为智能体的自主行为与游戏元素的行为存在类比关系,MAS可以为视频游戏提供形式化规范,整合游戏逻辑、实体及其行为规则,以及游戏物理和碰撞检测响应等特定方面。目前,MAS和机器学习已被融入多个游戏引擎,可供公众使用。
本研究的目标是验证基于MAS与视频游戏类比的游戏规范能否在不同平台上实现。具体而言,要建立游戏概念与MAS对应概念之间的正式类比,考虑游戏的特征、组成元素、行为定义和用户交互。研究将通过在NetLogo、GDevelop和Unity三个不同平台上实现俄罗斯方块游戏来进行验证。
2. MAS相关理论框架
2.1 MAS中智能体和环境的特性
- 智能体所属的环境可以处于有限状态集E = [ e0, e1, e2, …]中的任何离散状态。
- 所有智能体共享的环境有一组决定其状态的属性,任何智能体都可访问这些属性。
- 智能体具有通用属性(几何、视觉、物理等),还可接纳新属性以执行特定任务。
- 智能体有用于修改环境状态或自身状态以实现计划和目标的行为规则。
- 智能体有一组能够改变其环境的可能动作Ac = [ α0, α1, α2, …]。
- 智能体在其环境中的运行r是动作和环境状态的交错序列r: e0 →α0 e1 →α1 e2 →α2 … eu-1 →αu-1 eu。
- 所有可能执行的集合是R,其中RAC表示以动作结束的R的子集,RE表示以环境状态结束的R的子集,R的成员表示为R = [r0, r1, …]。
- 状态转换函数τ: RAC →℘(E)引入了智能体动作对环境的影响。
2.2 规则规范的逻辑结构
规则规范采用基于一阶逻辑语义的结构,基于两个谓词:IF条件和DO动作。每个谓词执行系统动作α的调用或计算算术和布尔表达式。谓词指定游戏逻辑,使智能体要执行的任务组织在谓词公式中,其元素可以有以下谓词结构:
-
动作结构
:由包含单个谓词文字DO的原子元素组成。
-
条件结构
:由IF - THEN - ELSE规则的结构生成,即(IF →ϕ) ∧(¬IF →θ),其中IF是条件文字谓词,ϕ和θ分别是条件满足或不满足时将计算的新谓词序列。条件谓词表示决策过程中条件的评估元素,条件评估基于评估系统实体间关系的逻辑表达式,该逻辑表达式可能包含由系统属性、游戏或智能体属性、数学函数和数值组成的算术表达式。
2.3 智能体的动作类型
智能体的动作基于信息持久化的创建、读取、更新和删除(CRUD)操作应用于游戏属性及其智能体:
-
创建(Create)
:创建一个新智能体,作为现有智能体的副本。
-
读取(Read)
:读取游戏或游戏对象属性的信息,使用语法agent.property读取。
-
更新(Update)
:修改一组或一个智能体的属性值,新值由算术表达式的计算确定。
-
删除(Delete)
:从游戏中移除一个智能体。
以下是规则和游戏规范的示例:
AG1:
Properties: { A: true, B: 1.00, C: “Hi!”}
Scripts: { IF( A) →DO( B = B + 1) ∧DO( C = “My name is AG1”)}
AG2:
Properties: { A: false, B: -1.00, C: “What is your name?”}
Scripts: { IF( B ≤0) →DO( C = AG1.C)∧¬IF( A) →DO( delete AG1)}
3. 案例研究:俄罗斯方块
3.1 游戏介绍
俄罗斯方块是一款经典的逻辑街机游戏,由Aleksei Pazhitnov在苏联设计并于1986年发布。游戏由不同配置的四个方块组成的下落方块组成,目标是将方块堆叠在屏幕底部,避免方块堆积到屏幕顶部。玩家需在方块下落时调整其位置和旋转方向,尽可能完成更多水平行。每次完成一行,该行消失,上方的方块下落。每次堆叠一个方块,屏幕顶部会随机出现一个新方块。游戏中有七种不同形状的方块,分别命名为O、L、J、T、I、S、Z。
3.2 游戏所需的智能体类型
实现该游戏需要三种智能体:方块(Piece)、块(Block)和检查器(Check)。
-
方块智能体(Piece Agent)
:由四个预先排列的块智能体组成,游戏中一次只有一个下落的方块。玩家在方块下落时可使用箭头键左右和向下移动方块,使用L和R键分别向左和向右旋转方块。当方块与已放置的块或背景静止接触时,方块被移除,但组成它的块保留,这些块将保持在其位置直到该行完成或游戏结束。
-
属性
:{ resting: false }
-
移动脚本
:{ ¬IF( resting) →(DO( y = y + 1) ∧IF( Game.KeyArrowLeft) →DO (x = x - 1) ∧IF( Game.KeyArrowRight) →DO (x = x + 1) ∧IF( Game.KeyArrowDown) →DO (y = y + 1) ∧IF( Game.KeyR) →DO (angle = angle - 90) ∧IF( Game.KeyL) →DO(angle = angle + 90)}
-
静止脚本
:{ IF( collisionRest) →( DO(resting = true) ∧DO(delete))}
-
块智能体(Block Agent)
:最初组成方块并随其移动,默认尺寸为一个单位。当方块静止时,块与方块分离并保持静止,有一个属性用于存储其静止时所在行的信息。如果遇到处于消除模式的检查器智能体,块必须通知上方的方块向下移动一个位置,然后自身从游戏中移除。
-
属性
:{ resting: false, row = -1 }
-
设置脚本
:{ IF( resting) →DO( row = y)}
-
销毁脚本
:{ IF( collisionCheck) →IF( check.deleteMode) →( ( IF( collisionBlockUp) →IF(blockUp.y > y) →DO(blockUp.y = blockUp.y + 1) ∧DO( delete))}
-
检查器智能体(Check Agent)
:每行有一个控制器智能体,用于检查该行被块占据的数量。激活时,它从左到右遍历该行,检查每个位置是否被块占据。如果到达行尾时占据数量等于现有列数,它将反向通知该行的所有块必须被销毁,并向该行上方的所有检查器智能体发送消息,使静止的块向下移动一个位置。
-
属性
:{ count: 0, deleteMode: false }
-
前进脚本
:{ IF( x ≤Game.width) →DO( x = x + 1) ∧¬IF( x ≤Game.width) →DO( x = 0)}
-
后退脚本
:{ IF( x > 0) →IF( deleteMode) →DO( x = x - 1)}
-
检查脚本
:{ IF( collisionBlock) →DO( count = count + 1)}
-
清除脚本
:{ IF( count == Game.width) →DO( deleteMode = true)}
3.3 游戏智能体关系流程图
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(Piece Agent):::process -->|组成|B(Block Agent):::process
B -->|静止时存储信息|B1(Block Agent - 存储行信息):::process
C(Check Agent):::process -->|检查|B
B -->|满足条件|C1(Check Agent - 触发删除模式):::process
C1 -->|通知|B2(Block Agent - 向上方块传递移动信息):::process
B2 -->|移动|D(Block Agent - 移动位置):::process
B2 -->|删除|E(Block Agent - 从游戏移除):::process
4. 实现结果与讨论
4.1 不同平台的实现情况
基于上述规范,游戏已在NetLogo、GDevelop和Unity三个系统上成功实现,所有实现都遵循了游戏描述和作为MAS的游戏定义。各平台的实现特点主要体现在可用的图形界面和游戏逻辑的组成方式上。
| 平台 | 图形界面特点 | 逻辑实现特点 |
| — | — | — |
| NetLogo | 没有图形编辑器来交互式创建游戏的初始空间布局,需通过其API和基于海龟语言的脚本系统创建初始配置。图形质量降低为彩色像素区域。 | 有“广播”功能,可更直接地进行通信,但通过使用辅助变量遵循模型。逻辑上,方块旋转采用资源库中示例的方法,通过定义为块0的中央块智能体交换位置实现。 |
| GDevelop | 游戏在其网页编辑器中布置,逻辑通过基于事件管理的逻辑系统实现。图形水平允许生成更多可视化形式。 | 逻辑上,智能体间通信是突出特点,碰撞事件后需在游戏的通用属性中创建辅助变量,并让潜在感兴趣的智能体订阅这些变量。 |
| Unity | 是三个环境中最强大的,可通过其编辑器和基于C#语言的脚本系统组成游戏及其规范。 | 实现特点与GDevelop相似,通过游戏变量进行通信,每个智能体在每次Update函数迭代后检查其状态。 |
4.2 平台实现特点总结
通过在不同平台上的实现,可以看出每个平台都有其独特之处。NetLogo虽然图形方面有局限性,但在通信功能上有一定特点;GDevelop在图形和逻辑通信方面表现较好;Unity则凭借其强大的功能和广泛使用的脚本语言,为游戏开发提供了全面的支持。这些特点为开发者在选择平台时提供了参考,开发者可根据游戏的具体需求和目标受众来选择合适的平台。
5. 研究结论与展望
本研究成功验证了游戏可以被定义和规范为一个交互智能体系统,并且可以在不同平台上实现的假设。通过以基于多智能体系统的游戏引擎创建的游戏规范模型为起点,研究在NetLogo、GDevelop和Unity三个平台上实现了俄罗斯方块游戏,获得了令人满意的结果。这表明该模型能够快速、简单地为多个平台定义、规范和原型化视频游戏,并且能够通过建立逻辑来定义和规范游戏元素的行为。
作为未来的工作,考虑通过定义一种形式语言来扩展规范系统,这种语言将允许按照基于MAS和一阶逻辑的相同模型来规范和编程游戏。这将进一步提高游戏开发的效率和规范性,为游戏开发领域带来更多的可能性。
5.1 研究成果总结
- 理论验证 :证实了将游戏定义为交互智能体系统并在多平台实现的可行性,为游戏开发提供了新的理论视角。
- 实践应用 :在NetLogo、GDevelop和Unity三个不同平台成功实现俄罗斯方块游戏,展示了该模型在不同环境下的适应性。
- 功能实现 :模型能够快速、简单地为多平台定义、规范和原型化视频游戏,还能通过逻辑定义游戏元素行为。
5.2 未来工作规划
- 形式语言定义 :计划定义一种形式语言,按照基于MAS和一阶逻辑的模型规范和编程游戏,提高开发效率和规范性。
- 更多游戏验证 :对更多不同类型的游戏进行验证,进一步拓展该模型的应用范围和通用性。
- 性能优化研究 :研究如何在保证游戏功能的前提下,对模型在不同平台上的性能进行优化。
5.3 未来工作流程图
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(定义形式语言):::process --> B(多类型游戏验证):::process
B --> C(性能优化研究):::process
C --> D(拓展模型应用):::process
6. 对游戏开发行业的影响
6.1 开发方式变革
传统游戏开发方式往往依赖于特定的编程范式和工具,而基于MAS的游戏规范为开发者提供了一种新的思路。开发者可以将游戏元素抽象为智能体,通过定义智能体的属性和行为规则来实现游戏逻辑,这种方式更加灵活和模块化,有助于提高开发效率和代码的可维护性。
6.2 跨平台开发优势
在当今多平台的游戏市场环境下,跨平台开发是一个重要的需求。本研究表明,基于MAS的游戏规范能够在不同平台上实现,这为游戏开发者提供了更多的选择。开发者可以使用相同的规范在多个平台上开发游戏,减少了开发成本和时间。
6.3 推动技术融合
MAS和机器学习等技术已经逐渐融入游戏引擎,本研究进一步推动了这些技术在游戏开发中的应用。未来,游戏开发可能会更加注重智能体的自主行为和决策能力,结合机器学习算法实现更加智能和复杂的游戏玩法。
6.4 对开发者的要求
随着游戏开发技术的不断发展,开发者需要具备更广泛的知识和技能。基于MAS的游戏开发要求开发者了解多智能体系统的原理和应用,掌握相关的编程技术和工具。同时,开发者还需要具备创新思维,能够将新的技术和理念应用到游戏开发中。
7. 总结与建议
7.1 总结
本研究围绕游戏的多智能体规范展开,通过对俄罗斯方块游戏的案例研究,验证了游戏可以被定义和规范为交互智能体系统并在不同平台上实现的假设。研究在NetLogo、GDevelop和Unity三个平台上成功实现了游戏,展示了该模型的可行性和优势。未来,通过定义形式语言等工作,有望进一步拓展该模型的应用范围和提高开发效率。
7.2 建议
- 开发者 :积极学习多智能体系统和相关技术,尝试将基于MAS的游戏规范应用到实际开发中,提高开发能力和竞争力。
- 游戏公司 :关注游戏开发领域的新技术和新趋势,鼓励团队进行创新实践,探索基于MAS的游戏开发模式,为玩家带来更多新颖的游戏体验。
- 研究机构 :继续深入研究多智能体系统在游戏开发中的应用,开展更多的实验和验证工作,为游戏开发行业提供更多的理论支持和技术指导。
7.3 总结表格
| 方面 | 内容 |
|---|---|
| 研究成果 | 验证游戏可定义为交互智能体系统并跨平台实现,在三个平台成功实现俄罗斯方块游戏 |
| 未来工作 | 定义形式语言、验证更多游戏、优化性能 |
| 行业影响 | 变革开发方式、提供跨平台优势、推动技术融合、提高对开发者要求 |
| 建议 | 开发者学习新技术、游戏公司鼓励创新、研究机构深入研究 |
超级会员免费看
1314

被折叠的 条评论
为什么被折叠?



