Better player movement collisions

Feedback on past, current, and future development.
imec
Posts: 37
Joined: 13 May 2012, 22:03

Re: Better player movement collisions

Post by imec »

After messing around a bit more, I'd like to go into a bit more detail. It seems some areas handle a lot more elegantly than others. Balmora and Seyda Neen are almost perfect outside of a few trouble spots. The Vivec canteens and less boxy areas, on the other hand, are a big problem. The slopes on a lot of walls cause you to get caught constantly when you run diagonally against them.

Running 0.41 and the latest nightly I could get side-by-side I've noticed that in 0.41 you will simply get stuck on sloped walls and need to back away to unstick yourself (collision problem). In the nightly, for the most part you will either:

1.) Start to ascend certain slopes before seemingly reaching a point where you don't have enough speed to continue and come to a halt.

2.) Rapidly snap to various surfaces or points on the incline. Sometimes this is so extreme that your model will briefly snap into a wall, before ejecting out of it.

For issue one, this looks suspiciously like a collision problem (especially when you're dealing with barely visible, steep inclines), but I really think it's now a problem with the way physics handle slopes. Your character doesn't have enough speed to continue up the slope right in front (that's fine), but sudden variance in height makes the incline too steep to your sides as well so you just get stuck while going diagonally (not fine).

If you want to see the second issue for yourself on nightly, try doing a few laps around the little sloped wall encircling the temple in Mournhold while in third person. Try to stay at ground level and run diagonally against the wall backing away regularly to see what is happening. Your character will rapidly switch between jumping and running animations while jittering like mad. I'm pretty sure the "staircase" mechanism that causes you to snap to surfaces is causing this.

I feel like the following would help:

- A sliding mechanism for when the player attempts to walk or jump up something that is too steep (like in Source games). If you start accidentally going up some unseen slope on the side of a flat looking wall or try to go up a jagged canteen, you should theoretically just slide down if surrounding area is too steep.

- Settle on a less aggressive stair height even if it will cause problems. Yes, the player is going to get caught on pebbles and whatnot here and there but I don't see what else could be done. Abrupt height changes and getting sucked onto surfaces just feels awful even outside of jittery glitches. Heck, if you time it right, you can walk backwards and fall off edges and then walk forward and suddenly snap back on.

- Allow the player to jump when pressing against surfaces to make "almost a stair" objects less annoying and overall movement less restrictive.

I realize that some of these could have some unintended consequences. Like negating fall damage by sliding down slopes or being able to climb where you're not supposed to, but I think it would be worth trade off.
lambda
Posts: 70
Joined: 11 Sep 2016, 17:10

Re: Better player movement collisions

Post by lambda »

In my earlier post I wrote:
Anyway, my issues probably fall under what imec described as "high speed momentum oddities" (although to be fair, I really do not know what I am talking about). Crossing Sadrith Mora along the path Wolverine Hall - Gateway Inn - Council Hall the physics thread spikes madly, dropping fps from 30-50 to 4-5. At first, I thought disabling the guards patrolling the place and bumping around would solve the lag issues, but after systematically disabling them all (between 10 and 15) as well as the 3 slaves inside the pods, while the situation improved, it did not improve that much. Simply crossing the path Wolverine Hall - Gateway Inn - Council Hall, running middle of the road, the physics thread spikes sinking with it the fps.
Having had a little bit more time to test, I went about deleting the guards again -- I do have a *lot* of guards, probably a side effect of a mod like NX9 Guards complete; what is more, they exhibit weird behavior like clumping in one spot and staying still, staring at the infinite. Anyway, after having again disabled about 10 guards (with 5-10 more to to, as well as the slaves), I had the random idea of typing ra in the console, and voila the severe lagging when crossing Sadrith Mora is gone. I can only speculate, but maybe some actor was stuck, maybe even inside the walls or something. It has happened to me before, openmw spawning a winged twilight in the middle of a pillar in a daedric ruin -- this also happened to me in vanilla by the way.
User avatar
raevol
Posts: 3093
Joined: 07 Aug 2011, 01:12
Location: Caldera

Re: Better player movement collisions

Post by raevol »

If we can figure out a way to reproduce this 100% of the time, we may be able to figure out a way to code in a safeguard for it. It's certainly not our responsibility to QA any mods out there, but if we can find it in vanilla, we can fix it.
Post Reply