A Retro style Stealth platformer in which, our hero, The Princess, must escape another castle using tactics the like of Super Mario and Solid Snake
The player controller inherits from an Actor script, providing movement and base speed.
Player requires an audiosource, rigidBody component, animator and sprite renderer.
The player also requires an assignable "notification" sprite that is used to notify the user they may use the "interact" action
There are also several audioclips required for specific actions
The player is active when GameManager and the player's own playerActive booleans are set to true
Player can move horizontally, Jump up, climb, jump down from "climbables", interact with "interactables" and use certain "collectables".
For Jumping to occur, there must be a "ground" layer applied to surfaces for a raycast to percept
There are also several audioclips required for specific actions
The player can interact with Hide Interactables that render her invisble to enemies
The player can can also sneak, slowing down her movement but allowing her to creep behind enemies without being heard
Enemies also require auidiosource, several audio clips, animator, an "alert" sprite object, and an Ignore layer set to "Interactable"
The enemy Script contains logic for movement, detecting walls/ground and detecting the player with a raycast. The enemy defaults to moving back and forth until they hit a wall or gap in the ground but may be set to pace back and forth a specific distance
The enemy script has public methods that can be called from other attached scripts. The methods handle the enemy being alerted, being distracted and settling down
The HearPlayerScript sets the enemy to alert based on player movement and proximity
The ShowDistances script allows a live visual of enemy movement, sight and hearing distance of enemies for easier modification
The Game Manager is set as an instance, handles many tasks.
Plays oneshot sounds from objects no longer able to do so.
Handles Current Interactable, for player, as well as active key
Handles Current CheckPoint when player is caught. is a string value
Holds current collectable to store for refeerence in UI
Is connected to Instance of Music Manager
Handles scene management
Dialog System not yet complete
SceneDirector to be used with Timeline Component to trigger GameManager gameActive boolean and scene management
CutsceneTrigger triggers sceneDirectors/cutscene to active. Ther are two versions. A collider based, that will trigger on player collision and an interactable that will trigger on player's interact action of connect interactable
Checkpoints set in the hierarchy, trigger state change. On level restart, game finds this object and location to set player position
SceneTrigger is a collider based scene management tool
Interactable, abstract class. Sets GM state. When player is within collider, player may "interact" using method of GM currentInteractable
Collectable, abstract class. populates UI element. Only one collectable can be held. When a second collectable is attained, the last is tossed aside, ready to be collected again, but now with a RigidBody
Climables are interactables that when activated(by going up) change gravity settings
Throwable, an abstract collectable that the player can toss forward away from them
The Coin is a throwable item that distracts an enemy, stopping them from being able to spot the player for a short time
EyeShield has been depracated
HidingPlace, allows player to hide from enemy view until moving from hiding
Key and Lock scripts contain strings, when matched set a trigger on player activation
Light Controller applies a light that follows player to help simulate hiding
Switch is a player activated trigger meant for a physical switch or button the player is to jump on
WANDERING EYE, almost an enemy, the wandering eye scans a distance with a thin raycast in order to spot the player. Other colliders can impede view. A light should be attached to this for the player to notice where the ray is pointing
Level make-up is being handled with Tilemaps using several layers
- background
- backgrounddecoration
- interactables
- foreground
- foregrounddecoration
JDB-GlintJDB-Glint by JDB Artist
Midnight Creeping Composed by Jonathan Shaw
key and diamond from Items by Simirk
Tiles and crates by Hamdirizal
smoke(mineral) by 7Soul
Female RPG Voice Starte Pack by cicifyre
goblin sound pack by artisticdude
various sounds by ZStriefel
footsteps sounds by Estudiocafofo
SteamWhistle sound by bart