RPA Extractor

Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.

How do you feel about it?

Poll ended at Fri Aug 10, 2007 10:29 pm

Go ahead, it's all right with me.
5
42%
Please don't, I want to protect my work.
6
50%
I don't care. Next!
1
8%
...Huh?
0
No votes
 
Total votes: 12

Message
Author
User avatar
Criptych
Regular
Posts: 87
Joined: Sat Jun 23, 2007 9:19 am
Projects: ALICE.NET
Location: The other end of the internet.
Contact:

RPA Extractor

#1 Post by Criptych » Thu Aug 09, 2007 10:29 pm

I've written (read: pasted together the right blocks of Ren'Py code to make) a small extractor for Ren'Py archive (RPA) files. PyTom warns me, though, that this may not be popular with you game developers, so I'd like to ask your opinion on it before posting the source.

EDIT: I should also mention that I'm hoping to use this as a springboard for devising a more secure format. Of course, none of the formats I've seen are completely uncrackable, just very time-consuming.
Last edited by Criptych on Sat Aug 11, 2007 2:23 am, edited 1 time in total.
Computers are useless. They can only give you answers. —Pablo Picasso

Image

User avatar
DaFool
Lemma-Class Veteran
Posts: 4171
Joined: Tue Aug 01, 2006 12:39 pm
Contact:

Re: RPA Extractor

#2 Post by DaFool » Thu Aug 09, 2007 11:05 pm

I used to be anal about this, but recently it seems my attitude went about-face.

The discussion about commercialism and copy protection had some influence in this.

This is the internet, things are set free, the only thing I can do is make a small note so that people are aware what actions I approve and disapprove as well as for my own protection.

Also part of the reason is that I adopted a compositing / palette-switching technique so that a lot of things are in bits and pieces. Well, maybe event CGs. HCGs, and backgrounds are still solid, but the most important determining factor of the game -- the characters -- are still a pain to reconstruct.

ALTHOUGH...

I can expect some people to come across Ren'Py, download some games, and instead of playing them seriously, crack them open and laugh at their contents.

The only purpose I see archive extractors for -- apart from collecting HCG packs in the case of Japanese commercial games -- is to see how efficient the resources are.

User avatar
Criptych
Regular
Posts: 87
Joined: Sat Jun 23, 2007 9:19 am
Projects: ALICE.NET
Location: The other end of the internet.
Contact:

Re: RPA Extractor

#3 Post by Criptych » Thu Aug 09, 2007 11:52 pm

DaFool wrote:I can expect some people to come across Ren'Py, download some games, and instead of playing them seriously, crack them open and laugh at their contents.
Well, I initially made it to "crack them open," but more for taking a look at the script and laughing at myself, saying "Why didn't I think of that?" :P

I realize there are people who use legitimate tools for illegitimate purposes (and I'll admit to doing as much myself, on occasion), so maybe it's best after all to keep this under wraps, but I'm going to wait for a few more votes.

Besides, it's not as if no one else could make it themselves, if they had a mind to.
DaFool wrote:Also part of the reason is that I adopted a compositing / palette-switching technique so that a lot of things are in bits and pieces. Well, maybe event CGs. HCGs, and backgrounds are still solid, but the most important determining factor of the game -- the characters -- are still a pain to reconstruct.
Exactly the kind of techniques that I like to check out. :) I'm not one to use art unless it's (more-or-less) freely given, as in ALICE, but code... is a bit of a gray area, I think.

Not that I'd "steal" code, either, but keep certain things in mind when tweaking my own.
Computers are useless. They can only give you answers. —Pablo Picasso

Image

User avatar
mikey
Lemma-Class Veteran
Posts: 3249
Joined: Sat Jan 10, 2004 6:03 am
itch: atpprojects
Contact:

Re: RPA Extractor

#4 Post by mikey » Fri Aug 10, 2007 2:09 am

Well, this had to come sometime, so I'm not fighting it.

User avatar
Shish
Newbie
Posts: 15
Joined: Mon Jul 16, 2007 3:57 pm
Contact:

Re: RPA Extractor

#5 Post by Shish » Fri Aug 10, 2007 4:30 am

I voted no, though not to protect my work -- pretty much everything I do is open source to begin with, I'd just like that to remain my choice~

Also, I can't see a legitimate reason for decompiling -- if you want something in a format that the author didn't give it (ie, you want to look at the source to see how things work), then asking the author is a far more polite thing to do~

Also, things like this tend to start arms races -- I'd rather things be left as they are (RPA being enough of an obsticle to stop the lazy 90% of people) than see both sides wasting time and effort on a race which never ends~

