|
作者:付坤
QQ:270182827
邮箱:fukun551@163.com
大家都知道,单机游戏现在几乎没落了,一是玩的人少,缺乏互动性,二是没有好的赚钱模式,开发者得不到正面激励。
现在这种状况要改变了,一个新的时代将来临。
单机也能卖道具。
没错,你没有听错,这可能吗?
你可能首先就是怀疑,单机也能卖道具,单机的数据在本机内存,我不是随便修改吗?比道具厉害多了。
比如金山游侠,就是改内存数据的高手,用过的都知道。
无数的单机游戏被它打败了。
的确,单机游戏的数据都在本机,包括保存的数据,只要一修改,要多强有多强,谁还需要道具啊?
所以,第一步,就是要控制游戏数据,防止人为修改。
这就要用到付坤的发明设计了。
其实也是一种简单的技术运用。
内存数据能修改,无法阻止,但我可以检测啊。
检测到数据异常变化,就进行惩罚,停止游戏,或数据归零,玩家就不会修改了。
那么怎么检测到数据异常变化呢?
要知道我们的数据经常在变化,别人修改也是变化,两种没有什么区别。
变化是可以检测到的,但谁知道哪是异常呢?
所以首先,就要对数据进行一个记录,也就是备份,比如A=6,记下A原=6,当使用该数据的时候,就检测A==A原,如果相等,说明A没有改变,如果不相等,就说明A被改变了。但是我们也会改变数据啊,比如吃药的时候生命上升,这是合法的数据变化,所以这个时候,更新A的同时,更新A原的数据,使两者保持一致,这样检测就可以通过了,而违法的修改没有同时更新A和A原,数据就会出现不一致,检测不通过,就会受到惩罚。
但是你要问了,那如果别人也同时修改A和A原怎么办?也有这种可能啊。
是的,所以我们要进入加强版记录模式。
令A原=md5(A),记录下A数值的加密,当A正当改变时,改变A的加密,然后检测加密结果,如果相等,就是正常的,游戏继续,如果加密数据不相等,那说明A被异常改变了,惩罚之.
这样一来,再要作弊,就要同时改变A和A原,也就是A的加密,可是,由于玩家不知道更改后的加密数据,所以不可能同时改对,安全性就大大提升.
那么进一步的,如果玩家也懂md5,也计算出了A的md5值,进行修改,不就破解了吗?
所以我们计算A的md5的时候,要加一个加密字符串,比如计算A+%^的md5值,而%^是在程序内部设定的,是玩家不可能知道的,所以玩家将无从得到正确的md5值,因而也就不能正确修改,所以我们的数据就安全了.
当然,这样做需要程序上多用点工夫,增加了程序的复杂性,但是这样做完全是值得的,因为数据不被随便修改,单机游戏终于获得了丢失已久的尊严.
更重要的是,在不被修改的基础上,所有的数据都变得确定了,重要了.
下一步我们就可以进行物质传输了.
这本来也是一大难题,因为单机物质传输必然面临重复使用问题.
还好,付坤终于也想出了解决的办法.
我们知道,单机游戏没有服务器的监管,没有服务器的连通,是没有数据交流的,物质怎么能传输过去呢?
所以首先要确定,数据传输是必要的.
那么如何传输呢?答案是手动传输.
先不要急着否定,任何新生事物都有一个接受过程.
我们填验证码,填注册号的时候不都是手动的吗?
可见手动并非是不可接受的.
不过手动输入的数据一定要简单,不能麻烦复杂.
有了这个数据传输的基础,再来考虑物质传输,就有了曙光了.
两个单机客户端之间,比如我想传输一瓶药水,属性是50,那么我将数据手动输入另一个客户端,被接受了,现在不是有两瓶药水了吗?
如此传来传去药水就泛滥了.
所以传输者首先要销毁已经传输出去的东西.
那么问题又来了.
假如第二个客户端接受了这瓶药水,第三客户端也能接受,这不又是一变多吗?
还是不行.
正是这一个个的问题,阻碍了人们思维的前进.
还好,我们又想到了解决的方法.
引入验证码制度.
每一个客户端初始生成两个8位以上的随机数字,作为身份标识,每个客户端都是不同的,相同的几率可以忽略不记.
物质传输的时候,输入对方客户端的验证码,接收方程序接收时进行验证,如果验证码一致,则物质接收成功.而原客户端进行销毁,这样物质传输就完成了.
这样阻止了其他客户端的接收,保证了物质传输过程中的唯一性.
但是还有一个问题,同一个客户端如果接收两次或多次呢?
那不是又相当于无限复制了?
不要紧,还有解决办法.
接收物质后,令验证码加一,产生变化,那么第二次接收就不可能验证成功了,再次保证了物质的唯一性.
等等,还是有问题,假如传一瓶药水只是输入验证码,那我随便就可以传啊,与原来的客户端没有关系啊,怎么知道它消耗了一瓶药水呢,如果没有这个消耗,相当于凭空变出来的药水啊,这显然是不行的.
问题真多啊,做点事不容易,尤其是前人没有做过的事.
不用担心,有办法.
我们再次用到md5.
简化情况下,假设A客户端传输一瓶药水,类型为1,属性为50,对方B客户端验证码为123456789,我们生成md5(1%50%123456789),将这三个关键数据都用上了,生成的md5值手动记录下来,在B客户端输入1,50,和md5值,程序取B的验证码计算,如果结果和这个md5值相等,则表示验证成功,是向B传输的物质.
这样,由于%起到分割和加密的作用,玩家是不知道的,因此不能自己制作正确的md5值,相当于手动的传输过程被加密了,只有客户端才能完成这个过程.人为不能修改和参与,人的手动只是起到一个搬运的过程.
好了,终于完成,两个客户端程序间传输了一瓶药水.
既然药水可以,其他的东西当然也行了.
单机游戏间物质可以进行传递了,你惊奇的发现,它成为了一款具有网络性质的游戏,没有服务器,物质的交流手动完成,只需要输入输出简单的字符串而已.
从此以后,单机游戏必将发生翻天覆地的变化.
当然,我们不去管那么多,这个过程是缓慢的,首先要将这种思路传递出去,让游戏制作人们知道并接受,进而运用,不是一件可以迅速完成的事.
回到我们文章的主题,单机卖道具,用利益驱动发展,是最快的方式,我们应该从这里做起.
既然物质可以传输了,可以从玩家传输到玩家,这是一个重要的发展方向,但我们先不管.
我们知道游戏开发者控制着程序,他是特殊的玩家.
如果他开发出只有自己可以使用的权限,可以生成道具,可以传输给玩家的客户端,那么就可以卖道具了.
玩家付钱,他可以把道具加密的数据交给玩家,玩家通过数据输入,得到道具,进而更愉快的进行游戏.
至于给钱的渠道,是人民币也可以,网上支付也可以,你开个网站收虚拟币也可以,当然,收虚拟币说明你有更宏伟的蓝图,谋划的是更大的游戏范畴.
如果你选择收虚拟币,你当然可以有更多的设计,可以使用自己的虚拟币,也可以使用别人开发的虚拟币.
我们说了,单机间物质可以传输,那么钱呢?钱就是一个数字,相当于一个有属性的物质,当然也是可传输的.
但是当我们的游戏比较庞大时,在里面进行钱的传输会出现安全问题,因为很多地方都用到钱,出BUG的可能大增,而BUG一旦出现,就影响整个系统,可以刷钱,游戏就完了.
所以钱的传递最好跟物质传递分开,成为一个独立的系统.
我已经做出了这样的一个系统,点击币,可以到名门封神吧下载.这个系统可以附加到任何游戏系统,如果你有传递物质的需要,又需要用钱来标明给予的价值,用这个系统是很方便的.
当然,如果你开发了大型的单机游戏,又有自己的考虑,也可以设计自己的货币系统用于交易,产生更多的玩法.
当然,如果你志在人民币,网上支付也是不错的选择.
好了,这是一次技术革命,单机游戏迎来发展的春天.
有了钱的激励,相信大家可以作出更多更好的游戏.
而且,有了物质传输,单机游戏本身也在向网络游戏发展,比如几个门派的玩家,打了装备,互相交换,大家共同前进.
希望有更多的游戏制作者看到这篇文章.
开发网络游戏的也可以考虑客户端加单机的模式,这是一个发展方向,由于物质可以传输,单机可以和客户端交流,可以分担服务器的压力,可以制作更大的超级网游.
由于分担了服务器压力,服务器可以更专注于玩家交互,可以容纳更多的人.
当然,这就不是单机游戏的范畴了,未来单机游戏和网络游戏的界限将模糊.
我把这些心得和经验发出来,也没有申请专利,我也开发不出大型游戏,但我想作出自己的贡献,毕竟我也是游戏行业的一员.
希望大家大力的运用起来,实现单机游戏的二次繁荣和网络游戏的更大发展.
我的要求不多,如果未来大家使用了这种技术和理念开发,请在制作人名单上给付坤留一个位置,谢谢.
联系方式:
QQ:270182827
邮箱:fukun551@163.com
|
|