Jump to content

  • Log In with Google      Sign In   
  • Create Account


Handling object pickup "races" in multiplayer coop?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
4 replies to this topic

#1 justkevin   Members   -  Reputation: 250

Like
1Likes
Like

Posted 21 February 2013 - 07:47 PM

This is partially a design question, but it's one driven by the realities of networked play.

 

I'm developing a Flash, multiplayer coop game, very similar to Gauntlet. One issue that I foresee being a problem is more than one player going for the same object (say a potion). 

 

In order to make the game feel as responsive as possible, players' entities are moved locally on the client instantly, with the server only correcting the player if they did something impossible. Most of the time this isn't an issue, but where it will be an issue is if two players both try to pick up the same potion. The server currently will give the potion to whichever player arrives at the potion first, but from a player's perspective they may see the potion go to another player who seems farther from it.

 

I expect this will be annoying to the players and look like an unfair bug.

 

I've thought of one solution: have objects "drop" from an entity (like a chest). Every player will see the object and every player will be allowed to pick up the same object (possibly within a time limit). The object will only disappear from the client's view once they pick it up or the time limit expires. 

 

Anyone have a different suggestion?



Sponsor:

#2 hplus0603   Moderators   -  Reputation: 4960

Like
1Likes
Like

Posted 25 February 2013 - 02:08 PM

FPS games have this all the time. Health packs, quad damage, etc.

The way they solve it is to play the effect locally (sound effect, particle system specific to the object, etc) but to show the actual game effects only as a result of the server decision.

If you and a guy is racing for the quad damage, you can think you got it, hear the "quad damage" sound effect, but the server text message says "So-and-so got Quad Damage!" and you notice that you do not have it yourself. The way you internalize this is that, yes, you would hear the sound and see the effects even if so-and-so was there a split second before you.
enum Bool { True, False, FileNotFound };

#3 justkevin   Members   -  Reputation: 250

Like
0Likes
Like

Posted 26 February 2013 - 02:27 PM

Thanks for the suggestion.

 

I'm not sure if that will work for this game (typical latency will be higher than most FPS), but I should be able to test that idea shortly and see if it feels okay.



#4 0BZEN   Crossbones+   -  Reputation: 2004

Like
0Likes
Like

Posted 01 March 2013 - 06:01 AM

It's just part and parcel of the network latency. As long as the pick up is only picked up once, 

 

Usually what would happen is that you would have a local 'pick up' animation, while your pick up request is in transit (client -> 'Can I pick that up?' -> server). 

 

Then the server reply will tell you if you have picked it up or if you have been 'denied'. 


Everything is better with Metal.


#5 JensB   Members   -  Reputation: 189

Like
0Likes
Like

Posted 05 March 2013 - 07:52 AM

Diablo 3 gives all players their own loot, which has both upsides and downsides from a design perspective, but it would solve the problem stated.


// Jens




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS