Kabuki Duel was a passion project I started after having an idea for a game where the player is fully in control over their weapon. Usually in games where the player has a sword they simply press a couple buttons to use it for attacks. I wanted to explore some ideas outside of that conventional nature.
The end result was Kabuki Duel, a local 2-player fighting game where you play as 2 samurai in a battle to the death. The player has full control over their sword and correct technique is rewarded. There is a system in place where the sword that strikes the fastest parries the slower sword, a player who got parried gets stunned temporarily, allowing the other player time for a devastating strike.
As for the artstyle: I got inspired by traditional Japanese theatre. The characters themselves are references to shadow puppetry, these are often paper puppets which is why when a player gets "damaged" a paper cut appears on them.
Besides shadow puppetry I also got inspired by traditional Kabuki Theatre, this is a form of Japanese theatre full of exaggerated movements and dramatic violence (this is also where some of the sound design came from).
Sometimes in the plays when a person gets a horrific wound, paper streamers get thrown out to resemble blood. This is what i recreated to signify the end of the duel.
At first I thought about using the mouse position in relation to the player.
This would have given the player fine control over the sword's rotation, but no control over the position.
Here is the diagram I made to explain the controls, the arrows are the swords rotation, with the base of the arrows being where the mouse would be.
As you can probably guess, this would have been a bit too complicated for player's to comprehend without even allowing full control over the sword.
In this iteration I switched to thinking about using both joysticks, here each joystick would control a hand inside of a boundary.
While this would have been functional, it still seemed a bit too restrictive. The sword would have only been able to do full rotations with one specific movement.
This is how i ended up at my final control scheme: One joystick controlling rotation, and the other controlling the placement.
This allows the player the fullest range of motion, with a high amount of accuracy too.
At first I calculated the strength by simply comparing the position of the very end of the sword with it's position last frame, this would quickly give me a loose "speed" of the swing.
Knowing the speed of a swing is important, because it is the faster sword that deflects the slower sword.
The problem I had is that players could simply rotate their sword very fast and it would count as striking "harder", the fix for this is that I had to start taking multiple things into account.
To really calculate the strength of a swing I had to calculate the rotation of the sword, compare it to see if the hand was moving up or down (if it matched the direction of the swing the power would increase) and also add how much the hand moved forwards in regard to the player, for an extra "thrusting" boost.