跳到主要内容

将虚幻引擎官方 Demo 游戏 Lyra 接入 Agones

安装 Visual Studio

  1. 进入 Visual Studio 下载页面,下载 Visual Studio 并安装,如需免费,可使用社区版。

  2. 安装时确保以下 C++ 相关选项勾选上。

  3. 虚幻引擎对最新编译器版本可能有兼容性问题,建议勾选下虚幻引擎支持的最新 MVSC 版本,现在虚幻引擎源码中找到当前首选的编译器版本,文件路径 Engine/Config/Windows/Windows_SDK.json

  4. 在 Visual Studio Installer 中点到【单个组件】,搜索并勾选下首选编译器版本相关组件(记得取消勾选下最新版本)。

  5. 同样也在 Windows_SDK.json 文件中可找到建议的 .NET 版本。

  6. 在【单个组件】中搜索并勾选下 .NET 相关组件(记得取消勾选下最新版本)。

通过源码安装虚幻引擎

虚幻引擎支持通过 Epic Games Launcher 来安装虚幻引擎,也可以通过源码安装。一般虚幻引擎的游戏都结合 Visual Studio 和 C++ 来开发,虚幻引擎需要通过源码方式来安装。

以下是安装步骤:

  1. 确保已注册 Epic Games 账号与 GitHub 账号。

  2. 登录Epic Games 官网,进入应用与账户,连接 GitHub 账号。

  3. 登录 Github 官网,等待接收 Epic Games 加入组织的邀请。

  4. 接受邀请后进入 Unreal Engine 代码仓库,在 release 页面 下载最新版本的源码压缩包。

  5. 解压后打开命令行,进入源码目录。

  6. 执行 Setup.bat,会下载安装一些依赖,预计需要较长时间。

  7. 执行 GenerateProjectFiles.bat,生成 Visual Studio 项目文件。

  8. 双击 UE5.sln 文件以将项目通过 Visual Studio 加载。

  9. 解决方案配置设为 Development Editor (开发编辑器)。

  10. 解决方案平台设为 Win64

  11. 在右侧解决方案资源管理器中,右键 UE5,点击【生成】。

  12. 然后经过漫长的构建等待,具体时长也跟机器性能有关(我这里使用的16c64g的windows云服务器,耗时1小时42分),注意需要 0 失败,如果有发现失败的,要看下失败原因。

  13. 右键 UE5,点击【设为启动项目】。

  14. 点击启动调试。

  15. 如果一切正常,会看到虚幻编辑器启动界面。

下载 Lyra 项目

  1. 进入 Epic Games 官网

  2. 点击右上角的【下载】,下载 EpicInstaller 来安装 Epic Games Launcher

  3. 打开 Epic Games Launcher 后登录 Epic Games 账号。

  4. 依次点击【虚幻引擎】-【示例】。

  5. 点击 【Lyra Starter Game】-【创建工程】。

  6. 选择好位置,点击【创建】。

  7. 等待下载完成。

配置 Lyra 项目

  1. 将 Lyra 项目文件夹里放到 UE 源码目录下,Visual Studio 会自动识别并提示是否重新加载,点【是】。

  2. 右键 Lyra,点击【生成】。

  3. 等待生成成功。

  4. 在 Lyra 项目的文件夹下双击 UE 文件(.uproject) 的图标,在虚幻引擎中打开 Lyra。

  5. 打开成功后,会看到如下界面。

  6. 点击【编辑】-【项目设置】。

  7. 默认地图设置为 L_Expanse ,这样启动游戏客户端时会直接进入地图,而不是主菜单,方便测试。

  8. 回到主界面,依次点击【内容侧滑菜单】-【Plugins】,搜索并双击 B_ShooterBotSpawner 打开蓝图窗口。

  9. Num bots to Create 设为 0,然后点【编译】。

  10. 关闭蓝图窗口。

编译服务端

  1. 在 Visual Studio 中,解决方案配置切到 Development Server

  2. 右键 Lyra,点击【生成】。

  3. 经过漫长的等待后,在 Lyra 的 Binaries\Win64 目录下会生成 LyraServer 二进制。

编译客户端

  1. 在 Visual Studio 中,解决方案配置切到 Development Client

  2. 右键 Lyra,点击【生成】。

  3. 经过漫长的等待后,在 Lyra 的 Binaries\Win64 目录下会生成 LyraClient 二进制。

烘培服务端

  1. 按照截图勾选 开发Server

  2. 按照如下截图点击【烘培内容】。

  3. 右下角将显示一个对话框,表明内容正在烘焙。点击此对话框中的 显示输出日志(Show Output Log) ,监控烘焙过程,等待完成。

  4. 在 Lyra 的 Saved\Cooked 目录下可以看到烘培出了 WinsowServer 文件夹的内容。

  5. 在命令提示符中找到你的项目目录,并执行 ./Binaries/Win64/<PROJECT_NAME>Server.exe -log ,测试服务器是否成功运行。

烘培客户端

  1. 按照截图勾选 开发Client

  2. 按照如下截图点击【烘培内容】。

  3. 烘培完成后,在 Lyra 的 Saved\Cooked 目录下可以看到烘培出了 WinsowClient 文件夹的内容。

启动服务端和客户端

  1. 在命令行进入 Lyra 项目的子目录 Binaries\Win64

  2. 执行这个命令启动服务端:<PROJECT_NAME>Server.exe -log

  3. 执行两次这个命令,启动两个客户端,即两个玩家连上同一房间:<PROJECT_NAME>Client.exe 127.0.0.1:7777 -WINDOWED -ResX=800 -ResY=450

交叉编译服务端

  1. 下载安装交叉编译工具:https://dev.epicgames.com/documentation/zh-cn/unreal-engine/linux-development-requirements-for-unreal-engine

  2. 关闭虚幻引擎编辑器,再重新双击 Lyra 的 uproject 文件,以便用虚幻引擎编辑器重新打开 Lyra 项目,确保交叉编译的工具生效。

  3. 在 UE5 中平台选到 Linux,编译目标选到 Server,点击打包项目。

  4. 选择输出的目录,我这里直接选 Lyra 项目根目录。

  5. 等待交叉编译打包完成。

  6. 完成后可以看到选择的目录下多出一个 LinuxServer 的目录,这个就是交叉编译出来的服务端。

服务端接入 Agones

  1. 下载 Agones 最新 release 的源码压缩包并解压。

  2. sdks/unreal 下的 Agones 目录拷贝到 Lyra 项目的 Plugins 目录下。

  3. 编辑 Lyra 项目的 uproject 文件,添加 Plugins

        {
    "Enabled": true,
    "Name": "Agones"
    },

  4. 在合适的位置初始化 Agones 的 SDK,调用 SDK 的一些 hook 函数(由于本人对虚幻和C++不熟,这里省略)。

  5. 按照前面 烘焙服务端交叉编译服务端 的步骤,重新打包服务端。

参考资料