Moving & Spawning Objects Working! Need help with smooth moves!

Started by
2 comments, last by ferrous 9 years, 11 months ago

Hi!

This is a demo video about how everything is working in our MMO game! Now, the server is capable to:

- Login system

- Moving characters

- Spawning objects

- Spacial partitioning

- Create objects (game master mode)

- Everything is stored in ram/database

Video Link

https://mega.co.nz/#!qFwTUJTb!s5PDqdCB9WZfWzsOsrG-b1t6G_FMGoEkAbVfuiCqdoQ

Now, the question!

The server sends player's positions 2 times per second, so, like you could see in the video, other players moves are sketchy, they "teleport" to their new distance every .5seconds, how could we "smooth" their moves?

We have tried to do interpolation but maybe we're failing in something, best way to do that? Thanks!

https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking

Advertisement
When you receive an update for a remote player, instead of snapping to that position, make the entity start moving towards that position, such that it will arrive there one-half second from now.
That way, the displayed objects will always be one-half second behind when they are received, but that's better, because they move smoothly.
If you want to forward extrapolate the positions of the entities, check out EPIC: http://www.mindcontrol.org/~hplus/epic/

For most MMORPGs, half a second of delay isn't a big problem. If that turns out to be a problem for your gameplay, you'll need to send updates more often, at least for players/entities that are "important" to each viewing player.
enum Bool { True, False, FileNotFound };

Teleporting...

There is that idea that the Clients view (presented to the player) tries to 'smooth' more jerky updates from the servers (not quite equalling the 'official' movements from the authoritive server) and as long as it doesnt effect game play the visual smoothing is an improvement.

Possibly this may be selectively employed - with object out of interactive range being more 'smoothed' and closer objects which MIGHT still be jerky (when the differential between client and server positions is NOW impacting interactions) arranged to get more frequent updates (finer granularity) being more important to that client's player.

--------------------------------------------[size="1"]Ratings are Opinion, not Fact


Now, the question!
The server sends player's positions 2 times per second, so, like you could see in the video, other players moves are sketchy, they "teleport" to their new distance every .5seconds, how could we "smooth" their moves?

Smoothing aside, have you thought about scaling this depending on how close the other player is to the person? At 500 meters, you could probably get away with even less than that. At 10 meters, you might want to send it more often. Granted that's introducing a great deal more complexity than just sending all players all the other players positions every half second, so I'd try to get the smoothing working first.

This topic is closed to new replies.

Advertisement