作为网游中最重要的MMO类游戏的前身,ARPG游戏是一种非常经典且流行的游戏类型,其诞生的经典之作如:《魂系》、《暗黑破坏神系列》、《塞尔达传说系列》等,大家也是耳熟能详。
可以说ARPG游戏无论从体量还是技术含量都是游戏开发领域中最重要的类型之一。
而战斗部分作为ARPG游戏中最重要的部分之一,是每个游戏开发者们的学习重点。今天我们就从实际案例出发,带大家了解制作一款拥有战斗系统的ARPG游戏需要掌握哪些核心技术。
√NO.1
角色相机控制
首先我们来谈谈角色相机控制。
在这个案例中我们制作了一个简单的跟随相机,而角色控制无外乎通过AWSD实现角色移动。
实际上,控制角色移动有比较多的方案。比如通过纯数学位移的方式、translate 控制、CharacterController角色控制器控制、Rigidbody刚体控制等。至于选择哪种移动方式,需要结合项目的需求综合判断。
在这个ARPG战斗案例中,采用的是 CharacterController控制。在这里额外多说一点,CharacterController角色控制器控制角色有两个API,一个是Move,另外一个是SimpleMove,需要注意下这两个API的区别:
(1) Move 不带模拟重力的效果,而SimpleMove是带的。
(2) Move 是按帧移动的,而SimpleMove 是按秒移动的。
√NO.2
角色动画系统与攻击判定
接下来说说第二点,角色的动画系统Animator。
在这个案例中讲解了Animator的基本使用和BlendTree的混合应用。另外通过注入Event动画帧事件,实现了连招攻击。
最后我们说说游戏中的攻击判定。ARPG游戏,根据具体的游戏类型,以及单机网游甚至是不同技术框架下的网游,都有不同的伤害判定处理方式。
在这个案例中采用了引擎碰撞功能的检测方式,来制作人物的攻击判定。所以,你还需要了解下碰撞器和触发器相关的技术点。
√NO.3
技能同步
大部分编程语言内置库里的随机数都是利用线性同余发生器产生的,如果不指定随机种子(Random Seed),默认以当前系统时间戳作为随机种子。一旦指定了随机种子,那么产生的随机数序列就是确定的。就是说两台电脑采用相同的随机种子,第N次随机的结果是一致的。
所以在游戏开始前,服务器为每个玩家分配一个随机种子,然后同步给client,如此每个client在计算每个角色的技能时候,就能保证伤害是一致的。这也是多数帧同步游戏采用的方案,包括王者荣耀。
当然用文字描述具体的战斗部分实现方式不便于大家理解和学习,我们为大家开设了游戏开发训练营,以更详细的讲解方式让大家从0做出一款游戏Demo。
我们希望同学们通过训练营掌握的是学习方法以及分析问题,解决问题的能力,这也是成为一个游戏开发高手,成为一个高级的开发者必备的能力之一。
扫描下方二维码,即可限时免费参加游戏开发训练营