The project is focused to have as smooth as possible movement since it will be the main activity the player will do.
The next key area is AI, the player will have an ally that will help them through the game in solving puzzles and escaping the enemies, so it is important to actually help the player instead of being an obstacle. At the same time, the enemies will chase them when they see them so they need to be a threat and not something easily avoidable.
The last important area is the camera system which will be of tremendous importance to the general experience since the camera is completely autonomous, it needs to focus, zoom in/out correctly to show to the player information when it is needed.
Character can move left and right, first it starts walking but it quickly increments velocity until it starts running. It can also jump up when stopped and forward when on move, it is possible to control a little bit the character on air to adjust where to land.
Other movements are crouching, which is necessary for the cover system allowing the character to hide from enemies, and climbing up/down different obstacles. If the player falls from a high distance, it will die.
A controller is implemented to control the character through its Rigidbody, so physics drives the movement modifying velocity in the Y and Z axis. All the movement logic is totally decoupled from the input handler using the Command pattern. The next step for the input handler is virtualize it so it can be applied effortlessly for different platforms (UI System).
Cover: WIP (Understanding path - obstacle detection/avoidance)
Fall: WIP (Floor distance detection - Time on Air)
Climb up/down: WIP (Obstacles detection/interaction)