GameplayKit总览

来源:互联网 发布:造价软件排名 编辑:程序博客网 时间:2024/05/01 06:12

GameplayKit

框架主要用来设计和规划逻辑,其中包括随机数的生成,AI,寻路和状态机。

概括

GameplayKit是一个面向对象的框架,它提供了一些基础工具来构建游戏。这些工具可以创造出功能性的,可复用的组件,这些技术可以构建游戏的某些特征,如角色的行动,敌人的行为。

GameplayKit入门

GameplayKit替换掉了许多游戏中的设计或开发方式,想要更深入了解GameplayKit,你可以跟着教程进行示例开发,传送门:GameplayKit 项目指导。

示例代码

Boxes:实体与组件基础知识

Dispenser:状态机基础知识

Pathfinder:寻路基础知识

AgentsCatalog:代理系统基础知识

FourInARow:用最小的策略定制敌人AI

DemoBots:使用Spritekit和Gameplaykit创建跨平台游戏

Topics

实体和组件(Entities and Components)

游戏设计,逻辑设计的基础

GKEntity 类

与游戏相关的对象,具有完全由组件对象集合提供的功能

GKComponent 类

创建具有明确功能的实体对象父类

GKComponentSystem 类

管理指定类的所有组件对象定期更新消息。

状态机(State Machines)

定义一个根据状态依赖的游戏逻辑模块化系统

GKState 类

状态机中定义一个特定状态逻辑的一部分。

GKStateMaching 类

一个有限状态机集合,包含有特定逻辑和规则去处理逻辑间的过渡。

空间分割(Spatial Partitioning)

在游戏世界中组织物体以快速搜索位置或接近的数据结构

GKQuadtree 类

根据2D空间中的位置组织对象的数据结构。

GKQuadtreeNode 类

一个管理类,用来管理创建的Quadtree。

GKOctree 类

根据3D空间中的位置组织物体的数据结构。

GKOctreeNode 类

一个管理类,用来管理创建的Octree。

GKRTree 类

一个数据结构,用来自适应管理对象根据2D空间中的位置。

策略(Strategists)

一个基于回合制的游戏,你可以使用那些定义了协议的模型,然后用那些模型规划他们的AI

GKStrategist 协议

回合制游戏中的AI通用接口。

GKMinmaxStrategist 类

回合制中确定行动。

GKMonteCarloStrategist 类

回合制中根据概率确定行动。

GKGameModel 协议

实现此协议来描述你的游戏模型,以便策略对象可以规划游戏动作。

GKGameModelPlayer 协议

实现此协议来描述基于回合制的游戏中的角色,以便策略对象可以规划游戏动作。

GKGameModelUpdate 协议

实现协议描述一个行动,以便策略对象可以规划游戏动作。

决策树(Decision Trees)

定义一系列的问题和可能的答案来决定最后的行为,或者自动构建一个根据你预先提供数据的模型

GKDecisionTree 类

一组数据结构,用于模拟一系列具体问题,可能的答案以及一系列答案中所采取的行动。

GKDecisionNode 类

手动创建DecisionTree中的节点,他代表了一个明确的问题,问题可能解决的答案和答案完成后的行动。

寻路(Pathfinding)

创建曲线图使模型可以在你的游戏世界中导航,可以允许角色选择最优的路径跟随

GKGraph 类

一个节点集合,节点中包含导航信息,寻路方法。

GKObstacleGraph 类

一个2D游戏世界,创建精确的寻路绕过障碍物的最小网络导航图。

GKMeshGraph 类

一个2D游戏世界,创造流畅的寻路绕过障碍物的空间填充网络导航图。 

GKGridGraph 类

2D游戏世界的导航图,其中运动被限制为整数网格。

GKGraphNode 类

用于寻路的一个导航图中的单个节点。

GKGraphNode2D 类

导航图中的一个节点,与连续2D空间中的点(point)集合。

GKGraphNode3D 类

导航图中的一个节点,与连续3D空间中的点(point)集合。

GKGridGraphNode 类

导航图中的一个节点,不相关的2D网格上的位置相关联。

代理、目标与行为(Agents, Goals, and Behaviors)

通过结合起来的高级目标(诸如到达一个目的地,跟随或绕开一个障碍物),添加拥有自主行为的角色和其他游戏对象

