【挖坑】HOST房主主机匹配机制到底是怎么运行的?
cod10吧
全部回复
仅看楼主
level 6
SimonRely 楼主
先挖坑,慢慢填,我打算是通过逻辑思路来猜测HOST匹配的运行机制。
2017年02月01日 20点02分 1
level 6
SimonRely 楼主
有人看到一楼内容就笑了,原来这楼主对HOST匹配全是靠瞎蒙啊,这分析TM能看?
2017年02月01日 22点02分 3
level 6
SimonRely 楼主
首先吧,我得承认,我一不是IT技术人员出身,二没有游戏制作圈内的专业背景,三也没看到COD官方的可靠材料,你们对HOST匹配机制的了解也都是道听途说,说的还那么底气十足不耳红不面赤,为什么到我这就不许胡说八道了?你都不要脸我还害什么臊啊!
对于COD10采用HOST匹配机制也只有这款游戏的开发技术人员才有资格说得清道的明,难道不是这样么?
2017年02月01日 22点02分 4
level 6
SimonRely 楼主
先说下什么是COD10的HOST匹配机制,这个大家应该没有什么疑问,就是选定某一个玩家的PC终端作为“主机服务器“,其他玩家与该玩家的PC相连来进行游戏数据交换,但是,在HOST匹配机制下,是怎样确定哪一个玩家的PC做主机服务器呢?如果我是技术人员,至少有两套方案备选!
2017年02月01日 22点02分 5
level 6
SimonRely 楼主
方案一:
由动视在某一地设立核心服务器,对同一个房间内的12名玩家的PC发送运算数据,以运算及回传速度来断定哪个玩家PC的CPU运算能力强大、网络状况最好,以相对最好的该名玩家PC作为主机服务器。
这种方案有个弊端,比如说动视的核心服务器位于美国,房间内12名玩家,玩家A是位于美国,其他11名玩家都位于中国,玩家A的PC与核心服务器因为距离最短、网络状况最好而被断定为主机服务器,这对其他11名玩家非常不公平,1个人爽,11个人卡,换做你是动视的游戏开发技术人员,你会蠢到采用这种方案么?
2017年02月01日 22点02分 6
level 6
SimonRely 楼主
方案二:
由动视不设立核心服务器,而是对同一个房间内的12名玩家,由每一个玩家PC向其他11位玩家PC发送运算数据,针对其他11名玩家PC对数据的运算及回传速度来分别
打分
,比如玩家A的PC向其他11位玩家的PC发送运算数据并评分,与此同时,玩家B的PC也发送评分,玩家C的PC也发送评分……最后以综合得分最高的玩家PC作为主机服务器。
同样举上面那个例子,同一房间的12名玩家,玩家A位于美国,玩家B和其他等11名玩家都位于中国,大家的PC相互评分,最终玩家B的PC得分最高并作为主机服务器,这样,玩家B和其他等11名同在中国的玩家PING延迟较低爽的飞起,而玩家A位于美国而导致游戏卡顿。
没有绝对的公平,方案二至少最大程度上提升了大多数玩家的游戏体验。
虽然我无法从技术层面去剖析HOST匹配机制,但是在逻辑方面应该是以该种方案较为合理。
2017年02月01日 22点02分 7
赞同,我猜大多数p2p匹配的cod都是类似这样的逻辑,各个玩家两两ping延迟,选出对全部玩家最小延迟的主机做房主,另外还要考虑nat状态,优先 open>medium>strict
2023年10月11日 10点10分
level 6
SimonRely 楼主
看完了以上内容,你的内心是不是对HOST匹配机制少了一点偏见呢?
接下来,我们再聊聊诸如COD9的固定服务器匹配机制。
这个大家都明白,动视在某一地(比如日本)设立固定服务器,周边国家的玩家都连接这一个服务器,自然,日本玩家吃香,中国玩家吃xiang(二声,谢谢),中国玩家PING高没办法,只有用VPN或加速器才能降低PING得到延迟改善。
而反过来看看刚才的HOST匹配机制,如果房间内中国的玩家较多而抢到主机服务器做了房主,就好比把服务器架设到中国了,让外国人挂中国的VPN吧,你说吼不吼啊?
2017年02月01日 22点02分 8
level 6
SimonRely 楼主
2017年02月01日 22点02分 9
level 6
SimonRely 楼主
怎样避免上述那种一个美国玩家A和一群中国玩家在同一个房间呢?
那就要从这个美国玩家A刚开始游戏匹配房间开始,从延迟低的房间开始匹配,如果匹配不到,相应的延迟再提高,再继续匹配,以此类推,直至匹配到房间,事实上COD10也正是这样做的。
的确,玩家分布越多的国家,相应的游戏匹配会更顺利、延迟会更低。
国内玩COD10的少,匹配方面优势较低,再加上每个人的网络状况不同,有些人能够快速匹配到房间、并且延迟相对可以正常游戏,有些人匹配房间很慢、即使匹配到了游戏也比较卡,这也就不奇怪了。
2017年02月07日 10点02分 10
1