BRender
BRender (short for Blazing Renderer) was Argonaut Software’s flagship game engine during the 1990s and early 2000s. As part of developing Croc: Definitive Edition, I made significant changes to BRender to ensure it could run on modern systems.
This version of BRender ultimately shipped as the engine for Croc Classic, which was bundled with the Croc Remaster.
Download
Current Features
This modernised version represents a cross-platform, 64-bit capable version of BRender with restored legacy functionality.
- Complete feature set of version 1.3.2, the last known release
- Renderers:
- Vulkan 1.4 (
vkrend) - OpenGL 3.3 Core (
glrend) - OpenGL 1.2 (
softrend+glrend1x) – Hardware acceleration using the software T&L pipeline, for older systems that can’t handle Vulkan or GL 3.3+. - Software (
softrend+softprim) – A fully portable software rasteriser, rewritten from x86 assembly and bit-exact on x86.
- Vulkan 1.4 (
- Cross-platform support (Linux, Windows, macOS) and cross-architecture support (x86, x86_64, ARM)
- Restored DOS support (MCGA and VESA modes)
Development History
- Initially based on the version contained within the Croc source leak
- Early OpenGL support was sufficient for Croc but little else
- The game relied on only a relatively small subset of the engine’s features
- At the time, no reference material was available for the rest
- Once BRender was officially open-sourced, I gained access to newer versions and reference applications
- Backported all changes from version 1.3.2, file-by-file
- My branch already included CMake, Linux, and 64-bit support, so it was easier to backport than forward-port
- Enhanced the OpenGL renderer with missing functionality using the newly available references
- Restored full software rendering support
- Restored DOS support (MCGA and VESA modes)
- Rewrote the software rasterisers, which were hand-written x86 assembly using MMX and x87, in portable C++
- x86 remains the oracle: on that architecture the output is bit-exact with what the assembly produced, and the assembly’s frames are the reference for
tools/rendertest
- x86 remains the oracle: on that architecture the output is bit-exact with what the assembly produced, and the assembly’s frames are the reference for
- Wrote
glrend1x, an OpenGL 1.2 rasteriser, to replace the software rasteriser: hardware acceleration on systems far too old for the 3.3 Core renderer, and a second target for exercising the rest of the pipeline on other platforms - Designed and built a Vulkan renderer (
vkrend)
Videos
Demos
BRender Intro (OpenGL)
BRender Intro (Software)
Reflection Demo (OpenGL)
Reflection Demo (Software)
Rubber Sheet Demo (OpenGL)
Rubber Sheet Demo (Software)
Fog Demo (OpenGL)
Fog Demo (Software)
Robot Demo (OpenGL)
Robot Demo (Software)
Device Pixelmap Testing Tool
Device Pixelmap Testing Tool (OpenGL)
Device Pixelmap Testing Tool (SDL3)
DOS Support
DOS Cube Demo (MCGA, 320x200)
DOS Cube Demo (VESA, 1024x768, 8bpp)
DOS Cube Demo (VESA, 1024x768, 16bpp)