GKAgent 类

通过设定目标和约束移动实体的组件。

GKAgent2D 类

运行在2D中的代理。

GKAgent3D 类

运行在3D中的代理。

GKGoal 类

激发一个或多个代理运动的影响。

GKBehavior 类

一组目标来影响一个代理运动。

GKCompositeBehavior 类

一组行为,每一个都是一组目标来影响一个代理运动。

GKPath 类

代理可以跟随的一个多边形路径。

GKAgentDelegate 协议

实现这个协议,同步更新代理在视图上的状态变化。

障碍物(Obstacles)

用来在游戏世界中无法通过的区域,主要是寻路和代理使用

GKObstacle 类

障碍物基类。

GKCircleObstacle 类

圆形障碍物。

GKSphereObstacle 类

球形障碍物。

GKPolygonObstacle 类

2D中的多边形障碍物。

程序噪点(Procedural Noise)

在一个领域内,生成随机噪点,使用它们生成自然的纹理,例如云或者树木纹路,构建无限世界

GKNoiseSource 类

噪点发生器基类。

GKNoise 类

一个噪点发生器生成时的噪点,可用它来加工,旋转,结合噪点。

GKNoiseMap 类

一个简单的噪点数据,你可以直观地查看数据和展示噪点纹理。

GKCoherentNoiseSource 类

一个噪点发生器,产生有黏着的噪点。

GKBillowNoiseSource 类

一个噪点发生器,输出一个黏着的柔软的噪点特征。

GKPerlinNoiseSource 类

一个噪点发生器,输出一个类似于云或地形的噪点。

GKRidgedNoiseSource 类

一个噪点发生器,输出比较锋利棱角的噪点。

GKVoronoiNoiseSource 类

一个噪点发生器,输出分离的,拥有随机种子分离空间的噪点(又称Worley噪点或蜂窝噪点)。

GKCylindersNoiseSource 类

一个噪点发生器,输出3D同心圆柱体噪点。

GKSpheresNoiseSource 类

一个噪点发生器,输出3D同心球体噪点。

GKCheckerboardNoiseSource 类

一个噪点发生器,输出方形交替样式噪点。

GKConstantNoiseSource 类

一个噪点发生器,输出一个恒定值的噪点。

随机化(Randomization)

暴力、灵活地通过标准算法添加不可预测性的随机数

GKRandom 协议

一个随机化类的公共接口。

GKRandomSource 类

所有随机化类的基类。

GKARC4RandomSource 类

一个基础的ARC4算法随机数发生器,运用于绝大部分的游戏机制,

GKLinearCongruentialRandomSource 类

一个实现线性同余的随机数发生器,快速但是随机数少于默认的随机数发生器。

GKMersenneTwisterRandomSource 类

一个实现Mersenne Twister算法的随机数发生器,随机数多余默认的随机数发生器,但是运行更慢。

GKRandomDistribution 类

一个随机数发生器,在一个特定范围内表现出特定分布的多重采样。

GKGaussianDistribution 类

一个随机数发生器,根据高斯分布法多重采样。

GKShuffledDistribution 类

一个随机数发生器,其均匀分布在多个采样中,但是类似值的短序列不太可能。

规则系统(Rule Systems)

将游戏设计与可执行代码分开,以加快游戏开发周期,或者实现模糊逻辑推理,为游戏添加真实的行为

GKRule 类

规则系统中的上下文,要测试的谓词和当测试成功时要执行的动作。

GKNSPredicateRule 类

在Foundation中的NSPredicate一样用法,不过是在规则系统中。

GKRuleSystem 类

用于构造数据驱动逻辑或模糊逻辑系统的规则列表,以及评估它们和解释结果的上下文。

Xcode和SpriteKit一体化(Xcode and SpriteKit Integration)

拥有Gameplaykit特征的类和协议都支持在Spritekit中的Scene editor(场景编辑器)中进行创建和修改

GKScene 类

一个容器,使Gameplaykit的对象和Spritekit的Scene发生联系。

GKSceneRootNodeType 协议

从支持嵌入式GameplayKit信息的其他框架中识别场景类。

GKSKNodeComponent 类

一个管理Spritekit node的组件。

原创粉丝点击