游戏制作需要用为什么游戏连接不到服务器器吗

在编写网络游戏的时候到底使鼡UDP还是TCP的问题迟早都要面对。

一般来说你会听到人们这样说:“除非你正在写一个动作类游戏否则你就用TCP吧” 或者是 “你能够在MMO游戏中鼡TCP,因为魔兽世界就用的TCP!”

遗憾的是,这些观点都没有反映这个问题的复杂性

首先,说明一下我之前主要是用TCP进行网络编程。我曾为┅个流行的在线纸牌游戏编写服务器了好几年在高峰期我们的每台服务器能够承受4000到10000个连接(同一台物理机器上有多个服务器进程在跑)都没有问题。在我来看TCP是一种安全而且常见的选择。

尽管如此我们最新的项目却是使用UDP协议,而且我们的项目无法通过任何方式在TCP丅工作事实上,项目一开始使用的TCP但是后来发现我们使用TCP无法达到我们需求的连接数量时,我们只能换成UDP了

在使用中TCP表现怎么样呢

從原理上,TCP的优势有:

任何一个和TCP打过交道的人都知道要实现一个稳定的TCP网络连接,需要处理各种隐藏的坑比如断线检测、慢速客户端响应阻塞数据包,对开放连接的各种dos攻击阻塞和非阻塞IO模型等等。

除了上面列出的这些问题外一个好的TCP模块确实不好编码实现。

但昰TCP最糟糕的特性是它对阻塞的控制。一般来说TCP假定丢包是由于网络带宽不够造成的,所以发生这种情况的时候TCP就会减少发包速度。

茬3G或WiFi下一个数据包丢失了,你希望的是立马重发这个数据包然而TCP的阻塞机制却完全是采用相反的方式来处理!

而且没有任何办法能够繞过这个机制,因为这是TCP协议构建的基础这就是为什么在3G或者WiFi环境下,ping值能够上升到1000多毫秒的原因

UDP相对TCP来说既简单又困难。

举个例子來说UDP是基于数据包构建,这意味着在某些方面需要你完全颠覆在TCP下的观念UDP只使用一个socket进行通信,不像TCP需要为每一个客户端建立一个socket连接这些都是UDP非常不错的地方。

但是大多数情况下你需要的仅仅是一些连接的概念罢了,一些基本的包序功能以及所谓的连接可靠性。可惜的是这些功能UDP都没有办法简单的提供给你,而你使用TCP却都可以免费得到

这也是人们为什么经常推荐TCP的原因。在用TCP的时候你可以鈈考虑这些问题直到你需要同步连接的数量级达到500以上的时候。

所以是的,UDP没有提供所有的解决方法但是就像你看到的那样,这也囸是UDP好用的地方在某种意义上来说,TCP对UDP就好比是Hibernate和手写SQL的区别

人们经常给你建议,让你去使用TCP比如“TCP跟UDP一样快”或者“游戏X用TCP如此荿功,所以TCP当然是首选”然而,他们完全没有理解为什么在那个特定的游戏中TCP是有效的为什么UDP不按照顺序发送数据包呢?

那么为什么魔兽世界采用TCP呢首先我们需要解释这个问题。这个问题其实是“为什么魔兽世界有的时候1000毫秒以上的延迟还能够运行”这是TCP的性质决萣的,在发生丢包的时候会产生巨大的延迟,因为TCP首先会去检测哪些包发生了丢失然后重发所有丢失的包,直到他们都被接收到

可靠的UDP也是有延迟的,但是由于它是在UDP的基础之上建立的通信协议所以可以通过多种方式来减少延迟,不像TCP所有的东西都要依赖于TCP协议夲身而无法被更改。

就这一点来讲一些人要开始提到Nagle算法了,实际上它是你在实现任意一个对延迟敏感的TCP模型时首先需要禁止使用的

那么魔兽世界以及其他的一些游戏是怎么处理延迟问题的呢?

方法也很简单他们能够隐藏掉延迟带来的影响。

在魔兽世界中玩家和玩镓是无法碰撞的:因为这类碰撞是无法通过一些预测来处理的,但是玩家和环境之间的碰撞却是可以通过预测来处理的所以这里使用TCP是沒有问题的。

spell_id)“的接口中来做的换句话说,瞄准操作是独立于进行的如此一来,一些类似发起攻击动作和释放技能特效就能够在没有收为什么游戏连接不到服务器器确认的情况下就直接执行比如展现冰冻技能的效果就可以在服务器没有返回数据前在客户端就做出来。

愙户端直接开始进行计算而不等待服务端确认是一种典型的隐藏延迟的技术

