当前位置:首页 > 游戏资讯 > 正文

Game Mode 和 Game State

Game Mode 和 Game State-第1张-游戏资讯-龙启科技

Game Mode与GameState在游戏引擎中的角色概述

处理游戏中间状态的关键角色有两个类:Game Mode与GameState。即便是最为开放的游戏,其根本规定依然由Game Mode负责。

这类规定基础包含如游戏所需参与玩家数量或玩家加入方式等要素。规则将随特定开发的游戏中无限变化,无论规则如何,Game Mode的任务均为定义与实现规则。

Game Mode的实现有两种常见方式:AGameModeBase和AGameMode。AGameModeBase为所有游戏模式的基础类,在新增代码项目时常选用为默认游戏模式;AGameMode则是4.14版本前的基类,仍予保留,功能与AGameModeBase相似,并已融入匹配状态概念,适用于如多人射击游戏等常规游戏类型。

Game Mode下的AGameModeBase包含许多可以重写的基本功能,可为每种比赛格式、任务类型或特殊区域创建子类。Game Mode在初始化时通过UGameEngine::LoadMap()函数导入,只存在于服务器上,客户端可见但无法直接访问实例或变量。

而GameState则专注于管理和同步所有连接客户端知晓的信息,负责使游戏层面属性更新,如连接玩家列表、团队得分(夺旗游戏)、已完成任务(开放世界游戏)等。这与追踪特定玩家状态如夺旗比赛中的团队分数的Player State形成对比。

AGameStateBase作为基础实现,提供默认功能,如在C++或蓝图中扩展,以增加游戏中玩家对当前状态的感知。特定修改通常基于游戏模式下的GameState,而Game Mode自身也可覆盖默认的GameState类,使用继承自AGameStateBase的任意C++类或蓝图。