During my free time I enjoy practicing and prototyping Gameplay Mechanics, this way I can always be improving and seeing different challenges that can come up in this job. I enjoy taking high quality assets and putting things together, adding the design and code part of the equation to it - in this example, I'm using one Paragon character (Lt. Belica) to create some gameplay mechanics and systems, my intention in the future is to also add an ability system to improve gameplay and have other characters from Paragon.

The Challenge I'm imposing to myself is getting something that was made for a game, in this case, Paragon, and how I can adapt it to another type of game and putting all these things together. Another point is practicing with high quality assets and animations, trying to create an experience as close as possible of how it would be in the industry.
This game has a very simple concept: fight against waves of enemies that gets harder and harder, until eventually you lose! Besides the shooting and simple AI, there are some things I would like to explore though, these things are:
- Recoil System: When it comes to shooting, a big inspiration for me is Counter Strike, and I think it's interesting how every weapon has a recoil and you have to understand its patterns and know how to deal with the weapon, this is something that I want to try to recreate in this prototype, but in a third person perspective.
- Variable Damage on body parts: Referencing CS again, knowing where to shoot and being quick to aim can be difference the difference between losing or winning a round, this is a system that I'm trying in this prototype, different body parts have different damage multipliers, as shown in the picture above.
- Ability System: This is currently a wishlist thing, but I would like to try creating an ability system on the lines of what MOBAs do, i.e. League of Legends, where abilities scales, have a big impact in the game, etc...
To have progress in this project, I'm simulating a designer/developer workflow where I first try behaviors in Blueprints until I have a general grasp of what I want and how to do it, after that I code the structure in C++ and expose variables or implementable functions for Blueprints.
The Character has only two aiming states at the moment.
- Gun Down: Camera is farther away, recoil is stronger.
- Aiming: Camera is closer, higher precision and less recoil.
UENUM(BlueprintType) enum class EShootingState : uint8 { ESS_GunDown UMETA(DisplayName="GunDown"), ESS_Aiming UMETA(DisplayName="Aiming"), ESS_Max UMETA(DisplayName="DefaultMax") };
States transitions:
void AShooterCharacter::StartAiming() { SetCharacterCurrentState(EShootingState::ESS_Aiming); pSpringArmComponent->SocketOffset = AimingSpringArmOffset; } void AShooterCharacter::StopAiming() { SetCharacterCurrentState(EShootingState::ESS_GunDown); pSpringArmComponent->SocketOffset = OriginalSocketOffset; }

Above you can see part of the blueprint prototyping for the recoil functionality, and in the image below you can see how it looks like when you try to shoot without moving your mouse at all.
