UE5多人射击游戏(1) 网络传输

多人游戏网络传输方法

p2p模型

两台通过网络连接到一起的电脑,互相传输数据,但是游戏版本会出现不同,并且多人游玩会引起版本差异问题

client-seever模型

一台机器为服务器,其他的机器为客户端,客户端只与服务器沟通,客户端只需要能够向服务器传输数据,并接受服务器发出的数据即可。

举例:客户端中的人物的移动只传输给服务器,并由服务器集中处理后发给其他客户端。

服务器应该是最为权威的,服务器应是最新的游戏客户端,并且客户端的游戏版本应与服务器的保持一致。

监听服务器:(例如森林联机)

游玩的一台机器作为服务器,同时也在玩游戏,也在进行图片渲染。

专用服务器:(常见于大型多人游戏,例如多人FPS)

专用服务器无人在此机器上游玩游戏,只负责接受,处理,传输数据。

UE使用的是什么?

权威client-server模型。

Net test

1.打开如图所示的第三人称项目 (项目名称必须是英文,路径也必须是英文!!!!!)

2.在UE5引擎中可以进行测试,在下方的网络模式中可以改变服务器形式

调节玩家数量为2,网络模式改为以监听服务器模式运行,此时稍大的那一个页面作为监听服务器存在,同时也是客户端一部分。(在运行的客户端中按shift + F1可以调出鼠标光标)

将玩家数量调为3,同时将网络模式调为作为客户端运行,这时的三个界面是作为客户端出现的,但是在低版本的UE中可以看到存在另外一个人物,他其实就是专用服务器的人物。

LAN Connections(LAN:local area network)

这种连接方式指的是在通过同一个网络将各个客户端连接到一起,这几个不同的机器必须处在同一个网络环境下(如同一个WIFI,或者通过同一个路由连接到一起)

设置方法:

一,蓝图设置LAN Connections

1.首先打开侧滑菜单,从之中找到ThreePerson文件夹,点击Blueprints文件

2.双击此文件中的蓝图类,之后点击完整蓝图编辑器。(因为我们要向项目中加一个功能,所以仅靠第一张截图中的功能是实现不了的)

3.首先删除自带的三个节点。(右键拖动蓝图面板)(蓝图是用来实现功能的,所以打开这个界面必定是要来实现一个功能的。)对于蓝图编辑的思路:(1)思考要实现什么功能,这里是要实现LAN(局域网)连接。(2)要实现这个功能需要什么东西(组件),【这里最好的方法是将自己代入游玩游戏的玩家,我想要LAN连接,那么就要找到这个功能入口,之后要能够加入同一局域网下的房间内。】用蓝图中的什么组件实现这个功能【不知道就查UE文档】(3)对照查询到的方法实现功能

4.(1)能够创建一个新的游戏会话,我们希望按“1”键进入一个等待大厅【这个组件赋予这个按键能力】(2)既然按“1”键进入大厅,那么先创建一个大厅(首先回到UE主界面,点击右上角的“文件”,接着点击“新建关卡”,点击basic作为等待大厅,之后在新出现的关卡界面点击“文件”,保存当前关卡,存储在ThreePerson文件中的maps文件中(名字Lobby))【单击关卡的地板,可以在右下角调节地板的大小】

注意:注意保存!!!!!!!

5.按1键进入“Lobby”,所以蓝图界面需要一个组件——openlevel(by name),可以打开我们刚建立的等待大厅,该组件第一行填入关卡名字,最后一行设置该关卡的服务器模式,此处设置为Listen,使得能够从多个连接到此关卡的玩家接受信息。

2.但是1键功能只实现了跳转关卡的功能,如何使得其他机器连接到这个关卡呢?2键可以实现这样一个功能,即让其他机器连接到这个关卡,让其他机器连接到主持游戏会话的机器上,实现局域网联机。组件Execute Console实现目前机器可连接到同一局域网下的另一台电脑,仅需对象电脑的IP地址。此组件的第一行实现连接到特定IP。填入“Open IP”

本次主要学习多人射击游戏的网络连接的多种方法,并利用UE的蓝图功能实现局域网连接,接下来将学习如何利用C++代码使用局域网连接。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值