Main Project Image

Project Assembly

Game Engine: Unity Project Duration: 3 weeks Project Stats: Backburner

This is a side-project that was made with friends when we first started our game dev journey. This project contains a bunch of systems/assets that we were interested in developing or systems we further wanted to develop in our free time.

This project also contains upgraded code from my first GP; Atomancer, which was nominated for Best Tech in FGA 2023 & FGA 2024.

My Contributions

My Roles

  • Lead Programmer
  • Source Control Administrator

Manager System

I designed and built a singleton managing system for our project. The system hierarchy has a Game Manager (this is the singleton manager) at the top with sub managers attached to it. The system currently contains the following:

  • State Manager
  • Reference Manager
  • Object Pooler
  • Dialogue Manager

Manager System Code

See Entire Above Code

State Manager

Handles the game state logic, example; pausing the game triggers an event that signals to connected objects on how to behave. In this case, a connected spawner will stop/start coroutine depending on state. This system allows for further extensions e.g., a game state that slows the time and game objects that should/shouldn’t react to it.

State Manager Code

See Entire Code

Reference Manager Code

This manager acts as a collective point of references that can be accessed by other game objects if they need it. The reference manager holds the player as an accessible variable but also connected sub-reference handlers, example; Camera Reference Handler.

Reference Manager Code

See Entire Code

Object Pooler

Also attached to the game manager, this game object acts as a manager for objects that will be spawned in mass/reused. I made a class for pools that contains; tag, prefabs, and size. The data inside the pool class is then converted into items and used in a dictionary

Object Pooler Code

See Entire Code

Background NPCs

This system is built upon by utilizing Unity’s navmesh and navmesh agents. I created some NPC prefabs and connected them to my object pooler that was then spawned in by my spawner through coroutines that also took into account the players current position and existing navmesh as to not spawn prefabs out of context.

Background NPCs Code

See Entire Code

Dialogue System

Made a visual novel style dialogue system. The system uses a custom made dialogue data struct that contains the words spoken as well as who spoke them. (need imgs and video)

Dialogue System Code

See Entire Code