Stylistic Movement with custom physics

"deft" means to be dexterous; nimble; skillful; clever

Overview

References

I wanted to replicate movement from games like 'Mirrors Edge' or 'Shady Knight' or 'Dishonored' that showcase tight fast control and "zippy" movement with reactive cameras, climbing, sliding. ; something where you feel like the wind when combining fluid traversal mechanics.

Wanted to make it feel unique

Additionally I've felt like lately a lot of UE games' 3Cs feel the same. (I'm aware this is an unfair blanket statement and not true but the sentiment is there at times)

  • if you're making a game with a bipedal character utilizing UE's starter projects like First or Third Person templates, there's only so much you can tweak in the stock CharacterMovementComponent blueprints to make it feel different

So I wanted to see if I could achieve something like above where the physics are more stylistic and less realistic (especially where gravity is involved) by creating my own CharacterMovementComponent fully detatched from the stock movement code; except basic collision detection (...except for a few places where I do).

I do of course leverage (no need to re-write the entire wheel) some aspects of UE's default CMC and other useful tools, as one should when using a robust engine.

But in the end I wanted to have absolutely full control over how the game feels and not just feeling like I was tweaking something someone else made and honestly I feel like I did.

Happy with the results: Zippy, Tight, stylistic movement

(these gifs are not sped up, I wanted fast reactive, near-full air control movement with style)

WASD and jump + reactive camera
ledge-up climbing
slide and jump slide

Extra Challenge: Write own physics using Float Curves (because why not)

I saw a post from someone one time saying they made a jump in UE solely using float curves and position translation over time instead of gravity and UE physics so they could make very specific and weirdly shaped jump behaviors and I wanted to see what that would be like if I did that for...all...physics.

Thoughts on using Curves for Physics?

Pro: Stylistic fast prototyping

Design prototyping different movement feels was incredibly fast since once the system was up and running all it takes is swapping out curves to instantly test out different movement feels for jump, fall, slide, ledge ups, camera effects...etc

So in that sense, it was incredibly designer friendly for prototyping.

It also allows them to "cheat physics" and make some really stylistic movement since if you can draw it in a curve, you can make it; rather than relying on realistic physics.

Con: Not very scalable for combining

I honestly wouldn't recommend it as a scalable solution because of the amount of boilerplate you need for each new physics feature, managing state based timers gets annoying quite quickly, and once you start trying to combine two mechanics they don't blend well.

Final thoughts: Fun to do, probably useful for specific features but not a complete replacement of physics

Nonetheless I wanted to see what it'd be like. Also I'm well aware you can get stylistic movement with still using reliable physics paradigms without the need to lerp a thousand timers into oblivion; this was just for fun.

Github link to project

Last updated