MP Issue: Several player actions, animations & sounds are not shared/synchronized [emotes & more]

Game mode: Online official | Online private
Type of issue: Bug

To reproduce the basic issue, get 2 players in a test game and have one of them perform taunts such as ‘By Crom’ and have each player tell what they hear. In no time you’ll find they hear different lines. See bottom of post for a list of issues.

Someone could technically state that this is “working as designed,” but I would passionately argue that the whole point of multiplayer is to create an experience that all players share together.

Basically a lot of code related to players that utilizes randomness is executed by each individual client, meaning each client can and very likely will experience something different in these cases.

For example, when a client passes a request to the server to perform an emote, the server then sends out a packet that seems to only contain the identity of the player and the specific emote requested. If any randomness is involved (different laughs, taunts, what color balls to juggle etc.) as is the case with most emotes, this randomization is then performed by each client processing the emote separately, so every player can see or hear something different for each action.

Now, I realize that this may have been done deliberately to lighten the processing loads on servers, so that they don’t constantly have to calculate random ranges for a plethora of player actions, but if that’s the case there’s a very simple answer to that: Sometimes it’s OK to trust the client to do something for you.

Since all of these randomized actions are being invoked by clients, let the clients roll the random dice and send that information to the server, and the server can just forward that random result along so that all clients see/hear the same action. This trust cannot be exploited by cheating clients in any meaningful way; at worst someone could repeatedly make their character play the same voice clip when doing an animation.

Here’s a list of things that I know aren’t synchronized, for your consideration:

  1. Interacting with musical instruments like Horns, Gongs, and the beautiful Harp from the Aquilonian DLC; everyone hears different notes.

  2. All Emotes with a variety of random voice clips; different laughs and taunts are heard.

  3. Any Emote with visual randomization; currently this only impacts the Juggle emote from the Debaucheries of Derketo DLC, which generates randomly colored balls each time the animation starts/loops; everyone sees different colors, of course. If there were other emotes like this, they would behave the same.

  4. Player Idle animations; these don’t currently appear to generate any network event at all.

  5. Collecting resources by hand (not with tools) does not seem to have any network event, so others never see your character actually picking bushes etc. They only see the server reporting the removal of bushes, stones, or plants once harvested.

  6. Random sounds and speech played by wild creatures and NPCs isn’t sync’d either; I know this is a very different issue from a technical/solution standpoint, but if you’re up for a more interesting challenge, do keep it in mind. Happy to offer some clever suggestions on this one, too, if anyone on the team appreciated my first one.

1 Like

Hey @Daedalon

Thanks for the detailed feedback. It’s been relayed to our team so it can be looked into.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.