第九章 迎刃求解(1 / 2)

9 迎刃求解

玩家对网络同步的要求是很高的,单机的时候或者玩家一个人在场景的的时候感觉不到,当很多人的时候,无论行走,战斗,都需要准确无误的看到队友,敌人的位置和运动。

小董讲的这些在那个时代是问题,而且一直是网络游戏的问题,只要人多一定卡,这取决于玩家的计算机图形数据处理能力,网络带宽,网络连接速度(带宽和连接速度是不同的,好比你10的带宽,但是连接到某网站某游戏就是延迟,就是慢),服务器的处理能力,以及各种意外的纠错机制。即使到了今天,网络游戏的制作者依然在努力解决一个最基本的问题:“同步。”

曾启自然明白这个问题的终极解决方案就是无限的计算机处理能力和无限的网络,就是从小物理课上最喜欢说的“理想环境”,然而谁都知道理想环境是并不存在,这需要用有一些技巧处理。

曾启说:“我有几个解决方法,你权衡一下

第一,在城镇地图,减少同步数据包的传输频率,我们人物行走是每秒5格,02秒一格,所以行走数据是02秒传播一次。把02秒改成04秒,这样减少了一倍的数据包,虽然,本来a玩家看b玩家在01格,事实上在02格,这影响并不大。当两个玩家见面的时候,再校对一次坐标,玩家间顶多是看到相互移动了一步,感觉可以接受。

第二,凡是玩家多的地图,数据包的传输范围不再以地图为单位。

曾启也画了一张图示意,比如“原始时代”的这张地图“梦幻花园”是玩家习惯交友的地方,这张图加周围的背景是九个屏幕大小(按照当时网游的分辨率,800600的9个屏幕大小,即24001800)。

这么大的地图,玩家的视野只有800600(通常这样的地图的位置关系会画成1010的小格,横80格,纵60格),玩家停下来不动的时候,看到的只有8060个格子,就算玩家行走,每秒也只能多看5个格子。那么玩家视野看不到的其它玩家数据,是不是没有必要传过来呢”

小董问:“那么你的意思是?”

曾启说:“根据玩家的坐标做一个数据过滤器,玩家在正中心,左右50格,上下40格以外的数据即不发出,也不能收到。反正对玩家也没有影响。”

曾启接着说:“这样处理,有时候会发生一些奇怪的事情,比如看到某玩家飘过,或者走着走着,看到一个玩家如幽灵般出现,如鬼魅般消失,可是相对玩家在地图中卡的半死,你选择哪个?”

几个人同时说:“我选择不卡,我选择顺利的游戏。”

小董说:“那么技术上是要为实际效果上妥协。”

曾启说:“我不认为这叫做妥协,这属于权衡利弊所做的取舍。

(如果有做游戏的新人看到这篇,请相信我说的,权衡利弊,有得有失的缺失,游戏设计和制作是需要偏执精神的,但技术也好,设计也好,都是要为游戏服务的,要让玩家喜欢的,与其炫耀你的技术,不如让玩家开心乐意)

按照以上优化,网络数据至少可以少传5-10倍,自然会流畅起来。

后来类似的技术思想用在3d网游的运用方式是:玩家视野远处的人物,建筑都是低模型不清晰的,玩家可选择不看无关的人物信息等等。

会议继续,孟飞急着发言说:“小董提的都是技术问题,我还是说你开始提出来优化顺序,我们几个天天跑网吧,跟玩家接触的非常多,也听他们的意见。我们还做了一个意见表,很多玩家都写了关于游戏改进的想法。大概有这样几点,我写一下。

投影仪在那时还是相当贵的东西,小公司没有。

黄老板的屏幕是传统15寸的crt显示器,所以还是在白板上写字最容易。