首页 > 其他分享 >什么是DS(Dedicated Server)

什么是DS(Dedicated Server)

时间:2023-06-08 17:24:22浏览次数:48  
标签:Dedicated 同步 游戏 代码 Server 服务器 DS 客户端

本片博客参考:UE5 Dedicated Server专用服务器与网络同步

因为我之前是参与Web后端开发的,所以对游戏的服务器的理解还停留在上学时,也就是客户端不参与实际的运算,所有的运算与数据的下发都由服务器去控制,然后前后端分离。

首先我们需要明确一个认知—UE5的客户端代码和服务器代码是一体的,即两端的代码实际上是混杂在一起的。我们经常听到一种说法叫“前后端分离”,就是服务器干服务器的,客户端干客户端的,二者各为两个工程互不干扰,互相之间通过TCP或者UDP进行通信。而UE5的模式则是客户端和服务器不分离,同在一个工程之中,互相之间的代码使用宏来区分。两种方式各有各的好处。

什么叫共用一套代码呢?这就不得不牵扯到游戏同步模式了。

什么是游戏同步模式?

*以下均摘自参考博文*

​ 游戏网络同步的方式一般分为两种方式,P2PC/S

​ P2P即每一台客户端之间互相直连,这种方式的同步极为复杂,对联机游戏来说基本已经淘汰了;C/S即经典的客户端/服务器模式。

​ C/S又可细分为两种,一种是由一个客户端做主机,其他的客户端连接这个主机来进行网络同步,主机即拥有服务器功能也拥有客户端功能,这种模式多用于局域网联机,这种模式中每一个客户端都可以成为主机;一种是单独剥离服务器的功能,服务端只处理服务器相关的业务,所有的客户端都通过连接服务器来进行网络同步,同时客户端只留下客户端相关的业务,这就是网游中最常用的模式了。

ok,在了解完游戏同步模式之后。我们现在就来解释共用一套代码是什么意思:

什么叫客户端与服务器共用一套代码?

​ 当单机游玩的时候,游戏是不连服务器的,此时客户端需要自己能处理一系列的游戏逻辑,所以这部分代码需要写在客户端中。

​ 然后当你需要进行联机游戏的时候,游戏逻辑的判断需要在服务器上进行判断,并由服务器给其他客户端进行同步,但是你已经把这段代码写到客户端的部分里了,然后又不想又写一份一样的,所以UE采用了服务器与客户端共用一套代码这样的形式,并且会在代码片段前添加上宏来标识是服务器还是客户端的,并且会提供编译客户端还是服务器的选项。

DS就是在一体的代码中剔除了不需要的部分(UI与渲染等)而引出来的服务器,让我们回到标题

什么是DS(Dedicated Server)

​ 我们这里要学习的ds服务器就是从这个一体的工程中单独剥离出来的一个服务器,为什么要剥离呢?如果不剥离,网络同步就变成了C/S模式的第一种情况了,但是大多数情况下服务器是不需要场景渲染,人物控制这些客户端业务的,剥离出来可以减轻服务器的运行压力。

​ Dedicated Server服务器简称ds服务器,是UE5用于解决FPS同步问题的一种专用服务器,UE5在UDP上自己做了一层根据游戏特点专门优化的网络协议(epic不愧是fps起家的

标签:Dedicated,同步,游戏,代码,Server,服务器,DS,客户端
From: https://www.cnblogs.com/Vikyanite/p/17467130.html

相关文章

  • DSP网课笔记 ξ0_introduction
    网课链接(是一个开设给研究生的课程)离散时间信号处理吴炳飞概论课程目标是建立基本的DSP观念DSP的研究对象:信号要将模拟信号转换为数字信号,必须知道所研究信号的特性(对数字的敏感)......
  • ZOJ - 3932 Handshakes (技巧)握手
    TimeLimit: 2000MS MemoryLimit: 65536KB 64bitIOFormat: %lld&%lluZOJ-3932HandshakesSubmit StatusDescriptionLastweek, n studentsparticipatedintheannualprogrammingcontestofMarjarUniversity.Studentsarelabeledfrom1to n.Theycame......
  • 【体验有奖】玩转 AIGC,函数计算 x 通义千问预体验,一键部署AI应用赢Airpods
    玩转AIGC,基于函数计算FC部署通义千问预体验从文字生成到图片生成,AIGC的创造力让人惊叹,更多的人开始探索如何使用AI提高生产效率,激发更多创作潜能,然而在实际应用中,AI技术的高门槛让很多人望而却步,普通开发者和零编程经验的人是否也能简单快速地部署一个AI模型应用,享受到......
  • DSPC174 3BSE005461R1嵌入式卡件ABB
    DSPC1743BSE005461R1嵌入式卡件ABBDSPC1743BSE005461R1嵌入式卡件ABB 为您的过程选择PLC或控制器非常重要,因为它有助于成本优化。要确定最适合用于自动化任务的PLC,需要考虑几个基本因素:必要的输入/输出能力所需的I/O类型所需内存大小CPU和指令集所需的速度和功率......
  • P3498 [POI2010]KOR-Beads 题解
    前言:最近在做哈希的题,发现了这道好题,看题解里很多大佬的方法都很巧妙,自己就发一个较为朴素的方法吧。题意:题目传送门给你一个序列,需要求出数k,使划分的子串长度为k时,不同的子串数量最多。还要注意几件事:子串可以反转,比如(1,2,3)看做与(3,2,1)相同。如果不能正好划......
  • ZLMediaserver按需拉流
    按需拉流,可能数据源不存在,客户端告诉流媒体服务器我要拉这个源,然后流媒体服务器立刻去拉IPC或者存储设备;一般情况的拉流都是流已经注册到媒体服务器,或者说已经通过代理拉好了,客户端在去RTSP/RTMP/WS预览;1国标1.1客户端发送URL拉流,1.2流媒体服务器判断有人拉流,如果流不存在,o......
  • golang导入私有仓库报错:“server response: not found:xxx: invalid version: git ls
    1.问题:goget导入私有仓库报错➜goget"devops.gitlab.xxx.com/test/kafka-utils"go:devops.gitlab.xxx.com/test/[email protected]:verifyinggo.mod:devops.gitlab.xxx.com/testo/[email protected]/go.mod:readinghttps://goproxy.cn/sumdb/sum.golang.org/......
  • #yyds干货盘点#用Python实现简单的图像识别
    在这篇文章中,我们将使用Python和TensorFlow来实现一个简单的图像识别系统。我们将使用经典的MNIST数据集,这是一个包含手写数字的数据集,用于训练和测试图像识别系统。一、准备环境首先,我们需要安装所需的库。在这里,我们将使用TensorFlow和Keras。您可以使用以下命令安装这些库:pip......
  • 4_How to Host Multiple Websites on One Server
     地址:https://www.codewithharry.com/blogpost/host-multiple-websites-ubuntu-vps/  HowtoHostMultipleWebsitesonUbuntuVPS?Anapache2webserverprovidesrobustnessandscalabilityforhostingmultiplewebsitesonyourUbuntuVPS.Thismeansyoucan......
  • #yyds干货盘点#HCL防火墙WEB方式登录配置
    HCL防火墙WEB方式登录配置ComwareV5防火墙中存在区域优先级的概念,以及默认区域互访策略,即高优先级安全区域可以访问低优先级,低优先级区域不能访问高优先级区域,相同优先级区域可以互访,所有区域都可以访问local区域。出于安全性的考虑,ComwareV7摒弃了V5中区域优先级的概念以及默认......