Client movement needs improvement.
|
|
Ezequal Torgeson
Geometry God
Join date: 5 Jun 2004
Posts: 93
|
12-05-2005 22:15
From much use of the system I have come to the conclusion that the movement system in SL is based on sending a request to move and the given server has to syncrounously permit movement. This is, to my experience a: inefficent and b: absurd. This means (which I experience this regularly) that while i moving if i lag spike, I will continue in my last given vector until either i resync with the server or my connection completely siezes up and im forced to log out.
I propose that SL takes on a new client movement model to improve usability. To do this you would simply handel all avatar collisions client side, and simply update avatar location on the basis of an update rate determined by the client. For example you would have:
Client to server update rate in terms of location frames per second. Client to server update rate in terms of datarate (kbps). Server to client update rate in terms of location of others in frames per second. Server to client update rate in terms of datarate (kbps).
Any world -> client collisions can be calculated by the server based on extrapolated
One of the most frustrating things is lagging out becuase you are forced to move and forced to load more content that you wouldnt have approaced yet becuase you cant stop moving.
End result of this is a ping that will spike to 10,000+ and then climb at a static rate til i quit out.
Right now, if you dont have an optimal connection your controls will feel constantly delayed, making moving aorund and interacting in the environment very frustrating. I belive that making the client do local collition processing and simply sending location data to the serer would make far more sense. the one thing i hate is when i get warping/jamming from a fluctuation ms delay.
On a final note I believe that the network data model SHOULD be set up in this priority top down:
Userchat User positioning / movement Other client locations / materials Land geometry Model Geometry Texture Data
and chat should be TCP based. This way we dont get echos or lost messages ... ever, and no matter what a client can always move around and communicate with others
_____________________
"It was a 'yes' or 'no' question but all im getting is 'blah blah blah'  " "Perfect? No ones perfect ... except fo mee  " "I make guns for a living ... you were saying something?  " Vote Prop 607: Tree/Heirarchy based LinkingVote Prop 404: Low Density Sims
|
|
Seifert Surface
Mathematician
Join date: 14 Jun 2005
Posts: 912
|
12-06-2005 00:13
From: Ezequal Torgeson To do this you would simply handel all avatar collisions client side, and simply update avatar location on the basis of an update rate determined by the client. For example you would have:
Client to server update rate in terms of location frames per second. Client to server update rate in terms of datarate (kbps). Server to client update rate in terms of location of others in frames per second. Server to client update rate in terms of datarate (kbps).
Any world -> client collisions can be calculated by the server based on extrapolated Are you doing avatar collisions client side or server side? Or by "world -> client collisions" do you mean the world not agreeing with the client? How does it resolve things if two avatars collide with each other? Which client decides what happens?
_____________________
-Seifert Surface 2G!tGLf 2nLt9cG
|
|
Ezequal Torgeson
Geometry God
Join date: 5 Jun 2004
Posts: 93
|
12-06-2005 14:35
What the client does:
Determines collisions based on current extrapolated data from server. While this is done, update location of client to server.
What server does:
Handles Object -> object collisions. And object -> avatar collisions based on extraboliated locations based on current location and vector data from client.
Though there is a potential for "warping" which is seen in many common mainstream FPS applications, I would far rather that over haveing a complete client lock becuase of forced data based on forced movement due to poor client -> movement code.
_____________________
"It was a 'yes' or 'no' question but all im getting is 'blah blah blah'  " "Perfect? No ones perfect ... except fo mee  " "I make guns for a living ... you were saying something?  " Vote Prop 607: Tree/Heirarchy based LinkingVote Prop 404: Low Density Sims
|
|
Lukas Strauss
Registered User
Join date: 9 Dec 2005
Posts: 3
|
12-15-2005 22:44
I agree, the client movement has to be improved. Tonight I've been walking around (trying to anyway), and every minute or so my avatar will continue to walk in the same direction, like Ezequal mentioned. I have to log out and log back in for it to be playable.
Chat is horrible. Some messages take 30 seconds to send. Others are instant. Second Life would be a lot more usable if the network data model was redesigned.
Now, my cable connection hasn't been the greatest. I'm experiencing about a 10 percent packet loss which is horrible. But, the game needs to be more accomodating of less than perfect connections. If it had some sort of resending of packets like TCP does, I think those with less than perfect connections would be better accomodated.
|
|
Torley Linden
Enlightenment!
Join date: 15 Sep 2004
Posts: 16,530
|
12-15-2005 22:56
I'll know client movement has improved, the days we have scripted objects that allow us to tap forward twice and do a "double dash" like in certain very fastpaced video games involving rapid movement.
|
|
Torley Linden
Enlightenment!
Join date: 15 Sep 2004
Posts: 16,530
|
04-24-2006 23:31
From: Torley Linden I'll know client movement has improved, the days we have scripted objects that allow us to tap forward twice and do a "double dash" like in certain very fastpaced video games involving rapid movement. Just wanted to followup on this, several months later, where I discover the team of Esprite Xavier, Ayame Musashi, and Archanox Underthorn have come up with a combat system at Samurai Island which includes precisely the "double dash" I've been looking for! w00t! 
|
|
Morgaine Dinova
Active Carbon Unit
Join date: 25 Aug 2004
Posts: 968
|
04-25-2006 05:58
You know Torley, I think that you're trying to tackle a symptom, rather than the root cause of the problem itself.
The way that things stand at the moment, LL's design policy of dirtying the local cache entries on even the most minor of scripted object changes is largely inimical to effective cache operation. And without effective caching, we're up the creek without a paddle.
I wrote to Philip about this over a year ago, but he doesn't seem to realize that his caching is being utterly decimated quite unnecessarily by the scripted object dirtying policy. He's losing out on the effectiveness of his cache by a factor of many hundreds or even thousands.
Hell, most objects remain stationary for years, from their date of creation until destruction. Why then do I have to restream them when I've already been in their vicinity once in recent months? Just because they contain a script is not a valid reason. Scripts should never invalidate cache entries if the location of the object hasn't changed --- they should merely mark an entry as needing a refresh AFTER the cached entry has been instantiated. In these days of 300 GB drives for $100, they're using a totally senseless caching policy.
And that's what's giving you your av-movement lag.
|
|
Eep Quirk
Absolutely Relative
Join date: 15 Dec 2004
Posts: 1,211
|
04-25-2006 06:05
Perhaps some more technical Lindens like Steve, Andrew, Cory, etc could comment on this...
|
|
Haravikk Mistral
Registered User
Join date: 8 Oct 2005
Posts: 2,482
|
04-25-2006 06:42
I agree with Morgaine actually, 99% of the time I suffer the movement lag it's flying into or around an area that is loading. Thing is, I rarely fly far from places I know, I occassionally go exploring but most of my time is visiting friends, yet I have to re-load EVERYTHING ever-time I go somewhere I've already been to, and it's SLOW doing so! I think that with occlussion culling it should be possible to only load textures and objects that you can see, thus reducing what you need to download in the first place. It could slowly download things you can't see just in case you go outside I guess, but shouldn't give them much priority in the cache unless you do go outside. In this way if you frequently visit the same buildings or small areas (e.g your home, a friend's home etc) then they should all be cached for much longer, indefinitely if you keep visiting them. Less downloading means more speed for the client, more speed for the SL machines (not having to send as much content), and less money spent on bandwidth for LL. It's win/win/win and long overdue  In fact, lately I don't seem to be caching anything at all, every time I log-in I have to reload all textures, even though I've not gone anywhere.
|
|
Draco18s Majestic
Registered User
Join date: 19 Sep 2005
Posts: 2,744
|
04-25-2006 11:13
I'm on a T1 connection (gotta love universities) and yet I still have movement, loading, and speed problems. WTF? you might say, well, when the code uses the brute force method, it doesn't matter how good your connection is: the code is too poor to use it.
And the fact that either IRT, the school's ISP, or something ese interferes with my connection all the freaking time (every morning around 2am EST I need to reset my router becuase all of a sudden I don't have internet (PC connection to router: GOOD! router connection to internet: GOOD! PC connection to internet? NO FREAKING WAY! Also happens when I restart on of my computers). And about once a week (Sunday, it's always on Sunday) that glitch fries my router completely and restarting it does no good (it is incabable of aquiring an IP address) and I'm forced to have only one computer online until I try the router again later (minimum of 3 hours so far observed). Oh, and all that and SL (since 1.9) doesn't even notice: Packet Loss: 0%, Ping Sim: 132, Ping user: 155 (prior 1.9 ping would be a steady and constant 10,000).
|
|
Torley Linden
Enlightenment!
Join date: 15 Sep 2004
Posts: 16,530
|
04-25-2006 17:12
O, I wasn't "tackling" that--I was just commenting on a lateral note of interest which fascinated me earlier! This is all. 
|
|
Torley Linden
Enlightenment!
Join date: 15 Sep 2004
Posts: 16,530
|
04-25-2006 17:20
Apologies--should have provided more context. Here's why I said this.
|
|
Draco18s Majestic
Registered User
Join date: 19 Sep 2005
Posts: 2,744
|
04-26-2006 07:46
I read a little bit. I might have to check it out sometime. (And I understood the double dash comment).
|