Custom Humanoid for FPS?

Goal:
I’m currently making an FPS and I want to make dynamic movement with my character. This includes sliding, climbing, etc.

Problem:
I do not know how to go about designing this. I’m thinking of creating my own humanoid so that I’ll have more control over the movement. However, I’m not sure if its worth the headache or if it will be faster than the built in one. How should I go about this?

Possible Solutions:
I will use the action of climbing a wall as an example for the solutions I’ve thought of.

Option 1: Using normal humanoid. After a script detects that an object is climbable, the root part is anchored, and the root part scales the wall by increasing the y position.

Option 2: Create my own custom humanoid and have the y position incremented as the person is climbing the wall.

Option 1 sounds clunky to me as every single dynamic move would require me anchoring the root part and then un-anchoring. Option 2 means I would have to create my own humanoid but I am not sure how efficient it would be in comparison to using the one built in.

Note: I am willing to build my own humanoid if needed and any resources on concepts of building one would be helpful.

Luanoid is more efficient (though not 100% stable), so that just shows how bad the built in Humanoids are.

How you want to implement your humanoid strictly depends on what you exactly want to be able to do with it. You could create something that would run 10 times faster than the default, but with half the features (limited to a line like in runners, or no jumping like Deadzone). But you could also create a humanoid that would be extremely powerful in features, but would lag out if more than one are in use.

Basically, you will have to raycast downwards with multiple rays to cover the area and to avoid the character falling through small holes, as well as adding an inclination detection to get smooth movement downhill.

You could also do this using pure physics (a collision part + constraints), but I don’t know how effective that would be; however, this would allow you to easily simulate moving platforms.

Climbing is already present in the default humanoid, but sliding can be easily done by setting a velocity and locking the controls (except for whatever cancels it).

If I recall correctly, Deadzone still used Humanoids but the way they set it up was to make almost no use of the Humanoid and essentially ignore it’s presence, only to have it there as a root of sorts.

1 Like

True, I just pointed it out as an example of a feature of the Humanoid that isn’t required, not the way they implemented it.
The only reason they had it is because it was the only reliable way to detect collision.

Deadzone couldn’t even handle dying correctly as you had to manually reset.

1 Like

I didn’t know it was that bad. How do you test how efficient a humanoid is compared to something like Luanoid? I’m not too familiar with the performance tools in studio.

Try running 10 luanoids in play mode, then try doing the same with humanoids and compare the general stats.