DX11 Game Engine

This project was submitted for a module during my 2nd year of uni.

The requirements were to build a simple game engine using the DirectX 11 API, this meant loading mesh model files, generating a terrain and model manipulation using the scene graph.

They provided us an example model and terrain height map to get us started but the idea was to expand on this.

My final submission contained the following features:

  1. Model Loading using ASSIMP
  2. Submesh handling to allow animation of different parts of a mesh.
  3. A Perlin noise generating height map, which uses a seed word and caches the result to stop recalculation.
  4. User controlled camera and a "Follow" mode camera.
  5. Skybox
  6. Shader manipulated water and terrain blendmap gradients.
  7. Random "clutter" generator.

The biggest part of the project was writing the perlin noise engine, it uses the standard formula and outputs heightmap images that look like this:

Perlin Noise map generated for the seed word "LovelyCat"
Perlin Noise map generated for the seed word "LovelyCat"

The color value is then taken for each pixel and used as the Y (or height) value for the terrain, you can see this in action on the below video:

The project also involved using the HLSL shader language which we didn't have to do a whole lot with but i edited mine to break up the terrain texture and to handle the "water layer" for anything below a certain height value.

Tech Used
  • DirectX 11
  • Assimp
  • HLSL

Date Written: