Facing the multiplayer physics conundrum

There is an obfuscator built into the JME SDK… you just need to enable the plugin, I think. This will not prevent players from cheating… and only makes it a little more difficult to reverse engineer code (and more of a challenge for those who seek the challenge, ie: even more likely to get cracked than if you hadn’t obfuscated at all).

The only way to prevent cheating is to establish authority.

The only simple way to establish authority is to put it on the server.

@zarch said: For example in an RTS when you build things, move units, etc then verifiers would need to know and give you a signed key saying yes you did that.

Without running the full simulation, how does the verifier know that you legitimately built those things or just have a hacked client that plops them down? The verifier would have to know that the state was valid and would therefore have to understand how you got there.

P.S.: the game dev article on distributed authority was definitely not on Roblox… that was a separate but also interesting article. I don’t think Roblox is as concerned with authority.

@pspeed said: Without running the full simulation, how does the verifier know that you legitimately built those things or just have a hacked client that plops them down? The verifier would have to know that the state was valid and would therefore have to understand how you got there.

P.S.: the game dev article on distributed authority was definitely not on Roblox… that was a separate but also interesting article. I don’t think Roblox is as concerned with authority.

It needs to fully simulate the things it is authoritative about but not all stages of that. For example a finance validator might keep track of gold spent and earned. A view validator might keep track of where you can see…but none of these need to update at fine detail levels, they need to update less frequently or just change on events, etc.

I’ve not really sketched it out in detail and you may well be right that it comes back to running the full simulation - but the goal would be to send and simulate the minimum amount in order to provide the required level of authority… and obviously distribute that out over multiple machines in order to have redundancy.

The PPK signing though is nice as it allows verified handover of state even if all the validators go down since you can provide signed state for up till that point and the system will assign you a new validator as a matter of urgency.

But all this is nothing more than idle musing :slight_smile:

The article was in this issue of gdmag:
http://gdmag.com/issue/2012/March

Called:


Cheating Behind the Cloud
By Ferdinand Schober

Cheating is a problem in most online games, especially those with synchronous play. Microsoft’s Ferdinand Schober discusses how you can implement a custom cheat-resistant cloud server to mitigate cheating without paying for anything but programmer time.

I can’t find it online anywhere, though.

In the U.S., Game Developer is free for game developers… you just have to sign up to get it. I don’t know about other countries. Now that I’m working on games again, I really look forward to each new issue. Though I’ve been getting the free magazine for a decade or more as a “vis sim” developer. (I used to buy it way back when, too… somewhere I still have the first few years of issues though they are kind of funny to read now.)

Well forget peer to peer for the moment, currently this is a research topic, and it’s somewhat unlikly that you will by luck find the solution to it all.
(Except you make round based games, its probably the only genre where this works flawless in the real world)

Just keep authoritative server, and try to offload unimportant stuff to clients. (eg when shooting a wall those small debris must not necessarily be network synchronized)

Even then you still have aimbotters, wallhackers and those guys reading data that should not have been send in the first place. (Eg how much hp an enemy has in a game without hpbars)

Some of this can be reduced with a validation/statistics-system . eg the average human brain has a 5ms latency to our reality, so if someone always gets around walls and shoto other persons within thos 5ms secs give them cheater points. If a person reaches a certain amount ban them. (Also let old points decay slowly, cause luckshots happen).
Having enough intelligent and reasonalbe rules, will amke cheating much harder, as now the bots are at maximum around the level of a professional games, but cannot be inhumanly skilled.

1 Like