您现在的位置是:首页 > 文章详情

代码角度分析《旅行青蛙》:一

日期:2018-04-13点击:563
img_ec952b93c8807e850328ed9c1bb91244.jpe
坐船的小青蛙

17 年春节前,《旅行青蛙》火的不行,反应慢一拍的我最近才开始迷上这个游戏。最近我的青蛙出去旅行不知所踪好几天了,作为一个不甘心当“佛系青年”的程序员,我想看看游戏的代码到底是如何设定的。

所谓细节是魔鬼,真做起来就没那么容易了,我从来没有接触过游戏开发,更别提手游了,一开始还真是有点懵。

第一步,我想先确定一下《旅行青蛙》是否涉及到和服务器端的交互,毕竟单机游戏破解还比较容易,如果数据是从服务器端拿到的话难度肯定会大一些。用手机端端的抓包软件看看游戏过程中是否有和服务器的交互就可以了。


img_17bb5f16a633e1d9b178f49bafda78ea.jpe
request
img_3a6230f10557ce22a8aee9785afcfcbe.jpe
response

上图是一次请求交互的结果,其他的交互也是一样的模式,响应消息中除了 200 OK,没有其他内容,表示这只是应用向服务器端上报运行状态的变化,便于监控游戏的 bug,并无服务器端的逻辑,而且还可以看出来是一个基于 Unity 3D 开发的游戏。

对我来讲,破解还是从 Android 端入手更为容易一些,于是从 Google Play 上下载下来了 APK,扩展名改为 RAR,即可解压。解压后目录结构如下:

img_88e6ed524925790d53c00f7d6a631282.png
jp.co.hit_point.tabikaeru

通常来讲 Unity 开发的软件代码会打包成 Assembly-CSharp.dll 放在目录 assets/bin/Data/Managed/ 目录下,这个游戏也是如此,使用 .Net 的反编译软件即可拿到代码,不过通常来讲,都会对这个文件做加壳处理,想破解不会很轻松,但这个游戏是个例外,也许是因为 Hit-Point 是日本的游戏公司,只能说和国内的行业氛围不一样吧。

img_79e2459feb539c16c74de922c520dfb6.png
游戏代码

简单的扫了一下代码,我觉得代码质量还是挺高的,风格一致性很高,写的也颇为工整。而且代码量比我之前想象的要大得多,本以为一个休闲小游戏不会有多少内容的。而且代码主要集中在地图系统的逻辑上,这也有些出乎意料,毕竟地图系统在游戏中根本不可见,随便做上几个点,随机选择,恐怕对绝大部分用户来说也没差别,要为这个游戏的一丝不苟点赞。

目前对于游戏的逻辑还没有深入研究,目前能确定的几个结论有:

  • 使用不同的称号,对游戏的进程没有影响,因为没有找到这部分逻辑,例如使用“离家之路”,也不会让小青蛙回来的更慢。
  • 门前的池塘里最多一次可以收获二十枚三叶草,每棵三叶草都有自己独立的重生时间,范围在五分钟到四个小时之间,所以想多赚点三叶草,就要勤快一点,多去点点。
  • 抽奖的奖品获奖率是不同的,车票(黄玉): 1%,金平糖(红玉):3% ,小馒头(绿玉):9%,护身符(青玉):27%,抽奖卷一张(白玉):60%。

参考链接:
呱呱走火入魔-逆向游戏代码-终结玄学迷信
旅行青蛙分析(Android篇)

原文链接:https://yq.aliyun.com/articles/655420
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章