Full-res images and bonus videos are available here.
Over the past 3 months I have reworked this engine into something that's fun and easy to use. OpenGL can be very tedious and my goal is to help you understand and enjoy using it.
The ultimate test of this engine's production-readiness was if it could power an actual game, so I began porting Sector's Edge over to this standalone engine.
This was a huge task (12,000+ errors in Visual Studio at one point), but it was a success. Sector's Edge also received a performance boost from 180 up to 280 FPS by using the same forward rendering approach that the low-poly forest project uses. I'll share more about on this on my next post!
As the Sector's Edge port was a success, I am labelling this the 1.0 version of the Vercidium Engine. This is a huge milestone, and while the engine is not complete, it is much more performant and easier to use than before.
This is a huge post - Patrons can also read it on GitHub with nice code formatting - so I'll include a summary of it first:
Upgraded from .NET 7.0-windows to .NET 8.0 - potentially runs on Linux too
Shaders:
Hot reloading - edit a shader, save the file and watch the graphics update in real time. Demo here!
Type-safe uniforms
Inheritance and removed duplicate code
Automatic texture units/bindings
Shadows
Much faster rendering
Stabilised shadows (no flickering)
Layered rendering
UI
Hugely refactored and optimised
Easy to use
Multithreading
Async texture transfers
Triple buffering
Networking
ENet fundamentals
Lag compensation
Packet delay detection
3D models
Multithreaded model loading
New file format (smaller, faster to load)
Vertex Buffers
Removed duplicate code
Focus on robustness + safety
Attribute helpers
Textures
Removed runtime mipmap generation (hugely faster startup time)
Vulkan
Basic vulkan demo
Miscellaneous
F12 to take screenshots
Removed unnecessary ref on parameters
Huge refactor and cleanup
I started formatting the full post here, but it looked terrible as Patreon doesn't support code blocks. Instead I've taken a screenshot of the entire PR from GitHub and uploaded it here.
For Patrons with access to GitHub - I will merge this PR soon as I'm double checking all the projects, animations and demos are intact. If you have forked this engine and need help porting your code to the new version, please leave a comment or message me here on Patreon.
There are still many 3D rendering concepts that I haven't even touched yet, so I sat down and wrote a list of everything that I'd love to learn.
Some of these will be achieved in 2025, and others (inverse kinematics!) will take much longer, but I am keen to learn.
Cloth / banner physics
Depth of field blur
DLSS + FSR2 upscaling methods
Compute shaders (e.g. for crepuscular ray average)
Blender workflow - automatically export models and have them reload in the engine in real time
Inverse kinematics (so character's feet line up with the terrain)
Raytraced audio (as a standalone product, potentially Godot / Unreal plugins)
High quality ambient occlusion
Optimised OGG audio decoder
Vertex pulling using SSBO's
Virtual shadow maps
Thank you to everyone who supports me here on Patreon. I have many more videos, posts and free code demos in the works and I hope you enjoy them.