I’ve gotten some questions from people asking if this can be used for “Server Authoritative Player Movement” (aka something like chickynoid) and the answer is no, atm.
I’d love to be able to!
For this to work, humanoid would need to support something like
:StepPhysics(inputData, dt)
which could be run in a somewhat deterministic way, as well as the player simply not simulating outside of those calls.
This is great! I was excited for this to come out. Is using these controllers more optimal than using humanoids in the context of using them on NPCs that move around?
The CharacterStateMachine script creates an Attribute on the ControllerManager to edit the jump impulse. Otherwise you can modify that script to get whatever jump behavior you like.
The AirController is just the physics state used for movement in the air. If you use something to counter-act gravity on the character then you’ll “fly”, and can configure speeds/forces on the AirController. The SwimController may actually be a better choice since it allows movement on all 3 axis - and you don’t need to be in Water to activate it
Thanks for the bug reports, we’ll check them out.
Otherwise, this is coming later via the “official implementation in Lua” mentioned in the post. There will be a system in place so that you can get all these new controller instances with an otherwise backwards compatible Humanoid state machine.
Generalized server authority is still being worked on
Can you give more details on what you mean here?
The example scripts don’t implement any logic for death and respawning. For now you’ll need to implement that yourself until the new Lua humanoid state machine is released.
It depends. If you aren’t using a Humanoid at all and you just want to move a custom NPC around than it could be more performant. Also a Humanoid with EvaluateStateMachine turned off will be cheaper than one with it turned on.
Otherwise I wouldn’t really look at these features as performance boosters, the larger benefit is just the ability to pick and choose what you want and have more control. If that’s what you’re looking to do then perfect!
I like how we are getting more control over how humanoids interact in our games, and it’s always nice to have more control over built-in game behavior in general. No longer will players cheese slippery surfaces by jumping!
Instantly realizes the possibilities for my Sonic fangame
Jokes aside, good update. People have, however, been wondering if this is one of those steps towards having an excuse for sunsetting R6. Is this necessarily true?
Would this enable a player to walk on walls or upside down on a ceiling? Being able to set a vector force for gravity against the player’s root part would enable a number of interesting play scenarios.
One of which (there was a post where someone was asking about this some time ago) is you can have a large planet (sphere) and the players can walk all over the planet, including the bottom of it, hanging upside down. By manipulating the camera, the player would see things right side up.