User avatar
monele
Lemma-Class Veteran
Posts: 4101
Joined: Sat Oct 08, 2005 7:57 am
Location: France
Contact:

Re: RPA Extractor

#6 Post by monele » Fri Aug 10, 2007 6:21 am

How long did it take to find the right way?

I'd vote "no" because it does sound scary to have people able to grab your resources (code, I care less) but at the same time, I've myself used such a program to get sprites from Ever17 to use as placeholders, so... that'd be hypocritical, eh? ^^;

User avatar
mikey
Lemma-Class Veteran
Posts: 3249
Joined: Sat Jan 10, 2004 6:03 am
itch: atpprojects
Contact:

Re: RPA Extractor

#7 Post by mikey » Fri Aug 10, 2007 6:29 am

Shish wrote:Also, I can't see a legitimate reason for decompiling -- if you want something in a format that the author didn't give it (ie, you want to look at the source to see how things work), then asking the author is a far more polite thing to do~
I'm always happy when people ask me for permission, but I do not expect this politeness normally. Not that I would think all people are rude, but it's the internet and I can't expect people to suddenly understand all about the community and freeware gamemaking and the ideas behind it.

To be honest, I don't think I'd use the RPA Decompiler to look into other people's codes - I even deleted one early version of Project Nattsu that had its graphics unobfuscated when I realized that the new versions have them packed. I don't want to see what the makers didn't want me to see, because I can understand it myself. But it doesn't mean that to others this will also be as natural as to me. It's probably difficult to explain unless you've actually done this - I don't mean releasing a game, but obfuscating images and script so that you can surprise your players with things you have prepared.

In the end, it's their choice. Apart from seeing a few comments that I put in internally into the script, there isn't an industry secret lurking within the packed files. Everyone will probably decide on their own whether they want to only play the game, or play first and disect it afterwards, or whether they just want to quickly see everything. But the option of looking makes people curious, that's beyond dispute.

My hope is always that people treat the game so that they have the most of it - wait for the right mood, take their time, not just click through it so they can say they played it, and so on. I always take my time, because I want to enjoy the games the way they were meant to be enjoyed - and I never scrutinize the forbidden directories - in one way it's technically interesting to see how it was done, on the other hand a VN is still something to be seen as a whole. As much as the engine is important, it will always be a tool - it's up to the individual how he sees a game - but most of the makers make games for people to play, rather than play with.

It may all be because I am constantly working on the games, seeing the process and how it's done - that I for myself want to preserve the illusion as much as possible in the other people's games. Several years ago when I didn't know how the internals of a VN work, the games had a certain magic to them - a magic that is gone now, since I already know too much.

Maybe that's a reason why I don't look, why I don't want to find out. I want the games to be a bit mysterious, especially because if I'm not able to put away the technological viewpoint, I'd be going through a game wondering what my choice in the game did to the variables and try to understand the structure so I can get to another arc - instead of simply playing. But the games need the magic, and if it's not there because I know how things work, I must invite it back myself.

It happened to me once (with non-VN games), that I was in a phase where I was so focused on technicalities, that I realized I'm not really playing, I'm going through the game. I missed a lot of experiences that could have been great and memorable, simply because I was too focused on how it's done, how cliched the story was and how many points out of ten it will get. It took me years to get back to a mindset where I could forget all about resources and engines and just concentrate on the game.

So that's why I think that an extractor won't really do that much damage. I probably wouldn't release it publically if it was my choice, but I won't disrespect someone who releases such a tool, much less try to stop him. I like to leave it in the hands of the players how they approach the games - and with freeware OELVNs you always rely on the players that they can warm up to the concept, maybe overlook certain things and most of all focus on what's in the heart of each piece. A publically available extractor will, at worst put the players or developers before a choice. What they decide, and what it will mean to them, is of course, the responsibility of them alone.

User avatar
monele
Lemma-Class Veteran
Posts: 4101
Joined: Sat Oct 08, 2005 7:57 am
Location: France
Contact:

Re: RPA Extractor

#8 Post by monele » Fri Aug 10, 2007 10:40 am

The only thing I could ask would be to make its release... not too obvious... and not put it right next to games and such. This should be a developer tool and only someone who is actually looking for an RPA extractor should find it... not regular gamers.

User avatar
Criptych
Regular
Posts: 87
Joined: Sat Jun 23, 2007 9:19 am
Projects: ALICE.NET
Location: The other end of the internet.
Contact:

Re: RPA Extractor

#9 Post by Criptych » Fri Aug 10, 2007 11:40 am

