How can I implement World of Warcraft / Guild Wars 2 / etc like player movement, including jumping, without using a full-fledged physic system for my multiplayer game since players only collide with static environment? Clients can do prediction but the server is authoritive and does all final calculations to prevent cheating.
There are three types of sources for player displacement:
#1 Walking & Jumping
- Players move & jump around kind of freely suggesting that the underlying system isn't just some kind of navmesh like for npc's, but more of a bare bones physic engine.
- Collision only takes place between players and static environment.
- So there are no physic entities pushing each other arround but only static geometry prohibiting movement of players.
- There are no accelerations or forces, players are either at a set speed or stationary. This is always true even while in mid-air.
- Players have no mid-air control
- Players don't collide with each other
- There are some static colliders that can be enabled/disabled (doors). Players are not pushed away by colliders spawning on top of them though.
#2 Displacement caused by abilities
This pretty obviously seems to be either:
- a) Movement along a navmesh.
- b) Knockbacks: Same logic that is used for jumps but with a different jump start angle.
- c) Teleportation.
#3 Displacement of moving platforms
There are some moving platforms that displace players standing on top of them, acting as a mean of transportation. But they aren't too important for the question since:
- They don't push players away that are in their way
- Are at any time either at 100% travel velocity or not moving (aprubt start and stop)
- Change direction of travel abpruptly
- And should thus be more straight forward
- At one point I thought that there might just be some cheesy jump logic on top of a nav mesh at work. Since the described behaviour was even possible back in 2004 (World of Warcraft).
- But then to me the most difficult part seems to be the correct collision of a player character that is mid-air with a vertical surface since a navmesh most likely won't be of any help.
I hope that my question is different and more specific enaugh from this one to justify a sepereate question.
I'm fine with using a physic engine but I don't need mass, forces or acceleration for realistic simulation of multiple moving physic agents. Players can't collide with each other. Only collision between players and static colliders as described above so I don't want to use engines that waste processing time on things that my use case doesn't require!
Thanks in advance!