Path of Titans
This was technically third game to work on in the game industry. However, it was the first to use a lot of
managing software for the development of the game. Some software included Tortoise SVN, GitHub, and
Discord.
​
The game itself is a survival based dinosaur game where the player can create and play a dinosaur from Juvenile to Adulthood. The owners of the game created this game because they noticed a distinct lack of dinosaur related games on the market. Think about it. When someone says "Dinosaur game," you immediately think Ark. Alderon wanted to change that.
​
One main thing they wanted was to have the game moddable. This was because they wanted players to be able to use the game as a base plate for what they wanted to create, dinosaur wise. I did have a hand at creating such mods for the game.
The Game!
The game is about playing a dinosaur from hatchling to juvie to teenager all the way to adulthood. The player would be tasked with exploring the world, completing quests, and fighting other dinosaurs. Flying dinosaurs, large titans, and even small fishers can be chosen. Each dino comes with their own abilities that can be bought and upgraded.
Another mechanic are the quests. Some simple quests include, but not limited to: picking up seaweed, delivering bones to a location, visiting a location, or killing a non-player character. Along with the quests, the player was, also, required to eat, sleep, and drink water when needed. Doing all of these correctly would make the dinosaur grow, allowing them to gain better stats and different abilities.
Another aspect of the game is Marks. Marks are the main game currency. With Marks you can purchase new abilities, skins, and decorative items for the players' homes. These marks are earned by doing quests, killing players, or competing in different game modes.
Capture the Egg!
Capture the Egg(CTE) was one of the main things I helped create for Path of Titans. CTE is capture the flag, but renamed because egg! For those who do not know, CTE is a basic game mode where two teams are pitted against each other where each team tries to steal the other team's eggs while defending their own.
A map and spawn points were the starting point for this game mode, as Team Death Match had already been created. I worked with a few other team members to create CTE. One issue we had was that different types of dinosaurs could just barge into the other team, steal the egg, and run back with nothing the enemy team could do to get it back. To help rectify this, stamina drain and high damage intake, depending on the health, was added to any player who picked up the egg. Given the size of the map, this proved positively received in play tests as each dino had their pros and cons. Other things we added were different nest points where the egg could spawn.
This functionality was actually a little tricky to add into the game. The reason being was that there were multiple booleans that could be set to choose a different type of game. If you wanted three eggs instead of one, if you wanted the nests (where the egg spawns) to only spawn one egg, if you want eggs to randomly spawn, and so on.
In the end, I devised a way for multiple checks to be looked at before choosing where to spawn the egg.
Just as a clarification for those wondering, I can talk about this as there was a public play test.
Thine Interface for Users
A lot of additional information for the users, that resulted in information being put to the HUD, ended up going
through me. Other team members did dable in it, but the majority of new information went through my eyes.
One issue we had was when something very important happened, like if an egg was captured, it needed to be known. The game already had a toast system in place that could be used, but it was far off to the side and not as eye catching.
The solution to this was to make my own popup that showed up in the middle of the screen, where the player would be looking, catching their eye. This created another issue: We were not allowed to edit any base game code. Everything had to be created in Unreal 5. The reason being that Alderon wanted these game modes to show what could be done with the game. This proved to help create crafty work arounds for a lot of things, one of which I'm proud of.
To make the popup work, it took inspiration from TDM. On HUD tick, on the client's side, it would check to see if a new information packet, or ALERT data, was available. If any portion of the data was different, E/I new information, it would activate the popup. A timer would countdown before collapsing the popup. Seems to be a small thing to be proud of right? Well, it proved to be very resourceful as it used a minimal amount of data, and it had a few redundancies in place to prevent multiple alerts for the same data.
Debugging and bug hunting
Bug hunting was another portion of my job. This entailed going onto GitHub and looking at active issues that needed to be attended to. These issues could range anywhere from a simple button not highlighting correctly, to a charge attack doing incorrect amount of damage. I liked doing these as you would almost know where to start and what to look for. For an example, let us take a look at the charge damage. The issue was that the attack would deal the max amount of damage it could, no matter the distance the player was at (It's supposed to scale with how long the attack was going). My mind went to where the damage was being calculated. To find this, I needed to look for where the actual ability was being called from in the engine. This led me down the right path, right to where the calculations for the damage were being processed. The main issue was that distance calculations were being done incorrectly. This was fixed but a new problem was discovered. How the dino was being tracked, in terms of movement. An odd occurrence was that the tracked movement was resetting to 0 every 4 ticks. After a very short time, I could not figure out what was causing it. I stopped early because I had noticed another tracked speed, which was being smoothed out, or averaged out, in the exact same spot. I allowed the calculations access to the value and it proved to be exactly what the team was looking for, in regards to the damage.