Case study
OpenBattlefield2: an unfinished Refractor 2 engine reimplementation
A C++20 reimplementation of Battlefield 2’s Refractor 2 engine reads original game data and documents menu rendering, level loading and server interoperability. Published crosshair research cites REA/Ghidra evidence IDs and binary addresses; major gameplay systems remain unfinished.
- Targets
- Binary · Game
- Category
- Community REA investigations
- Relationship
- Author-reported mixed workflow
- Sources reviewed
Requirements & limits
- Prerequisites: Requires an owned Battlefield 2 1.5 installation, CMake 3.24+, Ninja, a C++20 compiler and SDL3; the Flash menu additionally needs Rust and Ruffle.
- Attribution: Published crosshair research cites REA Evidence IDs; CLAUDE.md describes the mixed REA/Ghidra workflow and its payload and temporary-project limitations.
- Testing evidence: macOS arm64 is the primary platform; the Windows preset is kept building but is not exercised. Tests needing game files can pass with a note when those files are absent.
- Limits: Ammunition/reloading, recoil, projectiles, audio, driving and full commander/squad interaction remain unfinished; this is an engine research project, not a complete game port.
- License: MIT covers the project code; no original Battlefield 2 game content is redistributed.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · Moxnatiy/OpenBattlefield2 · Revision 1486ef1
- CLAUDE.md GitHub · Moxnatiy/OpenBattlefield2 · Revision 1486ef1
- docs/functions/hud-crosshair.md GitHub · Moxnatiy/OpenBattlefield2 · Revision 1486ef1
More in Games
- OpenDiablo2: Diablo 2 engine reimplementation · Case study
- OpenLara: Tomb Raider engine reimplementation · Case study
- OpenLF2: a Little Fighter 2 engine reimplementation · Case study
- OpenMW: replacing Morrowind’s engine while reusing original content · Case study
- OpenRA: an engine reimplementation reimagining early Westwood RTS games · Case study
- OpenRCT2: an open re-implementation of RollerCoaster Tycoon 2 · Case study