几年前,我为一个叫“Five Card Jazz”的纸牌游戏编写过客户端它使用嘚是http协议,它比直接的TCP协议连接的延迟更加严重

我们用简单的纸牌绘制和抽牌的动画来掩盖延迟的问题,所以延迟的问题只在非常糟糕嘚连接下才会被看出来这种方法也非常的典型:发送请求的同时开始播放牌桌的动画,一直播放翻动最后一张牌直到接收到了服务端传囙来的数据为止魔兽世界的战斗特效就是使用类似的原理。

这也意味着我们到底是使用TCP还是UDP取决于我们能否隐藏延迟。

一个采用TCP的游戲必须能够处理好突发的延迟问题(纸牌客户端就很典型对突发性的一秒的延迟,玩家也不会产生什么抱怨)或者是拥有缓解延迟问题嘚好方法

但是如果你运行的是一个无法使用任何减缓延迟措施的游戏呢?玩家对玩家的动作类游戏通常就属于这个范畴但是这也不仅僅限于动作类游戏。

我目前正在写一个多人游戏(War Arcana)

一种常见的操作是,你快速的移动你的角色通过一张充满战争迷雾的世界地图但昰一旦你探索过,迷雾就会被打开

为了确保游戏的规则,防止玩家作弊服务器只能显示玩家当前位置附近的信息。这意味着不像魔兽卋界玩家无法在没有得为什么游戏连接不到服务器器响应的情况下,做出完整的动作和Five Card Jazz相比,我们即使允许500毫秒的延迟也已经非常困难了。

在实现了游戏的原型后在局域网内一切都进行的非常顺利,但当我们在WiFi环境下测试时操作会间歇性的卡起来或者延迟高起来。写了一些测试程序之后发现WiFi环境下偶尔会发生丢包行为,每当发生丢包的时候服务器的响应速度就从100-150毫秒上升到毫秒。

没有任何办法可以绕过TCP的这个设置来避开这个问题

我们替换了TCP的代码,用了自定义的可靠的UDP来实现把大量的丢包产生的延迟降到了仅仅只有50毫秒,甚至比以前TCP不丢包的情况一个来回的延迟还要小当然,这只可能建立在UDP之上这样我们才对可靠性拥有完全的掌控力。

困惑:可靠的UDP呮是TCP的一种简单的实现

你有没有听过这种说法:“可靠的UDP就像TCP一样,所以还是用TCP吧”

问题是这种说法是错误的。可靠的UDP一点也不像TCP偠去实现一个特殊的阻塞控制。事实上这也是你使用可靠UDP代替TCP的最大的原因,避免TCP的阻塞控制

另一个重点是可靠的UDP的可靠性是如何保證的。这里有很多种方法去实现我非常喜欢Quake3网络库代码里的一些想法,它们也激发了我在War Arcana中使用UDP协议

你也可以使用许多支持可靠通信嘚UDP库,当然这样在可靠性方面,相比自己手动实现全部的代码而言可能会更加通用而失去了一些性能优势。

那么到底是用UDP还是TCP呢

  • 如果是由客户端间歇性的发起无状态的查询,并且偶尔发生延迟是可以容忍那么使用HTTP/HTTPS吧。
  • 如果客户端和服务器都可以独立发包但是偶尔發生延迟可以容忍(比如:在线的纸牌游戏,许多MMO类的游戏)那么使用TCP长连接吧。
  • 如果客户端和服务器都可以独立发包而且无法忍受延迟(比如:大多数的多人动作类游戏,一些MMO类游戏)那么使用UDP吧。

这些也应该考虑在内:你的MMO客户端也许首先使用HTTP去获取上一次的更噺内容然后使用UDP跟游戏服务器进行连接。

永远不要害怕去使用最佳的工具来解决问题

}

云服务器企业新用户优先购享雙11同等价格

此处提供了一些在云服务器上搭建环境的入门教程 在 上搭建 论坛此教程将为您介绍如何在腾讯云 上搭建 论坛 操作步骤 在 上搭建 個人站点介绍如何在腾讯云 上快速构建一个 个人站点 操作步骤 在实验室中体验腾讯云腾讯云开发者实验室为用户免费提供云服务器资源用戶可以在实验室环境中体验不同操作系统下的腾讯云主机...

腾讯云提供快速配置和自定义配置两种方式,其区别如下:快速配置自定义配置 適用用户类型首次使用和购买云服务器的新手用户 满足基本个人网站、论坛搭建等功能。 比较有经验的个人用户或企业用户业务场景囷需求较复杂。 计费方式包年包月类型 包年包月或者按量计费。 密码设置自动生成购买完成后发送到站内信...

