Doomenstein
Project Description:
This project was a clone blend of Doom and Wolfenstein. This game was the first 3D game I made. I learnt a lot of things in 3D graphics, 3D Camera movement and 3D physics.
Development Specifications:
ENGINE
D3D11 ( C++ )
PLATFORM
PC ( Windows )
DEVELOPMENT TIME
3 Months
Core Game Loop
-
CONTROL the player
-
USE the flashlight to damage enemy shield
-
USE shrines to RECHARGE/CHANGE flashlight color
-
MATCH correct light color to enemy to damage their shield
-
SHOOT gun after the enemy shield is down
-
AVOID enemy attacks
-
KILL all the entities and advance to next wave.
Game Entities/Mechanics
-
Player Character/Player flashlight
-
Use WASD to move and SPACEBAR to shoot​/ use flashlight
-
Flashlight and its Battery life
-
Shrines
-
4 Shrines in total: WHITE, RED, BLUE, GREEN
-
WHITE shrine regenerates battery life
-
RED, BLUE and GREEN shrine lets you change the the flashlight color
-
Enemies cant attack you inside the shrines
-
WHITE Shrine
GREEN Shrine
RED Shrine
BLUE Shrine
-
Enemies
-
There are 3 types: RED, GREEN and BLUE
-
They have a shield that makes it harder to kill them.
-
The player uses the flashlight to weaken the enemy and destroy its shield.
-
Use correct flashlight to the correct enemy
-
RED enemy
GREEN enemy
BLUE enemy
Game/Graphics systems/concepts learned
Vertex and Pixel Shaders
-
A vertex shader is a graphics processing function used to add special effects to objects in a 3D environment by performing mathematical operations on the objects' vertex data.
-
A Pixel Shader is a graphics function that calculates effects on a per-pixel basis.
Shader structs and utilities
Vertex and Pixel Shader sample
Dev Console
A working dev console that accepts input, has a blinking insertion point, and allows executed commands from a history of previous commands.
Dev Console in my engine
Perspective Projection
Perspective Matrix
Implementation
3D Raycasts
Raycast VS Grid
Implementation
Point Lights
Concept
Pixel shader code
Spot Light
Concept
Pixel shader code