One thing to consider is that it really depends on the type of the game as far as cheat protection goes. Anything where a significant portion of server runs on a client machine can only really be secured with a solution that actively prevents them from using a memory editor or other cheating program on their end or modifying their files and changing how things work. It's essentially impossible to prevent cheating in this way without building a large program, often a stand-alone solution, to make sure that you're covered. If you're server-side with only client access, you simply make sure that you have clients send non-compromising communications (for instance, have characters send movement as speed and direction, rather than the new transform position, and send commands rather than variable changes). People could still "cheat", but if you limit the client-side outgoing communications sufficiently they wouldn't be able to impact the game.phobossion wrote: I see, that makes sense, thanks! The problem I've run into with GPL was that if you don't want to disclose pieces of your code, you are pretty much screwed - think an online game, for example, where the ability to compile your own fully functional client makes it easy for people to hack or create bots and stuff like that. So you would probably want to keep some parts of the code closed (even in an otherwise open source project).
Of course, then you have more server load on a non-client as you switch stuff over, but we're seeing beefier hardware come out practically every day.
GPL isn't really a huge issue as far as making solid, secure software—many open source software solutions have what is regarded to be cutting-edge security, simply because they are careful to mitigate their vulnerabilities. My only complaint with GPL is the whole viral license thing, so I use MIT (but then, I don't even use Creative Commons for my writing most of the time; I use a MIT-derived license to avoid some of the arbitrary inserts that CC likes).