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

news2025/1/16 5:50:53

参考视频:
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://docs.unrealengine.com/4.26/en-US/InteractiveExperiences/Networking/HowTo/DedicatedServers/

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
在这里插入图片描述

内容修改为:
在这里插入图片描述
修改了三处位置。
然后,重写生成工程文件:
在这里插入图片描述
在这里插入图片描述
生成好之后,打开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、为啥把编译好的server的exe,拷贝到打包的exe中,才能运行,这个不知道为啥。
在这里插入图片描述
也许是缺少打包的一些资源吧,不明白。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于STM32CUBEMX驱动多个VL6180X

概述 VL6180X是基于ST FlightSense™专利技术的最新产品。这是一个突破性的技术,实现了独立于目标反射率的绝对距离测量。现有技术通过测量反射光的光量来估算距离,这种方法的最大缺点是被测物体的颜色和表面对测量精度影响很大,而VL6180X则…

云端办公后,协同软件也能轻松做好项目管理

最近很多朋友在后台问我,数字化移动办公环境下如何做好项目管理,但是问题不够聚焦,所以我决定从自己的理解出发,分享一下项目管理的一些心得。需要说明的是,传统项目管理和互联网项目管理存在很大的差异,尤…

MyBatis源码(二)如何执行sql

前言 接着environmentElement获取数据源信息后,同级执行代码的mappersElement。 Mybatis源码(三)如何操作数据库 MyBatis源码(二)如何执行sql Mybatis源码(一)获取数据源 结构小结 分析ma…

Leetcode 2. 两数相加(高精度加法模板)

Leetcode 2. 两数相加 题目 思路 链表从头开始存放数据的个位十位 百位新建一个链表C,将链表A和B每一个相加的结果存放在C中,注意加法的进位 代码 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode n…

实力领航|万应智谷云平台成功入选2022中国互联网大会“互联网助力经济社会数字化转型”特色案例

近日,以“发展数字经济 促进数字文明”为主题,由工业和信息化部、深圳市人民政府主办,中国互联网协会、广东省通信管理局、深圳市工业和信息化局等单位承办的2022(第二十一届)中国互联网大会在深圳国际会展中心召开。开…

【超多代码、超多图解】Node.js一文全解析

目录一、Node.js简介1.1什么是Node.js1.2 Node.js可以做什么1.3 Node.js的安装1.4 Node.js的使用二、模块化处理2.1 什么是模块化2.2 内置模块2.2.1 fs文件系统模块(1)基本用法(2)防止动态拼接(3)路径问题2.2.2 path内置模块2.2.3…

前缀函数与KMP算法

一,前缀函数 1,定义 该函数存储一个字符串的各个长度的子串真前缀与真后缀相等的长度(注意,真前缀最多长度为n-1,不包含最后一个字符,真后缀同理,不包含第一个字符) 用p[i]数组储…

【LeetCode每日一题】——744.寻找比目标字母大的最小字母

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 二分查找 二【题目难度】 简单 三【题目编号】 744.寻找比目标字母大的最小字母 四【题目描述…

【小5聊】基础算法 - 实现字符串1到N位长度的组合关键词

在本篇文章中,我们讲一起了解下基础算法的运用 在程序开发里,算法无处不在,掌握算法才能更好的提高程序效率和质量 【算法返回效果】 【实现的功能描述】 当前算法主要实现输入一定长度的字符串后,能够返回按顺序1个字符长度、…

第二证券|七位投资专家指点2023 战略性看好A股 市场将提供更多机会

2022年行将收官,2023年新征途行将开启。 阅历了本年的一波三折、震动大跌,2023年A股商场将怎么演绎?有哪些时机值得注重?哪些危险要素需求留意? 对此,我国基金报记者专访了来自公募、券商资管、私募的七位…

Vjudge如何绑定洛谷账号

因为洛谷不支持Vjudge的bot提交,一个学弟问我才发现。要绑定洛谷账号才能在vj本地提交,绑定的方法也很奇怪,方法如下。 在题目来自洛谷的题目界面点击提交,出现如下界面。 发现没有bot提交选项,只能选择My Account,点…

NetInside网络攻击分析帮您轻松发现网络异常

分析概述 分析概述从以下四点做介绍。 故障信息来源 根据网络管理老师提供信息,29日上午7点半到9点时分,网络出现过故障。 分析对象 使用NetInside全流量分析系统对改故障进行分析。 分析思路 1、对比分析故障时段与非故障时段总流量信息。 2、对…

硬盘数据恢复的方法有哪些?这五种恢复方法你知道吗

硬盘通常泛指电脑硬盘,也可以将其定义为电脑数据的“载体”。硬盘的主要作用是存储数据,它具有读写速度快、耗能低、体积小等优势,但是在使用过程中,总会遇到硬盘数据丢失问题,比如受病毒感染、误格式化、误删除、操作…

C++中的多态(概念篇)

多态的概念 通俗来说,就是多种形态,具体点就是去完成某一个行为,不同的对象去完成时会产生出不同的状态。比如最常见的买票,学生为半价,成人为全票。 多态的分类 静态的多态:如函数重载,看起…

【Linux入门指北】 网站服务

网站服务 文章目录网站服务一、简介二、静态站点三、动态站点1.LAMP2.部署论坛系统discuz3.部署博客系统 wordpress4.部署网上商城 ecshop5.部署网校系统edusoho一、简介 1.前言 UI的转变:B/S架构 2.名词 HTML( HyperText Markup Language)…

Arduino 简易屏显电子温度计

Arduino 简易屏显电子温度计一、前言二、硬件要求三、参数基础四、原理剖析五、实验思路六、程序概要七、arduino使用接线八、成果展示九、总结一、前言 温度计的使用,在日常生活中随处可见,电子行业也有相应的温控传感器设备,不管的是电子芯…

单片机实训day6——Proteus8.6版本+ STM32F103驱动LCD12864显示Keil5程序设计

内 容:实现LCD显示 学 时:4学时 知识点:LCD12864芯片介绍,读写操作时序,电路设计 重点: 读写操作时序 难点:读写操作时序 时间:2022年12月26日 9:00~11:50 总结&…

抖音小程序实践一:申请初始化

一、官方文档与实践 抖音小程序是什么?从官方视频了解 从2022年开始,字节跳动就开始火力全开的与知名企业合作,推动抖音小程序的孵化,然后逐步开放普通企业争相进入抖音小程序领域,来分一分流量的红利。 巨量星图抖…

微信小程序----使用发布订阅模式

目录 前言 小程序使用PubSubJS 获取 PubSubJS npm 构建 使用pubsub-js 1、使用publish发布消息 2、使用subscribe函数订阅消息 前言 发布-订阅模式 又叫 观察者模式。 它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于…

excel图表设计:如何让数据变化更加可视化

挖掘数据背后的意义,不能只是单纯的将原始数据,从数字变成图表;而是要让数据变化具现出来,能直观看到其变化形态。 在我们的实际工作中,通常会看到很多类似下面这种架构的数据。 【正文】 因为这样的数据是非常常见的…