将虚幻引擎官方 Demo 游戏 Lyra 接入 Agones
安装 Visual Studio
-
进入 Visual Studio 下载页面,下载 Visual Studio 并安装,如需免费,可使用社区版。
-
安装时确保以下 C++ 相关选项勾选上。
-
虚幻引擎对最新编译器版本可能有兼容性问题,建议勾选下虚幻引擎支持的最新 MVSC 版本,现在虚幻引擎源码中找到当前首选的编译器版本,文件路径
Engine/Config/Windows/Windows_SDK.json
。 -
在 Visual Studio Installer 中点到 【单个组件】,搜索并勾选下首选编译器版本相关组件(记得取消勾选下最新版本)。
-
同样也在
Windows_SDK.json
文件中可找到建议的 .NET 版本。 -
在【单个组件】中搜索并勾选下 .NET 相关组件(记得取消勾选下最新版本)。
通过源码安装虚幻引擎
虚幻引擎支持通过 Epic Games Launcher
来安装虚幻引擎,也可以通过源码安装。一般虚幻引擎的游戏都结合 Visual Studio 和 C++ 来开发,虚幻引擎需要通过源码方式来安装。
以下是安装步骤:
-
确保已注册 Epic Games 账号与 GitHub 账号。
-
登录Epic Games 官网,进入应用与账户,连接 GitHub 账号。
-
登录 Github 官网,等待接收 Epic Games 加入组织的邀请。
-
接受邀请后进入 Unreal Engine 代码仓库,在 release 页面 下载最新版本的源码压缩包。
-
解压后打开命令行,进入源码目录。
-
执行
Setup.bat
,会下载安装一些依赖,预计需要较长时间。 -
执行
GenerateProjectFiles.bat
,生成 Visual Studio 项目文件。 -
双击
UE5.sln
文件以将项目通过 Visual Studio 加载。 -
解决方案配置设为
Development Editor
(开发编辑器)。 -
解决方案平台设为
Win64
: -
在右侧解决方案资源管理器中,右键
UE5
,点击【生成】。 -
然后经过漫长的构建等待,具体时长也跟机器性能有关(我这里使用的16c64g的windows云服务器,耗时1小时42分),注意需要 0 失败,如果有发现失败的,要看下失败原因。
-
右键
UE5
,点击【设为启动项目】。 -
点击启动调试。
-
如果一切正常,会看到虚幻编辑器启动界面。
下载 Lyra 项目
-
进入 Epic Games 官网 。
-
点击右上角的【下载】,下载
EpicInstaller
来安装Epic Games Launcher
。 -
打开
Epic Games Launcher
后登录 Epic Games 账号。 -
依次点击【虚幻引擎】-【示例】。
-
点击 【Lyra Starter Game】-【创建工程】。
-
选择好位置,点击【创建】。
-
等待下载完成。
配置 Lyra 项目
-
将 Lyra 项目文件夹里放到 UE 源码目录下,Visual Studio 会自动识别并提示是否重新加载,点【是】。
-
右键 Lyra,点击【生成】。
-
等待生成成功。
-
在 Lyra 项目的文件夹下双击 UE 文件(
.uproject
) 的图标,在虚幻引擎中打开 Lyra。 -
打开成功后,会看到如下界面。
-
点击【编辑】-【项目设置】。
-
默认地图设置为
L_Expanse
,这样启动游戏客户端时会直接进入地图,而不是主菜单,方便测试。 -
回到主界面,依次点击【内容侧滑菜单】-【Plugins】,搜索并双击
B_ShooterBotSpawner
打开蓝图窗口。 -
Num bots to Create
设为 0,然后点【编译】。 -
关闭蓝图窗口。
编译服务端
-
在 Visual Studio 中,解决方案配置切到
Development Server
。 -
右键 Lyra,点击【生成】。
-
经 过漫长的等待后,在 Lyra 的
Binaries\Win64
目录下会生成LyraServer
二进制。
编译客户端
-
在 Visual Studio 中,解决方案配置切到
Development Client
。 -
右键 Lyra,点击【生成】。
-
经过漫长的等待后,在 Lyra 的
Binaries\Win64
目录下会生成LyraClient
二进制。
烘培服务端
-
按照截图勾选
开发
和Server
。 -
按照如下截图点击【烘培内容】。
-
右下角将显示一个对话框,表明内容正在烘焙。点击此对话框中的 显示输出日志(Show Output Log) ,监控烘焙过程,等待完成。
-
在 Lyra 的
Saved\Cooked
目录下可以看到烘培出了WinsowServer
文件夹的内容。 -
在命令提示符中找到你的项目目录,并执行
./Binaries/Win64/<PROJECT_NAME>Server.exe -log
,测试服务器是否成功运行。
烘培客户端
-
按照截图勾选
开发
和Client
。 -
按照如下截图点击【烘培内容】。
-
烘培完成后,在 Lyra 的
Saved\Cooked
目录下可以看到烘培出了WinsowClient
文件夹的内容。
启动服务端和客户端
-
在命令行进入 Lyra 项目的子目录
Binaries\Win64
-
执行这个命令启动服务端:
<PROJECT_NAME>Server.exe -log
。 -
执行两次这个命令,启动两个客户端,即两个玩家连上同一房间:
<PROJECT_NAME>Client.exe 127.0.0.1:7777 -WINDOWED -ResX=800 -ResY=450
。
交叉编译服务端
-
关闭虚幻引擎编辑器,再重新双击 Lyra 的
uproject
文件,以便用虚幻引擎编辑器重新打开 Lyra 项目,确保交叉编译的工具生效。 -
在 UE5 中平台选到 Linux,编译目标选到 Server,点击打包项目。
-
选择输出的目录,我这里直接选 Lyra 项目根目录。
-
等待交叉编译打包完成。
-
完成后可以看到选择的目录下多出一个
LinuxServer
的目录,这个就是交叉编译出来的服务端。
服务端接入 Agones
-
下载 Agones 最新 release 的源码压缩包并解压。
-
将
sdks/unreal
下的Agones
目录拷贝到 Lyra 项目的Plugins
目录下。 -
编辑 Lyra 项目的
uproject
文件,添加Plugins
。{
"Enabled": true,
"Name": "Agones"
}, -
在合适的位置初始化 Agones 的 SDK,调用 SDK 的一些 hook 函数(由于本人对虚幻和C++不熟,这里省略)。
-
按照前面
烘焙服务端
和交叉编译服务端
的步骤,重新打包服务端。