Katana One is a semester assignment. It's an ACT game inspired by the Ghost of Tsushima.
-
Character movement (include basic movement, dodge, dash)
-
Combat System (include equip/unequip weapon, combo system, block system; the animation structure support multi-weapon switch)
-
Enemy AI (include patrol, melee attack, ranged attack)
-
Basic UI, Sound and scene transition
Devlog
3C
Katana One used the same control method as Ghost of Tsushima. The character’s moving direction is not related to the camera’s direction which means the character could move in any direction. Meanwhile, the character could dodge in any direction and dash forward. In addition, the character could switch crouch and run state which is common in ACT games. There’s a combo system in Katana One, the player could play different combos which are set in the editor, if they press the attack button before the current attack ends, they could continue playing the combo.
Animation
The animation system supports different weapon switches(but not implemented), the character could play the corresponding animation based on the current weapon without breaking any other animation and tons of work. Most animation including but not limited to attacking, running has different versions based on the current weapon.
Enemy AI
The enemy could patrol, chase, attack and flee based on the different states. I add a function which runs every second to set the enemy state and is similar to the state machine. But I use a behavior tree to implement features like investigating suspicious sounds.
Execution and dismemberment
If the character could kill the enemy when attacking, he has a certain probability of triggering an execution. The execution data is stored in the enemy class, if the enemies will be executed, they pass the corresponding animation montage to the character and play montage as the character. I add some notifies in the execution animation montage, if the enemy plays montages including dismemberment notify, the dismemberment happens. I made some parted bodies in advance, if the dismemberment happens, the skeleton mesh of the enemy changes to one parted body and the other one is spawned in the calculated position.
Project Gallery



