menu

Doomenstein

Introduction

Doomenstein started off as a retro-style 3D first-person shooter with billboarded sprites, supporting local multiplayer with keyboard+mouse and XBox controllers with up to 4 players. Later, I added 3D model loading from OBJ files, procedurally generating a world featuring rocks and trees and 3 waves of enemies that the player must clear to win the game. The game also included shadow maps using DirectX11's programmable graphics pipeline, using a depth buffer and two rendering passes to generate the world from the light's perspective and use the depth buffer to generate shadows.

Key Features

  • Billboarded 8-facing sprites with animations for walking, attack, taking damage and dying.
  • Billboarded sprite particles for blood splatter effects, plasma gun projectile firing and more.
  • Local multiplayer with keyboard+mouse and controllers, supporting up to 4 players.
  • 3D model loading from OBJ files, supporting diffuse colors from MTL files and textures on models.
  • Directional lighting with shadow maps generated using a depth buffer and two rendering passes.
  • 3 weapons (pistol, rifle and grenade launcher), 3 enemy types (melee soldier, ranged soldier, tank) and 3 waves.
  • Unreal-style architecture with actors, player controllers and AI controllers.
  • Ability for player to switch between possessing the marine actor and enemies.
  • 3D cube particles for visual effects on firing guns, grenade explosions and blood splatter.