JESUS CASAS
Game Programmer Portfolio

Soul Detective
Summery of contributions
I was a coder on the team responsible for the majority of systems and player mechanics within the game. Working closely with both art and design teams in brainstorming concepts I made their ideas for the game come to life.
​
Developed and responsible for basic player mechanics such as
-Camera movement
-player stamina
-Player XP
-player lives
-walking, running, jumping, dodging and blocking
​
To More Complex Mechanics such as
-Three hit attack combo
-Enemy soft lock system
-Two different telekinesis abilities one being used for puzzles and the other used for combat
-Possession mechanic that allows the player to control enemies
-All Implementation regarding animation
​
Developed and responsible for the game systems that expand over the games entirety such as
-save system
-skill tree
- quest manager
-check point system
- NPC dialogue system.
- all enemy AI and implementing all animations
​
-Other miscellaneous things I developed and was responsible for were in game pickups such as X-ray vision that allowed the player to see enemies through walls, Xp pickups, the games loading screen functionality, and the games cut scene system.
A Closer Look
Player Movements
Here is a closer look at the player’s movement mechanics. All movement works in tandem with the direction the player’s camera is facing. Players base movements are walking, running, and jumping with each one having a unique animation with jumping having two separate animations depending on if the player is actively moving or not.
Video Example
Click on Images for a closer look




Player Melee Combat
-Player combat was centered around the game’s soft lock system that allowed the player to face enemies while attacking in a seamless way which was done by looking at enemies with the player camera and attacking.
​
- with that being the base a player block that took player stamina when hit and a three hit player
combo was developed and implemented that allowed for more dynamic gameplay.
​
-lately player invincibility frames along with weapon knock back was developed for the player as well.
3 unique Player Abilities
The three unique abilities that the player can use throughout the game that I developed all utilize the aiming system that I developed as well using unity’s nanomachine system along with an ability switching system that I developed as well. With those abilities being
​
1.Telekinisis: used by the player to move in game objects with specific placement. In games it is utilized specifically for puzzles such as placing objects in buttons for level progression. Functionally the ability was set up using a system of recasts to both pick up and drop the object along with a separate system to move the object to and from the player when holding an object.
​
2.Range Attack (Telekinesis): A version of the telekinesis that is primarily used for combat giving the player range capabilities to pick up and throw objects at enemies to deal them damage. Also using a similar system of recasting to pick up objects within the play area. with a cool down activating once an object is thrown limiting the player from being able to use it again immediately.
​
3.Possesion: This ability allows the player to take control of any non-boss enemies and is used for both Puzzles and Combat. The functionality of this ability initially uses a ray cast for the player to select an enemy and once selected a specific group of components from both the player and the selected enemy get turned off and on to allow the player to gain control of the enemy obtaining their movements and attacks. With a timer being activated during possession that returns the player to their body deactivating the ability and another timer afterwards that limits the player from being able to use it again immediately.





Save System
-The player is able to have up to 4 save slots at anytime and is able to load form or override any of the specific data within the save slot menu along with continuing from the last save slot they played from.
-I developed the games save system for the purpose of saving the players progress and values through out the game. values such as player health ,lives ,current xp and skill points, skills within the skill tree, and determining which level was the player was in. along with other things outside of the player such as tracking enemy and boss deaths within levels to prevent respawning and quest log progression.
Enemy AI roaming, tracking and attacking
-Having developed all enemy ai and animation controllers within the game each enemy type and boss type all use the same three base ai states which are roaming, following and attacking with each of these states using unity’s nav mesh.
​
-The Ai will roam towards consistently random changing points within a designated area with each one having a detection radius surrounding them in order to detect the player if the player is within the radius the Ai will switch to tracking and begin to follow the player. If the player exits this radius the Ai will go back to roaming the area however if the Ai gets to a certain distance to the player while tracking it will then switch to its attacking state.



Player Skill Tree / Xp System
-The Players skill tree that I developed works is only accessible within the games hub world when interacting with the players desk. The player is given the option to upgrade all timers/ cooldowns associated with their abilities and the players weapon damage.
​
- The player has a XP bar along with skill points to use within the skill tree. The player fills the xp bar through in game XP pick ups and through killing enemies. XP pickups would automatically give the player a skill point while one enemy would fill the players XP bar half way once the bar was filled it would give the player a skill point and reset.
Side Quest System
Having developed every side quest within the game I developed a system to have them all connected to a single script to act as a manager for each individual level. This allowed me to create a streamlined way to convey progression to the player through a quest log accessible to the player at any time. This quest log included both side quest completion and main quest competition.



NPC Dialogue System
With the player needing to interact with the games NPC’s in order to activate side quests I developed a dialogue scripting system that allowed the teams designers to insert any and as many lines of dialogue they desired to any NPC with the system in place.


X-Ray Vision Mechanic
This is the X-Ray Vision mechanic that I developed using unity universal render pipeline and vfx graph. I created the shader myself and because the shader was attached to a specific in engine layer I then created a system that would switch all the layers of game objects with specific in engine tags when the player would collect the pickup object that would trigger the visual mechanic, allowing the player to view all enemies through the environment.

