• Register

《Drifting : Weight of Feathers》is a third-person shooter-action game. The combat system revolves around air-to-ground, air-to-air shooting and traversing. Each encounter in the game challenges the player to develop a situational awareness in 3D space, which includes constantly prioritizing your target whilst observing the surroundings to find out the key to advance to the next stage.

Post news Report RSS 《Drifting》 Wall run system revised and improved

Turning camera whilst wall running now gives a much smoother animation blend; The addition of vertical wall running and sliding gives players an extra degree of freedom in terms of movement and camera control; Player can now run on thin, sloped walls without accidentally exit wall running state due to an incorrect calculation.

Posted by on

Hi everyone!

For the past two weeks, I received a lot of useful comments and playtest feedbacks. Among these feedbacks, a large proportion expresses their dissatisfaction with my control scheme of wall running system.

Players pointed out the animation transition of turning camera while wall running seems clunky; the requirement for players to lean on a nearby wall to maintain wall running status seems unnecessary and unintuitive; the lack of a vertical wall run mechanic gives players a hard time to adjust his/her position while wall running. In addition, I noticed my wall run calculation does not respect the rotation of the wall mesh, which causes players to exit wall run unexpectedly on walls that are rotated in a certain direction.

So here are the revised and improved works I made to remedy the problem mentioned above.

During wall run, I added an additional line trace to check if players are still near a wall when turning the camera abruptly, and maintain his/her wall running status accordingly. The result is a smooth animation blend during camera turning phase.

wallrun turn combine

(A small tweak to the wall running mechanics, yet yields a much smoother experience for turning camera whilst wall running)


A vertical wall running and sliding mechanics is added to the system. Vertical wall run gives players the ability to climb on thin walls (where running horizontally is not an option), jump on wall edge, inspect the level layout from a different perspective (which is useful for puzzle solving in 3D space). Vertical wall slide is added mainly to alleviate the need to constantly lean toward a nearby wall since during wall slide, players can turn the camera freely without accidentally exit wall running state.

wallrun vertical combine thin

(Vertical wall run gives players an additional degree of freedom in terms of movement; Vertical wall slide gives players freedom in terms of camera control)


Lastly, I fix my wall run calculation so that running on walls that are rotated upward/downward, will make players run toward the same direction as the wall instead of running horizontally without respecting the rotation of the wall.

wallrun sloped mesh combine

(If the rotation of the wall mesh is not taken into consideration, players will run at a horizontal direction, even though he/she should be running at a tilted angle. This causes players to exit wall run when running on thin, sloped walls.)


Finally, here is a short video demonstrating the newly added features in my wall running system.

(Short demonstration video of the revised and improved wall running system, noticed player can do vertical wall run/slide on sloped walls.)


I hope you enjoy reading my article, feel free to leave a comment or like if you are interested in my game.

Have a wonderful weekend! :)

Post comment Comments
crazysketch85
crazysketch85

Nice animations

Reply Good karma Bad karma+5 votes
rit2040 Author
rit2040

Hi crazysketch85,

Thank you for your good words! I'm still tweaking the animation to make it press closer to the wall when sliding down, hopefully, I could get a better result next week.

Have a great weekend! :3

Reply Good karma+4 votes
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: