TrevorBradley
Active Member
- Joined
- Nov 6, 2007
- Messages
- 732
Hey there. I need some collective developer brain to help me solve a problem that I can't wrap my brain around. I'm hoping it's already been thought of and a solution is waiting for me..
I've been working on my Multiplayer "hide and seek" game Galactic Artifact, things are going pretty well, but I've left the source closed for now. I have no problems releasing the source for a single player game. People can modify my game all they wish, make the Galaxy a pink elephant, whatever they wish. But for multiplayer, having the source available would make it exceptionally easy to cheat, as the victory condition is transmitted at game start. I could move much more of the game logic over to the server (and plan to if there isn't an easy solution), but it dramatically increases the amount of work I need to do, load on the server, and lag for the players as each and every action is checked by the server for legitimacy.
I've already encrypted by client-server traffic so that the client doesn't snoop and figure out more than he's allowed to.
Someone in the beta testing forum suggested signed binaries, but I just can't wrap my head around how you could ensure the client wasn't lying about their signature. If the code checked the CRC of the file it were run from, you could just modify that bit of code to look at the original binary. Heck at the moment someone with my code could create a telnet client that would win immediately.
I know no solution if it were out there would be perfect (legit games suffer from this problem and use invasive DRM to solve it without success), but has anyone thought of a solution to this problem before?
If there isn't a solution (as I suspect), I'll start looking into putting the burden of legitimate gameplay on the server.
Thanks in advance.
I've been working on my Multiplayer "hide and seek" game Galactic Artifact, things are going pretty well, but I've left the source closed for now. I have no problems releasing the source for a single player game. People can modify my game all they wish, make the Galaxy a pink elephant, whatever they wish. But for multiplayer, having the source available would make it exceptionally easy to cheat, as the victory condition is transmitted at game start. I could move much more of the game logic over to the server (and plan to if there isn't an easy solution), but it dramatically increases the amount of work I need to do, load on the server, and lag for the players as each and every action is checked by the server for legitimacy.
I've already encrypted by client-server traffic so that the client doesn't snoop and figure out more than he's allowed to.
Someone in the beta testing forum suggested signed binaries, but I just can't wrap my head around how you could ensure the client wasn't lying about their signature. If the code checked the CRC of the file it were run from, you could just modify that bit of code to look at the original binary. Heck at the moment someone with my code could create a telnet client that would win immediately.
I know no solution if it were out there would be perfect (legit games suffer from this problem and use invasive DRM to solve it without success), but has anyone thought of a solution to this problem before?
If there isn't a solution (as I suspect), I'll start looking into putting the burden of legitimate gameplay on the server.
Thanks in advance.