TSUKUYOMI
PITCH
Tsukuyomi is a Stealth Game where the player incarne the japanes god of the Moon who will infiltrate an enemy base.
Theme: Japan
Genre: Stealth Game
Target: midCore Gamer
Number of player: One
Engine: Unity
PROJECT CONTEXT
After a big project made during school, i wanted to made a prototype of stealth game during my free time, and i create the Prototype of Tsukuyomi. He will be improve when i get time to re-work on it.
GAME DESIGN
I made a High Concept of the game to have a better comprehension of the Game Design
You can download the here or have a part of it below.
PROGRAMMING
ARTIFICIAL INTELIGENCE
The principale obstacle the Player will encounter during the game is the Guards. They are here to protect the Area and neutralize anyone here. They have differents behavior depending of the situation.
The Algotithm is nearly the same i use for AI of my personal project:
- Field of View:
Each guard have a Field of View that allowed them to see things or not. Has a Sign to show it to the Player, the FoV is draw by using a visualisation mesh that show exactly where the Guard can see.
Not in sight
In sight
Evry number of frame, the FoV refresh himself and add evry target on it in a List. For that we give a Radius and an Angle to the FoV. With that he will get evry Target on the radius and add them to a List, then for evry target on the Angle, he trace a Raycast to the Target, see if a Obstacle is between the Guard and the Target and add the target on the final List if there is no Obstacle.
LIGHT & SHADOW
On the game, the Player need to be attentantive to a lot of thing to not get caught by the guards. The Light is one of them. When the Character is on the shadow, guards can't see him if they are not to close.
- Light detection:
To detect if the Character is on Lights or Shadows, I firstly need to get evry Light of the scene in a List.
Then i need to detect which one is on the Area of the Character to optimise the all thing. Only the Directionnal light is always check because this is the only one that can touch the Character not dependly of his position.
After that, what i need is to make a way of detect if the Character is in the Light for evry type of light (directionnal, point, spot) by using a Raycast.
To end, the script turn a bool true or false depending of the results and send him to the Character.
On shadow
On light
SOUND
Every action the player do make sounds. When a guard hear a sound, he gonna go on the position where the sound was play. Runing and walking, make more noise than crouch. Certain element can be destroy with a projectile and make noise that can ditracts guards.
- Sound detection:
The sound is emit by entities as Overlap Sphere. Evrything that get in the Sphere is considere as hearding the sound emit by the entity.
More the sound make is loud, larger the sphere will be.
Crouch
Walk
Run
Light Destroy