Jump to content

  • Log In with Google      Sign In   
  • Create Account

We need your help!

We need 1 more developer from Canada and 12 more from Australia to help us complete a research survey.

Support our site by taking a quick sponsored survey and win a chance at a $50 Amazon gift card. Click here to get started!


gabrielefarina

Member Since 20 Nov 2008
Offline Last Active Today, 12:46 AM

Posts I've Made

In Topic: Entities interaction

02 September 2015 - 12:43 AM


You need to design your game around these trade-offs. Is shooting in your ARPG really that precise? How often will that scenario present itself / do monsters move about erratically?

 

I think you are right. I don't need shooting to be super precise, so I might solve the issue by having hitboxes big enough to compensate for the fact that the event is being executed later. I might even enlarge these hitboxes only when an entity is moving, thus still having fairly precise collision detection when an entity is standing.

 


How often will that scenario present itself / do monsters move about erratically?

 

I think it is another fair point: enemies at the moment tend to not move too much, as long as most of them have ranged attacks, and the ones who don't usually come straight to the player and stop when close enough.

 

PvP will still be an issue with the approach above, but I think that I could design the PvP-related networking system in a slightly different way, so that it is more precise and compensates for lag.


In Topic: Entities interaction

01 September 2015 - 01:41 PM

If delaying the death animation is one option, how do games that show instant death deal with this kind of situation? I guess some of them simply have unsafe authoritative clients, and they live with that (I think that Realm of the Mad God was like that, at least for the first few months)?

 

Also, is lag compensation than useful mostly when interacting with other player characters? I mean in a PvP like situation?


In Topic: Entities interaction

31 August 2015 - 03:46 PM

 


When you say "for the future", does it mean that I should execute the event as soon as it reaches the server (which in practice will mean executing the even in the future, based on the latency)?

Links with examples of different solutions to this are in the Forum FAQ item #12.

 

It looks like you are getting close to what Source does, that link is one of several techniques mentioned in FAQ Item #12.

 

I already read the FAQ and most of the linked posts, but I still didn't find anything specific for the topic I'm mentioning :(

 

 

In general, there is no sequence of events/actions that will always look the same to all participants in a distributed simulation like this.
Your only option is to push the latency around, to figure out where it would be "least bad" for it to pop up.
However, you can also solve this in other ways. If it's an RPG, not a FPS, then perhaps you just detect what the targeted entity is, and send "X shoots Y" rather than "X shoots in direction W" to the server.

 

The game I'm prototyping is an ARPG without any notion of targeting. Something similar to Realm of the Mad God to give you an idea.

 

I wonder what will happen if I only rollback the position of the entities, not their entire state. If they get killed by an event, even if I get another event that was supposed to be executed before the one that killed the entity, I can ignore it - or maybe I could allow entities to be "killed" twice (for a little time frame) as if the two player contributed the same to the last hit.

 

In general though, my understanding is that there is not a correct solution for the problem, but it really depends a lot on the game design and how precise the system should be.


In Topic: Entities interaction

31 August 2015 - 11:33 AM

In my opinion, the best way to solve it, is to not rewind time on the server. Instead, send actions "for the future" to the server.
Instead, the player with the slower connection sees more delay in their actions.
This does dis-favour players with a slow connection a bit, but that's no different from lower frame rates with slower graphics cards, or whatever.

 

When you say "for the future", does it mean that I should execute the event as soon as it reaches the server (which in practice will mean executing the even in the future, based on the latency)?

 

Wouldn't this create collision detection issues potentially? The player will shoot at the place where he sees the monster (up to 100ms back in time) and then will get the action executed when the monster is probably at a different location.


In Topic: Server side events and world update

04 June 2015 - 02:45 AM

Other games just send occasional state updates, and mainly send input commands/events, and run the simulation deterministically (or mostly deterministically) on client/server in parallel.

 

This will be the cleanest approach IMHO, but I don't want to spend weeks of my time trying to get a way to fix the floating point issues that might come out of this approach (server and client will be running on different architectures). Maybe fixed points will help here? Or should I simply not worry about floating point issues as long as my game does not rely on complex physiscs?


PARTNERS