Dynamic Character Movement

I mainly use the “Character” physics option when creating a player character, but I’m trying to figure out how to use the “Dynamic” option. I have a few problems when doing this:

  • The character is way too slidy when running on the ground, and most of the time it can go all the way off of an edge without stopping (when the key isn’t held down).

  • The jump is too floaty, and it almost looks like the character is gliding when falling from a jump.

  • I’m not sure how to set a top speed for the character. I can set the maximum velocity, but then a dashing feature cannot be implemented.

Are there any good, solid fixes for these problems?

I use physics type RigidBody for better physic control.

You can easily fix this problem by changing the Material Physics on the Player Collision object & the other desired object (Like a ramp)
Materials > Physics > Friction (Set Friction to a high number like 100.000)

Are you using Force instead of Motion?
Also try tweaking scene Gravity for quicker falling speed.
I also personally change Player Collision Mass to a smaller number -
Physics > Attributes > Mass

Have you tried using Logic States?
With Python it would be quite easy to make a script to limit the speed, but with Logic Bricks it is tricky.

1 Like

gravity is a b*tch :smiley:
add some force() +z to it 9.8 is default gravity so 9.8 will counter the sliding

when in air add some force() to -z to let it drop faster

move the player with velocity (if using bricks) then if you put y = 0.1 the speed will not go faster but a dash can be activated to push you forwards.

If you know python a bit, give this a try

Sorry if you are using a python script for the movements and all

I’m not very good at explaining stuff…so here is a blend that contains a very basic fps setup (player has a DYNAMIC physics type + all controls are “logic bricks” fps setup.blend (620.8 KB)

I use simple motion and it works just fine for me…

I set the gravity to a higher value like 40 or something…9.8 isn’t good enough for my games!
For the jump…it’s easy :

  • I give the ground a property called “ground” … + ( “Static” as physics type with “Actor” checked)
  • I set the jump controls on my character as such :
    • Space bar “TAP activated” + Collision “property : ground”
    • Connect both trough “And” controller
    • Connect the “And” controller to a “Motion” actuator
    • Set the “Linear Velocity” on Z to 20 or whatever suits you

Hope I helped!