KBEngine官方论坛

 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 配置 开服
查看: 2523|回复: 2

ue4服务器编译(记录一下)

[复制链接]

30

主题

7138

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
16457
QQ
发表于 2016-2-19 09:57:54 | 显示全部楼层 |阅读模式
  1. 1: 不能使用官方编译好的UE4,貌似不带服务器功能
  2. 2:想编译服务器需要创建一个cs,例如GameServer.Target.cs文件,用右键菜单重新生成VS项目文件将服务器编译选项加入到项目中
  3. D:\Unreal Projects\Game\Source:
  4. // Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.

  5. using UnrealBuildTool;
  6. using System.Collections.Generic;

  7. public class GameServerTarget : TargetRules
  8. {
  9.     public GameServerTarget(TargetInfo Target)
  10.     {
  11.         Type = TargetType.Server;
  12.     }

  13.     //
  14.     // TargetRules interface.
  15.     //
  16.     public override void SetupBinaries(
  17.         TargetInfo Target,
  18.         ref List<UEBuildBinaryConfiguration> OutBuildBinaryConfigurations,
  19.         ref List<string> OutExtraModuleNames
  20.         )
  21.     {
  22.         base.SetupBinaries(Target, ref OutBuildBinaryConfigurations, ref OutExtraModuleNames);
  23.         OutExtraModuleNames.Add("Game");
  24.     }

  25.     public override bool GetSupportedPlatforms(ref List<UnrealTargetPlatform> OutPlatforms)
  26.     {
  27.         // It is valid for only server platforms
  28.         return UnrealBuildTool.UnrealBuildTool.GetAllServerPlatforms(ref OutPlatforms, false);
  29.     }

  30.     public override List<UnrealTargetPlatform> GUBP_GetPlatforms_MonolithicOnly(UnrealTargetPlatform HostPlatform)
  31.     {
  32.         if (HostPlatform == UnrealTargetPlatform.Mac)
  33.         {
  34.             return new List<UnrealTargetPlatform>();
  35.         }
  36.         return new List<UnrealTargetPlatform> { HostPlatform, UnrealTargetPlatform.Win32, UnrealTargetPlatform.Linux };
  37.     }

  38.     public override List<UnrealTargetConfiguration> GUBP_GetConfigs_MonolithicOnly(UnrealTargetPlatform HostPlatform, UnrealTargetPlatform Platform)
  39.     {
  40.         return new List<UnrealTargetConfiguration> { UnrealTargetConfiguration.Development };
  41.     }
  42. }

  43. 3:使用vs分别编译出development和development_server
  44. 4:使用editor打包
  45. 5:将编译出的development_server,exe文件放置到打包的目录中
  46. D:\Unreal Projects\out\WindowsNoEditor\Game\Binaries\Win64
  47. 6:使用cmd启动 GameServer.exe -log
  48. 7: 启动客户端,分别在客户端中按`, 输入open 127.0.0.1进入服务器





  49. Linux服务器编译:
  50. 1: 下载http://cdn.unrealengine.com/qfe/v4_clang-3.5.0_ld-2.24_glibc-2.12.2.zip并安装
  51. 设置系统环境变量如:LINUX_ROOT=D:\v4_clang-3.5.0_ld-2.24_glibc-2.12.2\toolchain

  52. 2:清空之前的unreal环境,建议重启一下系统

  53. 3:执行D:\unreal_engine\UnrealEngine-4.9.2-release
  54. Setup.bat
  55. GenerateProjectFiles.bat

  56. 4:编译UE4, 先选择Linux版本编译(后面项目编译时需要得到一些.a库),再编译win64版本编辑器

  57. 5:按照上面一章内容创建一个c++服务器项目,用vc打开项目, 直接按f5进入到编辑器, 选择菜单->打包->Linux

  58. 6:回到vc中, 按照上一章节编译出Linux版本服务器,并将编译出的可执行文件放到上面打包出来的文件夹中(如:D:\Unreal Projects\out\LinuxNoEditor\Game\Binaries\Linux)

  59. 7:将整个包上传到linux下执行可执行文件即可
复制代码


热爱游戏、热爱开源!
柯标
3603661@qq.com

柯标
3603661@qq.com
回复

使用道具 举报

2

主题

48

帖子

140

积分

注册会员

Rank: 2

积分
140
发表于 2017-10-19 16:10:29 | 显示全部楼层
kbe, 您好, 上面是  DedicatedServer  的编译方法 , kbengine_ue4_demo 中实现了像 DedicatedServer  这样玩家的所有属性传递了吗?
回复

使用道具 举报

5

主题

3497

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2018-7-10 18:06:32 | 显示全部楼层
实现了
QQ:3603661
3603661@qq.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|KBEngine Forum

GMT+8, 2018-12-10 18:21 , Processed in 0.029412 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表