参考视频:
B站的视频:
https://www.bilibili.com/video/BV1wk4y1m7wz/?spm_id_from=333.337.search-card.all.click&vd_source=d33b44674c517c8b7928e8d3ac316b37

YouTube的视频:
https://www.youtube.com/watch?v=AKiGajA7AXM
和上面的视频是一个,但可以打开英文字幕对照下哦。

https://www.youtube.com/watch?v=ad5MZLSDAZk
这个视频更简洁一些,但是不包括源码编译,要找这个系列的另外一个教程。

官方参考网址:
https://docs.unrealengine.com/4.26/en-US/InteractiveExperiences/Networking/HowTo/DedicatedServers/

dedicated server:是专用服务器的意思

1、下载源码,这个要使用git hub账户,授权一波才行。


下载好之后解压,主要不要有中文路径。

2、执行Setup.bat文件,这是下载依赖,注意此时要关闭360等杀毒软件,否则在你离开的时候下载,会弹出授权框,而你又没有授权,导致下载失败:


执行完1之后,点击2,生产vs的.sln工程文件。
使用vs或者rider打开UE5.sln

选择:Development Editor,Win64
然后右键UE5,Build即可。

视机器性能而定,编译时常长达若干小时,我的是耗费约1.5个小时左右:

3、使用编译好的unreal 引擎创建一个新的项目

在目录:I:\unreal5.1\UnrealEngine-5.1.0-release\Engine\Binaries\Win64
下找到UnrealEditor.exe,双击执行。
等待引擎加载好资源,等吧,会运行起来的。

耐心等待打开引擎即可。这里如果没有安装GeForce驱动的可以直接忽略,点击否跳过即可。




ok,至此unreal的引擎源码编译是完成了,为你点赞。

接下来才是关键哦,用这个编译好的引擎,创建一个C++的&&第三人称的空项目。第一人称的说是同步有问题:

点击确定之后,会自动打开vs。注意这里构建选择的是:Development Editor和Win64
我的理解这里构建Development Editor是为了下面用引擎打开项目,创建地图使用,而所以是Development Editor。

右键你的Games下的工程,进行Build即可。


构建好之后,关闭这个vs即可。

4、打开构建好的项目,创建服务器的地图。

找到之前编译好的ue,打开这个项目:


这个就是刚才你创建的那个空项目哦。我为啥讲这个使用自己编译好的ue打开呢,因为如果你之前安装过ue,那如果双击DedicatedServerDemo.uproject
我不知道是使用的是安装的ue还是自己编译好的ue打开的。为了一致性,还是使用自己编译好的引擎打开这个DedicatedServerDemo.uproject即可。

创建服务器的地图:


这里选择一个Basic即可:

创建一个名字为ServerMap的关卡,并且创建一个Actor,用来提示这个是服务器的关卡。这里上面的红字Server是一个蓝图:

弄好这个actor之后,直接拖到ServerMap中,设置好大小、缩放,让其更加明显一点即可。当然你不做这个actor也无法所谓。只有ServerMap也是可以的。这里这是视频里说的,为了更好的提示当前进入了服务器的关卡而已。

设置打包选项:


在Server Default Map中选择自己创建的那个ServerMap即可。其他的Editor Startup Map无所谓,毕竟这是编辑器运行第一个关卡;然后是GameDefaultMap,这个选择客户端运行时的第一个关卡,这个你可以随便选择一个即可。这里也不是重点。
其实说到这里,我们应该理解一个概念:
即使服务器运行一个关卡,客户端一开始运行也有一个关卡,那两个客户端怎么可见呢,那就要共同进入一个服务器的关卡,就这么简单。
至于未进入之前两个客户端开始的关卡,这个随便定义,你可以是一个登录场景+选服界面也是可以的。

设置打包选项:

添加一个客户端地图,和一个服务器地图。这类似于unity的将各个scene添加到build setting里面。

等待客户端编译好,这个打包客户端的过程还是很长的。

构建好这个客户端,是直接可以运行的。

双击即可运行。

没事儿,直接点击否也可以。

如何退出呢?
按住键盘上的~键,然后输入quit或者exit即可。

6、准备构建一个服务端
服务端也是一个应用程序,代码是在客户端的基础至少,稍加修改,挺神奇的。

找到引擎源码目录下的:I:\unreal5.1\UnrealEngine-5.1.0-release\Engine\Source\UnrealServer.Target.cs
拷贝到,之前的客户端项目中的源码位置处,如下:
I:\OGL\DedicatedServerWorkspace\DedicatedServerDemo\Source

稍微修改,将名称改为:DedicatedServerDemoServer.Target.cs

内容修改为:

修改了三处位置。同时注意这里的11行代码,TargetType.Server类型。
然后,重写生成工程文件:


生成好之后,打开DedicatedServerDemo.sln:


右键DedicatedServerDemo,选择Build即可:


编译好之后。

拷贝到:我们打包的那个exe目录下:I:\OGL\DedicatedServerWorkspace\clientexe\Windows\DedicatedServerDemo\Binaries\Win64

为创建快捷方式,然后追加空格-log即可:
I:\OGL\DedicatedServerWorkspace\clientexe\Windows\DedicatedServerDemo\Binaries\Win64\DedicatedServerDemoServer.exe -log

然后双击运行这个服务器。

然在双击运行客户端两个:

此时他们是互不可见的,然后在敲入连接服务器的指令:
在两个客户端,分别按下键盘上的~,弹出对话框:

可以看到左边的那个客户端,已经进入了服务器:

然后在右边的客户端也执行此命令:open 127.0.0.1

此时双方都可见了:

同时你还可以进一步的观察服务器的log窗口输出了啥:

至此,服务器的搭建完成了。

