If you would like to know more about how these school projects were planned out, click here.

Spline Racer - Cyber Rescue: Virus Eruption

        Made in our own game engine

My Contributions

    Models and sprites

  • At the start of this project we were approaching the end of our course in graphics programming. This meant that our game engine still lacked many core features, so I spent some time in the beginning working on backend model and sprite related things. This included figuring out how we should load and manage fbx-models and render sprites in screen space separated from model rendering.
  • Added PBR and implemented support to toggle different render passes during run-time (albedo, normal, ambient occlusion, metalness, roughness, emissive).
  • Fixed support for models to share the same texture files, instead of models having copies of the same textures everywhere.
  • I made sure that the game didn't crash if a model couldn't load properly. An error message was printed and they were then replaced either with a "Model is missing" or "Model is broken" model instead.
  • After I got most of the basic model related features up and running I put all the loading of models on a separate thread in order to increase performance.


  • Added post process fullscreen effects such as bloom, luminance and blur. Also the ability to toggle during run-time.
  • Implemented support to render point lights.
  • Since we still were at the start of actually trying to make a game in our own engine, and since I was responsible for much of the graphics related programming, I quickly had to implement a flexible way of handling shaders. And most importantly, to recompile shaders while the game was running in order to speed up our technical artists' work. I made a ShaderFactory where all the shader related code was put, taking care of compiling and recompiling all the shaders that were in use.
  • At first all models shared the same default shaders. I fixed so that a model could have its own individual shaders if we'd like.


    (music by Mitch Murder!)