代码角度分析《旅行青蛙》:一
17 年春节前,《旅行青蛙》火的不行,反应慢一拍的我最近才开始迷上这个游戏。最近我的青蛙出去旅行不知所踪好几天了,作为一个不甘心当“佛系青年”的程序员,我想看看游戏的代码到底是如何设定的。
所谓细节是魔鬼,真做起来就没那么容易了,我从来没有接触过游戏开发,更别提手游了,一开始还真是有点懵。
第一步,我想先确定一下《旅行青蛙》是否涉及到和服务器端的交互,毕竟单机游戏破解还比较容易,如果数据是从服务器端拿到的话难度肯定会大一些。用手机端端的抓包软件看看游戏过程中是否有和服务器的交互就可以了。
上图是一次请求交互的结果,其他的交互也是一样的模式,响应消息中除了 200 OK,没有其他内容,表示这只是应用向服务器端上报运行状态的变化,便于监控游戏的 bug,并无服务器端的逻辑,而且还可以看出来是一个基于 Unity 3D 开发的游戏。
对我来讲,破解还是从 Android 端入手更为容易一些,于是从 Google Play 上下载下来了 APK,扩展名改为 RAR,即可解压。解压后目录结构如下:
通常来讲 Unity 开发的软件代码会打包成 Assembly-CSharp.dll 放在目录 assets/bin/Data/Managed/ 目录下,这个游戏也是如此,使用 .Net 的反编译软件即可拿到代码,不过通常来讲,都会对这个文件做加壳处理,想破解不会很轻松,但这个游戏是个例外,也许是因为 Hit-Point 是日本的游戏公司,只能说和国内的行业氛围不一样吧。
简单的扫了一下代码,我觉得代码质量还是挺高的,风格一致性很高,写的也颇为工整。而且代码量比我之前想象的要大得多,本以为一个休闲小游戏不会有多少内容的。而且代码主要集中在地图系统的逻辑上,这也有些出乎意料,毕竟地图系统在游戏中根本不可见,随便做上几个点,随机选择,恐怕对绝大部分用户来说也没差别,要为这个游戏的一丝不苟点赞。
目前对于游戏的逻辑还没有深入研究,目前能确定的几个结论有:
- 使用不同的称号,对游戏的进程没有影响,因为没有找到这部分逻辑,例如使用“离家之路”,也不会让小青蛙回来的更慢。
- 门前的池塘里最多一次可以收获二十枚三叶草,每棵三叶草都有自己独立的重生时间,范围在五分钟到四个小时之间,所以想多赚点三叶草,就要勤快一点,多去点点。
- 抽奖的奖品获奖率是不同的,车票(黄玉): 1%,金平糖(红玉):3% ,小馒头(绿玉):9%,护身符(青玉):27%,抽奖卷一张(白玉):60%。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android谷歌官方的自适应TextView字体大小的解决方案
Android谷歌官方的自适应TextView字体大小的解决方案 有时候UI限定了TextView宽度或者布局的控件空间尺寸不足,而此时的TextView里面的文本就无法完全正常显示。自适应TextView文本大小字体以适应限定宽度的TextView有不少方法,现在给出一种Android官方的自适应字体方法,直接在xml即可自适应。 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="80dp" android:layout_height="wrap_content" android:background="@andr...
- 下一篇
安卓与Unity交互之-Android Studio创建Module库模块教程
安卓开发工具创建Module库 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分享、心创新!助力快速创建安卓 Module 库模块为新手节省宝贵的时间,避免采坑! 1 Create Project —— 创建安卓项目 2 layout Info —— 布局信息 3 Create Module —— 新建一个模块 4 Improt Unity Jar —— Unity的Jar包导入到安卓库中 4 Change AndroidMainifest —— 更改库中的清单文件 5 Extend —— 扩展,你可能需要 支持 May Be —— 搞开发,总有一天要做的事! 全文高清图片,点击即可放大观看 (很多人竟然不知道) 1 Create Project —— 创建安卓项目 贴心的 Chinar 提醒:尚未安装与不知道怎么安装 Android Studio 的请点击↓↓ Android Studio的安装、配置 ! 直接上一个 GIF 图片,便于理解 如果完全不知道 Andr...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Mario游戏-低调大师作品
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能