Red Rayne is a open source implementation of Terminal Reality's BloodRayne from 2002.
There are multiple goals this project tries to achieve:
- Learn how games were made in an era when things had to be done in the code, and not through fancy game engines like today.
- Have a fully playable game implemented end-to-end, including resource management, audio, and video rendering, as well as support of large screen resolutions.
- Eventually, to support 64-bit compilation for modern systems, and provide an avenue for development of modern renderer implementations such as DirectX or Vulkan.
- Also, eventually, to support modern input devices that do not comply with DirectInput, and even port to Linux or Mac.
The game is heavily dependent on Windows API, these calls are sprinkled all over the code base, not to mention use of Windows-only APIs like DirectSound and DirectInput. I do not intend to port the game to other platforms, you are welcome though.
The DirectX 9.0 renderer is an upgrade to the DirectX 8.1 renderer. It is an important step towards the future 64-bit compatibility.
- I used GOG.com's version 17893 of the game.
- The DirectX 8.1 T&L renderer has the original shaders, as they come with the game. They contains debug information, thus, if you compile disassembled shaders, you will get way smaller payloads.
- d3d8to9 for the insights and the details for the upgrade to DirectX 9.0 above and beyond what Microsoft's article Converting to Direct3D 9 provides.
- GamePressure for the demo version of the game.
- This is not a complete game. Please purchase software you like!
- The source code in this repository is mostly produced by reverse engineering the original binaries. There are a couple of exceptions for reverse engineering under DMCA -- documentation, interoperability, fair use. See goals section for the interoperability and fair use cases. The documentation is needed to support those.
- BloodRayne, DirectX, OpenGL, Vulkan, and others are trademarks of their respective owners.