Skip to content

Improve CGameMovement::TryPlayerMove for Surf purposes #2306

Open
@TeddiO

Description

When Surfing on Ramps within GMod, it's possible to have all momentum / velocity lost due to hitting what's known as a "ramp bug" or "pebble". The underlying cause seems to be Source generally thinking in that tick you've hit a wall when in reality you're still 'falling'. It doesn't matter on what axis you're moving on - you can still be tripped up.

It's possible to smooth over this issue to an extent in lua, but realistically there's only so much you can do to smooth it out. Likewise it's possible to fully fix this with a serverside binary, but then the client ends up with "hiccups" as it's forced into the correct state.

Momentum Mod actually has resolved this in their movement code (https://github.com/momentum-mod/game/blob/develop/mp/src/game/shared/momentum/mom_gamemovement.cpp#L2393-L2993) and it'd be neat to see a similar solution in GMod.

I've attached a map which can be incredibly problematic for these ramp bugs. sv_airaccelerate 150; sv_gravity 800 should be enough to get the required movement to replicate this behaviour with.

Hilariously, code_gs actually recorded a video of this a few years ago - https://www.youtube.com/watch?v=wUnMs0RpA9Y which shows the issue.

This issue isn't limited to CS:GO though as it's reproducible in both GMod and CS:S.
Couple more examples:

surf_olympics.zip

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions