网游为何将部分数据交客户端处理?

客户端

1个回答

写回答

Chami

2026-01-25 16:45

+ 关注

服务器
服务器

各种网游可不像你想的那样,服务器并非能掌控一切。就拿冒险岛来说吧,这可是公认的外挂泛滥的游戏。要是你看过它的服务端源码,肯定会惊叫道:这到底是个啥服务器啊,这不就像个大广播嘛。没错,冒险岛里的所有计算基本上都是在本地进行的(除了商城部分)。你自己的电脑会算出你使用强力一击、魔法双击这些技能打出了多少伤害,是否产生暴击,然后把这个包含伤害信息的数据包发送到服务器服务器再把这个数据包转发给同地图里的玩家客户端,好让其他玩家知晓你的操作。并且游戏技能的数据都存在一堆以wz封装的文件里,你想改多少伤害就能打出多少伤害,甚至能修改技能的击退效果,让所有怪物都卡在一个固定的点上,这可太夸张了。那冒险岛为啥要这么做?这是因为冒险岛刚推出的时候,能用宽带上网的人都是少数,大部分人都是通过电话线拨号上网的。你能想象网速不到30kb,丢包率常年在5% - 20%是怎样一种糟糕的情况吗?就这种网速,要传递玩家操作的所有信息,在当时大概只有新浪聊天室能做到了。而且就算信息传过去了,就盛大网络那性能不咋地的服务器能计算得过来吗?它连泡泡堂的计算都搞不定,对吧?最后外挂把这个游戏彻底给毁了,真的很可惜。所以啊,越是数据计算量大、并发情况多的游戏,就越会把一些数据交给客户端来处理,服务器只拿个结果就行了。要是像FPS这类的射击游戏就更有趣了。我客户端这边说打中了,一枪爆头,枪法超棒,你服务端敢说个不字吗?你要是不服,那就把整个物理引擎演算一遍啊!我这子弹可是在墙面上反弹了14次然后爆了对方的头!我这i9 - 14900k的处理器都计算了好几毫秒才反应过来这神奇的枪法,我看你那不到3GHz的至强处理器有多少算力,我告诉你,你要是算得慢了,耽误我1毫秒,全班64个玩战地的玩家就被耽误了64毫秒,看以后谁还玩你的游戏!所以很多情况都是权衡利弊后的结果。网络游戏为了能让玩家有连贯流畅的游戏体验,或者是出于经营成本的考虑,必须要放弃一些安全性。优秀的网络游戏就得好好权衡,哪些东西可以让客户端计算,哪些不行。你要是全部交给服务器计算确实很安全,但要是深入探讨这个话题,就会联想到计划经济为何总是敌不过自由市场了。可别以为领导就一定很厉害,我们玩帕鲁的时候,买的云服务器性能可能还不到客户机性能的一半。很多时候这些所谓的领导或者服务器啊,就像个草台班子,根本没能力计算和规划所有事情。比较好的办法就是给这个不咋地的领导多找些帮手,在客户端里检测内存、文件是否被修改,检测输入输出是否有异常。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号