Albert Garcia

Code


Project Overview

As one of the team coders, my aim was to learn how to work properly with other coders and other people in the team whose coding wasn't one of their strengths.
In terms of the engine, I tried to keep everything I programmed very simple to use on the editor, so everyone in the team could be able to use it to contribute to the game.
In terms of scripting, I created the foundings of some systems keeping in mind that they could be used and expanded by other programmers too.
I also learned new tricks from my fellow programmers, and put into practice new skills I recently acquired to my code.

My contribution


Physics System

I added the physics system to our engine using the physics library PhysX from NVidia.
We didn't need all of the features which Nvidia provides added to our engine, so I ended adding the following ones:

  • Editable rigidbodies and different types of colliders (boxes, spheres, capsules, and mesh colliders)
  • Triggers
  • Syncronization between our gameobjects transform and rigidbodies position
  • Continuous collision detection to avoid tunneling
  • Debug rendering
  • Communication with c#, using collision callbacks (on enter, on stay, on exit)
  • Raycast
  • C# functions addforce and setvelocity

Skilltree Skill effects

The design team wanted the game to be as similar as possible to a complete roguelite experience. And this required a lot of game progress, in which the player could choose different paths and decisions on how to upgrade it's character. So I implemented up to 54 skills present in the skill trees. This consisted mainly in buffs, but high tier skills could add new effects such as dropping grenades on dashes and such. This process required a lot of coordination with the design team, in terms of balance and rewriting some skills which conflicted with the already established game mechanics

Boon effects

After having all skills implemented in the game, now we changed focus to another progression element, but this time centered on the in-run progression, the boons, which always give that special flavour to roguelikes and roguelites. There's almost 30 boons in our game, they are similar to the skills but simpler in design. Which makes them special is the fact that they can stack with other boons or even themselves. This leads to crazy and powerful combinations. Again, cooperation with the design team was essential to develop them.

First ingame conversation

Since one of our game pillars consisted on having some kind of storytelling, a conversation system connected to the UI was necessary. I added the first two conversations ingame, with Grogu and Bo-Katan. More conversations would come up later in the development of the game.

Grenade skill and force push rework

I added the grenade skill, which at the time was described as a cluster grenade, and later updated it to a damage over time area. I also updated one of the grugu's force skills, the push, which was a more similar approach to the final push we have in the current version of the game.

Particle tweaks and first Ingame particles

Some of my companions created an awesome particle system. But I got some requests from the art direction team, so I had to upgrade it a bit in order to have particle bursts and those same particles to face the direction they were moving. I also added the first ingame particles using scripting, and created a simple yet useful script to have all player particles sorted and accessible, which proved really useful later on and was replicated in other ingame entities.

First room switch and respawn system

This was one of the first implementations of scripting using collision callbacks. Basically, I wanted to create the first game flow between levels and scenes. It consisted on a respawn on the same scene when the player fell off the map, and a change of scenes when the player touched a portal.