
加入我们的蓝图专属课程,快速学习Unreal Engine的多人游戏框架基础。无需编写C++代码,通过蓝图轻松实现多人在线功能!
您将会学到
- 了解虚幻引擎5中的多人游戏机制
- 了解引擎中的不同核心类,如游戏模式、游戏状态、玩家状态、玩家控制器、角色等
- 学习如何复制变量、发送远程事件、复制移动以及在多人游戏中切换到不同的级别
- 学习附件、组件复制、复制条件以及自定义复制
- 了解多人游戏中的陷阱以及如何避免它们
学习要求
需要对 Unreal Engine 和 Blueprints 有基本的理解
课程描述
是时候学习 Unreal Engine 中的多人游戏编程了!全程使用 Blueprints!
在本快速入门课程中,你将迅速掌握 Unreal Engine 多人游戏的基础知识。你将学会在任何游戏类型中编程实现多人游戏玩法!
许多学生在多人游戏方面遇到困难。相信我,我曾经也经历过。在我的 10 多年 Unreal Engine 游戏编程经验中,我通过很多艰难的教训学到了很多。我发现,只要理解了多人游戏理论背后的核心原则以及 Unreal Engine 框架是如何围绕核心的多人游戏构建的,多人游戏编程其实可以很简单。
要为你的游戏编程实现多人游戏,你不需要是专家。你只需要了解使多人游戏能够工作的基本概念。本课程是对你必须理解的多人游戏编程核心原则的浓缩总结。
完成本课程后,您将了解多人游戏的基本理论,Unreal Engine 实现多人游戏的方式,以及如何将单人游戏升级为多人游戏,并学会从项目创建之初就为多人游戏进行结构设计!
这门课程深入探讨了多人游戏理论,并会为你提供挑战,以测试你对每个主题的理解,从而让你有机会亲手实现每种技术。在自己尝试完成每个挑战后,你将观看我解决每个挑战的过程,并获得完成问题的步骤。每个主题都会有一个简洁的总结,每个部分结束后都会有一个测验,以测试你的理解,从而让你有信心继续学习下一个主题。
课程整体结构
多人游戏基础
我们将介绍核心多人游戏术语和概念,包括:
- 客户端-服务器模型 – 它与对等连接有何不同,以及 Unreal Engine 如何使用这种模型
- 测试多人游戏 – 如何在编辑器的 Play-In-Editor (PIE) 中轻松模拟独立游戏、监听服务器游戏和专用服务器游戏
- 局域网连接 – 你将创建一个局域网游戏,在自己的局域网中的其他计算机之间进行连接
- 通过 Steam 连接监听服务器 – 我将提供一个插件,使你能够快速通过 Steam 在线子系统连接到其他玩家
ACTOR 复制
角色是 Unreal Engine 场景的核心。角色具备复制的能力。
- 角色复制 – 你将看到如何轻松启用角色的复制功能,以及如何通过复制变量来同步服务器和客户端版本的角色,还有如何复制移动以同步每个角色的服务器和客户端版本
- 权威性和网络角色 – 一旦理解了这些简单但至关重要的概念,你将能够确定给定角色所在的机器,并据此做出重要的游戏逻辑决策
- 附件 – 所有游戏都涉及某种形式的附件。你必须了解多玩家模式中 Actor 的附件机制(或者如果你不知道自己在做什么,了解附件机制不工作的情况)
- 变量复制 – 多玩家编程的核心。复制的变量是所有多玩家游戏中最常用的元素,你将看到如何轻松地创建它们(从而了解自己需要承担的责任)
- Rep 通知 – 有时,你只想触发一个变量复制的响应。Rep 通知是设计用来在变量复制时触发的函数,甚至可以访问预复制的值。
- 复制条件 – 变量在改变时复制。你可以决定何时、在什么情况下以及在哪些机器上发生这种情况。在这一讲中,你将学习如何做到这一点。
- 自定义重放条件 – 游戏可能会变得复杂。你可能会发现需要一个变量只在某些自定义条件下才进行复制。你将学习如何实现这一点。
- 所有权 – 你无法有效地进行多人游戏编程,除非你理解《虚幻引擎》中的所有权概念。这包括拥有连接:哪台机器负责处理该对象。这一概念将在本讲中为你揭开神秘面纱。
- Actor 组件 – 组件也可以进行复制,但你需要理解这一过程,以及它们的网络连接拥有者是如何与拥有它们的 Actor 相关联的。
远程事件
Unreal Engine 多人框架中最强大的工具之一,远程事件可以执行复制变量无法完成的任务。
- Run on Client – 当你需要在服务器上调用一个事件,并且希望它在拥有该客户端上执行时,Run on Client 事件就是你的首选。
- Run on Server – 尽管复制只能从服务器到客户端进行,但 Run on Server 事件就是你从客户端向服务器传递信息的方式。
- Multicast – 伴随着强大的功能也伴随着巨大的责任。如果你想在服务器上调用一个函数,并且希望它在所有客户端上运行,那么 Multicast 事件就是你需要的工具。
- 相关性和优先级 – 网络更新并不是总是发生的 – 有时,某些 Actor 对其他 Actor 并不相关。此外,有些 Actor 必须比其他 Actor 更频繁地进行复制。本讲将向您展示相关性和优先级是如何工作的。
CLASS 框架
了解哪些类适合哪些任务可以大大简化项目的整体结构。为了有效地为多人游戏编程,您必须理解每个核心引擎类的用途。
- 游戏模式 – 避免像在客户端尝试访问游戏模式这样的新手错误。了解游戏模式如何规定游戏规则以及默认生成的类。
- 游戏状态 – 需要复制到客户端的游戏信息存储在该类中。
- 玩家状态 – 您的玩家分数和所属队伍应该存储在哪里?玩家特定的数据就存储在这一非常重要的类中。
- 玩家控制器 – 代表您的玩家,玩家控制器拥有您的网络连接,而您的 Pawn 或 Character 的所有权追溯到该类。
- Pawn 和 Character – 每个玩家都需要一个可见的替身。在多人游戏中它们是如何工作的?这一讲将为您解答。
- HUD 和小部件 – 这些视觉元素在多人模式中是如何处理的?你能复制它们吗?(剧透:你不能!)
- 静态访问器函数 – 为什么我们总是调用这些函数,并传递 0 作为玩家索引,即使我们不知道该传递什么?在使用这些静态访问器函数时要小心潜在的陷阱,并在不确定时考虑替代方案
多人模式中的旅行
在某个时刻,你的游戏需要切换场景。所有连接的玩家在多人游戏中都必须移动到另一个场景。这又是如何实现的呢?你将学习如何实现。
- 旅行 – 我们将讨论不同的旅行类型以及如何实现它们。
- 无缝旅行的实现 – 本课程的最终挑战,你将实现无缝旅行,将游戏中每个客户端迁移到另一张地图,而无需断开连接。
完成本课程后,你将全面理解《虚幻引擎》多人框架的基本原理。无论游戏类型如何,你都能够为你的游戏编写多人模式代码。本课程将作为你的参考手册,你可以随时跳转到特定主题的讲座进行复习。
我强烈建议我的所有学生在学习我的任何更高级的多人课程之前先完成本课程!
本课程假设你已经掌握了 Unreal Engine Blueprints 的基本知识。如果你已经制作过至少一个 Unreal Engine 项目,或者你已经完成了我的 Unreal Engine 5 Blueprints – The Ultimate Developer Course,那你已经准备好开始学习了。
准备好终于理解 Unreal Engine 中的多人模式了吗?这并不难!你只需要掌握基本原理。
我们很快见,
Stephen
课程适配人群
- 希望学习 Unreal Engine 多人模式
- 希望升级单人项目以支持多人模式
- 希望掌握 Unreal Engine 高级多人模式概念如 GAS
