Skip to content

A custom-built game engine utilizing DirectX 12 and C++, featuring basic rendering, an Entity Component System (ECS), custom physics, and delivering a 3D space experience.

Notifications You must be signed in to change notification settings

generaltoto/Views

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Views

This project first started as a 3 weeks long school project. The goal of this project was to learn DirectX12 and C++ through a complex project. It was made with the help of :

What was made during those first 3 weeks

The goal of these first weeks was to create a 3D space shooter game. The main goal was to learn DirectX12 rendering and how to create a game engine.

Engine features

Rendering

The Engine rendering contains multiple features :

  • A custom shader system, we can create different shader class linked to different .hlsl files
    • Texture rendering
    • Directional lighting
  • Each shader is bound to a material, bindable to a MeshRenderer
  • Particle system with custom particle shader
  • Primitive Mesh creation and rendering
  • Different renderers to render different types of things
    • MeshRenderer for 3D models
    • ParticleRenderer for particles
    • SkyboxRenderer for skyboxes
    • UIRenderer for UI elements

ECS

The Engine is based on an ECS system. It contains multiple features :

  • Entity creation and destruction
  • Component creation and destruction
    • Example : Transform, MeshRenderer, ParticleSystem, etc...
    • Each component knows the entity it is linked to and the entity's transform

Physics

The Engine contains a custom physics engine. It contains multiple features :

  • Sphere vs Sphere collision detection
  • Space partitioning with classic grid
  • Bitmask to know which entities can collide with which

Game features

Gameplay

The game is a 3D space shooter. The player controls a spaceship and has to destroy asteroids.

  • The player moves is 3 dimensions without any camera lock
  • The player can shoot lasers
  • The fov changes depending on the player's speed
  • Waves of asteroids spawn at regular intervals
  • The player can die and respawn

preprod-gameplay01

What was made after those first 3 weeks

TBA

About

A custom-built game engine utilizing DirectX 12 and C++, featuring basic rendering, an Entity Component System (ECS), custom physics, and delivering a 3D space experience.

Topics

Resources

Stars

Watchers

Forks