📣UE5:俯视视角RPG游戏(GAS)📣(断更)
你将会学到的
- 虚幻引擎的GAS系统
- 多人游戏机制
- 创建一个完整的角色扮演游戏,包括战斗、经验和升级、敌人、法术、菜单、游戏保存等等
- 可靠的编码原则和AAA质量代码架构
- 如何确定哪些代码进入蓝图,哪些代码进入C++,以便在已发布的游戏中获得最佳性能
- 可扩展、模块化、可维护且可扩展的代码,可作为任何严肃游戏的基础
- GAS系统的所有核心功能
- 代码调试工具和实践
说明
这是目前最全面的虚幻引擎课程。如果您想学习如何构建功能齐全的 RPG 游戏,本课程将使您能够使用可扩展的代码库来构建,并使用 AAA 质量代码构建。如果您曾经想过在C++和蓝图之间划清界限,那么这就是适合您的课程。如果你曾经想创建一个包含统计系统、能力、升级、法术、属性、菜单的 RPG,同时保持你的代码库干净并遵循最佳实践,这就是你的课程。如果你想提升虚幻引擎开发能力,更好地了解引擎的内部工作原理,那么本课程就是为你准备的。如果您计划使用互连系统制作自己的严肃游戏,涉及属性、能力、升级、敌人和 AI,并为多人游戏编码,那么这就是适合您的课程!
在本课程中,我们将创建一个自上而下的RPG风格的游戏,其中包含使用虚幻引擎内置的游戏能力系统(GAS)构建的系统。在这里,您将学习如何构建已发布的游戏,并对其进行专业编码,以便可以轻松扩展、升级和维护。我们遵循SOLID编码原则,并以AAA级发行的游戏(如Fortnite)的方式平衡蓝图/C++比率。我在 AAA 发布游戏代码方面的经验,以及与行业资深开发人员的咨询,使我能够向您揭示真实发布游戏的代码库的方式。如果你曾经想知道蓝图与C++相比,蓝图中可以保留多少游戏,那就别无所求。这门课程就是答案。
此游戏项目中的资源是专门为本课程制作的,并将在资源包中提供。这包括:
- 角色,包括主角光环,以及包括哥布林战士、哥布林游侠、哥布林萨满、红黑恶魔、食尸鬼和蘑菇在内的敌方角色。
- 一个模块化的地下城包,可以拼凑在一起制作基本的地牢
- 航点神社和方尖碑
- 粒子尼亚加拉系统效果,包括爆炸、升级效果、弹弓、命中冲击、电束、火球、火霹雳、火焰、眩晕效果的星星等等!
- 敌人、脚步声、法术等的音效!
- HUD的纹理,包括高质量的按钮,框架,动态动画的法术地球仪,进度条,XP栏等等!
- 光环和所有敌人的完整动画集
- 等等!
在本课程中,我们将涵盖以下主题:
- 从头开始设置俯视项目
- 具有轮廓效果的敌人和物品选择
- 正确使用 OOP 和继承来创建字符类层次结构
- GAS系统及其核心职业介绍
- 自定义GAS系统组件和属性集,以及如何复制属性
- 所有 GAS 类和组件的所有重要设置
- 如何使用属性获取球员统计数据,包括主要属性:
- 力量(增加物理伤害)
- 智力(增加魔法伤害)
- 弹性(增加护甲和护甲穿透力)
- 活力(增加最大生命值)
- 次要属性,基于主要属性和其他自定义变量:
- 护甲(减少伤害,提高格挡几率)
- 护甲穿透力(忽略敌方护甲的百分比,增加暴击几率)
- 格挡几率(改变以将来袭伤害减少一半)
- 暴击几率(双倍伤害几率加暴击加成)
- 暴击伤害(暴击得分时增加额外伤害)
- 暴击抗性(降低攻击敌人的暴击几率)
- 生命值恢复(每 1 秒恢复的生命值)
- 魔法恢复(每1秒恢复的魔法量)
- 最大生命值(可获得的最大生命值)
- 最大魔法值(可获得的最大魔法值)
- 生命属性 - 如健康和魔法值,它们取决于所有其他属性
- 游戏效果 - GAS 系统中用于将更改应用于属性的类
- 游戏标签 - GAS 的重要组成部分,它使我们能够识别品质、属性、能力、角色类别以及我们可以想象的任何其他东西
- 游戏 UI - 如何以有组织、模块化和可扩展的方式高效处理 RPG 游戏中的复杂 UI。我们涵盖了不同的UI范式,从MVC(模型视图控制器)和MVVM(模型视图视图模型,使用虚幻引擎的新视图模型功能)
- 完整的属性和法术菜单,包括升级能力、法术树、锁定法术等级、按能力等级分类的法术升级等
- 属性 - 如何使用游戏属性来表示玩家统计数据,并通过创建效果应用程序管道将它们合并到游戏机制中,从而允许由游戏中的现象(例如战斗伤害)引起的计算和结果
- GAS - GAS 的核心。我们创建各种类型的游戏能力来处理法术的施放,处理玩家角色和敌人AI的重要能力,以及如何配置不同的能力以满足您的需求。
- 不同的 RPG 类 - 我们实现不同的角色 RPG 类,包括游侠、战士和元素师,并以易于扩展的方式实现,因此您可以在游戏中拥有任意数量的角色类类型
- 伤害和战斗 - 我们实现了完整的RPG风格的战斗系统,具有不同的伤害类型,伤害抗性和与伤害类型相对应的减益,并将这些计算编码到我们的伤害管道中。所有属性、伤害类型、抗性和减益效果在此游戏中都起作用。
- 所有战斗机制都以某种形式的视觉反馈显示给玩家。这包括用于损坏的浮动文本、根据自定义条件更改颜色、用于通知暴击、阻止命中和暴击阻止命中的浮动文本。我们还实施了击退和眩晕机制来应对闪电伤害,使角色/敌人丧失能力,以及火焰减益,其中角色在燃烧时被点燃并受到火焰伤害。
- 敌人AI - 我们使用虚幻引擎行为树和环境查询系统(EQS)实现敌人行为,为远程、战士和元素战士敌人类型提供自定义行为。
- 敌人可以施放法术并召唤AI小兵
- 在俯视游戏中妨碍摄像机时褪色几何体
- 技能消耗和冷却时间(法术消耗属性资源 - 在这个游戏中,法术消耗法力)
- 功能齐全的HUD,配备法术,显示法术冷却计时器和经验(XP)
- 能够将能力分配给法术菜单中的不同输入(将FireBolt分配给1键,将触电分配给鼠标左键,将它们换回,等等)
- 经验和升级系统 - 我们制作了一个经验系统,消灭敌人时奖励经验,并在达到各种能力的经验阈值时升级。经验值和等级显示在HUD中,升级消息和效果也显示在HUD中。升级与获得属性点数和法术点数有关,可用于分别升级属性和法术菜单中的属性和法术能力,以及在升级时补充生命值和法力值。(基本上,你会看到足够多的例子来说明如何使用这个系统,你可以用你想要的任何功能来扩展它,用于你自己的游戏。)
- 被动法术 - 您可以装备的法术,在装备时保持活动状态。
- 各种攻击性法术,展示了 GAS 的不同示例和功能,包括火弩箭、电击、奥术碎片和火爆。
- 保存进度和关卡转换
- 中级/高级虚幻引擎主题,包括自定义异步任务、能力任务、蓝图函数库、资源管理器、单例(以及为什么这些只适用于极少数情况)、自定义游戏效果上下文、网络序列化、结构操作类型特征、C++ Lambdas、游戏机制算法等等。
- 如何选择哪些功能应该进入C++与蓝图 - 这是最有价值的课程之一,在整个课程中都有教授。学生经常问我“C++和蓝图中应该使用哪些功能?这门课程是我的答案。这是一个严肃的项目基础,有超过100小时的视频,没有填充物。该项目由大约 50% 的蓝图和 50% 的C++构建。我将向您展示哪些功能应该在C++端,哪些功能更适合蓝图,以及为什么。
- SOLID 编码原则和代码架构 - 我们在这个项目中保持代码库干净。我经常收到的另一个问题是“这是最好的编码实践吗???”这门课程是我对这个问题的回答。这是您在 AAA 游戏中看到的代码示例,已交付给数百万玩家。维护干净和模块化的代码对于一个严肃的游戏项目至关重要,该项目需要可扩展、可扩展、模块化、可维护、可测试、高性能和高效。本课程将向您展示如何操作。
本课程项目是在虚幻引擎5.2版本中创建的。
此课程面向哪些人:
- 那些希望知道如何在虚幻引擎中构建可扩展和可发行游戏的人
- 那些希望知道如何实现游戏属性、能力、经验、升级以及如何在干净的代码库中维护这些的人
- 那些希望知道如何以有效的方式处理复杂系统的游戏UI的人
- 那些希望创建自己的RPG,MOBA,射击游戏或任何其他涉及属性,技能,法术或其他自定义机制的游戏的人
- 那些希望知道如何使用行为树和环境查询(EQS)实现敌人AI的人
- 那些拥有虚幻引擎经验并希望扩展自己的技能以创建可发行游戏的人
- 那些正在寻找有关游戏能力系统(GAS)的综合课程的人,以便他们可以在自己的游戏项目中使用它
- 业余爱好者和专业游戏开发人员都将从本课程中受益
- 需要为其团队的游戏项目学习 GAS 基础知识的 AAA 开发人员
- 游戏开发项目的负责人,他们需要了解GAS在虚幻引擎中的工作原理,以及它的功能、局限性以及开发人员的时间和精力成本
- 需要以可扩展的方式构建游戏项目的团队,以便在发布后易于维护
- 任何已经创建了一些基本的虚幻引擎项目并准备好迎接更上一层楼的人!
- ...