Hi everyone,
Over the past week, I've conducted a massive architectural overhaul of the game engine, completely tearing out the legacy Ogre3D infrastructure and migrating the runtime to native BGFX and SDL3.
The application runtime is now entirely free of Ogre::Root, RenderSystem, OgreMain dependencies, plugins, and old configuration files.
Current Milestone & What's Working:
Project Status:
This is a strict Proof of Concept (PoC) born out of pure curiosity. The custom asset parser is still quite finicky and causes crashes on certain legacy formats. The deformation/damage vertex pipeline also needs significant refinement as simulation coordinates update at runtime.
I currently have no plans to open-source the codebase or publish a repository, as this was built purely as a personal tech-challenge. Just wanted to share that a lightweight, Ogre-free Rigs of Rods engine is entirely possible.
Cheers!
Over the past week, I've conducted a massive architectural overhaul of the game engine, completely tearing out the legacy Ogre3D infrastructure and migrating the runtime to native BGFX and SDL3.
The application runtime is now entirely free of Ogre::Root, RenderSystem, OgreMain dependencies, plugins, and old configuration files.
Current Milestone & What's Working:
- Platform & Windowing: Fully powered by SDL3 handling high-DPI window events, input pumping, and full-screen transitions. OIS and Win32 WndProc have been completely dropped.
- Core Renderer: BGFX handles initialization, dynamic mesh buffers, and frame submissions natively. The project builds and targets Vulkan/Direct3D backends via static offline shader compilation.
- Resource & Stream Layer: Completely rewritten boundary via miniz and standard filesystem. There is no ResourceGroupManager lookup left in source/main.
- Content Compatibility: Built dedicated CPU-only .mesh and .skeleton chunk parsers. Dynamic FlexMesh instances, FlexBodies, meshwheels/tires, static props, and skeletal animations (including character skinning) translate and submit directly to persistent BGFX parts.
- Environment & Systems: Replaced Caelum/SkyX/Hydrax with a custom camera-oriented BGFX atmosphere pass and a native daylight-blue controller. Custom terrain shaders evaluate two-layer OTC page blend maps entirely on the GPU. Water lines now instantiate a flat native transparent mesh (BgfxWater).
- UI & Particles: MyGUI is running via an engine-owned in-memory stream using BGFX textures instead of the old Ogre RenderManager. Wheel contact effects, exhaust smoke, and vehicle flares use generic native dynamic billboard quad batches.
Project Status:
This is a strict Proof of Concept (PoC) born out of pure curiosity. The custom asset parser is still quite finicky and causes crashes on certain legacy formats. The deformation/damage vertex pipeline also needs significant refinement as simulation coordinates update at runtime.
I currently have no plans to open-source the codebase or publish a repository, as this was built purely as a personal tech-challenge. Just wanted to share that a lightweight, Ogre-free Rigs of Rods engine is entirely possible.
Cheers!


ath` natively handles Windows `wchar_t` wide-character paths. For reading files from ZIP archives without standard file streams, the entire storage layer is backed by `miniz` running on raw byte buffers. Since the game loop only sees custom engine-owned memory streams, Windows-specific `fopen` Unicode issues disappear completely. BGFX isn't abstracting this; it's handled at the engine's custom IO layer before BGFX even sees the data.