引言

第一节跟练了一个简单的2D游戏案例,熟悉了一下UE cpp开发的框架和流程。这一节开始进入到3D实战项目,首先捋了一下框架:

游戏模式选择的是仿星琼铁道玩法,在探索模式下,控制角色在大地图中自由探索,当遇到npc时 可以对其进行攻击,从而过渡到战斗模式。在战斗模式下,创建一个独立的Actor来管理整个战斗过程(即战斗管理器BattleManager),该管理器首先需要创建场景,然后读取敌我两方队伍的战斗信息、属性,规划行动值和顺序等等。

玩家和敌人 有部分属性是重合的(速度、血量、攻击等等),但是也有一些敌人特有而玩家没有的属性,因此两者的存储数据结构也是有出入的。这里可以定义一个类来管理敌我两者的数据表。

在输入方面,同时支持键盘和鼠标进行操作,例如选择攻击人时,使用键盘是轮询方式,而鼠标是直接选中,因此也要分两个逻辑来编写。

每个角色有若干个角色动作,例如平a、大招的动作是分开的;同时不仅有敌我攻击交互,己方的人物也可以内部进行医疗、buff交互,这都属于战斗模式中所需要维护的系统。对于AI而言,他们会根据计算来判定到底要采取什么操作,以及操作对象是谁,因此也需要一个AI的avator或者agent来指挥ai的行动。

在战斗模式和探索模式之间,还有一个玩家配置阶段,在这个阶段玩家可以管理背包、查看信息,并对队伍进行详细配置。

最后是场景设计,这一块不打算放这篇文章说,后面会开UE美术的blog。

一、探索模式

因为探索模式和战斗模式几乎可以说是两个独立的系统,因此需要分成两部分进行制作。探索模式下最基础的一些内容如下所示: