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. 客户端打包,完成。

浙公网安备 33010602011771号