Aitor García de la Cruz

Games programmer and smoother.

About me

Hi! My name is Aitor and I recently graduated at Videogames Programming from Teesside University. During my last year studying at ESAT, I formed part of Modular Souls, with whom I developed Fuel Renegades, which was published on Steam and received a few awards during the students game contest. For my final year's project at Teesside I created Doomsday Clock, a minimalist fast paced VR game available for both Oculus Rift and HTC Vive.

Besides that I also have experience with networking programming, AI, graphics, mobile, low level and game jams, but what I enjoy most when making games is the gameplay, the things involved in the player-game interactions and making all that feel good.

My main goal is to continue learning, and I believe that being part of the industry is the best way to do it. That is why I'm willing to join a nice team to help with my passion, knowledge, good vibes and sense of humour.

Obviously not everything in life are games and computers. I'm a nature lover, I've been practising surfing and skateboarding since a really young age, I am Japanese Jiu-Jitsu black belt and I can also play a few musical instruments.

C++, C#, C
Unreal Engine 4
Unity 3D
Teamwork
Eager to learn
This is me - IT worker

Skills

Clean and structured code

I'm really concerned about organization, which leads me to keep my code tidy and understandable. I try hard to make good use of the languages, and I always care about writing robust, reusable and maintainable code.

Attention to details

Big differences reside in small details, that is why I like to keep my work polished with thoroughness in every possible aspect. Despite my programmer profile I give a lot of importance to the design and art aspects.

Communication skills

Communication is everything in a team environment, and I can proudly say that it is one of my strong points. Due to that I have worked as the bridge between the programming and the art teams in a couple projects.

Experience with git

I am quite familiar with version control services and git for both personal and team projects. I have worked with Perforce, GitHub, GitLab and Bitbucket.

Decent documentation

After my years of academic training I have developed a valuable ability to read and write software documentation. I also adapt easily to style guidelines.

Additional knowledge

Scrum, ARM Assembly, SQL, debugging skills (Visual Studio, RenderDoc), IOS (Swift, XCode), Android (Java, Adroid Studio), HTML, Doxygen, optimization principles, design patterns, Photoshop...





Portfolio

These are some of the projects I have worked on.

×

Fuel Renegades

Arcade multiplayer racing game published on Steam.

Fuel Renegades is an arcade multiplayer racing game developed by Modular Souls, a group of nine students (four artists and five programmers) for our final project at ESAT. It was made using Unreal Engine 4 and C++, and got published on Steam.

The main features of the game are its polished mechanics and the smooth game feel. You can have a lot of fun playing versus the AI but where it shines brightest is when played with friends, both on split-screen (up to 4 players) or online (up to 8 players).

