墨香: 深角度剖析游戏数据错误

作者: 夜老鼠 2005-12-08 我要投稿专区首页

剖析首先声明本贴内容不代表任何官方(包括腾武数码,轩轩开发组,侠影开发组,GAMEAI工作组)意见或声明,因此本人不站在任何单一的角度对该问题发表看法,而会从多角度去看待该问题,使各位能心平气和的对待该问题。本贴主要从技术方面分析该原因的成因,并不具有最终判定原因权利。以下内容均有本

首先声明本贴内容不代表任何官方(包括腾武数码,轩轩开发组,侠影开发组,GAMEAI工作组)意见或声明,因此本人不站在任何单一的角度对该问题发表看法,而会从多角度去看待该问题,使各位能心平气和的对待该问题。

    本贴主要从技术方面分析该原因的成因,并不具有最终判定原因权利。以下内容均有本人从多名从事数据库,网游,内外挂等软件开发工作的朋友咨询获得,并整理成文章供各位玩家了解一些技术方面的问题。

    最近论坛上频繁出现玩家针对腾武因为被动技能清零而无法恢复的问题以及游戏服务器频繁掉线卡机的问题帖子,大部分玩家说是腾武的问题,腾武说是第三方程序惹的祸。经过本人从多位从事数据库,网游,内外挂等软件开发工作的朋友咨询而得到一些形成该事件的因素。

1、介绍几个概念名词,已具备该方面知识的读者可以跳过本段落

   游戏客户端:我们所使用等入游戏并看到画面的软件程序。
   游戏服务端:处理所有玩家和怪物事件的软件程序。
   游戏服务器:运行游戏服务端程序的计算机,根据游戏服务端程序的设计可以单个,也可以数个合成一组服务器协调工作。墨香属于后者。

   数据库:    存放所有玩家信息的软件程序,如MS SQL Server等。
   C/S模式:   即指 客户端(client)/服务端(server)的网络程序框架模式,目前网游都是基于该模式开发。
   内挂:      需要借助于游戏客户端的挂机程序(如轩轩,侠影等)。
   外挂:      不需要借助于游戏客户端的挂机程序,即俗称的脱机外挂。从纯技术角度讲它也是游戏服务端的一种客户端。(如旺旺,AI)
   网络数据包:即客户端与服务端的通讯协议。
  
2、以上各个东西对各方面的透明程度

   游戏客户端=〉
   游戏开发商:★★★★★
   游戏代理商:★
   内挂开发者:★★★
   外挂开发者:★★
   玩家:      -
  
   游戏服务端=〉
   游戏开发商:★★★★★
   游戏代理商:★
   内挂开发者:★
   外挂开发者:★★
   玩家:      -
  
   数据库=〉
   游戏开发商:★★★★★
   游戏代理商:★★★★★
   内挂开发者:-
   外挂开发者:-
   玩家:      -
  
   网络数据包=〉
   游戏开发商:★★★★★
   游戏代理商:-
   内挂开发者:★
   外挂开发者:★★★★
   玩家:      -
  
3、关于服务器卡和掉线的原因
   这个问题从我们公测就开始存在了,这个不是腾武数码的问题,腾武数码提供的服务器完全满足游戏服务端程序的需求。这个是韩国泡菜服务端程序开发人员的问题,当初设计的时候没有按照中国的数据交换以及事件处理的吞吐量设计,以至于服务端程序的处理无法满足现在客户端与服务端的数据交换量,而导致一些玩家的事务请求(即客户端的操作)无法被马上处理甚至被忽略,总的来说产生以下结果:①处理延时,超过一定时间将被判定为掉线。②直接被忽略,如以前的卡血。③未出处理完即结束该事务,如打怪不掉血,蓝消耗了,POS也摆了。而外挂的出现更加剧了该问题的发生频率,因为其本身自己控制所有的客户端逻辑,直接对数据包本身进行操作。

4、关于人物角色数据错误
   该问题包括以前的人物角色0等级,丢失技能点,丢失装备,丢失游戏币以及现在被动清0等现象。其实这个问题的原因跟上面差不多,只不过这个更厉害,产生异常时把数据给修改了。但是玩家就会问以前丢失技能点和人物角色0级腾武数码都能恢复,为什么这次却不会恢复呢?其实从代理商,玩家,乃至内外挂的开发组的各种角度都是希望恢复的,因为可能由于这个原因造成一部分玩家的流失,是代理商不愿意看到的,但是为什么不能恢复,数据库对代理商的透明度不是5颗星吗,因为就算透明度再高,数据一旦被更改,如果没有备份是无法更改的,以前恢复技能点都是代理商根据服务端记录的工作日志来的,比如xxxx时间,xxxx玩家,打怪 获得xxxx点 总技能点xxxxx等类似的格式的日志来恢复的。
但是日志没有被动技能的信息,那不是还有备份档吗,产生异常就靠回档来恢复(以前刷钱的BUG就是利用回档来操作的),不幸的是,这些产生数据错误的操作服务端并不知道,仍然当作有效事务来处理,一定时间,备份档也被更新了,因为备份档可能就只有1至2个,会不断的更新替换,所以这次是完全没办法恢复了。不过腾武依然对这些玩家做出了补偿,这点是值得肯定的,虽然补偿力度对于高级号小了点。

5、以后怎么办?
   我想这个问题主要应该由腾武来考虑,现在不管是什么原因,毕竟问题已经发生了。总得有个好的解决办法,一方面留住玩家,一方面是以后不在被类似问题困扰。本人咨询过几种方案,也请大家来建议。

   ①由于外挂是加剧该问题的催化剂,屏蔽外挂,或者利用丢失被动的玩家对还没有丢失被动的玩家产生震撼,不再使用外挂。

     这点本人个人认为效果极微,以前出现丢失游戏币的现象,但是并没有对使用外挂的玩家产生震撼,况且真正的原因是游戏服务端程序的问,题,所以个人觉得效果不是很理想。

   ②提高一点补偿力度,使已出现该问题的玩家不会心灰意冷,离开墨香世界。
     个人认为这点可以采用,一个玩家带来的利润对腾武来说是绝对超过这些被动的价值,但毕竟是指标不治本的方法,只能作为辅助手段,还需其他方法。

   ③备份数据
     这点个人认为是必要手段就算没有该问题发生,也应该采用。直接通过数据库控制台固然麻烦,其实可以有很简单的办法,就是自己做个文件本份工具,后台运行,定时备份数据库文件就可以了,这样每天备份一次文件,这样出现什么样的数据问题都不会再棘手了。

   ④催促泡菜修改服务端BUG
     这个才是治本的方法,不过过程漫长,毕竟数十万行代码的程序找出不经常发生的BUG很困难,可能永远也不知道原因,所以需要其他方法共同解决当前问题。

   ⑤玩家,代理语气平静的说明问题
     个人认为这点应该只始至终采用,玩家是消费体,当然遇到问题会火气大,这点代理商要能理解,代理商也有自己的苦衷,大家看看本文第2段就知道了,也请各位玩家理解。毕竟吵架是不能解决问题的。

呼~~ 累死我了!!!

 相关论坛】   【打印本页】  

::::::::::参阅:游戏同类文章
::::::::::相关精彩文章

::::::::热门新闻关注::::::::