LordOfDragons / dragengine

Drag[en]gine Game Engine
MIT License
69 stars 6 forks source link

A more permissive license. #8

Open 1Snakel opened 4 years ago

1Snakel commented 4 years ago

With Godot as mit, will be hard to give this engine the focus it deserve. also is there a way to protect our game scripts/data?

LordOfDragons commented 4 years ago

Godot requires your project to compile/link against it. Without MIT it would cause troubles.

Drag[en]gine on the other hand does not require your project to compile/link against it. The license used is thus not a problem to your project. It is only affecting Engine Modules or IGDE Editors since they link against the game engine.

So no, there is no need for a more permissive license since as a game developer the license does not affect you.

Game scripts and data are right now not more protected as being stored in a DELGA file. The reason is simply that many have the misbelief that encrypting or otherwise obfuscating scripts/data would protect their game data. But this is a wrong belief since the key to decrypt files as well as script logic required to de-obfuscate data while loading has to be present in the distributed game files. And if it is present it requires just one guy to filter it out and publish a crack and the entire protection process is void.

That said I did research a bit possible protection methods. In general extend the DELGA file format with encrypting the contained files is most probably the easiest solution to do. The question is only where to hide the decryption key (or in what form). I have toyed with a potential solution for this which in my opinion though would at best fend of script-kiddies and opportunity-rippers but not focused crackers. I'll try to put together a proof of concept to see if it would be enough protection for this group of attackers. But using the IGDE chances are people can get the files out. I mean I recently evaluated some UE games for data protection and albeit this being a AAA engine getting files out of recent games using the UEditor was simple. In the light of this I'm not convinced a strong protection is possible, at best a weak one.

That said if you have a specific protection method in mind I can evaluate it to see if it is viable.