Choosing an engine -- extensibility, encryption..?

A place to discuss things that aren't specific to any one creator or game.
Forum rules
Ren'Py specific questions should be posted in the Ren'Py Questions and Annoucements forum, not here.
Message
Author
User avatar
PyTom
Ren'Py Creator
Posts: 16096
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: Choosing an engine -- extensibility, encryption..?

#16 Post by PyTom »

papillon wrote:What you want to stop are the people who just try briefly to crack it and then give up and buy it. You want to make sure they can't make a simple websearch and get a free copy of your game with no work, you want to make sure they can't find a working serial posted on usenet that anyone and everyone can use. But if they're hanging out in secret pirate clubs and trading hacking tools, they're not going to decide to buy your game just because it was a little harder to crack. :)
I think the question is: how do we accomplish this?

The problem I have is that all it takes is one person to crack the program, and post up a version without copy protection, or to make a keygen. After that, unsophisticated people can easily grab the program.

This isn't academic... it seems like most of the commercial games have been cracked in this way.

I don't know a way that keeps games safe from even casual pirates, except for a game to be obscure enough that noone tries cracking it.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

rocket
Veteran
Posts: 373
Joined: Tue Jul 10, 2007 2:54 am
Projects: Starlight Ep0, Ep1
Location: San Fransisco
Contact:

Re: Choosing an engine -- extensibility, encryption..?

#17 Post by rocket »

The internet makes anything that can be digitized, incredibly easy to steal. There is nearly nothing that a simple websearch won't reveal. The only things exempt are the highly obscure (like visual novels), and even for the obscure items chances are extremely high that there's a BBS somewhere where you can find what your looking for if its relevant to your interests. Sorry that's reality.

Think about how much worse dojin artists have it, there's no way to obfuscate artwork! (^_^) Even the large majority who publish only on paper find their works scanned and traded almost instantly.

The only "hard enough" copy protection systems that work are in relatively closed environments like DVD players or PlayStations - and of course thoose tend to have attractive enough content that people are motivated to crack them too.

So I have to ask, why would anyone want to bother with encryption or copy protection?

You want to protect creative intellectual property? Use copyright laws for that.
You want to keep players from cheating? Well I've heard some convincing arguments that 'cheating' is just another form of play experience, but regardless why would you care? It'll ruin their experience *shrug*- presumably their idea of a good experience is different from yours. Your ideal audience that thinks your way is not going to be the ones cheating after all.
You want to protect trade secrets involved in the coding of your work? If it's that clever patent it. If not, well probably the community would be better served by more examples of how to do stuff.
You want to protect your revenue stream? For a ELVN the audience that's likely to steal as opposed to buy is likely relatively small, even if you assume the pirated items were somehow not *insanely* obscure.

Yet another reason for low prices I think...

Sorry. I don't know why I care. Just had to vent.... ^_^;;

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

Re: Choosing an engine -- extensibility, encryption..?

#18 Post by DaFool »

Hmmm... okay.

How about this: Let us assume I have a quick yaruge completed, and I want to sell it on DLsite for ten dollars or less.

What is the first thing I should do? Is the basic copy protection implementation at a stage where it's immediately useable, or is more work needed on it? Or should I just leave it to the folks at DLsite who probably never encountered a Ren'Py game before?

Or should one need to ask PyTom for the special case as is assumed for commercial games like LearningSquared?

This is just a question to determine the exact status of protection for commercial Ren'Py games.

Since we determined that if the price is low enough, even simple protection would suffice, well why not? As long as the average player would more easily purchase the game rather than go through the hassle of obscure cracking techniques.

User avatar
papillon
Arbiter of the Internets
Posts: 4107
Joined: Tue Aug 26, 2003 4:37 am
Completed: lots; see website!
Projects: something mysterious involving yuri, usually
Organization: Hanako Games
Tumblr: hanakogames
Contact:

Re: Choosing an engine -- extensibility, encryption..?

#19 Post by papillon »

