3 ms·
Here's my project's approach to Anti-Cheat. 1, 2, 3) Everything on the server. Server's version always wins. Server is the authoritative source. Granted, I hav
by stcredzero 8y ago
Here's my project's approach to Anti-Cheat.
1, 2, 3) Everything on the server. Server's version always wins. Server is the authoritative source. Granted, I have a mathematical advantage in the game's particular movement mechanics which makes this easy to get away with. The other game mechanics are also designed with facilitating this in mind. Corollary: The client is almost nothing and trusted with nothing. It's pretty much a dumb terminal for displaying moving things, syncing their motion with the server.
4) Scripting -- if you can't beat 'em, join 'em! We're going to publish an API to allow for user scripting. We plan on releasing the client as Open Source, allowing people to modify and extend the client.
5) Cryptographically hard RNG and procedural generation. If you want to know what's in Star System 7, Galaxy Grid 123987236-87324958, you're going to have to go there yourself. We don't even know ourselves!
Regarding #4 -- This is going to be a design philosophy. Anything we can't enforce, we will allow and co-opt into the game!
- bsder 8y ago> 4) Scripting -- if you can't beat 'em, join 'em! Yeah, I was kind of annoyed that he flags this: > draws the ranges of various abilities, indicates which minions are ready to be last-hit, and shows the path of skillshot projectiles. as a cheat. It seems like this would be a godsend to new players. However, I prefer Supreme Commander/Total Annihilation-like games over the twitchfests like Starcraft.
- stcredzero 8y agoHowever, I prefer Supreme Commander/Total Annihilation-like games over the twitchfests like Starcraft. We've made our client so dumb, even Fog of War is cheatproof. How do we enforce not seeing something? The data for those entities isn't sent. In fact, this is exactly the same thing as making an entity disappear. The entity's tag and movement info aren't sent, and so it's diffed out of the set of visible entities.
- Operyl 8y agoNow you have me curious what project you’re working on.
- stcredzero 8y agohttps://www.emergencevector.com/ https://www.emergencevector.com/ https://www.youtube.com/watch?v=7x2uQjLtXkY&list=PLnAL8xf0QQaD0bN5tCGnvh7Qq_kpFZznO https://www.youtube.com/watch?v=7x2uQjLtXkY&list=PLnAL8xf0QQ...
- SXX 8y agoSame thing already done in spiritual successor for Supreme Commander/Total Annihilation called Planetary Annihilation. Basically there is authoritative server that work exactly that way. Only downside of this is that when you have few thousand units on screen game will use abysmal about of bandwidth like 8Mbps for each client. So when there is 10 players in-game server-side must have these 80Mbps. Oh and it's also used as replay / save system. Amazing tech: https://blog.forrestthewoods.com/the-tech-of-planetary-annihilation-chronocam-292e3d6b169a https://blog.forrestthewoods.com/the-tech-of-planetary-annih...
- stcredzero 8y agoInteresting. My bandwidth use is on the high side, but I have certain advantages. For one thing, there will never be more than 70 units on the screen, and all of the locally simulated objects are deterministic. I'm also planning a replay/debugging system based on the mechanism.
- bsder 8y agoThe tech is quite interesting. The game, sadly, not so much. I wish they had spent 1/10 the effort on the actual game for single players that they did on making it "Twitch/YouTube-friendly".
- Semiapies 8y agoEssentially, treat the client as a client to the API that is the game and that presents the game world. I like the idea of customized clients, ala WoW's add-ons back in the day. Looking at the screenshot in the article, the idea of treating visible weapon ranges as a cheat strikes me as less balance than artificial difficulty. (Especially considering how many games have exactly that feature.)
- rmrfrmrf 8y ago#5 is a bit of a double-edged sword, isn't it? All RNGs that I know of would require a shared seed value, and with procedural generation, you can effectively path any/everywhere in parallel.
- SXX 8y agoYou can always leave some crucial part or procedural generation on server-side too and impose some limits on how client can use API to it. E.g client might do any kind of heavy lifting (generation of terrain, etc), but code that handle important stuff (e.g PvE enemies, rewards) could be stay on server-side.
- stcredzero 8y agoAll generation is done on the server side. The cryptographic strength is to protect the seed from being inferred from the output.
- SXX 8y agoVery unfortunately what you explain here only work for very specific type of gameplay. For instance almost nothing works when you need to secure first-person shooter simply because it's skill-based gameplay where it's also very easy to cheat for the bot.
- vladimirralev 8y agoNvidia has geforce now http://www.nvidia.com/object/cloud-gaming.html http://www.nvidia.com/object/cloud-gaming.html and people with good internet connection have been able to play FPS games. Granted, the latency and the FPS are worse than a local game, but surprisingly it is unnoticeable to many people.
- SXX 8y agoStreaming wont help against cheating in FPS, aimbot just going to use machine learning to determine enemy location and conrrols are not problem.
- stcredzero 8y agoThere are more kinds of skill than just twitch fast aiming.
- javaJake 8y ago#4 has introduced an interesting problem in the MMO space. By allowing scripting in WoW, players were penalized either because they couldn't keep up, or the general community would demand they run parsers to tell that they couldn't keep up. The vanilla experience was no longer good enough. FFXIV decided to ban any client customization in an attempt to avoid these kinds of toxic situations: https://www.reddit.com/r/ffxiv/comments/5uxmx8/yoships_official_statement_ingame_parser/ https://www.reddit.com/r/ffxiv/comments/5uxmx8/yoships_offic...