Technical Game Designer
Antonio Coronado
Technical Game Designer
Antonio Coronado
The Wanderer
"The Wanderer" is a Witcher 3 fan game full of passion developed by me as a Technical Game Designer and Programmer with my friend Marcel Perlinski.
** The project is still in development and being improved **
My tasks were:
• Implemented the GAS system with C++ in Unreal Engine 5.
• Created attributes in C++ like player's health.
• Created and implemented gameplay abilities and gameplay effects with the GAS system.
• Designed and scripted a Weapons System.
• Created a combat system based on the Witcher 3 style.
• Designed and Scripted a Focus System based on camera or Input.
• Implemented a pre-made Quest system with blueprints.
• Worked with root motion animations to work correctly with the player character.
• Used Motion Warping to set the direction and location of the target during attacks.
• Handled the source control and branches merging with Github and Fork.
• Tweaked Animations to improve the feeling and input reaction of the controller.
• Created a Widget to display Health and stamina attributes for player and enemies.
Tools & resources used:
• Miro
• Unreal Engine
• Rider
• Github
• Fork
How the project can be improved:
• Eliminate dependencies in the gameplay abilities: I use a Blueprint interface to get a reference to the player character inside the ability itself, but if I wanted to use this ability with any other human character, like an enemy, the reference would not work since enemies and player characters do not come from the same parent, so it would fail.
• Fix the Combat Mode. At this stage, the combat mode is entered only once when the sword is taken from the back and exits when the sword is put away again. A timer that checks every second if new enemies enter the combat area is planned; otherwise, with the actual implementation, only those detected from the beginning can be attacked and targeted as enemies using motion warping.
• The combat system needs a proper way to transfer the attack animation from the player to the enemy. Hence, if it has enough stamina, the enemy uses the proper parry, block, and dodge animation. Also the combat system is unique to the player character only so it can be improved to be used by all humans who can combat.
• Motion Warping uses the same distance to attack for all animations. Using a struct for every animation could help add custom data and make the combat much more dynamic.
• Health and Stamina are not connected and reflected on the widget.
Download Link - Unavailable
Combat System
Attack Gameplay Ability for a light attack.
Function to limit the distance of the motion warping used with the root motion animations. The distance is customizable and, if exceeded, uses the forward vector of the player but is still directed to the target location.
Tracing System for damage handling and collision detection with enemies.
Focus System
The first stage of the Focus System was a camera-directional based approach, using the forward vector of the camera would swap between all enemies registered during the Combat Mode (when player unsheaths the sword)
The second stage was an add-on with an input-directional feature. The input has priority over the camera feature, so if the player wants to direct an attack on an enemy that is not in the camera's direction, the controller will be responsive. This combat feature is present in the witcher 3.
Attacks are directional if an enemy is focused (bars are shown over the head). With the use of motion warping, the character can direct the attack to a target. The downside of motion warping is no matter the distance of the target, the player will always reach the target which is not convenient if the enemy is in a considerable distance. I had to create my own function to handle this issue.
In case there is no enemy focused, the forward vector of the controller is used so the attack is directional to the input.
Gameplay abilities used for the first phase of the prototype.
Gas - C++ Implementation