My contributions to the project were:

  • Design and implementation of some of the main gameplay features such as the trails' system, boost-pads, traps and countdown mini-game.
  • General game design (since we didn't have any proper designers in our team, some of the programmers that were interested in that field united forces and knowledge to fill that role).
  • Support for the player vehicle design and implementation.
  • Most of the particles and in-game feedback.
  • Some UI design and animation of most of it.
  • Iteration and polished of the game.

The game also received some awards during the Student Game Contest ‘18:

  • Best Videogame (Second Place).
  • Best Technology (First Place).

Trailer Steam Twitter

Doomsday Clock

VR FPS tower defense available for Oculus and Vive.

Doomsday Clock is a first person shooter tower defense in virtual reality. It was developed completely by me using Unity and SteamVR, and works for both HTC Vive and Oculus Rift. The game was part of my final year project at Teesside University, and was chosen to be featured at Expotees '19.

The goal of the game is to last alive as long as possible, keeping the evil cubes at bay with different weapons. The cubes propagates in distinctive ways towards the player, aiming to destroy its fortress. My main inspirations were Superhot, Robo Recall and specially Beat Saber. I used MagicaVoxel to unify the few art assets that I had under the same aesthetic.

Some of the project's features are:

  • Dynamic difficulty based on the player's ability.
  • Parameterized propagation system for the cubes, which allows to create new patterns or tweak the existing ones easily.
  • Custom VR hands animations.
  • DOTween usage in almost every interaction to make the game look cooler.
  • Event based singleton.
  • Editor tools that creates cubes walls with different parameters to try, debug, and show new stuff easily.
  • Pretty particles, materials, animations, effects and a bunch of details that makes it fun to play.

I must say that the development of the game had several complications and setbacks, and not especially because of the technical difficulty. Developing for virtual reality is fantastic but it has one bad thing: you need a VR development kit. As I did not have my own, I depended on one lent by the university. In the first instance, I wasted valuable time trying to obtain permission to access the VR lab, and once there I had to adapt to the schedules and the availability of the equipment, so I was limited and could not work fluently. I would have loved to continue developing the project since I had to discard many ideas and most of the ones I did stayed halfway, but I will not be able to do so until I have my own development kit, which I cannot afford right now.

watch demo download

BIGUILI

Multithreading rendering engine done with C++ and OpenGL.

Biguili is a rendering engine made from scratch using C++ and OpenGL. I did it alongside my partner in crime Alejandro Castro for the graphics programming subject during our final year at ESAT, and some of its features are:

  • Component oriented approach based on the Unity 3D's one (transform, mesh, texture, material).
  • Multithreading API where logical computing and graphic tasks are separated.
  • Memory safeness by using smart pointers.
  • Shadow mapping.
  • Postprocessing pipeline.
  • GLFW integration to create the window, context and surface, besides receiving input and events.
  • GLM as maths base.
  • Obj loader using TinyObjLoader.
  • Minitrace usage to debug threads stuff.
  • LUA scripting support (ChaiScript).

Watch demo

Track Race

2D multiplayer and multiplatform racing game made with C++ and SFML.

Track Race is local network multiplayer and multiplatform racing game. It was made using C++ and SFML, and works for both PC and macOS. The most important aspect of this program was the networking part since it was a project fot the Multiplayer and Social Games subject, but I care a lot about gameplay and fun so I wanted to create a simple but interesting abstraction.

This is not what would come to your mind when you first think about a racing game, I tweaked that concept and created a car race game where there aren´t circuits and the only control the player have is the mouse; your car follows the cursor of your mouse, and the furthest the cursor is, the faster the car goes. Before the start of each race, a succession of checkpoints is generated randomly, which will serve as a route, and that are represented on the screen by circles of different sizes. The first player to complete the course in the correct order is the winner. These are some of it's technical features:

  • Server-Client approach.
  • UDP and TCP protocols usage.
  • Multithreaded and thread-safe application.
  • Data persistance for users information and highscores.
  • Login system with basic encryption methods.
  • Support for multiple simultaneous lobbies and races.
  • Custom Packets management.

GA_IA

Nature simulation with AI techniques implemented for the animals behaviour.

“GA_IA” is a simulation game that recreates an Earth biome. The player can prearrange different parameters before the game starts, which will change some world's and agents settings. The biome is formed by buffalos, lions and trees, and the goal of the game is to keep the equilibrium so the two species coexist as long as possible. I developed it together with Fran Aguilar and Alejandro Castro using Unity. My main contributions to the project were:

  • Flocking based movement for the simulation of the buffalos' translation as a herd.
  • Support on the implementation of the decision making and learning algorithms.
  • General project design.
  • Gameflow implementation.
  • All of the UI and artistic work.
  • User interactions such as initial variables application, animals details when clicked, camera movement and time control.

Fleje World

Lunar lander-like game made for the 38th Ludum Dare Game Jam.

I created Fleje World for my first ever participation on a game jam, the 38th edition of the Ludum Dare. It was made in just 48 hours using Unity. The whole process was a huge experience, and even though this is not my most technical project I learned a lot from it, especially about time management and tasks organization.

The game was inspired by the Atari's arcade "Lunar lander", where the goal is to land a space ship on the surface of different planets. My version of the game is a bit different, on it the only actions the player can make are trigger the propulsors and rotating the ship. There's no time limit to land, but what is limited is the fuel usage. There are six different levels (from the moon to a black hole) and there are a couple variables that change the difficulty on each level like the shape of them and the pull force exerted to the ship.

Ludum Dare post

Prison escape

AI prison escape simulation made with C++.

Prison escape simulation with different AI techniques implemented, made using C++, university's lib and own data structures.

There are three types of agents: prisoners (green dots), guards (red dots) and guerrillas (blue dots). The prisoners do work inside the prison, waiting for the guerrillas to help them escape. Meanwhile the guards patrol the different areas to keep the soldiers at bay and prevent the prisoners from escaping. Some of the technical characteristics of the project are:

  • Agents behaviour separated by mind and body.
  • Pathfinding implementation using A* algorithm.
  • Decision making using finite state machines and sub-FSMs.
  • Grid creation by detecting image colors.
  • Different patrols types (random, determinist, pattern, pathfinding).

Infestation

Endless side-scroller game made with Unity and published in the PlayStore.

Endless side-scroller game made with Unity and published in the PlayStore.

WIP

Contact me

You can get in touch with me via