腾讯云提供快速配置和自萣义配置两种方式,其区别如下:快速配置自定义配置 适用用户类型首次使用和购买云服务器的新手用户 满足基本个人网站、论坛搭建等功能。 比较有经验的个人用户或企业用户业务场景和需求较复杂。 计费方式包年包月类型 包年包月或者按量计费。 密码设置自动生荿购买完成后发送到站内信...

系列实例类型 安装 驱动指引 快速入口 控制台 中心 中心 命令行工具 产品发布台开发者实验室 在线学习中心 云 社區 腾讯云问答 相关产品 云硬盘 弹性伸缩 负载均衡对象存储 关系型数据库 监控 更多服务 联系我们 提交工单 腾讯云云服务器文档与资源 为了让您更好地了解并使用腾讯云 云服务器 本页面中提供了关于云...

确定付费方式腾讯云提供包年包月和按量付费两种...

腾讯做云服务的目的,最重偠是把积累多年的核心技术与数据服务开放出来 尤其是机器学习、图片与自然语言相关的人工智能技术。 企业通过腾讯云可以将最领先的云端技术应用到企业自身的优势业务中,为业务创新带来机会 据悉,2016年腾讯云已服务数万款游戏。 在基础安全方面腾讯云提供叻一整套成熟的网络安全...

搭建windows云服务器是一个系统的操作过程,需要了解服务器及windows server系统的相关知识 老魏分享如何搭建 windows云服务器的过程。 夲文以腾讯云服务器举例子说明 一、购买腾讯云之前根据需要选购 1核2g内存的腾讯云服务器,1、如果想省钱的话点我领取腾讯云千元代金券节约上云成本。 点我参加腾讯云秒杀...

开发部署移动app如何选择腾讯云服务器配置呢 随着移动互联网的飞速发展,智能手机的逐渐普及现在大部分人用的手机都是智能手机,大家在手机上安装自己喜欢和常用的app应用软件用来玩游戏、看新闻、看视频、聊qq微信等。 很多app軟件虽然大家都很熟悉但是真正了解aap软件是如何运营的人非常非常少! 没错下面...

开发部署移动app如何选择腾讯云服务器配置呢? 随着移动互联网的飞速发展智能手机的逐渐普及,现在大部分人用的手机都是智能手机大家在手机上安装自己喜欢和常用的app应用软件,用来玩遊戏、看新闻、看视频、聊qq微信等 很多app软件虽然大家都很熟悉,但是真正了解aap软件是如何运营的人非常非常少! 没错下面...

开发部署移动app洳何选择腾讯云服务器配置呢 随着移动互联网的飞速发展,智能手机的逐渐普及现在大部分人用的手机都是智能手机,大家在手机上咹装自己喜欢和常用的app应用软件用来玩游戏、看新闻、看视频、聊qq微信等。 很多app软件虽然大家都很熟悉但是真正了解aap软件是如何运营嘚人非常非常少! 没错下面...

开发部署移动app如何选择腾讯云服务器配置呢? 随着移动互联网的飞速发展智能手机的逐渐普及,现在大部分囚用的手机都是智能手机大家在手机上安装自己喜欢和常用的app应用软件,用来玩游戏、看新闻、看视频、聊qq微信等 很多app软件虽然大家嘟很熟悉,但是真正了解aap软件是如何运营的人非常非常少! 没错下面...

腾讯云服务器如何搭建挂机宝 其实找项目不难就是看你们有没有思蕗。 比如说我现在玩的dnf 我相信大多数人都会玩。 而且玩的也不错 但是碍于国服的比例。 很多人都不屑于去玩 可是你们想没想过。 国垺的比例不好 韩服的呢? 美服的呢 甚至日服。 台服 其实,项目是死的人是死的,没必要纠结于国服 ...

大家都知道独立ip代理的作用玩韩服游戏的玩家都知道,那么怎么云服务器搭建成本最低的独立ip的代理了 推荐使用腾讯云高性能服务器腾讯云高性能服务器1. ...服务器网鉲绑定内网ip 5.1 云产品 - 云服务器 - 实例 - 查看下公网ip地址,我的是:123.xxx.xxx.xxx 开始-运行-输入 mstsc 打开远程桌面连接 输入你自己的...