Wow, I didn't expect such a philosophical discussion. :oops: But you all have some good points.
monele wrote:How long did it take to find the right way?
The "right way" to do what? To extract RPAs? After I got the notion to do so, about... ten minutes? But I can't claim any real credit for that, since it was all lurking in the Ren'Py source, and I just added a few lines to link the right parts together.
monele wrote:The only thing I could ask would be to make its release... not too obvious... and not put it right next to games and such. This should be a developer tool and only someone who is actually looking for an RPA extractor should find it... not regular gamers.
Amen. :D This is the official Ren'Py developers' forum, isn't it? If members here don't want to see it, there's no point posting it elsewhere.
Computers are useless. They can only give you answers. —Pablo Picasso

Image

User avatar
Wintermoon
Miko-Class Veteran
Posts: 701
Joined: Sat May 26, 2007 3:41 pm
Contact:

Re: RPA Extractor

#10 Post by Wintermoon » Fri Aug 10, 2007 1:09 pm

Ren'py is open source, therefore RPA is an open format. Anybody who wants to extract resources from an RPA file can do it. The existence of an extractor program isn't going to change that one way or the other. Security through obscurity is no security at all.

User avatar
monele
Lemma-Class Veteran
Posts: 4101
Joined: Sat Oct 08, 2005 7:57 am
Location: France
Contact:

Re: RPA Extractor

#11 Post by monele » Fri Aug 10, 2007 1:26 pm

After I got the notion to do so, about... ten minutes?
Haha ^^;... Yeah, there's not much point refusing your program if it can be reproduced quickly. And really, I don't think it should not exist. It could actually be an interesting tool for devs too (losing sources and having only the RPA to get files back) but it's something like giving this extractor along with games which could make it look like the data is free to use or something *shrugs*... (not saying you're planning to do that... just giving an example)

User avatar
PyTom
Ren'Py Creator
Posts: 15893
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren'Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: RPA Extractor

#12 Post by PyTom » Fri Aug 10, 2007 1:34 pm

Just to clear up what seems to be some confusion... the RPA format stores images, music, etc. The scripts are converted to the RPYC format, which loses a lot of information. So the script is more difficult to get at then just extracting the RPA file.

(That isn't to say I don't have a tool that can turn a RPYC file into a script.)
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
"Silly and fun things are important." - Elon Musk
Software > Drama • https://www.patreon.com/renpytom

User avatar
Criptych
Regular
Posts: 87
Joined: Sat Jun 23, 2007 9:19 am
Projects: ALICE.NET
Location: The other end of the internet.
Contact:

Re: RPA Extractor

#13 Post by Criptych » Fri Aug 10, 2007 3:52 pm

PyTom wrote:Just to clear up what seems to be some confusion... the RPA format stores images, music, etc. The scripts are converted to the RPYC format, which loses a lot of information.
Not the important parts, though. Just the human-readable part.
PyTom wrote:(That isn't to say I don't have a tool that can turn a RPYC file into a script.)
*ruminates...*
Computers are useless. They can only give you answers. —Pablo Picasso

Image

User avatar
Criptych
Regular
Posts: 87
Joined: Sat Jun 23, 2007 9:19 am
Projects: ALICE.NET
Location: The other end of the internet.
Contact:

Re: RPA Extractor

#14 Post by Criptych » Sat Aug 11, 2007 2:21 am

Well, it's pretty close, but it looks like the majority vote is "no." (And one "I don't care"-- PyTom?) So if anyone is just dying to get this program: learn Python and read the Ren'Py source.

Now, on to loftier pursuits... *opens hex editor* :twisted:



(Um, no, not RPYC. Not yet, anyway.)
Computers are useless. They can only give you answers. —Pablo Picasso

Image

User avatar
Shish
Newbie
Posts: 15
Joined: Mon Jul 16, 2007 3:57 pm
Contact:

Re: RPA Extractor

#15 Post by Shish » Sat Aug 11, 2007 5:53 am

Wintermoon wrote:Security through obscurity is no security at all.
I suspect that you are quoting this from somewhere, without really understanding the context :3

Security through obscurity *is* security, it's just very *low* security -- and in this case "low" also happens to be "enough". The security doesn't have to be high enough to protect national secrets, it just has to get the message across that the author doesn't want their stuff decompiled.

While making a decompiler for yourself isn't hard, it is a conscious effort, and you are aware that you are doing things that the author didn't intend -- downloading someone else's decompiler and running it is easy enough that it can be done thoughtlessly~

Post Reply

Who is online

Users browsing this forum: Bing [Bot], _ticlock_