Invasion

bartron on 12/18/2023

After I made a side scrolling platform game, I wanted to experiment and learn basic 3d rendering, so I made a basic first person shooter.  It's similar in capabilities to doom and has a map editor styled from the Hammer Editor from Half Life. The game is implemented in C# using Silk.net, which allowed me to use OpenGL and OpenAL for the graphics + audio. I used Avalonia for the cross platform game editor. 

The game editor is also responsible for taking the shape + light information, and generating quads & light map generation. The game renderer is pretty basic, featuring a single shader program that handles both the UI and 3d camera. I learned too late in development how to do multi-texture shaders, so this source code is good pretty much as a very basic rendering example.  The enemies are sprites are bill-boarded like doom, however, I didn't implement directional facing or animations due to lack of graphics.  That code is still in the engine however.

The game has 6 levels and takes you from a suburban neighbourhood to a military base to an alien planet.  It features 7 weapons and a variety of enemies.  The textures & sounds are from creative common sources, while the sprites & music are from Earthbound & Chrono Trigger.

Controls are:

  • Movement - WASD
  • Shoot - left click
  • Reload - R
  • Use - E
  • Full Screen Toggle - `
  • Menu / Cancel - Escape

FYI, the Mac version isn't signed, so you may have to remove the security attributes on the app:

xattr -rd com.apple.quarantine Invasion.app