tl;dr Think RocketLeague where you can drive on the walls except you’re “running” on the walls (ie magnetic boots) and the areas you can run on change dynamically at runtime and I need to replicate this over online multiplayer.
At this point I’m almost entirely certain that I’ve got to manually script all of my movement including jumping, falling, moving, ect. but the question I’m asking is, on a macro level, what’s the best way to go about this for performance / ease of use? I would like to avoid rewriting as much as possible as the built in physics are completely fine imo outside of this requirement. Should I ditch CharacterMovement entirely and go for Pawns as the player character? Should I use some code change that allows you to set the gravity direction for the movement component? What’s the consensus?
I’ve attempted several things on the “code my own movement” in a character bp but the Character Movement Component has been fighting me pretty much the whole way. After some additional research I believe I know which features to disable in order to stop things like making my character always 90 degrees even when I set their rotation toward the surface of whatever they’re supposed to be walking on - but I estimate that solving this problem will likely take me a few days of work to get it to a decent state. As this is a core mechanic of the game it’s going to need to be polished in order to feel right, and that means that tackling the problem from the right angle will be imperative to saving time.
Edit: Realized the scope of what I’m aiming to do. I’ve decided to move the mechanic to a “nice to have” and will consider adding it once it’s a more feasible opportunity. It alters the game a bit but with my current estimated polish time it is quite likely that I’d actually be spending an entire month on this feature and may end up having to scrap it due to bugs and clunkiness. Simply put, the vision I had isn’t the only journey to the game I want to make and seems to be far too much work than I can possibly invest.