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