top of page
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

NewProject-MadewithClipchamp3-ezgif.com-video-to-gif-converter.gif
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.

Picture6_edited.jpg
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

Screenshot 2024-12-13 163452.png

WHITE Shrine

Screenshot 2024-12-13 164122.png

GREEN Shrine

Screenshot 2024-12-13 163528.png

RED Shrine

Screenshot 2024-12-13 163411.png

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

Screenshot 2024-12-13 163747.png

RED enemy

Screenshot 2024-12-13 163710.png

GREEN enemy

Screenshot 2024-12-13 163628.png

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.

Screenshot 2024-12-13 164222.png

Dev Console in my engine

Perspective Projection 

png-clipart-orthographic-projection-projection-matrix-perspective-perspective-projection-a
gl_projectionmatrix_eq32_edited.jpg

Perspective Matrix

Implementation

3D Raycasts

Picture9.png

Raycast VS Grid

Implementation

Point Lights

Screenshot 2024-12-13 164947.png

Concept

Pixel shader code

Spot Light

Screenshot 2024-12-13 165012.png

Concept

Pixel shader code

Screenshot 2024-12-13 163305.png
bottom of page