Into The Microcosm

Overview

This was my first attempt at creating a commercially released game but unfortunately got stuck in development as I was overly ambitious with what I wanted to achieve in relation to my skillset at the time. That being said, I'm still very grateful for having tried this project as it led me to learning a lot, from development as a whole, to how hardware works on a lower-level and how I should approach learning things. I spent a little over a year on it and just managed to get a full game loop working.

The idea was to create a twin-stick space action game with rogue-lite gameplay. The main unqiue feature was that the levels would have a procedurally created organic terrain that you could mine for money but equally would have to fight against, either directly or as you'd avoid enemy ships (space-pirates). The majority of development was spent on making the procedural growth run at a fast speed on my macbook, which proved to be quite difficult as result of how Unity's gameobjects are created. This led me to create the Unity Object Pool Asset and severely optimize the way it was generated. In the end I used a combination of my object pool for purely "in-memory"-only "particles" (the individual circles that made up the growth), which were rendered via Graphics.DrawMeshInstancedIndirect (instanced rendering, without needing to create gameobjects), which were placed via a customized variant of Diffuse Limited Aggregation (DLA) for more organic structures using Unity's Burst Compiler (multi-threaded job-system with high levels of optimization + vectorization) and a compute shader for animating them as a single group (only used for the spawn + despawn animations currently). I also made the projectile system work in a similar way too, since I wanted to have a couple hundred projectiles active at once without taking up significant frame time, especially since the majority of Unity is single-threaded.

Demo

Gameplay demo

alt

Core gameplay screenshot with various projectiles being spawned by the orange particle type in the procedural growth

alt

Shop screenshot, showcasing what sorts of items the player would be able to acquire as they progressed

alt

Redesigned HUD Mockup for what I wanted it to look like in-game

Technical Sheet

Tools that I used whilst working on this project:

Helpful Resources

  • Unity Documentation - Invaluable resource, especially since most online tutorials/information is largely out of date due to how frequently changes are made to the engine