4 ms·
Very cool project. Given that the networking approach is to synchronize the data model across the server/clients, are there any considerations made around cheat
by bryceneal 4y ago
Very cool project. Given that the networking approach is to synchronize the data model across the server/clients, are there any considerations made around cheating? For example, could one client manipulate the positions of objects arbitrarily and cause them to "sync" with the other clients?
I believe Unity at one point (or may still) have some similar plug-and-play networking module to do something similar. For example, syncing arbitrary GameObjects between clients. (Maybe it's called "Unity Multiplayer"?)
- Philpax 4y agoHey there! I'm one of the devs working on Ambient. To answer your specific question, nope - the server is always authoritative over state, so clients cannot adjust reality for other clients. That being said, there are other concerns that result from this model, so I'm going to transclude my answer from Reddit (https://www.reddit.com/r/rust/comments/118wlda/introducing_ambient_01_a_runtime_for_building/j9l5guk/ https://www.reddit.com/r/rust/comments/118wlda/introducing_a...): "By default, components are not networked to the client; you have to opt into this using a component attribute (https://ambientrun.github.io/Ambient/project.html#reference https://ambientrun.github.io/Ambient/project.html#reference). That being said, many of the core components are networked by default - we're thinking about how to best balance convenience of development with security, and it's an ongoing discussion."
- bryceneal 4y agoMakes sense! Thanks for that context. I believe your approach is a sane default in many cases, and in some cases cheat prevention can even be a rabbit hole of premature optimization for smaller teams. Oftentimes in modern multiplayer games remediation is a manual human process (i.e. players are banned by administrators based on reports from players). There are many hugely successful and profitable games which take this approach, so I don't think it should necessarily be written off completely as "wrong". There are also many successful games (even AAA ones) where cheating is prevalent and widespread despite attempts at prevention. It strikes me as a tradeoff around velocity and time spent for the team. For smaller teams I suspect time is often better spent shipping rather than hyper-optimizing cheat prevention, but that is just my opinion and is also dependent on the context.
- deleted 4y ago[deleted]