付坤   草根首页 | 设为首页 | 加入收藏
腹有乾坤 - 付坤首页
论单机游戏未来发展的几个关键技术
2015-11-19
字号:
    一:数据安全,内存保镖技术。

    单机游戏随着三D化,发展的是越来越华丽了,但有一个根本的问题没有解决,那就是数据安全问题。

    游戏就是一系列的数据,而数据可以被更改,玩家就不再是玩家,而是神,他们可以用工具修改数据达到目的,认真玩游戏的态度就没有了,游戏精细美妙的设计也就被破坏了。

    我最开始知道内存数据可以被修改是因为金山游侠,这是一款强大的软件,可以轻松的搜索出游戏的关键数据,比如攻击防御,并加以设置。如果攻击设为99999,那么显然就可以一路横 扫,固然是玩家爽快了,却破坏了游戏的初衷。

    所以数据安全非常重要,关系到游戏的生死存亡。

    但是,内存数据都可以更改,怎么防护呢?似乎没有什么好的办法,也看不到有游戏做这方面的努力,似乎是大家都认命了。

    要让内存数据不能被修改,是做不到的,不存在这样的技术。但是我们可以换个思路,当玩家修改内存数据的时候,我们对其进行惩罚,就可以使得他不再修改。

    这种思路就要求我们要监视内存数据,时刻跟踪它的变化。

    怎么监视,怎么跟踪呢?游戏一旦发到玩家手里,我们还能进行操作吗?

    所以我们要在程序内部设置。用程序本身的数据来跟踪,这就是内存保镖技术。

    比如有核心数据攻击需要被监视,我们可以设置另一个数据攻击监视者,跟随攻击数据变化,这就达到了监视的目的。这种跟随变化可以是一个数学公式,比如乘2,那么攻击由5变成6的 时候,监视数据就由10变成12,而当玩家修改数据之后该数据再被使用时,我们检测攻击和监视数据,发现不是乘2的关系,就说明有人更改了数据。这时我们就可以启动惩罚,比如关闭程序 ,比如数据归零,让玩家作弊付出代价,从而阻止数据的修改。

    也就是说,两个数据被固定的关系绑定了,除非你同时修改两个,并且按我们设定的规则,否则就会出错。而在源代码没有暴露的时候,我们设定的规则是不为人所知的。前面举得例子 ,乘2的关系显然是非常简单的,在玩家可以用工具看到所有内存数据变化的时候,就会猜测出两者的关系,从而同时修改两个数据,达到修改的目的。但是我们可以用更复杂的关系,使得玩 家看不出两者的关系,如果两个数据复杂关联,既不是正相关,也不是负相关,那么玩家就不能轻易看出。

    这种关联性可以称之为一种加密,而想要作弊的玩家修改数据的就是解密者。

    我们可以用成熟的加密技术,比如MD5,那么比如攻击数据是5,相应的监视者数据则是一串MD5码,是32位的数字,这种关系就不是语言能说清的了,非常复杂。但是玩家可以看出,这是 MD5码。所以我们要进一步的加密。比如攻击数据是5,那么我们计算[5%%%*****¥]的MD5码,并且所用MD5的内部参数也被修改过,那么玩家即便知道是和MD5相关,他也无法计算这种关系, 除非得到源代码。

    所以通过这种MD5外加密和MD5内加密,确定监视者和核心数据之间的变化关系,就可以使玩家看得到数据也无法猜测到数据真实的变化过程,从而不能同时正确的修改两数据,从而在修 改的时候被我们发现。

    通过这种手段,核心数据的安全就被保障下来了,单机游戏重新获得属于自己的尊严。

    二:登陆校验,随机万向锁技术。

    除了数据安全外,制约单机游戏发展的一个关键就是收费不便,注册码一旦被破解人人能用,就没有人付费了,这也是所有软件的问题。玩家一旦下载了软件,就抛弃了作者。

    所以要想办法解决这种情况。

    在数据安全的基础之上,我们可以采用这种随机万向锁技术。

    也很简单,让软件进入之前显示一个大的随机数字作为该软件本次登陆的ID,并要求输入对应的加密字符串。这个随机数字是每次都不一样的,而且非常大,比如4864118568,当然要在 数据范围内,不要溢出的情况下,尽量使得数据没有短期重复的可能。由于一次随机范围比较大的话,出来的数据会接近,所以可以多随机几次,更加分布均匀。

    那么,这个数据是核心数据,是受监视的,所以不能被修改【发现被修改则退出程序】。而由于作者掌握着对应的加密规则【同时使用MD5内加密和外加密】,所以可以给出正确的加密字 符串。而玩家得到加密字符串后,输入验证就可以进入软件。当然,下一次打开程序的时候,随机数字变化了,还需要去找作者。所以这种限制方式等于是让作者掌握了主动权,而且是按次 收费。由于每个人打开程序,看到的随机数字都不一样,所以他们需要的加密字符串是不同的,所以用户之间交流是没有用的,也就是说一个人通过检验了,而另一个不可以,加密字符串没 有通用的,这就将用户和用户区别开来,不会出现一个注册码所有人用的情况。

    当然,作者可以专门开了一个网站,处理这些工作,同时收取费用,或者自己写一个小的计算加密字符串的程序,只由自己掌握,当用户需要的时候,手工操作,并向其收费。开个淘宝 店似乎也不错。前提是用户要提供自己随机出来的数字给作者,如果自己手工处理的话可能有点麻烦,但是收钱的事一点小麻烦也是愉快的。如果你有网站,并且便于给钱,可以自己设置货 币,让玩家充钱后自己输入计算字符串,那就方便了,这种方式适合大的团队和公司。

    如果你的这个核心数字是10亿大小级别的,也就是说在10亿次登陆就必然会出现数据重复,用户可以记录一个数据库,保存所有用过的数据直到出现重复,就不用再受作者控制了。所以 我建议大家用两个随机数字合起来作为登陆ID,那么整体就有亿亿级的数据,玩家就没有办法了,从而不会去做数据库。当然两个数据设计肯定麻烦一些,如果你觉得10亿已经够大,你收这 么多钱之后完全可以免费,那么一个数据就够用了。

    这种技术建立在数据不能被随意修改的基础之上,所以一定要确保安全,源代码也不要泄露。

    简单来说,这就和网络游戏输入用户名和密码一样,只不过我们的用户名是变化的,密码是和用户名固定关联的,而关联关系掌握在作者手中,所以对于不同的用户名数据,只有作者知 道对应的加密字符串。

    这里的关键设计,就是大数随机,确保了每个用户每次打开的登陆ID都不一样,从而不能重复使用密码。

    三:货币传输技术

    货币就是游戏里的一个数字,想要流通是货币的天然属性。

    在每次打开的单机游戏有了上面所说的大数ID之后,就可以设计货币传输了。

    当然前提仍然是数据安全,确保货币数据不被修改,才有传输的价值。

    假如传输发生在两个客户端之间,所谓传输就是一个客户端失去这个数据,另一个客户端得到这个数据。

    失去很简单,数据归零就行了。关键是怎么得到,既不能中途被修改,也不能重复使用数据,重复的得到。

    假设第一个客户端有金币100,要传给第二个客户端,第二个客户端的ID为两大数:123456和234567。

    首先,在第一个客户端计算【123456+234567+100+加密字符串】的变异MD5码,并把一百归零。这是在程序内部计算的,123456+234567是玩家输入的,加密字符串是不可见的。

    然后第二个客户端输入100,再输入第一个客户端计算的码值,然后计算相应的MD5码,如果两个MD5码相等,说明数据正确,则得到100金币。这里金币数量变化也要相应的监视者数据变 化,这是程序内部处理的。

    那么这样钱就由第一个客户端转移到第二个客户端了,但是这里有一个致命的问题。

    我们再次输入100和码值,第二个客户端又得到100,这样可以重复得钱,这显然是不行的。

    所以要设计变化,得到一次钱后,就把ID数据加1,123456变成123457,234567变成234568,因为第一次给钱是按123456和234567来算的,所以这两个数变化之后,第一次计算的结果就没有 用了,再给钱需要重新计算,每次给钱都是一次性的,而且是确定的。

    这就完成了单机游戏客户端之间的货币传输。

    这固然十分美好,却有两个前提条件。

    第一,程序初始钱数应当为0。如果不为零,那么玩家可以重复启动程序刷钱。

    第二,游戏不能存档。因为存档就是一次数据复制,如果钱被复制,再次启动钱就重复了。这样也可以刷钱。

    这两点都是游戏设计之初要考虑到的。

    如果你想设计一款伟大的,单机和单机可以交流的游戏,注意遵守这些游戏规则。

    四:物品传输技术

    物品在游戏里也是数据,不过比金钱多一些数据,只要把所有的这些数据考虑进去,用我们传输货币的方法,就一样可以传输物品,想想两个玩单机游戏的打到不同门派的装备互相交易 的情形,实际上两者间的信息是通过网络交互得到的,比如QQ,比如贴吧。

    我们还可以在游戏和网站间传输物品,这就是商城的思维了,单机也可以卖道具。

    至于这种模式能不能大行其道,做了才知道。

    事实上一和二是我们今天讨论的重点,我希望它能流传出去,为大家所用,为单机游戏带来又一次的发展高潮。

    谢谢您的观看。

所有文章只代表作者观点,与本站立场无关!
  • 一看就知道楼主不是计算机专业的,或者是计算机专业学艺不精的。
    按照目前技术,个人电脑的软件跟踪和破解根本不是很高深的技术。
    2015/11/21 11:26:35
评分与评论 真差 一般 值得一看 不错 太棒了
姓名 
联系方式
  评论员用户名 密码 注册为评论员
   发贴后,本网站会记录您的IP地址。请注意,根据我国法律,网站会将有关您的发帖内容、发帖时间以及您发帖时的IP地址的记录保留至少60天,并且只要接到合法请求,即会将这类信息提供给有
关机构。详细使用条款>>
草根简介


付坤,1983年生,肄业于武汉理工大学,后作游戏开发,后写网络小说,未有成就,后写《巅峰信息心理战》《反管理学》等作品,发表于网络,为自由作家。闲时偶有评论。QQ:270182827  邮箱:fukun551@163.com


最新评论 更多>>

最新文章 更多>>
关于我们  联系我们:QQ513460486 邮箱:icaogen@126.com
CopyRight © 2006-2013 www.caogen.com All Rights Reserved 浙ICP备11047994号