OpenWarcraft3 is an open-source, Quake-style engine and compatibility project for Blizzard-era game data. Warcraft III is the primary playable target; StarCraft II and World of Warcraft provide additional format and renderer targets.
The project does not include retail game data. Use it only with data you legally own. OpenWarcraft3 is not affiliated with Blizzard Entertainment.
- Warcraft III —
openwarcraft3, the main development target, including the client/server runtime, JASS, SLK/profile data, FDF UI, campaign flow, maps, fog, units, and networking. - World of Warcraft —
openwow, an exploratory M2/WMO/DBC/MPQ and UI target with a Lua-backed interface. - StarCraft II —
opensc2, an exploratory M3/SC2Map/SC2Layout target.
The shared runtime contains the client, server, renderer backend, networking, archive loading, console/cvars, sound, and math libraries. Game-specific code lives under games/<game>/ and is connected through Quake 2-style import/export tables.
Pre-built binaries and Flatpak bundles are available from the latest release. CI artifacts are published by the CI workflow. Neither releases nor CI artifacts contain retail assets.
For Flatpak and Steam Deck packaging, see Flatpak And Steam Deck Packaging.
The native build requires a C compiler, make, SDL2, and system OpenGL (or GLES3 on supported Linux systems). MPQ loading and most format tooling are provided by vendored or in-tree code.
macOS:
brew install sdl2Ubuntu/Debian:
sudo apt-get install build-essential libsdl2-devWindows builds use MSYS2/MinGW or Visual Studio with SDL2 development libraries.
git clone https://github.com/corepunch/open-realm.git
cd open-realm
make buildUseful targets:
make openwarcraft3 # Warcraft III executable
make openwow # World of Warcraft executable
make opensc2 # StarCraft II executable
make tools # Asset/archive diagnostic tools
make test # Generate fixtures and run tests
make test-ui # Warcraft III UI parser/layout testsThe default build is diagnostic. Select release mode and renderer settings with:
make clean && make BUILD=release openwarcraft3
make clean && make BUILD=release GL_BACKEND=gles3 MSAA=0 openwarcraft3Supported settings are BUILD=debug|release, GL_BACKEND=gl|gles3, MSAA=0|2|4|8, and GLSL=120|140|150. Run make clean when changing these values. See Build And Renderer Platforms.
Point the executable at a Warcraft III installation containing its MPQ archives:
build/bin/openwarcraft3 -data "/path/to/Warcraft III"The directory is scanned for top-level MPQs and an optional loose Maps/ directory. The Makefile also supports WC3DATA:
WC3DATA="/path/to/Warcraft III" make runUseful examples:
build/bin/openwarcraft3 -data "/path/to/Warcraft III" +menu_main
build/bin/openwarcraft3 -data "/path/to/Warcraft III" +map 'Maps/Campaign/Orc01.w3m'
build/bin/openwarcraft3 -data "/path/to/Warcraft III" -vid_modes +com_frame_limit 10Open the in-game Quake-style console with backtick/tilde. Use build/bin/mpqtool to inspect archives:
build/bin/mpqtool -mpq "/path/to/Warcraft III/War3.mpq" ls Maps/Campaignmake test generates deterministic fixture archives under build/tests/ and runs engine, parser, persistence, and format tests. For Warcraft III UI changes, run make test-ui. Useful tools include mdxtool, maptool, m2tool, mpqtool, blp2jpg, blpgen, and mdxgen. Bounded runtime diagnostics use +com_frame_limit N.
- Architecture — module boundaries and API contracts
- Runtime configuration — paths, cvars, and startup order
- Rendering scene workflow — launching maps and model scenes
- UI authoring — FDF, bindings, and UI tests
- WC3 gameplay documentation
- Diagnostic tools
- Contributing
This project is licensed under the MIT License.
