jack_norton wrote:I can see only ONE possible use for this, and it's not really legal...it can only damage people and benefit nobody.
Celso, Celso... there's one possible use stated in the subject line of the thread; I'm pretty sure that retrieving lost script files from old projects isn't illegal now, and it certainly helps people and doesn't damage anyone! Being so melodramatic only makes you look daft.
On top of retrieving the scripts for old projects, learning from other people's coding approaches is also perfectly legal to the best of my understanding. Several countries' copyright laws even have specific provision allowing copyrighted material to be used for educational purposes! It certainly benefits people, for that matter - a large proportion of today's programmers started out looking at other people's code to see how it worked, how to structure their programs, and so on.
Since it's already trivial to use Ren'Py functions to extract the images, movies, sounds and other resources from an RPA, and any half-decent programmer could already replicate the gameplay in any Ren'Py game I've seen, I presume you're talking about removing the DRM - which is a very specific and not at all general problem, since I don't know of any other Ren'Py game developers using DRM. And frankly, you have been warned before that DRM is ultimately futile. If nobody has produced a crack for your games' DRM already, it's not because your DRM is so awesome, it's because nobody thought it was worth their time. If they don't think it's worth their time now, it's not going to necessarily suddenly become worth their time after this decompiler is more widely available. Your average novice is still going to be completely lost even with your source code, and even the best programmers working for big software houses can't realistically hope to put off determined and knowledgeable people.
jack_norton wrote:If such script become public I'd have to stop using Ren'Py to make all future games for sure.
Oh? And where are you going to go? You could code in C or C++, I suppose, but not only does that mean you'll have to do a hell of a lot more work to write your game, but also C and C++ decompilers have been around for longer than Ren'Py itself has. You could write in a higher-level language like Java or C#, maybe use a library like LWJGL or an engine like Unity that runs on one of those languages, except... both languages support reflection/introspection out of the box that allows such decompilation. I would even hazard a guess that there does not exist a single widely-used language or platform which doesn't have this kind of decompilation tool available to it in one form or another.
The fundamental reality - the bottom line - is that people's computers have to be able to interpret your game's program or script command by command, line by line in order to run the software. This means that all the commands have to be stored in the downloadable executable that you sell to your customers. Since all the data is in there, it's only a matter of time and motivation for someone to write a tool which extracts said data in some way other than just executing the program. It will
always be possible, it's only not been seen for Ren'Py so far because the few people in the EVN community with sufficient programming skill and knowledge haven't been bothered to write the code to extract it until now. As support for a programming platform grows, the likelihood that a tool like this will arrive approaches certainty. I think it's safe to say that you will never, ever find a platform for game development which isn't ultimately possible to decompile like this, one way or another - you can run from minority platform to minority platform as soon as such a tool becomes available for each one if you like, but that will just mean that you have to learn a new set of quirks, deal with a new set of people and worry about poor support or flexibility at each point along the way.
I code in C#/.NET professionally, and have done for several years; there is a tool available - 'Reflector', formerly by a guy named Lutz Roeder (Microsoft employee) and now supported by RedGate (relatively respected tools company) - which provides perfect, compilable source code for any compiled .NET assembly. IIRC, it's been around about a decade... but in that decade, developers around the world have continued to make money selling .NET applications. In fact, people still use C# to code Unity games!
(For what it's worth, said tool was used on a nearly daily basis at my previous employer, and to the best of my knowledge not a single use of it was illegal.)
My opinion is that there's little actual harm, overall, to such a tool existing. Despite what Celso would like us to think, there are many actual, practical, and legally- and morally-acceptable reasons that people may want such a tool. As the original poster suggested, many people do actually lose the source code to their own projects and have only the compiled versions available; programmers who want to learn will sometimes find the ability to look at other people's code useful for the learning process. If anyone ever releases a useful library for Ren'Py in compiled form only, and neglects to mention caveats of use or valid inputs in their documentation, being able to see the source makes it more possible for people to use those libraries. It is just a tool - and like a hammer can be used for knocking in nails or murdering people, it can be used for good and bad purposes. I suspect that anyone who suggested that we ban hammers would be roundly ignored!
The bad side universally assumes bad actors - that is, people who are intentionally doing things that they know are wrong. For them to flourish, you also need people to accept their behaviour - if someone makes a game which is obviously a ripoff of another game just with replaced graphics or whatever, I have little doubt that most people will call them out on it and shun them, for example.
The more practical argument, of course, is that you can't
stop it existing. The guy has already written it, and could distribute it wherever he likes, however he likes; PyTom doesn't control the whole Internet, so even if he chooses to censor it here, it will quite plausibly still be available elsewhere... and worse still, the more-naïve developers who inhabit this forum won't know about it and will continue to falsely believe their compiled games to be impenetrable. Arguably for this reason alone it's worse to censor it here than to allow it to be posted and discussed openly. Any other guy could come along and do the same work and make a similar tool at any moment, and if Ren'Py continues to grow in popularity, they certainly will.