I think the question is: how do we accomplish this?

The problem I have is that all it takes is one person to crack the program, and post up a version without copy protection, or to make a keygen. After that, unsophisticated people can easily grab the program.
Actually, keygens are less of a problem than you think. At least, according to studies that have been done by much larger companies. Joe Average, who is the intended consumer, is scared of mysterious programs found on the internet.

Any cracking method that relies on downloading and running another program, according to their research, does not significantly impact sales.

Similarly, a cracked copy floating around p2p programs - not such a big deal, the people who know how to use them are not the buying base you're aiming for.

Now, of course, this depends on whether you believe their research. :) Also it's in some ways less true of mainstream hardcore games than it is of the casual market - there are more people who uses p2p stuff who WOULD buy hardcore games if they couldn't find a crack than there are casual users.
So I have to ask, why would anyone want to bother with encryption or copy protection?
Because really SIMPLE copy protection of the sort that restricts granny from emailing her registration key to her 87 relatives to try the lovely new game she's found apparently DOES increase sales. :)
Last edited by papillon on Mon Aug 06, 2007 10:59 pm, edited 1 time in total.

rocket
Veteran
Posts: 373
Joined: Tue Jul 10, 2007 2:54 am
Projects: Starlight Ep0, Ep1
Location: San Fransisco
Contact:

Re: Choosing an engine -- extensibility, encryption..?

#20 Post by rocket »

papillon wrote: Actually, keygens are less of a problem than you think. At least, according to studies that have been done by much larger companies. Joe Average, who is the intended consumer, is scared of mysterious programs found on the internet.

Any cracking method that relies on downloading and running another program, according to their research, does not significantly impact sales.
I'm guessing the intersection of the set of users "afraid to run programs from the internet" and the set of "potential customers for ELVNs" is pretty durn close to empty.

Though I do take back what I said about VNs being obscure BTW. Google "torrent fate stay night" or even "torrent cute knight"...

All our base are belong to them.

User avatar
papillon
Arbiter of the Internets
Posts: 4107
Joined: Tue Aug 26, 2003 4:37 am
Completed: lots; see website!
Projects: something mysterious involving yuri, usually
Organization: Hanako Games
Tumblr: hanakogames
Contact:

Re: Choosing an engine -- extensibility, encryption..?

#21 Post by papillon »

Heh, and a lot of those are faked. There were torrents for Cute Knight Deluxe advertised all over the place when the game hadn't been released yet, for anything from 800kb to 8GB. There's a *reason* Joe Average learns not to trust random downloads... a lot of that crap is spyware, virus, or just plain nonexistent (ads to make you sign up to pay warez sites!) :)
I'm guessing the intersection of the set of users "afraid to run programs from the internet" and the set of "potential customers for ELVNs" is pretty durn close to empty.
Not afraid to run *any* program, just afraid to run programs that are clearly not official and potentially dangerous.

Although I have had people email me before downloading my games to reassure themselves that I do exist and I promise there is no spyware in my game.

BellosTheMighty
Regular
Posts: 63
Joined: Wed Aug 01, 2007 11:11 pm
Contact:

Re: Choosing an engine -- extensibility, encryption..?

#22 Post by BellosTheMighty »

papillon wrote:Heh, and a lot of those are faked. There were torrents for Cute Knight Deluxe advertised all over the place when the game hadn't been released yet, for anything from 800kb to 8GB. There's a *reason* Joe Average learns not to trust random downloads... a lot of that crap is spyware, virus, or just plain nonexistent (ads to make you sign up to pay warez sites!) :)
I'm willing to bet that we could sabotage the genuine ones, too, if we really tried. I know little about programming, but I understand torrents work by pulling fragments of the same file from several different users. It would probably be doable, given a decent net connection, to insert a fake file under the same name into a torrent as a seed, so that everyone else's downloads turn out to be corrupt. If, of course, you didn't mind the hit to your bandwidth, but you can just run it while your out of the house or something. After getting a corrupt file several times, the pirate would probably give up. Then when he hits the board to looking for someone to e-mail him the file instead, offer it too him and send him a trojan. ^_^

Nah, on second thought, that last part would be too malicious... Still, it'd be fun to try, if just to be mischievous. Maybe we could even write a script or something to automate the process. Call it OMGMirage...

(Pay no attention to me, just cogitating for my own amusement... ^_^;;;; )
----
"Yes, ninety percent would never get finished, and ninety percent of the rest would suck. That's the way it always works. That's how you get stuff that kicks ass." -Andrew Plotkin

User avatar
PyTom
Ren'Py Creator
Posts: 16096
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: Choosing an engine -- extensibility, encryption..?

#23 Post by PyTom »

DaFool wrote:What is the first thing I should do? Is the basic copy protection implementation at a stage where it's immediately useable, or is more work needed on it? Or should I just leave it to the folks at DLsite who probably never encountered a Ren'Py game before?
Right now, there is no copy protection built into Ren'Py.

One problem with DLSite's approach to copy protection is that it immediately shuts out Linux and Mac users... for a Linux user like me, that's annoying.

https://www.curiousfactory.com/distribu ... otect.html
http://eng.dlsite.com/protect/user

Also, the dlsite "decoding tool" only supports IE, not firefox.

http://eng.dlsite.com/protect/user2

I may be able to get it to work, and I can probably get other tools to work. I wonder if any of the tools can protect a DLL, rather than an EXE file? That would make life easier. So would a tool that can protect a data file, and just wrap the EXE's access to that file.

The releases would be windows-only, unless someone can point me to similar protection of the linux and mac versions. Of course, one may want to release Linux/Mac versions unprotected, and protect the windows version, on the grounds that piracy of the other version will be limited due to the limited market share of those platforms.

I'm not sure if or when I'd get around to doing any of this. It's quite a bit of work, and it's work I'd need to do for each game.
Or should one need to ask PyTom for the special case as is assumed for commercial games like LearningSquared?
AFAIK, LearningSquared doesn't include any sort of copy protection. I certainly didn't do anything special with it.

Bellos >>> The torrent protocol is actually robust to that sort of attack. Each part of the torrent file is checksumed, and the data is discarded if it doesn't match the checksum.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

Jake
Support Hero
Posts: 3826
Joined: Sat Jun 17, 2006 7:28 pm
Contact:

Re: Choosing an engine -- extensibility, encryption..?

#24 Post by Jake »

PyTom wrote:Bellos >>> The torrent protocol is actually robust to that sort of attack. Each part of the torrent file is checksumed, and the data is discarded if it doesn't match the checksum.
Well, it's not impossible to find a second chunk of data which has the same checksum as the first - it's just not straightforward, and in a lot of cases wouldn't necessarily break the download anyway, I think most movie formats and/or players are pretty resilient to random file corruption for example. That said, I'm pretty sure I've heard of movie people doing this (albeit with older protocols than BT) alongside providing fake/pre-spoiled downloads.

Of course, if people found out you were doing it you'd find your IP blacklisted quickly, and realistically you'd probably only slow down rather than stop distribution, and P2P in general implies a certain amount of patience on behalf of the downloader... and you'd probably be legally responsible for any damage your corrupted data caused, for that matter (certainly the trojan idea would be just as illegal as breaking into someone's PC any other way). Overall I'd suggest it's probably just not worth the effort, really. The only thing I've seen which seems to have remotely put people off/prevented people downloading stuff has been the rampant RIAA/MPAA lawsuits, and even then they don't really have much of an impact 'cause everyone has the "it won't happen to me" mentality.
Server error: user 'Jake' not found

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

Re: Choosing an engine -- extensibility, encryption..?

#25 Post by DaFool »

PyTom wrote:It's quite a bit of work, and it's work I'd need to do for each game.
I was thinking of future Ren'Py Launcher options like the following:

* Basic Copy-Protection (Windows Distribution only)
* Create Trial Version and generate activating CD Key.

