The Dreamer
About the Project
Prototype to help with my Capstone Pitch for my Master's in Games and Playable Media
Teaser I made for the Pitch
Design Document
This was a pretty rough, but organized design document for The Dreamer
Shooting
The shooting system is done using
A line trace from the Gun Mesh barrel socket, handling the Impact by reducing the health of the enemy, and playing any sound or VFX.
To make sure it obeys real-life physics, there is a recoil on every bullet shot and a dip in the bullet which is calculated based on the distance to the target and the Dip distance is calculated using gravity force and average bullet weight.
Movement
Wall Run
There are 3 phases for a Wall Run
Entry
This is when checks are performed to see whether the character can enter a wall run. A few checks were, whether the character is in the air, has a minimum velocity, is running fairly along the direction of the wall (Dot product).Wall Run
This phase is when the character is wall running. Here we make sure the Character is giving input facing towards the wall run direction and has enough speed.Exit
If the conditions above fail, exit by pushing off the wall (a force away from the wall), or land on the ground.
Vaulting
Vaulting is done using line traces and root motion animations.
I traced multiple lines from the highest point I wanted my character to vault over, to the lowest point. Whenever I got a hit, I found the height of the ledge using another trace from a higher height to the Hitpoint.
Lerped my character capsule to the location from which I could use one of the root motion animations.
Played the root motion animation by adding notifies and setting locations of the vaulting points and the landing points.
Climbing
I implemented a point climb system, where the character jumps into a Hang using line traces, and then sphere traces are cast towards the direction the character wants to move and the the character capsule is moved towards it.
Interaction System and Pickups
The interaction system is done using a clean method with delegates.
I created a master interactable interface and every interactable derives from it and implements the Interact function.
For Pickups, I used a sphere component and bound the delegates for overlaps to pickup.
Dream-Like Feel
Moving Objects and Camera Effects.
The Wall Moves in.