This game was my final project during my HND. It was developed by Modular Soulsa small team of programming and art students from ESAT and some musicians from Berklee Valencia. The game was released on Steam on the 31st of July, in 2018,  after 9 long months of hard work, dedication, sleepless hours, countless amount of coffee and tons of love and passion for what we were doing. Thanks team!

The game was presented to the public on:

  • ComicCon Valencia 2018.
  • DreamHack Valencia 2018

We received the following awards:

  • Best Videogame (Second Place), Student Game Contest ’18, AEV Valencia.
  • Best Technology (First Place), Student Game Contest ’18, AEV Valencia.

My main tasks and contributions to the project were:

Network Programmer

I had to implement all the gameplay logic: vehicle movement replication, map interaction events with traps and boosts, race rules conditions (positions and timers synchronization),  respawn events, map change transitions and car selection at the beginning of the game.

Another important task as a network programmer was the sessions and matchmaking logic to allow the players to connect with each other in LAN and via Steam. For that purpose, I implemented a simple lobby that serves as a room for the players to join with each other, and the players would be the host or the client without notice. Although, the game is prepared to use a dedicated server without too many changes.

Fortunately, UE4 already counts with an extensive API that covers almost every situation that I had to face off: variable replication, RPCs, reliability layer,  specific C++ classes, and session subsystems. Even so, I had to add some modifications to the physics loop of the engine to be able to replicate the collisions more properly.

Small peek view of a very early stage of the movement replication.

AI Programmer

As an AI programmer, I was tasked with the development of an AI that was fun to play with. Nor very hard, to avoid the frustration of the players, nor very easy, keeping the competition feeling alive.

To accomplish this, I design some sort of machine learning vehicle. It was able to look for the fastest route possible in the circuit, being aware of traps and obstacles in the middle of the road, taking advantage of boosts and sometimes shortcuts (without being intended by the circuit design).

The vehicle learned “offline” and stored all this information for later races but of course, it was able to adapt to each race and take decisions as overtakes and select secondary paths.

As I said, the AI also help us to detect some issues in the circuits and gameplay mechanic issues: exploited the drift plus boost mechanic, ramps used as runways, looking for shortcuts.

The video shows the first time the vehicle was able to concatenate the avoidance of the two obstacles. The funny part is that we never were able to pass them cleanly at that speed.

Generalist programmer

As a teammate, my first priority always was the project, looking for the best product possible. That means helping my teammates at every moment that I could regardless of the task and field: C++ problems, questions about how things work in UE4, physics, UI, audio, design of the base classes, QA, gameplay design, etc…

Other interesting tasks were:

  • Modifying the engine to be able to activate some post process effects when the game was played in split screen.
  • Adding IncrediBuild to accelerate our build process.
  • Although it wasn’t deployed, I build the engine to work as a dedicated server.

This slideshow requires JavaScript.