说。「格斗游戏的网路对战为什么能那么顺畅,一直让我很不解。」
「……好吧,没差。不过,我只是解释,般格斗游戏的通讯原理,不知道每款游戏用的是什么技术喔。还有,知道了真的也派不上用场喔?」
由于天道说没关系,「那么──」于是杉鹿如此起头,重新转向两人。
「听好喽?首先使用网路通讯对战,理论上只要能正确传送双方手把的输入资料,就能做出完美的对战过程。」
「嗯,这我明白。」天道点头:「只要能收到手把资料,然后在游戏机里重现程式处理就行了嘛。」
「就是这么回事。岸岭,到这里你还听得懂吧?」
「……还……还可以。」
所谓的电玩到头来还是由人操作,只要正确得知操作的方式,在远地或近邻的处理过程都一样。到这里为止岸岭还算明白。
「话是这么说,但最近的FPS甚至有将近二十颗按钮与两根、摇杆,而且动不动就来个十六人对战,所以没那么简单就是了。不过如果是格斗游戏的话,只要能传收六颗按钮与一根八个方向的摇杆的资料就行了。」
「对耶,比起FPS好像简单多了,而且大多都是两人对战。」
「没错,再来就讲到如何传送手把的输入资料。这不只是电玩,而是整个网路的问题,就是用网路传送资料有三种方法,分别是TCP、UDP与RUDP。」
「…………」
「…………」
「好好好,我简单讲给你们听,不要偏著头。所谓的TCP,就是与对方确定连线后,送出附有号码的封包,接收端再把收到的封包的ACK号码回传给传送端。然后呢,传送端收到ACK后就送出下一个封包,如果经过一段时间都没收到ACK回传,就会再度送出封包。」
「……原来如此,不懂。」
「我想也是,简而言之就是有寄送纪录的邮件啦。在将资料传送给对方时,一定会加上询问对方『这个寄到了吗?』的处理。然后呢,就会一直重寄到对方做出『收到了』的反应为止。用这种方法,资料几乎能百分之百送到,所以电子邮件与文字聊天室都是用这种方法。」
「原来是这样啊,难怪电子邮件与聊天室能传输得那么正确。」
岸岭跟电子邮件或聊天室都没什么缘分,所以不太有实际感受;不过天道似乎觉得相当佩服。
「不过呢,因为每次传送都要接收对方的寄送纪录,所以当然就比较费事。再来是UDP,这个简而言之就是普通邮件。它只会指定对方的住址寄送出去,但不会侦测到对方收到没有,这种方法的传收量会比TCP少很多。」
「可是,这样不是很危险吗?像是密码的输入之类,感觉只要少一个资料,好像就会很惨耶。」
「所以这种的都会采用TCP啊,其实网路上采用的通讯方式几乎都是TCP啦。UDP只会用在语音通话或是现场直播的影像资料上,因为这种的不需要把所有资料百分之百送出去。不过相对地,音质或画质会因为通讯状况而降低就是了。」
「我懂了,这让我想到语音通话时,有时候别人的声音会少一段,但没什么影响。」
「就是这么回事,所以比方说,MMO也就算了,像MO那种线上游戏,角色的移动会用UDP处理,只有给予敌人的损伤等游戏进行上不可或缺的资料才由TCP管理,这样就勉强玩得起来了。不过,像FPS那种所有人的正确位置资讯与方向很重要的多人游戏,就一定要正确传收所有操作资料,否则就不能玩了。话虽如此,如果所有资料都用TCP传送又会塞车,所以就要用到RUDP了。这个正好介于TCP与UDP的中间,虽然是像UDP一样用普通邮件的方式传送资料,但是会像TCP一样接收对方的收讯回应,只不过处理得没有TCP那么正确就是。」
「原来如此,也就是说不像TCP资料量那么大,但也不像UDP那么容易遗失资料喽?」
岸岭还有点一愣一愣的,但天道似乎光听这样就懂了。
「对,所以多人游玩的FPS,全部资料都是用RUDP传收的。可是RUDP没办法百分之百正确处理,所以有时候敌人的动作会突然变快等等,出现一些奇怪的现象。」
「那么说得明白点,如果光用TCP传收的话,就能做出超精准的FPS?」
「对啊,可是如果一款游戏每个影格都要确认全部十六名玩家的寄送纪录,大概会变成逐格播放的超慢游戏吧。」
「……的确。」
「等一下,这么说来……格斗游戏基本上都是一对一,所以能全部用TCP传收吗?」
「也不见得,之前讲解FPS的时候我不是说过?比方说美国与日本进行通讯对战时,单程大约是一万公里,来回就是二万公里。就算用光速通讯,也会产生〇‧〇六七秒的Lag。」
「啊,的确有说过呢。」
而且现实当中必须经由许多路由器与伺服器=需要经过多次资料处理,所以延迟会越来越大。
「就跟那个一样,如果全部用TCP传收,就算是一对一也会一大堆Lag。所以就需要下工夫消除──或者该说让玩家看不到这些这些Lag。」
「唔,终于要进入正题了啊。」
天道的好奇心越来越强,探出了上半身。
「岸岭,你可以暂时把耳朵摀起来。我想接下来的说明,不是能一口气理解的。」
「啊,嗯,我听听就算了。」
于是杉鹿开始解说: