JEDI SIDE PROJECT
Background
Dates: January 2022 - Present
Platform: PC
Engine: Unreal Engine 4
Project Type: Level Design
Intention: Create a prototype and level for a first person Jedi combat game.
This project is something I have been working on in my spare time while working at Santa Monica Studio. The idea was to create prototype and level for a first person Jedi combat game. The player would play as a Jedi with a lightsaber and force powers, and would have to traverse a level while fighting enemies with blasters. To create animations I am using Maya, and to create the mechanics and the level I am using Unreal and its blueprint system.
Lightsaber Blocking and Slashing Mechanics
The first mechanics I worked on implementing were the lightsaber blocking/deflecting and the lightsaber slashing. Both use 3 distinct blocking or slashing animations created with Maya. Hitting the block or slash button once will play the first animation. If the player then times it right where they hit the block/slash button again at the end of the first animation the second one will then play, then the third if they time it right again.
For the blocking mechanic, I set up 2 invisible box triggers in front of the player. Once the player executes a block, any blaster bolts that are within the smaller box (closer to the player) are deflected directly at an enemy in the player’s line of sight. Any remaining bolts that are only in the bigger trigger box are deflected in a random direction in front of the player.
For the slashing mechanic, the trigger collision for the lightsaber becomes active when the slashing animation is playing. Any enemies that are hit with the lightsaber during this time receive damage.
Force Push and Pull Mechanics
For the force push mechanic, an impulse is added to any physics objects that are within an area in front of the player that are not being blocked by another object. The force of the impulse is divided by the distance from the player, so objects closer to the player will be pushed with greater force than those farther away. Currently the force push puts any enemies in the player’s line of sight into a ragdoll state. The next steps will be adding an impulse to these ragdoll enemies, adding damage to the enemy based on force applied, and switching out of the ragdoll state once they have stopped moving.
Similar to the force push mechanic, the force pull mechanic adds an impulse based on distance to any physics object in the line of sight of the player. This impulse is less than that of the push mechanic because this is meant to be a secondary effect. The main effect, which is not fully implemented yet, will be to pull the object/enemy that the player is directly looking at in front of the player, and have it/them hover there until the player lets go of the pull button or executes a force push to make it/them go flying.