

March 17, 2025
4 weeks

Goemon: Gyakusatsu is an action/stealth game in which the player takes on the role of a ninja in feudal Japan in 2049. The player follows the story of Goemon, one of the best ninjas in the Japanese army. He is tasked with carrying out numerous assassination missions on important figures in the Korean Empire, using his ninja powers. His most powerful ability is his ability to navigate in the shadows.
Player Character
Fighting

I started by developing my player character. I started with the FPS template from the Unreal Engine game engine provided by Epic Games. The first element I modified was the shooting. My intention in the shooting gameplay was to make the game quite difficult. So I made sure to have a crosshair in the center of the screen, which would be where the player aims and shoots. To do this, I used a raycast system.

As part of the infiltration gameplay, I also implemented a stun mechanic. If the player has their back to an enemy and is close enough to them, they can stun them.
Movements

I then modified the character's movements. I added the ability to run/walk, crouch and slide. These elements are important for both combat and infiltration mechanics. The goal was to have fluid movements and to be able to make more or less noise depending on the mode of movement.
Powers
Now I had to implement the powers. Due to time constraints, I decided to make only one. So I developed the ability to move through shadows.


Once the player has interacted with a shadow in order to enter it, I switch them to free movement mode. They can then move up, down, and navigate within the collision box.
I made a prototype version of the mechanics: I created an actor that contains a collision box. This collision box would be the boundaries of the shadow. The player would not be able to move outside of it when moving in this mode.

Artificial Intelligence
I wanted my AIs to have four behaviour patterns: patrol, be warned (when they hear a sound, for example), be alerted when they spot the player, and retreat when they are low on health points.


In the context of the prototype, I did not include the retreat state and simplified the alert state (the AI has unlimited magazine capacity, does not seek cover, does not heal itself, and does not throw grenades).
Once in the engine, I then recreated this behaviour loop in a behaviour tree.
I have worked to ensure that the system is easy to expand upon. It is simple to create new tasks, new behaviours, etc.

End of patrol behaviour

AI senses




