UE4编译专用服务器

最近想要编译出UE4的专用服务器,编译成单独的exe。研究了好几天,网上找了一些方法,但是均试验失败,最后发现要自己加xxx.cs才行!网上一些方法都并没有提到这个!现写下详细过程及分析,以供各位参考!


总结出几个要点:

1.要下载UE4源代码。在GITHUB上有,可以从Epic上快速找到,如下图:

UE4编译专用服务器_第1张图片


下载好以后,按顺序点击

1.setup.bat 点击以后会下载大概4G的东西,根据网速不同要几个小时吧

2.GenerateProjectFiles.bat 点击以后会生成出UE4.sln

UE4编译专用服务器_第2张图片

下载源码花了我一天时间!我把源码打包上传到网盘了,想要速度比较快的,可以到我网盘下载

http://download.csdn.net/detail/sukeychen/9593597

收5积分...实在没积分的留言我可以发你们


2.打开UE4.sln,选择解决方案配置的Development Editor,编译出UE4编辑器

UE4编译专用服务器_第3张图片


3.用这个编辑器新建的工程,就可以用来编译Server了。但是如果你要编译的是旧工程的Server也不用担心,可以改版本,效果是一样的。

右键点击工程 选择Switch Unreal Engine version...就可以选择版本了:

UE4编译专用服务器_第4张图片


4.在工程文件目录下的Source文件夹下,新建VRGameServer.Target.cs文件

文件内容类似:

// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
 
using UnrealBuildTool;
using System.Collections.Generic;
 
public class GameServerTarget : TargetRules
{
    public GameServerTarget(TargetInfo Target)
    {
        Type = TargetType.Server;
    }
 
    //
    // TargetRules interface.
    //
    public override void SetupBinaries(
        TargetInfo Target,
        ref List OutBuildBinaryConfigurations,
        ref List OutExtraModuleNames
        )
    {
        base.SetupBinaries(Target, ref OutBuildBinaryConfigurations, ref OutExtraModuleNames);
        OutExtraModuleNames.Add("Game");
    }
 
    public override bool GetSupportedPlatforms(ref List OutPlatforms)
    {
        // It is valid for only server platforms
        return UnrealBuildTool.UnrealBuildTool.GetAllServerPlatforms(ref OutPlatforms, false);
    }
 
    public override List GUBP_GetPlatforms_MonolithicOnly(UnrealTargetPlatform HostPlatform)
    {
        if (HostPlatform == UnrealTargetPlatform.Mac)
        {
            return new List();
        }
        return new List { HostPlatform, UnrealTargetPlatform.Win32, UnrealTargetPlatform.Linux };
    }
 
    public override List GUBP_GetConfigs_MonolithicOnly(UnrealTargetPlatform HostPlatform, UnrealTargetPlatform Platform)
    {
        return new List { UnrealTargetConfiguration.Development };
    }
}
GameServerTarget
改为

你项目名ServerTarget

比如我的就是改成

VRGameServerTarget

 OutExtraModuleNames.Add("Game");
改为

 OutExtraModuleNames.Add("项目名");
比如我的就是改成

 OutExtraModuleNames.Add("VRGame");

UE4编译专用服务器_第5张图片

然后在工程文件上按右键选择Generate Visual Studio project files 重新生成VS文件。


5.打开工程文件的sln(我的是VRGame.sln)

选择Development Server选项进行编译

UE4编译专用服务器_第6张图片

编译的时间会有点久,耐心等待=.=

(说明:如果不是用编译版的,直接用的下载好的版本,加入xxxserver.cs以后,也是会出现Development Server选项,但是会报错,打不开头文件,因为下载版的源代码是只能看,不能编译和重新构建的)


6.在工程目录下的Binaries下的Win64里就会出现XXXServer.exe(XXX为你自己的工程名)

我的是:

D:\VRGame\Binaries\Win64

UE4编译专用服务器_第7张图片


7.设置好默认地图,打包工程,据说不勾选Use pak file 和 full rebuild编译会快些(但是我没感觉出来有变快=.=)

UE4编译专用服务器_第8张图片

UE4编译专用服务器_第9张图片


8.把XXXServer.exe复制到打包好的文件下的Binaries下的Win64里

UE4编译专用服务器_第10张图片


9.右键把XXXServer.exe设置为快捷方式,在快捷方式里按右键->属性-> 在路径后面加 -log

就能显示出控制台了。

UE4编译专用服务器_第11张图片

UE4编译专用服务器_第12张图片


10.在客户端输入 ~open 127.0.0.1 就可以连接上服务器了

(127.0.0.1为本机,如果是在其他机子则填对应IP)

UE4编译专用服务器_第13张图片


参考网址:

http://www.cnblogs.com/moelocus/p/5599509.html

https://wiki.unrealengine.com/Standalone_Dedicated_Server

https://www.youtube.com/watch?v=zSA8zUo8oCg


你可能感兴趣的:(UE4编译专用服务器)