Protecting Your Game

Started by
1 comment, last by Ravyne 10 years, 9 months ago

I'm going to split this into two different questions. They are related, but slightly different.

Firstly, how do you go about stopping people from cracking/leaking your game code? Assuming you're developing for a game you plan to publish (that being not open-source), how do you stop people from getting the source? I use Code::Blocks for my C++, and I don't know if the default .exe generated file is completely secure. My "Hacker" friend says he'll even try to crack the program; and I think he will.

Secondly, what's the best copyright method for an indie developer who's game isn't open source and people won't be able to resell it or republish it, but they can develop modifications for it? I don't want to block the community from being able to do what they want to do with my game; but at the same time, I'll be needing to pay bills.

Advertisement

Firstly, how do you go about stopping people from cracking/leaking your game code? Assuming you're developing for a game you plan to publish (that being not open-source), how do you stop people from getting the source? I use Code::Blocks for my C++, and I don't know if the default .exe generated file is completely secure. My "Hacker" friend says he'll even try to crack the program; and I think he will.

You don't release your source code. You release your executable.

Creating an executable by Compiling code is a one way process and much data is lost. A good analogy is making hamburger meat. You can turn a cow into hamburgers, but you cannot turn hamburgers back into the original cow.

That doesn't mean a person cannot attack the executable, attempt to reverse engineer sections of it, or find attack vectors. It just means they cannot recover the original source code from the executable.


If someone leaks your source code, that means they broke in to your computer and copied the source files. You protect against that with a combination of physical security (don't let them steal the computer) and electronic security (don't let them access your disks remotely).

Secondly, what's the best copyright method for an indie developer who's game isn't open source and people won't be able to resell it or republish it, but they can develop modifications for it? I don't want to block the community from being able to do what they want to do with my game; but at the same time, I'll be needing to pay bills.

The question is odd. Copyright has a specific meaning. There are automatic limited copyright protections that are automatically granted when you create the data. There are additional abilities that are granted when you register the copyright with the copyright office. The fee to register a copyright is small $35 in the US. Your product must have the copyright registered in order to collect certain kind of penalties against copyright infringers through the courts.

If you want to allow mods to the game, there is much work you must do to enable that. Your code will need to provide methods for loading mods, as well as provide hooks for every function you want the mods to be able to modify. Enabling mods to a game requires some real work on your end.

When you release the mod tools to the public, you will need to release two things. First you will need to release your own program as a standalone app. You will also need to release a minimal SDK or tools that includes enough information to create mods. You need to work with a lawyer to make sure your license to the SDK covers exactly what is needed.

Firstly, how do you go about stopping people from cracking/leaking your game code?

Be warned. I have a lawyer, and I'm not afraid to use it.

No kidding, that's the only thing that works. Be sure you know precisely who has access to your source code repository, which limits the risk of someone leaking code and makes tracking them down easier when it happens. Log all access if you can.

Place watermarks in preview releases so you know who is the culprit in case it is leaked. And be sure that people know these watermarks exist (though obviously don't tell them where).

Your awesome hacker friend can be really proud if he thinks he can hack your program. There's nothing spectacular about this at all, and no big threat behind it. A million people can do this, and will do it, unless your software totally sucks. There's not much one can do to prevent that (you might delay it slightly but preventing is outright impossible), even more so with the constrained resources that an indie has to offer. This is a battle that is lost before you start it, so concentrate on doing something useful with your time instead.

Though of course interfering with a program (such as cheating, or breaking copy protection) is a wholly different story than obtaining the source code. If your source code is leaked, the circle of culprits is usually very small.

Secondly, what's the best copyright method for an indie developer who's game isn't open source and people won't be able to resell it or republish it, but they can develop modifications for it?

For such a thing, you would use a plain normal proprietary license for your program and publish a public API (scripting language with bindings, well-documented asset format, build tools, etc.) with a more liberal usage license that allows the community to create a mod. It's not a question of copyright though, but one of license.

Firstly, realize realize that there's no such thing as perfect protection, and even "good" protection for your executable requires a large amount of effort to implement effectively -- big game companies undertake this effort because big-name games typically see 80% or so of their lifetime sales in the first couple months. Thus, expending a lot of effort to just delay the hackers and crackers for those two months pays off. Small, independent games have a very different sales curve, sales are typically very slow at first, build over time, and may see large, intermittent spikes if it proves popular, thus it makes much less sense to undertake the necessary effort because hacks and cracks will be available well before your sales pick up to meaningful levels -- you just won't delay the hackers and crackers that long.

As an small, independent developer, you really want to cast off the idea that you will succeed by emulating larger companies. What works for them isn't what works for the little guys. Their wealth and success may seem like what you want, but its really the little guys who are more free -- free to experiment and pursue niche markets, free to cast off all the trappings of success, of dealing with publishers and contract deadlines, of having to sell a million copies just to keep up with rent and payroll, of being able to fail without sinking the entire company for good.

Indies succeed by making "artisanal" games -- they build and live off of a committed following of fans who appreciate the consistent vision, care, and attention that's paid to creating a very specific experience. They're like the little corner shops that sell cheese and dried meats where the owner makes it all by hand using the recipes he's developed over 20 years -- you might get a little less and pay a little more, but its damn good and not like anything you can get off the shelf at your favorite grocery chain. EA, just wants to sell every man, woman, and child their next hotdog, with mild flavors designed mostly to not offend anyone's palette.

The best way to succeed with an indie game is to make the best game you can, give it an honest price, and build a good relationship with your community of fans. That's my number one recommendation.

You can also try out alternative business models like giving away the game but selling subscriptions, services, add-ons and bling, or inserting adds with an option to remove them for a small fee. I know these things might seem tantamount to extortion, but many players seem perfectly content to accept and even embrace these kinds of things when they're getting something for free. I have friends who've put hundreds of dollars into those "free" games. You really need too look at your business model around revenue, not hard sales -- its often better to make a little bit of money from a million people, than it is to make a "lot" of money from 50 thousand -- and when you make money on the back-end of the download, you don't have to worry about people copying your game and spreading it to all their friends, because every one of them becomes a potential customer.

throw table_exception("(? ???)? ? ???");

This topic is closed to new replies.

Advertisement