[sldev] movement within the client

Dahlia Trimble dahliatrimble at gmail.com
Tue Jan 1 12:42:11 PST 2008


Message: 7
Date: Mon, 31 Dec 2007 21:26:53 -0700
From: Lawson English <lenglish5 at cox.net>
Subject: Re: [sldev] movement within the client
To: John Hurliman <jhurliman at wsu.edu>
Cc: sldev at lists.secondlife.com
Message-ID: <4779C10D.7000101 at cox.net>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

John Hurliman wrote:
> Callum Lerwick wrote:
>> On Mon, 2007-12-31 at 15:06 -0600, Argent Stonecutter wrote:
>>
>>> On 2007-12-31, at 14:06, Callum Lerwick wrote:
>>>
>>>> (And of course we can and should always ask the question, "How does
>>>> Quake 1/2/3, Doom3, HL 1/2, Unreal etc etc game engines handle this?",
>>>> they've been doing this for years... AFAIK a major difference is they
>>>> all perform collisions/physics simultaneously on the client and
>>>> server,
>>>> and resolve any de-synchronization by holding the server
>>>> authoritative.)
>>>>
>>> Would that require making Havok part of the client code?
>>>
>>
>> Good question, actually. I'd like to know how Doom3 (Which is apparently
>> "id Tech 4" now) and Source handle this. Do all clients really perform
>> full physics simulation? Is the physics simulation predictable enough to
>> do this on large numbers of colliding objects? The Source engine is
>> Havok based, actually. However John Carmack has to reinvent the wheel as
>> usual.
>>
>> Still, full client prediction of physics is orthogonal to the
>> functionality I/we want. Better client prediction would be nice. The
>> "fall through the ground then suddenly pop backwards" thing that happens
>> in laggy situations, especially when crossing sims, especially in
>> vehicles, is really annoying and I don't even understands why this
>> happens. Is the client simulating gravity? As well as the "walk forever"
>> thing that happens. The client does not seem to have any code in it that
>> does something like "I have not received any updates from the sim in x
>> seconds/milliseconds, I should stop moving the avatar as it is likely
>> not what is intended by the user".
>>
>
> Second Life clients use http://en.wikipedia.org/wiki/Dead_reckoning
> based on position, velocity, acceleration, angular acceleration, and
> an attempt to synchronize time steps between the client and the sim.
> If you jump in the air and then start falling down or you stop flying
> and the sim hiccups in sending you position updates, or you are
> crossing a border at the time and the handover goes less then
> seamlessly you will probably start falling through the earth. The
> client *could* do basic collision detection with the avatar and the
> terrain heightmap to prevent this effect.
>

Wouldnt it be easy for the client to test if the user stopped pressing
motion keys, and then slow or stop the dead-reckoning?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/sldev/attachments/20080101/9b27797e/attachment.htm


More information about the SLDev mailing list