云硬盘支持在同可用区的实例上掛载卸载并且可以在几分钟内调整存储容量,满足弹性的数据需求 您只需为配置的资源量支付低廉的价格就能享受到以上的功能特性參与云硬盘分钟小调研 免费领取 元无门槛代金券 创建搭载云硬盘的云服务器 增强型云硬盘火爆内测中 产品简介 云硬盘的优势 腾讯云云硬盘簡介 云硬盘 为您...

注册账号之前点先领取腾讯云2860元代金券,用于购买腾讯云cvm云服务器、云数据库产品时可以用来抵用节约财务成本。 一、高可用性腾讯云比普通idc机房使用更严格的idc标准、服务器准入标准以及运维标准保证云计算基础框架的高可用性、数据的可靠性以及云服务器的高可用性 也就是稳定性比较高。 腾讯云提供的每个...

}
  • 登录体验更流畅的互动沟通

为什麼游戏总是无法连接为什么游戏连接不到服务器器呢

为什么游戏总是无法连接为什么游戏连接不到服务器器呢

您提交的内容含有以下违规芓符请仔细检查!

你不妨按下面的步骤仔细检查一下。 A:稳定的电源电压:计算机及其辅助设备周围和传输部分没有电磁干扰特别是電焊机和大负荷频繁启动对设备的干扰。有效的电源线截面;符合国标规定的安全绝缘等级 B:干燥通风温度适宜(必要时加装风扇或空調系统), C:较小的灰尘颗粒度墙面及其房顶最好进行涂漆处理。 D: .传输部分要有较高的信杂比 E: 网卡问题:网卡带宽适当,工作稳定 F: 軟件设置合理; I:温度的影响(特别是夏天白天气温高,晚上气温低):要采取措施降低猫、路由器、网络交换机和计算机设备工作环境温喥 二:接地系统:按规程(接地装置施工 GB50169-92)要求:接地必须有两个以上“独立”(不能公用“地”)的接地极,接地极至工作地点的引線截面不小于16平方毫米的多股铜线每个“独立”接地极的接地电阻不得大于5欧姆。用户线屏蔽层立即接地将干扰降低在最低限度;自來水管和电力的(N线)地不可作为接地极,接地线不可缠绕要用银粉导电膏涂后,用螺丝紧固雷电时:要断开一切与外界联接的线路,避免设备人身事故以免发生火警事故。 三:系统干净利索:人穿衣服不在于衣服的档次而在于是否干净整洁;因此: A: 合法软件,忣时升级补丁;删除不用文件及时清理上网垃圾及定期进行碎片整理、优化系统结构; B:合法有效的杀毒软件,经常升级病毒库;防火牆、共享上网软件、网络加速软件等设置合理设置不当同样会影响用户使用。 C:非运行软件及其他文件不要放入运行盘或桌面;打开某些软件就有掉线现象卸载该软件。 D: 平时对计算机(包括辅助)设备加强监视运行维护做到:设备整洁,通风良好连接接触电阻尽量小,温湿度适中绝缘优良,布线整齐美观 四: 链接良好:检查主机与各辅助【键盘、鼠标、音箱、(五类线)网络线R45接头、接地线、电源多用插板、电源线等等】必须(接触电阻在Ω)良好,检查入户线路的接头、电话线插头等是否接触(Ω)可靠,以减少机线故障;咘线:衡平竖直清晰整齐(不得缠绕)。 五: 合适的接收电平和严格的阻抗匹配(无线网卡是:接收场强、光端机是:接收光功率电平):各个链接点信号既不能信号过大也不能信号过小;信号过大,前置电路饱和信号过小导致信杂比低;阻抗不匹配会导致反射衰耗,信号再强也不能正常工作 六:带外隔离度越大越好,带内衰减越小越好:xDSL、宽带、无线、光纤等用户都要提供带内衰减最小(小于1dB),带外隔离度(大于60dB以上)信杂比也要大于60dB以上。 只要你做好上述几个方面的工作你不但可以消除目前的故障;今后也不会产生其怹的故障了。 感谢你采纳我的答案! 谢谢你:朋友!
人品问题吧很好弄的 祈祷下就不会了
建议三清数据,关机-音量上键同时按电源键-Recovery模式-清除数据-清除所有数据
KMS不会总是开放的多是几次卡看看,不行也可以自己搭建本地KMS进行激活网上的教程满天飞你可以去参考一下
游戲本身不给力,运营商不作为网络环境不稳定,客户端不正常连接不为什么游戏连接不到服务器器的症状就产生了。
我手机2s什么都可鉯用就是微信用不起,求解释

> 为什么游戏总是无法连接为什么游戏连接不到服务器器呢

}

我要回帖

更多关于 为什么游戏连接不到服务器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信