Jump to content
  • Advertisement
Sign in to follow this  
Nicholas Kong

What causes a game to have "stiff controls"?

This topic is 2018 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I wrote my first and only 2D game -an arcade shooter written in Java. The controls are pretty basic. One press and a keyevent instantly triggers upon a key pressed by the user. So the controls are precise.

 

In the past, I hear game reviewers complaining in offline single-player games developed on multiple platforms(whether it be on PS3, PC,360 and Wii) having "stiff controls". What exactly causes this issue to happen or "make it look like it is stiff" from the user point of view? 

Share this post


Link to post
Share on other sites
Advertisement
I've found that I get the "stiff" controls comment when I change my game objects velocity without considering the initial velocity of the object.
To "fix" this I make sure that the object has a little time to change its velocity. When an object starts to move, there's a little bit of acceleration time before it's going at the right speed. Same when it slows down to stop.
 
It sounds like this will make the controls less precise, but the mind picks it up really quick and compensates.
 
If you overdo it, people will complain that the controls are sluggish. The mind adapts to it pretty quick so during testing, make sure you get some fresh hands to try it out.
 
-Morten-

Share this post


Link to post
Share on other sites

A million things can contribute what would be described as stiff controls.

 

Frame rate obviously, but this is not the most common.

 

One of the main culprits is how the animation system can handle locomotion. Locomotion is the animations that support the player walking and running around the environments (essentially, walking, idling, and running at its most basic). It's always a tricky balance  between responsiveness and visually pleasing animations. Stiff controls are often the result of not being able to transition from the current action to the action the player wants.

 

For example, if a player is running forward, and all of a sudden the player pulls the joystick in the other direction, you would expect the character to have to play an animation that shows him coming to a stop and turning before accelerating in the other direction. But what happens if the player decides to change his mind and move the stick sideways as the character is about to turn in the original animation. The laziest approach would be to do nothing, which means that the character wouldn't process the new direction until he reaches the end of his 180 stop and turn animation, at which point he would probably start playing a 90 degree turn and accelerate animation. This sequence would feel very unresponsive to the player and reviewers would describe the controls as stiff or unresponsive.

 

To handle such a situation more nicely there could be various branch points in the turning/stopping/accelerating animations that would allow the character to change animation state more often. The difficulty in such an approach would be ensuring that the poses of the animations you're blending between would be similar enough to not cause strange artifacts in the animation. Chopping up longer animatons can also improve responsiveness (similar to branch points, but instead you piece together actions out of separate animations), but generally longer one-off animations are visually better than piecing together different animations if the character's desired action isn't changing (so you would only worry about blending between animations if the desired action DOES change).

 

2D games generally don't care about this sort of thing since they don't blend between sprites at all, but they still need to be careful that their controls are responsive. They can fall into a trap where their characters for example can only either walk OR attack, but not both at the same time. Waiting for a sword swing animation to finish before being able to back away from a monster or jump would feel stiff to me. Sometimes it's a lot of work to get all actions working from all possible movement states (i.e. being able to swing sword from a standstill, from walking forward, backward, crounching, jumping, etc), but not putting in the work would produce stiff controls.

Share this post


Link to post
Share on other sites

2D games generally don't care about this sort of thing since they don't blend between sprites at all, but they still need to be careful that their controls are responsive. They can fall into a trap where their characters for example can only either walk OR attack, but not both at the same time. Waiting for a sword swing animation to finish before being able to back away from a monster or jump would feel stiff to me. Sometimes it's a lot of work to get all actions working from all possible movement states (i.e. being able to swing sword from a standstill, from walking forward, backward, crounching, jumping, etc), but not putting in the work would produce stiff controls.

 

Interesting. I will bear in mind about this when I do a 2D simple rpg.

Share this post


Link to post
Share on other sites

2D games generally don't care about this sort of thing since they don't blend between sprites at all, but they still need to be careful that their controls are responsive. They can fall into a trap where their characters for example can only either walk OR attack, but not both at the same time. Waiting for a sword swing animation to finish before being able to back away from a monster or jump would feel stiff to me. Sometimes it's a lot of work to get all actions working from all possible movement states (i.e. being able to swing sword from a standstill, from walking forward, backward, crounching, jumping, etc), but not putting in the work would produce stiff controls.

 

Interesting. I will bear in mind about this when I do a 2D simple rpg.

 

I think it may depend some on how user-input is handled in the game.

 

what is described here is where animations effectively dictate actions, and the user-input essentially dictates which animations are gone through.

 

 

an alternative strategy is, however, that all user input is handled immediately for each tick (rather than based on the animations), and basically the animations play catch-up to try to reflect movements (serving a mostly cosmetic role).

 

say, user input handling causes the player to start moving quickly, and the player animation code will be like "hey, the player is moving quickly, better start animating them as if they are running", or "the player has just left the ground and 'jump' key is held, better play the jump sound".

 

 

however, a downside of this is that often transitions between animations will be abrupt, and there may often be minor animation and sound glitches as the engine doesn't quite match things up.

 

some games improve things slightly by, for example, splitting the upper-body and lower-body animations, so you can have various leg movements (walk, run, crouch, crouch-walk, jump, ...), as well as separate arm movements (say, for firing different kinds of weapons, ...). then, one piece of code will try to match the appropriate leg animations, and the other will try to match the upper-body and weapon animations.

 

 

otherwise, yes, typically you do want the character to accelerate, and then decelerate as keys are released.

typically this is done by treating the character as having "inertia" and the user-input is a force applied to the character. when the key is released, they will still have their inertia pushing them along, but ground friction quickly slows them down and causes them to stop.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!