<

Itch.IO Page

Steam Page

rise_from_ruin
Role: Technical Lead & AI Programmer
Team Size: 18
Engine: Unity
Project Duration: 1 year

Rise from Ruin is a 3D character action game being developed for Game Studio 3. In the game, you play as a big monster, however your role is swapped from traditional monster gameplay. You are the protector of the city, and must defend it from waves of oncoming enemies. You are an unstoppable force, but there is only one of you.

Responsibilities:
Mobile System

One of the systems that I worked on for this game was the mobile AI system. This system controlled the various aspects of the AI units that would move around the game.

mobile_system

The base mobile class is used to derive all of the other mobile types. This includes both enemy mobiles as well as allies. The mobile class is an abstract class that is very adaptable to work for all mobile types. This mobile class implements the IHealth and IDamage interfaces. These interfaces are used to provide a unified way to deal damage in the game. This allows for other objects in the game to deal damage to the mobiles, including both the player and other mobiles.

mobile_groups

The mobile groups class is used to create different types of mobile groups. These groups are what decides the decision making of the AI agents. Each group stores a set of mobiles that corresponding to that same type. Based on many factors, the group will pass the destination for where each agent in the group should move towards.

mobile_aggregates

The mobile aggregates are classes which create and store the groups. They are responsible for looping over all of the groups and updating them.

mobile_pools

The mobile pools are responsible for storing the mobile objects. They contain object pools which recycle the mobiles when they are killed. This reduces a lot of heap memory calls as they are re-used.

mobile_factories

The mobile factories are responsible for spawning in the mobiles. They grab the recycled mobiles directyly from the pools and spawn them in based on the spawning algorithm.

Programming Pipelines

My role as technical lead on this project meant that I was in charge of the programming pipeline, as well as the GIT pipeline. To ensure that these pipelines were successful on this team, I created diagrams for the team to follow.

Programmer Pipeline

The programmer pipeline was created to help manage the other programmers and technical designers on the team. The idea with this pipeline was to help mitigate some risk that can come up when programmers get stuck. The idea was that if a programmer ever gets stuck on a task, they can ask me or other programmers for help to help solve or implement that feature.

programmer_pipeline

GIT Pipeline

The GIT pipeline was designed to make the merging process as smooth as possible. The main goal of this pipeline is to try and ensure that no GIT issues occur. With the very consistent pulling added with the updates on Discord, this was designed for clear communication between team members.

GIT