UE4:专属服务器实例

生成专属服务器的服务端:    

1. 下载源码版UE(自行百度)

2. 分别编译 DebugGameEditor版和DebugGameServer版

3. 运行DebugGameEditor,创建C++模板

4. 打开项目目录下的Source文件夹,复制一份GameName.Target.cs,重命名为GameNameServer.Target.cs,并把该文件拖入VS,修改如下:

  5. 返回上一层目录,右击.uproject文件,生成。

  6. 编译GameName的DebugGameServer版

 

移动同步:

在Controller的头文件里添加:

reliable表示TCP,unreliable表示UDP

在CPP里添加实现:

添加头文件:#include "Blueprint/AIBlueprintHelperLibrary.h"

 

 人物退出:

 

   

打包:

打包之前先创建一个登陆关卡,点击登陆按钮之后打开游戏默认地图。

1. 创建一个登陆地图

  2. 创建一个登录按钮,蓝图如下:

  3. 登录关卡蓝图如下:

 4. Project setting设置打包地图和默认地图:

打包地图

 默认地图

  5. 打包客户端:File -> Package Project -> Windows

 6. 打包服务端:选择DebugGameServer -> 生成

 7. 打包完成之后,将 Binaries/Win64/MobyGameServer-Win64-DebugGame.exe 文件 copy 到 WindowsNoEditor\WindowsNoEditor\MyGame\Binaries\Win64 下

 8. 写一个批处理脚本:WindowsNoEditor\WindowsNoEditor\MobyGame\Binaries\Win64\MobyGameServer-Win64-DebugGame.exe -log 以便能看到服务端的输出日志

 9. 启动脚本,再启动客户端。每次改动都要重复步骤5-7。 

 

部署到阿里云

1. 创建一个保存IP的TXT文件,直接从TXT文件里读取阿里云ESC公网IP。

    该文件放在客户端打包文件的Content目录下。

 文件内容就是ECS公网IP 加上端口号 7777 (要在安全规则里自己添加)

 

     添加可以读写文件的库,过程参考:UE4文件读写

2. 将打包完成后的文件夹复制一份,去掉客户端exe文件,作为服务端,压缩成ZIP格式。

3. 远程桌面连接到阿里云ECS服务器,拷贝服务端ZIP文件,解压缩。

4. 运行批处理脚本(可能会报错,缺少DLL文件,一个个拷贝到System32,不用注册)

5. 客户端登录按钮的蓝图修改如下:

 

 6. 客户端打包,完成。

posted @ 2022-04-20 11:04  番茄玛丽  阅读(730)  评论(0)    收藏  举报