I don't buy that. The plats in Q2 and in HL1 both worked properly in mp.
Plus, because the plats are a predicted entity on both the client and
server, there is no reason for the movement to be messed up the way it
is. And this doesn't explain why the classname and velocity information
is grossly different between client and server. For that matter, why is
the server wrong and not the client? If anything, it should be the other
way around since the plat runs on the server side.

I'm familiar with the playermovement code. I have a jetpack and grapple
in my mod which work very smoothly. The problem is the playermovent goes
to hell when the ground entity velocity  information gets applied
(specifically when there is a positive Z velocity). The question is why.

Simple.

The player is the only entity in the engine that is completely different
from any other entity.

All player movement, is done via gamemovement; and is predicted on the
client.

Even the vphysics shadow is basically just a hack, it's on the server only.

Secondly, there is a bug with this (or incomplete code rather) that's been
around since Dave 'Zoid' Kirsch wrote the shared PMOVE (or gamemovement)
system for quakeworld, where the client doesn't properly know all the
collision for the other entities, at the time that it's needed. It's
documented in the q1/q2 engine source somewhere.

Essentially, the player acts like it's own 'god'. It decides where and when
it can move, and making other entities push it around, happen AFTER it
decides if it can or not.

So when the player is on the plat, the gamemovement code already makes
gravity suck it down. So then the plat goes up, and it tries to push the
player up, well the player is applying gravity, and on the client thinks
there's nothing there (it can't see the platform completely) so it applies
gravity and pushes itself down. Now, the server is trying to tell the
player; okay there's an entity trying to move us up, so it "teleports" the
player.  Now, remember, the player movement code is all teleportation, it
doesn't really have velocity in the same manner, because it doesn't move the
same way that all other entities do.

The only way to truly overcome this is to make the player move via forces
instead of shifting origin directly, so the player can be simulated at the
SAME TIME as every other entity, instead of before or after it.

It's a major flaw that this engine has inherited from an engine created 10
years ago.

The vphysics shadow doesn't really help much either, it's perfectly fine in
singleplayer where there is no client side prediction, but when you get
hl2mp with prediction on, that's why you jump around when you stand on a
box, and whatnot.

--------------
-- omega
Heroes of Excelsior
http://www.heroesofexcelsior.com
Blackened Interactive
http://www.blackened-interactive.com


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to