Post Mortem

Invasion 2034: Post Mortem


Technical - 

Using the rules that govern flocks of birds, called boids, to simulate the movement and interaction of AI starfighters allows for hundreds of ships to be acting “intelligently” and navigate any terrain or obstacles, even on an old Mac. There are many variables which need to be properly tweaked in order for the boid to behave realistically and effectively (ie. not run into walls and align with flock mates). These variables would take far too long to fine tune by hand, so I wrote a Natural Selection Algorithm to teach the boids how to behave. Each bird in the flock would have a set of DNA, which encoded each variable used in the algorithm. Boids that survived the longest in the environment would reproduce and have children with a slightly mutated set of DNA from one of the surviving parent boids. This would lead to, after around 50 or so generations, a fine tuned boid capable of flying for long periods of time without crashing, and interacting with neighboring flockmates in a reliable way.

Design -

The most major success of Invasion 2034 in the game design aspect is the feeling of intensity and speed it produces. The pounding, trance-like, synthwave music combined with the onslaught of laser fire and explosions make the experience one which will engrose the player. 

Art -

The art manages to maintain the PS2 style graphics while allowing more complex visual effects not possible on the PS2 to seamlessly blend into the art style. By increasing the scaled zoom using Unity’s URP effect called Lens Distortion, a pixelated effect can be applied to any scene with ease. A common problem I frequently faced with working on 3D games in the past was the last of a coherent art style. As I don’t make many of the models used in my 3D games, they are pulled from all across the internet. This causes art styles to conflict with each other and give an amature look to the whole game. Using this pixelation technique all models have the same coherent art style.


Technical - 

A major limitation of the boids algorithm I created was the way each boid located the boids around itself. Using a built in Unity method called Physics.OverlapSphere, one can get all colliders within a certain distance of a point. However, when calling this method while in the range of a Terrain, the OverlapSphere has to check each vertex on the Terrain mesh in order to determine if the overlap will return the terrain collider. To solve this problem each Terrain had to be reduced in size drastically and placed next to each other to give the illusion of seamless terrain. If I were to reimplement this algorithm I would use a spatial partitioning scheme to isolate the neighbors of a particular boid faster than simply looping over all boids stored in a list (very slow unless run on a compute shader) or using overlap sphere to find the boids near to a point.

Design - 

I had to cut many features which I originally wanted to put in the game due to time constraints, as I wanted to have this project finished and uploaded with its associated media and gifs in less than 10 days. Such features include a procedural mission system, tanks which can navigate the ground terrain and an upgrade system for each weapon. These features would take at least another weak to seamlessly implement, although much of the code is already finished for the tanks and the stationary ground turrets. These features were not necessary for the game, and cutting them was probably a good decision in the end so I can focus on a new technology.


Invasion 73 MB
Nov 08, 2020
Invasion 2034 76 MB
Nov 08, 2020

Get INDEPENDENCE: 2034 (Retro)

Leave a comment

Log in with to leave a comment.