YouYouXiaoZhu: 3rd Person Fighting


Develop your kung fu and conquer yourself.

Jan. 2017
Character controls, animations, camera controls, camera logic.

Github –



I have a good friend who loves fighting games. While I cannot stand complex fighting game mechanics, he can’t get enough of them. Whenever we play I get destroyed. Invariably.

What interested me in this project is the culture surrounding it. My friend is from a small province in China and attends UCI as an international student. So, he’s one of the few ways I can get an insight into the concepts and stories surrounding kung fu. This game originally started out as a way to embody those concepts in a game.

Another major point of interest is the technology involved. I have never tried making a 3rd person game before, yet I have played plenty. And one of the most prevalent problems in these games is the camera.

What is a Smart Camera?

Watching 50 Game Camera Mistakes presented by John Nesky from the team behind Journey offered me a glimpse into the intricacies involved in making a game camera that “disappears”.

Orbiting the Player

Converts 2D mouse movements into orbits around the player. Relationship between translation and local rotation.

Predicting Obstacles

Use player’s velocity and extrapolate to predict obstructions.


Leveling with the player based on surface normal. Zooming in if there is an obstruction, zooming out if there isn’t.


Acceleration-based. May change it to absolute velocity due to the nature of fighting games. Powerful jump, full air control. Based on Unity’s CharacterController. May need to move away from it due to subtle problems detecting ground collision.

State Machine

There is only a simple 3 attack combo, dashing, and a dash attack. Perhaps bring in the state machine editor from Project Battlefield?

Next Steps

More robust character controls, move away from CharacterController, refine camera logic, implement the combat system.