Technology
W4 is not a mod of Warcraft III and not a wrapper around it. It is a new editor and a new engine, written from scratch in native code. It reads the models and textures the community already has. This section says what each piece is built with and why.
The comparisons with Warcraft III are about the tools map makers use: the World Editor and the game that plays its maps. They are about what the tools are like to work with, not about the game, which is a classic.
The stack at a glance
| Part | W4 | Warcraft III |
|---|---|---|
| Language of the programs | Rust: native code, no garbage collector, memory safe | C++ |
| Game rendering | W4 Omicron, our own renderer on wgpu: Vulkan, Direct3D 12 and Metal from one code base | A Direct3D 8 era renderer originally, with a newer one in Reforged |
| Editor interface | GPUI: a native, GPU-drawn UI toolkit | Windows dialogs and menus in the World Editor |
| In-game interface | W4 UI, native, drawn by the same renderer as the game | Frame definitions and a script API; Reforged's menus and the Battle.net launcher lean on embedded web technology |
| Map scripts | Standard Go, compiled to WebAssembly, run in wasmtime | JASS, a custom language, and its GUI trigger editor; Lua since 1.31 |
| Simulation | Fixed 30 steps a second, deterministic, in its own crate | Fixed-step, but scripts are not sandboxed or guaranteed deterministic |
| Map file | A folder while you work, one encrypted .a4m to share, versioned and migrated |
.w3x, an MPQ archive; newer versions can also open a map as a folder, but most files in it are the game's own binary formats, and nothing versions or migrates them |
| Shaders | WESL files a map can replace, reloaded live | Fixed pipeline, no map shaders |
| Docs and website | SvelteKit on Bun, generated API reference | Community wikis |
Each piece has a page: rendering, the interface, scripting, the simulation, maps and files, and the editor.
What we mean by better
We judge each choice by five things. It should be fast: the editor responds and the game holds its frame rate. It should be honest: what you see in the editor is what the game shows. It should be safe: it does not lose your work. It should be open: you use tools you already know. And it should last: a map you make today plays in ten years. Where W4 is not there yet, the page says so.
W4 is an alpha. Some of what follows is built and has been seen on screen. Some of it is the design the code is shaped for. Each page says which is which.