免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: bobozhang
打印 上一主题 下一主题

网络游戏中的连接服务器 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-09-09 15:07 |只看该作者
原帖由 bobozhang 于 2009-9-9 14:32 发表
to anders0913:  不是传奇那套代码哈,那个代码是dephi的,看不懂,至于c++那套,听人说本身写得比较烂,没看过

to benjiam:压力大是否可以增加gate的个数来解决?我主要关心延迟的问题哈,这样设计的话真的 ...


那两套都看过~~

[ 本帖最后由 anders0913 于 2009-9-9 15:09 编辑 ]

论坛徽章:
0
12 [报告]
发表于 2009-09-09 15:08 |只看该作者
原帖由 bobozhang 于 2009-9-9 14:32 发表
to anders0913:  不是传奇那套代码哈,那个代码是dephi的,看不懂,至于c++那套,听人说本身写得比较烂,没看过

to benjiam:压力大是否可以增加gate的个数来解决?我主要关心延迟的问题哈,这样设计的话真的 ...



延迟 问题是个比较复杂的问题, 要看你做什么类型的游戏, 什么类型的应用。

竟速类型的游戏跟wow这种rpg类型的, 处理方法完全不一样。 没有通用的架够, 要具体问题具体分析。

产生 延迟 有很多原因, 但最主要的影响就是外网带宽,还有就是如果想高instant, 不能采用tcp stream service, 应该采用udp, 采用关键frame思路。

只有关键frame才retransmit,  还有就是主逻辑服务的运算能力。 因为很多游戏逻辑部分, 存在大量的计算量。 按里说cpu应该比网络快的多, 但大量的

运算会改变这个事实。 至于你担心的那点延迟, 其实根本就不是关键的地方。

论坛徽章:
0
13 [报告]
发表于 2009-09-09 15:13 |只看该作者
udp 是关键

tcp 因为在栈里面要重新排序这一些系列复杂的计算 所以 局域网网络里面测试 流畅得很 出去就卡了。


我们现在有这个问题, 当时有个人提出要udp 被技术leader 否决, 现在就很卡。 很麻烦。 唉, 一场 政治谋杀

论坛徽章:
0
14 [报告]
发表于 2009-09-09 15:18 |只看该作者
原帖由 xhl 于 2009-9-9 15:08 发表



延迟 问题是个比较复杂的问题, 要看你做什么类型的游戏, 什么类型的应用。

竟速类型的游戏跟wow这种rpg类型的, 处理方法完全不一样。 没有通用的架够, 要具体问题具体分析。

产生 延迟 有很多原 ...


哦,看来你是从实际经验中得出的结论,可信性比较高哈,谢谢!

[ 本帖最后由 bobozhang 于 2009-9-9 15:22 编辑 ]

论坛徽章:
0
15 [报告]
发表于 2009-09-09 15:19 |只看该作者
原帖由 benjiam 于 2009-9-9 15:13 发表
udp 是关键

tcp 因为在栈里面要重新排序这一些系列复杂的计算 所以 局域网网络里面测试 流畅得很 出去就卡了。


我们现在有这个问题, 当时有个人提出要udp 被技术leader 否决, 现在就很卡。 很麻烦。  ...


现在的网络游戏不都是用的tcp吗,rpg类型的用tcp应该不会卡阿, 当然游戏里面要采用prediction

论坛徽章:
0
16 [报告]
发表于 2009-09-09 15:23 |只看该作者
gateway压力大可以写个gateway name server,客户端用短连接向gateway name server获取gateway地址,name server以负载均衡为原则分配gateway IP。
当然搞这套东西还不如flw的初始连接,毕竟你gateway转发是应用层的,延迟比较大。

论坛徽章:
0
17 [报告]
发表于 2009-09-09 15:27 |只看该作者
放一台“gateway”处理每个用户实际链接到哪台服务器不是挺好的么??

没有人规定这个链接必须一致保持

论坛徽章:
0
18 [报告]
发表于 2009-09-09 15:28 |只看该作者
另外,既然要做分布式的处理,为什么不把帐号验证之类的流程也分出来到一台/组单独的服务器上呢??

论坛徽章:
0
19 [报告]
发表于 2009-09-09 15:41 |只看该作者
原帖由 gz80 于 2009-9-9 15:23 发表
gateway压力大可以写个gateway name server,客户端用短连接向gateway name server获取gateway地址,name server以负载均衡为原则分配gateway IP。
当然搞这套东西还不如flw的初始连接,毕竟你gateway转发是应 ...



这个说法应该结合游戏逻辑, 多人网络游戏网络上压力最大的地方是什么? 广播压力。

假如我周围有50个人, 每个人的走动, 都要instant 的同步给周围可见的其他人。 这个压力就是 50 * 50的。

这个广播压力, 如果用地图server一个去做, 那即使没有你说的所谓应用层转发的延迟, 基本你的逻辑server也卡的要死了。

用gateway(我喜欢叫clientproxy)的好处是, 如果我现在有5个clientproxy, 没个上面有10个人, 我逻辑server只发5条同样的消息给每个clientproxy,

在由clientproxy分别自己每人负责的client广播到, 是这样效率好, 还是计较那点转发延迟效率好呢?

论坛徽章:
0
20 [报告]
发表于 2009-09-09 16:08 |只看该作者
原帖由 xhl 于 2009-9-9 15:41 发表



这个说法应该结合游戏逻辑, 多人网络游戏网络上压力最大的地方是什么? 广播压力。

假如我周围有50个人, 每个人的走动, 都要instant 的同步给周围可见的其他人。 这个压力就是 50 * 50的。

这个 ...

的确  我开始也不明白。 后来明白了 这样可以大量减少server 和 gateway 之间的数据

server 发少量数据 由 gateway 转发。 gateway 压力大很正常
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP