Andrés Sánchez
Hello, I'm Andrés Sánchez, I got the pleasure to be on the programming team for the engine and game development, I found the subject to be super interesting for young programmers like us because It put us in a position where we had to be in charge of our results and manage the pressure of delivering it on time
Background
About Me
I started coding when I was sixteen as a hobby in High School. I spent a couple of summers coding in Unity some minigames and I began to be more and more interested in game development.
This degree is giving me the opportunity to aim for the professional career I dream of. This project made it easier to approach what it means to be a professional in the sector and, complemented with some books I read about video game journalism, I got an idea of sacrifice and bravery that the industry asks for.
I haven't had doubts in which my role was, even though I'm interested in game design, I know my place is on the programming side of the game.
I consider myself as a person who works hard and with a high ability to react against adversity. The main thing I would highlight about me is the capacity I have for creating original and interesting ideas that solve problems.
Soft Skills
- Discipline
- Communication
- Perseverance
- Social Agility
- Empathy
Hard Skills
- C++
- C#
- Unity
- Git
- Lua
Contribution
Project Overview
For the project I was part of the programming team. I was working with my colleagues daily in order to achieve the objective.
Main Tasks
Module Animation
The first task I was in charge was difficult to code as it was the first time I was writing code at a deep engine level. The module included from the Import Animation section, that mimics assimp data into our own format, to the mesh-deformation part that got the structs in the data and used them to move the polygons faithfully to the artists animations.
All of the different points I had to cover:
- Animation importing
- Data managing
- Bone creation and placement
- Keyframes and position through time
- Bugfixing referred to all the colateral effects on the engine
Scene Transition
The second thing I did was making the transition scene, the scene where the upgrades for the characters can be purchased.
The main features of the scene were the following:
- Change characters on rotate
- UI responsiveness to the central character
- Level up skills
- Level down Skills
- Checkbox implementation from button
- Locked checkbox logic
- Skill description extracted from Json
- Skill level and spice saving into GameState
Unlock System
The third thing I did was the Unlock System, the system unlocks characters that are not available in the gameplay and makes them selectable or unselectable for the player. It also involves the transition scene, since the characters that are not available would not be displayed on the screen. The system is triggered by dialogue and has UI feedback driven by Json.
Memory Leaks
As I was with the bug fixing task, I realized that the engine was crashing too often, then I realised we were not deleting huge quantities of memory that made our engine crash when we reached 2GB maximum.
I identified a lot of mistakes on dynamic memory placement, mallocs and deletes missing aswell, as some CleanUps not being called correctly. At the end of the journey I reached a decreasement of 150MB in a 500 MB scene that made the engine avoid the crash about 6 iterations later.
Camera Movement
Camera Implementation in gameplay:
- Migration of the work from engine to the Dune executable repository
- Camera movement with WASD
- Camera movement with mouse hitting the borders
- Compatibility of the two mentioned above
- Camera rotation with Q and E
- Camera rotation with wheelmouse dragging
- Smoothness of all the mentioned above
- General bug fixing
- Map limits
Secondary Tasks
Bug Fixing
The third thing I did was bug fixing, as the engine is done by a young core of programmers with lack of experience, it had bugs, and I was in charge of fixing them.
I fixed three main big bugs:
- Events triggering without limits: events were triggering from all the states of the engine (pause, stop and play), and I capped that for the developers no to be messing with colliders.
- Auto-attack crash: the auto-attack was not capped for a long time so you were able to attack every time you clicked a enemy what made the game just explode.
- Characters colliding between them: characters were colliding with each other's rigidbodies and it made the game unplayable.
Multipicking and Engine Improvements
The second thing I did was helping the designers use more fluidly the engine. I was in charge of the Unity-like multipicking of our engine. It gave me some problems with the rotation and scale matrices as our gizmo was not adapted to the topic, but I arrived to a result finally.
Multipicking envolves the possibility to pick multiple objects and move them with only one gizmo-slide.
I was also in charge of other engine improvements like:
- Change scene paralellization
- Scene identification (name)
- Hierarchy smoothness and bug fixing
Generally, I tried to help the designers in the use of the engine, trying to fix the negative feedback they give to me.
Quality Of Life
Harkonen Patrolling
I made a inspector button for the waypoint list to push back the position of the transform in order to avoid the manual copy of the position to the waypoints array, that helped a lot the people in charge of enemies because they waste least time on patrolling routes.
General UI Work
Cursor Switcher
I made the function In-Engine that switches the cursor UI depending of the hover in-game, changing it from default to The Attack Cursor / Pick Cursor / UI Hover Cursor.
Skills Pop Up
I made the skill description pop-up system where if you hover some of the skills in the gameplay it displays a description Of it.
Logo Animation in Transition
I made the logo animation for the Loading Screen.
Projects
In this section you will find out all the projects I've been involved with.
Pengo
Pengo is an arcade replica we made in our first year at the grade, it's from the subject Project I. I'm so happy with the result as it was the first game we did from scratch.
UnderEvil
UnderEvil is an RPG game created by FM Studios, a group of 7 students for our university subject called Project II (CITM UPC). In this class we had the chance to make our own engine and make a 2D RPG playable game for PC.
The Tower
The Tower is a mobile game I've been working on for the last year and I plan to finish it in my TFG. It's a mobile clicker game that has the only objective of making a tower grow. It plays with different building branches and other design elements as the king that upgrades your stats or the islands that complement the tower with passive upgrades.