I’m focusing on pickups, but this should apply to all forms of interaction.
Problem
Currently, when you interact with any pickup, be it an item on the floor, or a chest laying on the beach, you’ll nigh always notice a slight delay depending on your ping to the server, in a case where the server is far away, you’d experience excessive lag that leaves you questioning if you did interact with it.
In this video below, I showcase the slight delay, the server is quite close to my location[1], therefore my ping is lower.
In the video, the interaction occurred the FRAME the Pick Up display started animating
Solution
The moment you interact with anything, it should show the interaction animation, visuals and sound effects to dictate the player has picked it up, in that way, it allows the player to believe “Oh, I’ve picked it up!” instead of waiting an arbitrary amount of time for the server to respond.
This does not mean the drops are decided client-sided, the server will still have to manage that and will unfortunately take time.
Questions & Answers
Wouldn't this be confusing if you didn't get items from the interactions?
In my opinion; No, it wouldn’t.
In cases such as the video shown in Problems, you’d notice the item getting picked up, and when your brain eventually realizes that, you will already have gotten the item.
If the server is far away from you, and hence your ping is high, you would of course notice a delay in retrieving the item, however, that is not the indication on if you interacted with the item, rather you listen for the sound cue or see the item visually disappear.
I'm still confused... how does the interactions work?
For this I have created two flowcharts dictating how the interaction system is designed, and how the suggestion wants it to be designed.
Current Implementation
Waits for a response from the server before granting the player the rewards AND showing the visuals.
What if the server declines the interaction request?
Then revert the visual effect and display an error message, that’s it.
I’m in Denmark, server is in France. ↩︎


