Game Engine - Level Renderer

This project I built a level renderer for a game engine using OpenGL and C++. This was built completely from scratch. What was really interesting about this project were the requirements. This was a very challenging project to work on given the short timeframe. I needed to create a custom file reader that supported all the data from a blender file which was exported to a custom format, parse that data into C++, write the OpenGL code to handle the buffers, shaders and textures and ensure that all features were implemented. It was an immense challenge and I really loved working on this project. This level renderer was implemented in less than 2 weeks.


The level renderer needed to:

  • Read in a blender .blend file and parse level geometry data like the name of the object, the matrix representing its position, rotation and scale.

  • Parse the binary model data for all referenced models using a custom file format and parser

  • Transfer model geometry, material and matrix to the GPU

  • Support a camera that could fly through the level

  • Support and render directional lighting

  • Recreate the level layout provided from blender in engine

  • Save memory by ensuring that multiple instances of the same model in a scene were only loaded into memory once

  • Support hotwaping level geometry without a restart allowing levels to be loaded dynamically at runtime