In all honesty, I never really downloaded LearningSquared, but it seems nspired did a lot of stuff on his own. I'm just wondering if the basic features needed for making commercial games can be added features for future distros.

Of course, the ramifications would be that many Ren'Py games will all of a sudden be copy-protected by default, or maybe we'll see more portals with Ren'Py programs in them. I'm not quite sure how I'll respond to that.

User avatar
PyTom
Ren'Py Creator
Posts: 16096
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: Choosing an engine -- extensibility, encryption..?

#26 Post by PyTom »

So, after some back-and-forth with CuriousFactory and DLsite, I now have a protected Ren'Py game. (For a sample game, we used "The Question".)

Some thoughts on Protect:

From what I understand, protect is supported on Windows 2000 and XP only, and requires the user to use Internet Explorer 6+ to download the game. Basically, the whole process is as follows:

1) Once per system, the user goes to:

http://eng.dlsite.com/protect/user2

downloads the program there, and installs it. This will install the anti-piracy tool on the user's system.

2) The user downloads a game normally.

3) He then goes to a special web page, which has an activex control on it which loads a key onto the user's system.

4) The user can then run the game normally. If the key is present, the game will run. Otherwise, an error will happen.

Protect appears to work by "encrypting" the first 1024 bytes of each file. When the user goes to access the file, it transparently decrypts it. Importantly, data files are protected, as well as executables. I'd say it should be an adequate form of encryption for Ren'Py games. Not perfect, maybe... but it should work well enough to keep casual users from emailing games to their friends.

I'm making some improvements in Ren'Py to help protect work a little better, if that's what people choose to use. I make not representations as to how good or bad protect is at the copy-protection problem. Nor do I make an argument here about the wisdom of copy-protection... that's up to the various creators to decide.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

Enerccio
Miko-Class Veteran
Posts: 616
Joined: Thu Oct 26, 2006 4:23 pm
Projects: My Teacher; Songs of Araiah; Something new; Possible Cross Bomber?
Location: Slovakia, Kosice
Contact:

Re: Choosing an engine -- extensibility, encryption..?

#27 Post by Enerccio »

Whoa, this is the worst copy protection ever.
Using internet explorer...? In these days?! They are insane!
And installing another tool is not good too.

I am more voting for some key protection with keygen application, so author can generate keys for selling.

But better will be double sided copy protection. Like keys generated on computers basis (like getting program which will generate key based on idk ethernet card number and then send that key to game maker, which will load it to his app to generate unlocking key)
Image
http://www.bishojo.tk is technically ONLINE!
Songs of Araiah promo: http://www.youtube.com/watch?v=CalchucuoDU

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

Re: Choosing an engine -- extensibility, encryption..?

#28 Post by DaFool »

Sounds reasonable enough. (I mean, how many times did I have to switch to JP locale just to play a game, using IE6 is no biggie)

Time for me to finally learn how to build a windows installer, I guess.

User avatar
PyTom
Ren'Py Creator
Posts: 16096
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: Choosing an engine -- extensibility, encryption..?

#29 Post by PyTom »

Note that a windows installer can't be protected by dlsite protect. (Well, it would protect the installer itself, not the installed data files.)
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom
Software > Drama • https://www.patreon.com/renpytom

Enerccio
Miko-Class Veteran
Posts: 616
Joined: Thu Oct 26, 2006 4:23 pm
Projects: My Teacher; Songs of Araiah; Something new; Possible Cross Bomber?
Location: Slovakia, Kosice
Contact:

Re: Choosing an engine -- extensibility, encryption..?

#30 Post by Enerccio »

DaFool wrote:I mean, how many times did I have to switch to JP locale just to play a game
I am always in JP locale... why switching back?
Image
http://www.bishojo.tk is technically ONLINE!
Songs of Araiah promo: http://www.youtube.com/watch?v=CalchucuoDU

Post Reply

Who is online

Users browsing this forum: Google [Bot]