游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3179|回复: 6

[原创] 单机卖道具时代来临,请记住这神一样的男人。

[复制链接]

4

主题

5

帖子

26

积分

注册会员

Rank: 2

积分
26
发表于 2015-8-5 10:39:00 | 显示全部楼层 |阅读模式
作者:付坤
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

0

主题

141

帖子

872

积分

高级会员

Rank: 4

积分
872
QQ
发表于 2015-8-5 10:43:16 | 显示全部楼层
本帖最后由 casy 于 2015-8-5 11:00 编辑

为啥我不做一个卖道具的网络游戏?
为啥做单机游戏我要卖道具?
为什么低价租一个服务器就能解决的问题,要这么复杂……

可能楼主的技术很厉害,原谅我确实没看懂(非技术出身)。
但是不符合商业逻辑,就然并卵了。
楼主是个有心人,应该去研究大家更需要的技术。

102

主题

2443

帖子

7639

积分

论坛元老

Rank: 8Rank: 8

积分
7639
发表于 2015-8-5 11:43:24 | 显示全部楼层
应该这样吧?

电脑记忆区除了内存和道具位置,还生成校验A和B和C,当道具变动和校验和获得道具逻辑不相符的时候则存档丢失。

电脑1有一个身份验证码1
电脑2输入这个身份验证码1,然后把道具拖入传输区,道具被销毁,生成代码A。
把代码A输入电脑1,电脑1得到道具。

这没有意义……

18

主题

1581

帖子

1991

积分

金牌会员

Rank: 6Rank: 6

积分
1991
发表于 2015-8-5 11:57:04 | 显示全部楼层
暗黑3,不早解决这个问题了么?

楼主,这是要闹哪样?

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2015-8-5 16:16:50 | 显示全部楼层
楼主,实在不想戳你……
这类文章最好发去程序那边
忽悠策划是不好滴

0

主题

5

帖子

36

积分

注册会员

Rank: 2

积分
36
发表于 2015-8-5 17:55:15 | 显示全部楼层
可以看出楼主不懂技术,但满腔热血也是非常难得的
首先,通过可逆算法隐藏内存数据,或者通过非可逆算法对内存数据进行校验,这是一直很早就存在的手段,你我都不是第一次发现和采用的。为什么单机还是容易被破解,因为对付专业的,可以直接反编译修改代码绕过或去掉这些措施。
至于后面说的玩家间交易,只能说明楼主实在是图样图森破,难道楼主不知道一个东西叫回档吗?交易完单方回档。

1

主题

187

帖子

926

积分

高级会员

Rank: 4

积分
926
发表于 2015-8-5 18:53:02 | 显示全部楼层
很简单,截取你购买时的数据包然后通过伪装的本地服务器发送数据包,你这个就破解不了,因为一样实现了购买

事实上你的这套理论并没什么卵用

一方面需要监控的数据太多了,如果没一个数据都去本地存储,你想什么样配置的手机能不卡?

而目前单机游戏都是联网消费,即一旦发生消费就强制和服务器联网,数据永存服务器,这样你本地做了再多的事情也改变不了你服务器的货币数量
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-24 14:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表