这里注意几个点:
1、打包后的exe默认是全屏运行方式,不太好运行另外一个客户端,此时可以使用f11,退出全屏,缩小此窗口,运行多个客户端测试。
2、alt+f4关闭当前的客户端
3、为啥把编译好的server的exe,拷贝到打包的exe中,才能运行,这个不知道为啥。

也许是缺少打包的一些资源吧,不明白。
4、可以直接这么打包服务器:

选择DedicatedServerDemo或者DedicatedServerDemoServer后,然后点击Package Project,就可以得到客户端和服务器的包了。
服务器的包,编译时间相对较长,耐心等待。

这样的话,就可以生成对应的两个可执行文件了。

unreal编译源码搭建dedicated server的流水账——但是细相关推荐

  1. PCL-1.8.1从源码搭建开发环境三(QHULL库的编译)

    原文首发于微信公众号「3D视觉工坊」:PCL-1.8.1从源码搭建开发环境三(QHULL库的编译) 首先,介绍一下QHull库. QHull是一个开源的程序软件,用来研究解决凸包问题,生成凸包形体.官 ...

  2. PCL-1.8.1从源码搭建开发环境二(FLANN库的编译)

    原文首发于微信公众号「3D视觉工坊」,PCL-1.8.1从源码搭建开发环境二(FLANN库的编译) 首先,快速近似最近邻搜索库FLANN-Fast Library for Approximate Ne ...

  3. 二、ceph编译源码、单机搭建调试环境

    2019独角兽企业重金招聘Python工程师标准>>> 准备一台机器: root@test3:~# cat /proc/version Linux version 3.13.0-32 ...

  4. CentOS7.2中使用Kubernetes(k8s)1.4.6源码搭建k8s容器集群环境

    一.相关准备工作 1.1.准备工作 准备至少两台已安装好CentOS7.2操作系统的物理机或者虚拟机(本文配置时使用的是三台KVM虚拟机): 设置hostname命令: hostnamectl set ...

  5. CentOS 6.7 源码搭建LNMP架构部署动态网站环境

    源码搭建LNMP架构部署动态网站环境 Nginx 简介 Nginx是一款相当优秀的用于部署动态网站的服务程序,Nginx具有不错的稳定性.丰富的功能以及占用较少的系统资源等独特特性. Nginx (& ...

  6. ubuntu配置android开发环境和编译源码遇到的一些问题

    ---------------------------------------------环境变量设置--------------------------------------------- 1.设 ...

  7. 直播源码搭建教程之直播流媒体

    直播源码搭建教程之直播流媒体 前言 这段时间在搭建一个IPCamera项目服务器.视频点对点通话,客户端会查看设备端的音视频实时流.为了省流量,是通过P2P进行穿透.但是由于NAT设备的原因和IPV4 ...

  8. 源码搭建Lump环境

    CentOS6.3+Apache2.2+php5.3.8+Mysql5.5.4源码搭建Lump环境 CentOS6.3 Apache2.2 php5.3.8 Mysql5.5.4 一.系统环境 虚拟机 ...

  9. Squid 代理服务器 编译源码 伪造HTTP_X_FORWARDED_FOR 请求头

    本实验操作系统选用 CentOS release 5.6 (Final) 实验目的实现 Squid 代理服务器 编译源码 伪造HTTP_X_FORWARDED_FOR  请求头 .使其显示任意IP 过 ...

  10. 从源码搭建PCL1.7.2+vs2015+win10

    PCL是处理三维点云的第三方C++库,功能强大,在三维领域,其地位与二维领域的opencv相当.可以直接使用All-In-One installer 安装.也可以使用源码搭建PCL. 从官网下载源码. ...

最新文章

  1. Myeclipse的workspace配置文件浅谈
  2. 缓存初解(四)---Ibatis的缓存配置+Ehcache
  3. directly to phd is good for laying a solid foundation for future career
  4. ADO.NET 数据连接查询
  5. java 静态方法 调用非静态方法_面试官:为什么java中静态方法不能调用非静态方法或变量?...
  6. 阿里云SLB负载均衡与使用SSL域名证书
  7. 国家和货币(符号/图片)数组(countries and currency symbol array)
  8. 打不开_笔记本电脑摄像头打不开怎么办
  9. Android实战开发--三种地图类型的设计
  10. 雷霄骅《基于 FFmpeg + SDL 的视频播放器的制作》源码在VS2017中编译的兼容性问题
  11. python画一棵树的心理测试_心理测验:空白纸上画棵树,破除心防从这里开始
  12. 计算机显示错误屏幕,如何解决显示器分辨率错误
  13. 知识图谱-第三方工具:LibKGE(用于Knowledge Graph Embedding)【包含多种模型:TransE、DistMult、ComplEx、ConvE、Transformer等】
  14. MUI初体验 模仿微信页面
  15. 英语基础-主语、宾语、表语、同位语
  16. Chef 环境的安装及使用
  17. echarts简单的折现数据可视化(需要引入echarts文件)
  18. AMD,CMD,UMD 三种模块规范 写法格式
  19. iOS_Application
  20. 敏捷思维-架构设计中的方法学

热门文章

  1. WSL1安装rust报错thread ‘main‘ panicked的解决方法
  2. Win7一键还原系统的方法【系统天地】
  3. 【修真院web小课堂】如何理解html结构的语义化
  4. 加载插件Apk中的类
  5. 蘑菇战争 2 for Mac游戏介绍
  6. 从雷达拼图中提取回波数据
  7. 图的应用:骑士周游问题
  8. eclipse常用的搜索快捷键
  9. 什么是BI、什么是ETL?一篇文章告诉你
  10. 自己使用的jquery公用common.js