首先需要下一个源码版的UE4,并且编译好Development Editor 版本,然后新建一个ThirdPerson C++项目测试
进去后新建一个entry关卡,并且把ThirdPersonExampleMap移动到内容的Maps下,如图
然后在entry关卡的关卡蓝图里写上
这里open的是自己的IP地址
然后把ThirdPersonExampleMap里的默认角色删除
最后在项目设置里面设置
然后全部保存完后关闭编辑器
接下来找到项目路径Config下的DefaultEngine.ini文件,并添加下面模块
[OnlineSubsystem]
DefaultPlatformService=Null
找到项目路径Source下的XXXEditor.Target.cs文件,复制一个在当前目录下并且重命名XXXServer.Target.cs并且添加代码
using UnrealBuildTool;
using System.Collections.Generic;
[SupportedPlatforms(UnrealPlatformClass.Server)]
public class UTUTServerTarget : TargetRules
{
public UTUTServerTarget(TargetInfo Target)
{
Type = TargetType.Server;
bUsesSteam = true;
}
//
// TargetRules interface.
//
public override void SetupBinaries
(
TargetInfo Target,
ref List<UEBuildBinaryConfiguration> OutBuildBinaryConfigurations,
ref List<string> OutExtraModuleNames
)
{
OutExtraModuleNames.Add("UTUT");
}
}
上面只要把UTUT改成项目名称就可以了,另外不同引擎版本的写法也不一样,这里是4.15版的,其他的可以参考最后的网站
然后右键蓝色的项目图标,编译下,把刚刚的XXXServer.Target.cs文件添加到VS里
然后打开VS项目在Build.cs下添加"OnlineSubsystemNull"模块
编译下项目和Programs
然后用VS打开项目确保更新
接着关闭编辑器,从项目的编辑器打开,不要从VS的编辑器打开,这点很重要,不知道为什么从VS打开的编辑器就是打包不了项目
下面就是打包项目了
最后VS里再编译项目一个Development Server版本的项目
在项目的Binaries\Win64会多出几个server应用
只要复制这个到打包文件下并且创建一个快捷方式
然后右键快捷方式-属性加上-log(表示服务器可以被看到有日志信息,也可以点上面的Server,在后台运行)
双击点开快捷方式出现如下图就表示成功了
这里默认的端口是7777,并且可以看自己的IP
最后点开客户端应用程序测试下
看,成功了呢!
参考:https://wiki.unrealengine.com/Dedicated_Server_Guide_(Windows_%26_Linux)