simple site templates

ANIMATION SYSTEM - AI - GAMEPLAY - UI

Guillermo García Subirana

LEAD PROGRAMMER

Project overview

Hi! I'm Guillermo García Subirana, in this project I've been assigned as a programming leader and among my other tasks I had to supervise and organize the work of my team, try not to have dependencies with the other departments and track the work of the team.

I've also distributed tasks and issues to the rest of the programmers, contributed to the decision making on the progress of the engine and helped to solve any doubt or problem that the programmers have had.

In addition, I've mainly been in charge of the animation system, optimizing and improving it during the development and, according to the need of the milestone I've developed engine components, enemy behaviours and gameplay functionality.


ANIMATION SYSTEM

Mobirise

First development and implementation

I've been in charge of the development and implementation of the animation system. At the beginning this system required two meshes, one of them was deformed according to the influence that the bones applied to the original mesh.
In addition, the system that I've implemented in the first delivery (Vertical slice 1) could not animate more than one hierarchy of bones.

Reconstruction and evolution

This system has been evolving. In the Beta phase of the project, together with Sandra Alvarez we reconstructed this system in order to eliminate one of the meshes and make the original mesh animate through shaders. Removing one of the meshes and optimizing the code. I took care of the resource animator and the component of the animation, which links the animator with the avatar and its animations.

Mobirise

Improving and maintaining the system

During the project I've been responsible for maintaining and adding all the functionalities that the designers or programmers required to the animation system. For example: update the interpolation time between animations, know the current frame of an animation to synchronize it with the audio, make it recursive ...

Mobirise

In-game optimization

To reduce the consumption during the game, I added a filter using frustum culling to stop the calculations that were sent in the shader of the animation. In this way the calculation of the movement of the bones only occurs when the object to be animated is in the frustum of the camera.

Mobirise

Import optimization

To reduce the load time of the resources when importing the files, I implemented an optimization in the importer of the engine so that it could read and save only the necessary resources, avoiding duplicate mesh or bone resources.


AI BARRELMAN BEHAVIOUR

After the vertical slice 2, I jumped into the AI ​​team and developed the behavior of the Barrelman. Including the combat states, the animations and made their attacks ready so that they can be easily customized by the designers.
The attack is performed at half distance and its damage per second can be modified, in addition to the explosion damage.
In the staging, I worked side by side with David Valdivia to implement the textures and the fire/explosion particles.

Mobirise

2D MECANIM ANIMATION

I've developed together with Julià a new component in the engine to be able to animate freely all the elements of UI.  This component was developed based on the mecanim system that has the unity engine. It was developed to cover the need to give more life to the interface and improve the lack of feedback that the user had.

Mobirise
Mobirise

As a result, we obtain a component capable of saving movement and alpha keys, very useful to quickly create any visual animation.
This component was used to animate the main menu, the black bands of cinematics, inventory, skills feedback and credits scene.
The component still has room for improvement, such as changing sprites of the same image component or implement a simple way to add the bezier curves to the animation but we ended up without enough time to implement this.


GAMEPLAY

I've been in charge of the internal implementation of Alita's statistics. This includes the calculations of all the statistics designed in addition to making the filters and phases when doing the damage that Alita does and receives. You can find the designed statistics made by Alex Campamar here.

Moreover I helped with the reception of statistics when equipping and unequipping items. Finally, I serialized the values ​​of the statistics in order to store them between levels.


INSTALLER

Jonathan Molina-Prados a nd me did a research to implement a launcher that implements, among other things, the necessary dependencies of C++ needed to execute the game. In the end, we got a good result using the Visual Studio SetUp projects plugin.

About the experience

The overall experience of this project has been very positive, I've learned to move through a workflow with a large group and I've improved my communication skills. I've also had the opportunity to test all the knowledge I have learned throughout the degree.

It has been quite difficult to avoid the dependencies especially at the beginning of the project since the engine was still in a very early development phase and could hardly be handled. However in each delivery there has been a substantial improvement in the development of the engine, always aiming towards the final objective.

I consider that it has been a work experience very close to reality, with demanding deliveries and an engine that was constantly being improved to meet all the requirements.

Alita Unbreakable Warrior