了解renpy及解包

游戏的封包与解包和TCP/IP的封包与解包不同,我们用一个简单的游戏引擎进行开发来了解一下简单的开发流程。

我们这里使用的是renpy的游戏引擎进行文件的进行的开发演示。

以下是renpy的开发界面。

renpy为我们自定义好了文件夹,我们可以将图片,音频,文案,等文件放在不同的左侧文件里,右边是文件的编译界面,负责将文件整合起来,并且赋予一些简单的操作。

我们可以在编译的时候启动文件进行预览编辑。

这里是编译的代码的原文件,我们可以在这里进行一些编辑,操作,文案的编写以及UI的开发等内容。

这里仅仅只是做演示。

了解了简单的开发流程是为了逆向的解包的技术做一个铺垫,要掌握逆向的技术开发的技术是必不可少的。

封包技术

在我们开发游戏的时候文件的图片,声音,bgm,ui,文案为了游戏运行的流畅性以及完整性,工程文件不是放在一个文件当中,而是一个文件夹堆砌了多种多样的文件,在我们用固态传输文件的时候,如果小而杂的文件冗杂而且繁多必然会导致文件的传输速率下降,不仅如此文件的源代码还有被盗用的风险,因此不仅仅为了传输也为了安全考虑,在不影响程序的正常运行下,开发厂商用一种自己的封包模式将文件打包成可执行文件,并且将文件的可执行环境给配置好。

解包的流程

为了得到原本的文件信息以及开发的工程内容,我们因此基于封包,开发出了解包的技术。

接下来我们就详细的叙述一下解包的技术内容。

首先,我们要根据不同的开发引擎制定不同的解包方式,比如:unity,虚幻,krkr2等的解包方式各有不同,因此要对应各自的技术进行解包。

renpy是基于python进行开发的,因此python的环境必不可少,我已经配置好了要是不知道怎么配置,可以参照网上的教程。

我借用了一个大佬开发的galgame进行示范。

首先我们找到文件的主文件在什么地方。

如图主文件就是图中文件大小最大的文件。

在解包时我们要借助unrpy这个python库进行解包,这个文件包是专门用于解rpa的文件的解包工具。

这样就将rpa文件给导入出来了,但是导入出来之后发现,图片,对话配音以及bgm都导入出来了,但是文件的开发代码却是.rpyc的文件格式,如果我们想要进一步的提取文件的内容那么,就要进行.rpyc的文件编译,rpcy的解包工具非常抽象,放在下面介绍。

首先我们要求GitHub上下载一个unrpyc的python库文件,并且将其导入python中

当你能查看python的版本的时候文件就能正常运行了,我们将unrpyc.py的文件放入。

在当前文件下输入:python unrpyc.py -c "*.rpyc"

rpy文件我们就能用编辑器进行打开,文件也能正常的编辑

以上就是解包的流程,我们在熟悉一个软件的解包流程之前,必须要先了解它的开发流程。上面仅仅只是拿了个简单的游戏引擎进行了简单的介绍,以下还有非常多的解包的工具以及不同的流程,因此逆向也不仅仅是一个靠技术的技能,开发的经验也十分的重要。

Ren’Py支持持久化数据,这意味着可以保存游戏中与某个特定时间点无关的数据。在Ren’Py中,可以使用persistent变量来实现持久化数据。通过绑定了变量persistent的持久化对象字段,可以读写并实现持久化数据。具体实现可以在脚本文件中进行,例如在script.rpy文件中可以使用以下代码来实现实时保存游玩时间: init python: if persistent.runtime is None: persistent.runtime = 0 def calc_total_run(): persistent.runtime = renpy.get_game_runtime() renpy.clear_game_runtime() config.python_callbacks.append(calc_total_run) 在主界面的screen中,可以展示已经保存的游玩时间。通过将总时间转换为小时、分钟和秒钟的格式,并将其显示在界面上。 screen main_menu(): # 其他界面元素 # ... # 显示统计时间 $ m, s = divmod(int(persistent.runtime), 60) $ h, m = divmod(m, 60) # 时:分:秒 text "[h]:[m]:[s]" 因此,Ren’Py通过持久化数据的方式,可以方便地保存和展示游玩时间等与游戏进度无关的数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [RenPy 统计游戏时间](https://blog.csdn.net/scueee/article/details/108916944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值