The goal of Shinobi stealth was to make an action stealth game where the player feels like a ninja. The project was developed in Unreal engine 4, in the span of 8 weeks half time (4h a day).
Workload Included: Game design, level design, AI, scripting and the implementation of visual/audio feedback.
The game works under two states:
Anticipation: The player is dividing the best path and moment to move forward in the level.
Realization: The player is attempting their planned path.
These two states exist in both the gameplay and the map design. The map can be divided into rooftop and ground areas. Players use rooftops as safe spaces where they can plot their best path, while the ground is dangerous due to the guards.
This works well as rooftops act as both safe spaces and vantage points due to their height.
I started by figuring out key features that I felt were necessary to a ninja stealth fantasy.
These were based on ninja tropes such as running on rooftops, distractions and stealth kills.
I also wanted to accommodate multiple play styles. If a player doesn’t want to kill the guards there needs to be a way for them to interact with them in other ways. I ended up with a short list of features that the player needs to be capable of:
Backstabbing guards (grounded and airborne)
Sound that can be triggered to distract the guards
The player can hide in bushes
The AI behavior tree
When the player is behind a guard who is not in Chasing state they can perform a stealth kill this is the only way to “remove“ the guards.
Players shouldn’t be able to engage with direct combat with the guards so barring them from interacting with guards at all while their in Chasing was the smoothest way to remove that behavior.
Camera zooms in, player attacks, guard triggers, death, camera zooms out.
The player regains control when the guard hits the ground.
AI needed to be relatively versatile to accommodate the gameplay. There are two types of guards: Standing and Moving (on by spline).
Idle State: If the player is in the yellow region for too long the guards enter alert state.
Alert State: During alert state the guard will go and investigate what's wrong.
Chasing State: The player has been seen, guards start chasing the player.
Guards would also enter alert state if they heard a pot being smashed.
A visualization of the sight cones used for the guards from Yellow - red - black
The guards spotting the player in action.
Ironing out design flaws
When I got to the map designing part of this project I ran into a problem…
The player could stand on a roof and the AI didn’t have a way to approach the player.
Mocking the guard was pretty fun tho...
My solution was that the guards should throw something at the player to get them moving.
After thinking up what the guards should throw I eventually decided on fireworks/bombs. The guards would throw the bomb, the bomb would land and then detonate after a few seconds giving the player time to move to the next house.
The bomb needs to take some time to detonate as the main purpose is to get the player to make a split decision and not actually kill the player.
The Bomb in action. I'm given a large amount of time before I have to leave the roof.
There are some other objects that the player has to their disposal that I could also use for the map.
Bush: Bushes act as safe space on the ground.
Tree: Acts the same as a bush but the player has a high ground.
Pot: The player can smash pots to distract guards.
Frogs: Golden frogs can be found throughout the map they act as a reward for exploration and clearing challenges. As I wanted the map to be open these frogs were a lot more effective then I originally thought they would be.
Water: The player can also crouch underwater to avoid the guards.
I wanted the map to be open, if two players played the same map I wanted their experiences to differ as much as possible.’
When designing the map I started by making a list of various locations I thought a remote village would need.
Village - larger area of houses
Bridge - works as a good divider between areas
Tower - the ultimate rooftop
Governor's villa - final goal Later became castle
Farm - guards need to eat something
Water Mill - guards need to grind the wheat somehow
River - I planned to tie the areas together using the river
INN - Visitors need to stay somewhere...
Torii gates - These would repeat in the map and act as goal posts
The paper design of the Village
The various locations I plotted in pre-production in the final map.
The datum I used to develop the map. The orange line is the axis the map is builded around, while the blue represents the main player path.
Example of the player paths that are available.
The player starts of in an enclosure where you can see the top of the goal with the rest being obscured by the fence. Players learn their movement and jump height in a safe area.
The player starts the game
The player then lands into some bushes triggering the vignette effect and sounds. Hopefully cluing them into the stealth scenario.
The longer the player holds jump the higher they go.
Lastly the player has to act out their first kill and then sneak past the first guard. The first kill is sitting on a bench looking at the view. The bench acts as a barrier between the player and the guard making this encounter as safe as possible. Having the encounter in front of an overview composition shot of the map gives the player a reason to stop and see the view.
After the first encounter the player has to sneak past their first guard. The height that the player approaches from triggers the guards question mark and the bushes that surround the guard make for instant cover and safer space.
The first two encounters.
Leading the player
I wanted take the player down from the roof and onto the ground for an extended period of time. In this instance i'm communicating to the player to leave the rooftops by use of danger from above. The idea is to tip the balance of danger from the ground to the above with the use of bridges and guards on rooftops
This approach worked however I felt that the user had to trust the level designer more than I personally would like as there wasn't a clear goal past the bridge.
I use Light and shape to tell the player where to g next.
Golden frog challenge
Throughout the level there are golden frogs. These are used for both exploration and other challenges that the player can chose to engage in.
In this example there is a guard walking back and forth and another sitting in front of the golden frog. The player needs to chose the right moment to strike in order to collect the frog without being detected.
guard moves forward
Player has a chance
The sequence in action
Main path split
Towards the middle of the level the player needs to make a choice between going up into the tower or over/under the bridge. The map eventually converges again after a while.
The most frequent path the player takes to cross the bridge is going under. This is by design players get to the point of the cross road and see an enemy who is facing the opposite direction. Players will kill the enemy and explore getting lead in the direction of the bridge.
Guard is facing the opposite direction of the player so it makes for an easy kill that points the player into the right direction.
The Tower is the less visited of the two splits, however it's also the fastest path the player can take to victory and is usually found by players who prefer to explore. The tower itself has interior and guards that are on the balcony.
Once over the bridge the player is able to converge onto the tower path however the main path takes the player to the farm. the farm is more of a grounded stealth section with guards scouting the crops. The section is meant to make the safe spaces feel potentially dangerous as you might rub up against a guard who's less visible in the crops.
Lanterns that the guards hold will shine trough the wheat.
The water wheel acts as a player reward. Players see it from a distance and think "aha i'm going to ride that thing" and then are able to do so.
The water wheel is the best.
Blocking the axis
There was an area later on that wraps around to give a view of the previous area you explored. This is a nice way to make the world feel connected and helps with the players mental map of the area. A problem with this view in particular was that there was to strong of a leading line back in the direction the player came from. As going under the bridge is one of the main paths the player hasn't experienced the top of the bridge more often than not, so this is something I decided to cover up.
The bridge in the distance is leading the player in the wrong direction
I added bushes and trees to cover up the bridge
Insights and closing thoughts
My biggest take away from this project was how players tend to set their own boundaries. Early on in development I had a section where I was discreetly leading the player onto the rooftop. There were a few instances where players wouldn't go up there because running on rooftops wasn't something that occurred to them, early on I wanted the roof tops to act as a moment of epiphany. However this aspect of the game was too important to mask in any way. I also found that the different expectations the player had reflected on how they wanted to play the game, people who kept to the safe spaces didn't want to test the boundaries of the guards vision and remain unseen, while people who wanted to go on murder sprees simply didn't care.
I was really happy to see the game in action. Testers would edge their way to the goal but made sure to go out of their way to get kills even if they knew it was counterproductive to their goal. I succeeded with making the stealth kill and traversing from rooftop to rooftop fun.
That being said I would have liked to make more gameplay moments for a pacifist route. The feedback and enjoyment of the murder route heavily outweighed that of the pacifist. If players set their own goals to accomplish the pacifist route it would potentially be enjoyable. however I would like to see this become a choice the player considers in their first play-through.