Almost solid gold .blend encryption for game distribution using ccrypt- A Guide


(C-106 Delta) #41

Depending on the task, processor, and size of the application - yes, Python can be anywhere between 30X - 70X slower (on average). However, if your handling large amounts of calculations, python can be even slower (150X times slower). This is why python is not used at the core of commercial engines like Crysis, Unreal, Unigine, etc.


(SolarLune) #42

I’m not sure, but since the current ‘Python in the BGE’ is just a wrapper, could the BGE possibly compile the code prior to game execution? Also, even if Python’s slow, it shouldn’t matter much for file encryption and decryption, correct? Most blend files that would need decryption wouldn’t be huge, right?


(C-106 Delta) #43

Well, you could convert your py files into pyc files which would make them faster (but they will still be slow when compared to C or C++).

Well, that depends on the game. Some real world examples include:

  • Krum ~45 MB
  • ColorCube ~14 MB
  • Box City ~50 MB
  • Drop Demo ~65 MB
  • Panthera ~48 MB
  • Club Silo ~60 MB

I’d have to say that the average medium sized blender games today are between 35 - 65 MB. Some blend files are smaller, some are larger. It really depends on the game.


(wallacemarino) #44

@ C-106 Delta, I will try the config method with v103, can you put me in the way a copy of v102 so I can test the batch method too and see which is most suitable?

I’ll try PM’ing Alle92 and see what stage his GUI is at and whether a collaboration may work.

Cheers for the heads up.


(leonnn) #45

Uhmm C 106, this is a little sad, but probably this slow happen because of the way you do thinks on python right? like the simplicity to make a program? I read somewhere that python isnt is compiled as c++ or C programs and because of that they are more slow too. If python keep with its simplicity you think that it ll be allways more slow?
I dont know mutch of scripting, im sorry to use this thread to ask this kind of questions for you guys, I just want to know this details.


(rarebit) #46

Solid gold? What a password encrypted by a plaintext password, great logic!


(hao8bu3hao) #47

| Back to logs list Reprinted from 394896446 at 10:49 on February 2, 2011 Reading (loading. …) Comments (0) Category: Personal Diary more exciting content, along with your welcome to share your space, so that more friends to see share】 【wonderful: living knowledge, a good wife to know 】 【wonderful to share: It is said that only bad kids can understand. 】 【wonderful to share: Understanding the nature of marriage between men and women of the five instances 】 【wonderful to share: My favorite position is with you. . . . . 】 【wonderful to share: At first I thought it was a normal game but then I cried … so meaning the 】 【wonderful to share: Comedy: User-made Top Ten in 2010 prank 】 【wonderful to share: Brother does not teach you bad,Ghds Straighteners, brother to teach you how to survive 】 【wonderful to share: Spring Festival is approaching, old tune, why people are high-speed rail? A photo card 】 【wonderful to share: Han wonderful to share 【】: 【Notice】 Tencent official recruitment group of the third food reviews recruitment bulletin here to view more wonderful to share


(vieau6) #48

Is there anyone who can make a script were you can eather save a .blend that can’t be opened or prevent people from appending and linking from it? Theres a way to save a .blend so it opens up as runtime but you can still append from it.


(SolarLune) #49

That’s what encryption’s about - you encrypt the blend file, and then can load it up with one of the LibLoad functions with Python. You can pass that unencrypted blend file to play, and that’s all there is to it. I don’t think it will work with multi-file .blend projects, though.


(Thomas Murphy) #50

This is amazing! thank you so much for this resource. I will be using your tutorial to learn how to encrypt for my commercial game project.

Would you like me to include you name/logo/company in my games special thanks?

Best,
Thomas Murphy


(wkk.py) #51

Just be aware that this “encryption” is just obfuscation, and anyone coming across this thread would have enough information to write a script to disassemble your game, and share said script.

Just something to keep in mind :slight_smile:

On the other hand it will make it harder for casual people to find anything in your distribution, sure.


(Thomas Murphy) #52

Thanks for the note WK!

I don’t mean to keep people out of my game, I just want to protect the work a little bit.
Yeah also is it that big a deal if people can open the individual game assets anyway? The way I see it, they have already paid for the game.


(Cotaks) #53

paying for a game does not mean they own the assets used, so it’s a crime. You pay for the right to own a copy of the game to play it, nothing else.

You can sell a game for like 5 bucks, but the assets used can be sold for 50+ bucks(each).

so 1. it’s stealing 2. you can lose a lot of money by it(even if you never sell the assets, because if someone else sells it, it’s money out of your pocket).


(kkar) #54

He said “opening assets”, he did not talk about selling them. Reverse engineering is not a crime when not done in for commercial advantage.


(Cotaks) #55

If i can open them i can sell em. so it doesn’t matter.


(kkar) #56

That is an assumption. Any crime is individual and case base, you can’t generalize an idea and call it a crime because you feel like it.


(Thomas Murphy) #57

From my work experience, I have a good deal of legal knowledge that pertains to this specific issue.
Here is a refreshing perspective that you both possibly have never considered:

??!!Photogrammetry!!??

So imagine you purchase a video game for 50 dollars.

Now stay with me…

When you play that game, you take about 100 screenshots of a character in the game and reconstruct a 3D model with Photogrammetry.

Surprise-! That was totally legal what you just did.

Essentially you now have that 3D model, and you never even opened a directory or unpacked an asset file!

Also you can legally sell it and classify it as “Fan Art”. Pretty amazing right?

A company may issue a takedown request and have you remove that model, but, it’s not a crime.

It’s a legal grey area. At least in the united states.

Cotaks-- The game license is whatever the game publisher decides it to be. Things aren’t set in stone.

Kkar- yeah I only meant open the files. Thanks for clarifying this for me.


(Cotaks) #58

Total different subject to be honest. Because here the user recreate/rebuild the mesh, not extracting it out of the assets but literally rebuild it on his own. I have no problems with that, no one has, as you said this is a grey area. And i’m only supporting that.

Yes, but also no. If you buy a game, you buy a license to own a copy of that game to play it, nothing else nothing more. If we all would think like this then why would companies put so much time/money/effort into the protection/encoding/etc. of games (and other stuff). To prevent you from stealing and or using their assets/materials.

And still, grab an AAA game, read the license, start the game read all the warnings it throws at you, yup indeed, you may play the game nothing else.

That people do hack the .exe/blends or whatever will always be there, and can not be prevented for 100%. Also it’s to expensive for the companies to sue individuals doing it(but no worries if you do it to much they will hunt you down).

So yes if you really take the effort to read all licenses/eula’s/tos/etc. then you may do nothing more then play the game.


(Thomas Murphy) #59

LoL. Hello again Cotaks,
1.
When a game asset is packed and obfuscated from a user-- the user may “extract” the model and textures. Photogrammetry is unique form of “extracting” or “unpacking” an asset using visual information on screen rather bindary file data.
I used photogrammetry as a relevant and abstract example to help you better understand the nature of content.

About game licenses:

I am a game publisher therfore I determine the license of my game. Many games issue play only licenses, but their behavior does not dictate my decisions.

I am using the blender game engine to make a game, and I will decide the nature of that license.

Thank you for your valuable input and I will fold that into my greater understanding of licensing.