Legal Stuff/publishing first game?
What about legal stuff after publishing? I have two questions. When i'm done creating my game, how do I copyright it or get it ready to sell etc? Do I need to patent anything or trademark the name? I'm very confused on that manner. Also, how would I encrypt my games files after build? When building something in unity, you get the exe and [gamename]_Data folder, couldnt someone just copy and paste that folder to someone else and they could play it? That is a problem if you want your game to be paid. Lastly, could someone open the data folder in unity and edit the game and sell it as their own? I'm coming close to finishing my first ever game, (im the only person working on it so it isn't like a team or studio game, just indie). Do I need to make a studio? How do I do all this people haha thanks for being a ginormous help everyone! :)
Answer by Bunny83 · Dec 09, 2017 at 10:55 AM
This is actually partly an off-topic question as legal questions can't be answered here with certainty which also highly depends on your country and the local laws. You also asked too many questions in one question.
Anyways I'm in a good mood and try to run through them.
About Copyright: As i said this highly depends on your location and local laws. I'm from germany and here we have a law called "Urheberrecht" which could be translated into "creators right". This is very similar to the US copyright. Any original "work" that has some "creative value" is automatically protected by law. So you don't have to do anything to have your work copyright protected. However if it comes to an infringement it's up to you to prove you actually are the creator and that you have the copyright. In almost all countries there's a paid service where you can register your work to have a "witness". Though in most cases this is not necessary since you usually have the source files and the "source project" as evidence.
Patents only apply to actual unique inventions. Here in germany we don't have a "software patent" while in the US it's possible to protect an "idea or concept". Note that your actual implementation is already covered by the copyright. This does not prevent others from re-creating your game. Of course he can't use any asset of your game as every bit of your game has its own copyright. Patents are usually really expensive. If you don't have a revolutionary idea (that no one else has done before) it's not worth to think about it.
Trademarks are another story. The name of your game is not protected by copyright. So everyone is free to create another game that has the same name as yours. This is a minor problem for indie games. However large companies usually register the game title as trademark to prevemt others from releasing games with that name. This is mainly a marketing problem. If you think your name is unique and hasn't been trademarked already and you have the money and you want to have your name protected, go for it.
You can not "encrypt" your game. Encryption is always a two way process. You encrypt it to protect it and decrypt it to unprotect it. However encrypted files can not be used. That means when you really would encrypt your game files you would have to ship the key as well in order for the players to play the game. However this makes the encryption almost pointless. It just makes it a bit harder to get access to certain aspects of your game. Also note that even you managed to implement a really hard to circumvent encryption / protection, most of your assets could be ripped directly from memory / graphics driver. This is always possible as the data needs to be send to the GPU for rendering. Though not many people would even try something like that. What you can do to make it harder for someone to decompile your game is to use some sort of obfuscating software which will basically just rename classes / methods / variables / ... to some random names / characters so it would be really difficult to figure out what the code does. However this approach is very limited in Unity due to serialization. You can't obfuscate the class names of monobehaviours / scriptable objects as this would break the serialization system. Likewise any serialized field names can't be changed either. Also when you're using SendMessage the obfuscator doesn't know it is not allowed to alter the name of that method and your game might break. The best approach in Unity is to switch to IL2CPP scripting backend. It will convert your managed code to C++ code which is much harder to decompile / alter. However this backend is only available for certain target platforms.
Yes someone could just copy your game and send it to someone else or even upload it to a public place. However he's not allowed to do so. When you ship your game you usually add an EULA (End User License Agreement) where you usually state what the user is allowed to do and what not.
If someone illegally copies or distributes your game you can sue him in court. Of course as indie devloper you often don't have the money to actually carry such lawsuits against any person you managed to track down. If you want to know more about this you should contact a lawyer (keep in mind that they want money for almost every minute ^^)
Could someone open the data folder in unity and edit the game and sell it as their own?
Well, in theory, yes someone could. Though as already mentioned this would be illegal. Modifications of a built game is not that easy however it is possible. Though that's actually true for any software given enough time and expertise.
In the past games where protected by serial keys. Those where self-validating serial numbers with a checksum which was calculated using a secret algorithm. This is not very secure as once a cracker figured out how the key is validated he can simply generate as much keys he wants (a keygen is born). Apart from that since an invalid key is usually just a simple check at the start of the game a cracker could patch the game and simply remove the check (no-key-crack is born). Nowadays classical serial keys aren't used anymore. Instead since everyone has internet access the validity is usually checked on a server that is run by the creator. The software is usually personalized / account bound in such cases. However even this does not prevent a cracker from "cracking" your protection. Almost all big steam games have a cracked "no steam" version somewhere. However this would pervent them from playing multiplayer on steam protected servers. Singleplayer games simply can't be protected in a 100& secure way. You have to live with that fact. The only secure way to protect your software is: don't publish it ^^
No, you don't need to make a studio. As indie developer you can publish your games yourself. However you should inform yourself about your local tax laws and how you can register some sort of EIN in your country. It depends on where and how you want to publish / sell your game.