How it was tested
- ctest39 tests on every build
- headless skirmisha 23-minute match in 38 seconds, identical on every run
- ai-batch20 headless matches on fixed seeds; win rate before and after
- tree-checkthe same frame from two builds, differing pixels counted
- net-checktwo copies over a real network connection
- regressioneach fix proved by putting the bug back and watching its test fail
Measured against EA's source
Longest logic frame
243ms
was 2,976 ms
Route search, 23 cells
25ms
was 256 ms
Total pathfinding time over one match
1.6s
was 11.8 s
Frame time under heavy fire and smoke
6.7ms
was 11.6 ms
Longest frame of a fight's first explosions
38ms
was 141 ms
20 tanks against 20 head-on: last arrival
23s
was 72 s
Average Crusader trip as two armies of 420 cross
91s
was 167 s
Hard AI's first superweapon
4.9min
was 12.5 min
Changes from EA's release
Each row gives the source EA released first, then this build. A logic frame is the step in which the game rules are computed, 30 times a second. The changelog has the measurements in full.
Rendering and performance
Rendering and performance8 changes
EA sourceReforged
Renderer
EA source: Direct3D 8
Reforged: Direct3D 11 by default, bloom and anti-aliasing on; Direct3D 9 with -d3d9
Frame rate
EA source: rendering tied to the 30 Hz logic step, 30 FPS at most
Reforged: logic fixed at 30 Hz, rendering decoupled, frame rate uncapped
Base game textures
EA source: Zero Hour's downscaled copies
Reforged: 481 textures at 4x resolution
Terrain texture
EA source: 64 pixels per cell, 16-bit colour
Reforged: 128 pixels, full colour, relief shading from the map's sun
Infantry shadow
EA source: flat blob
Reforged: shadow volume built from the model's pose
Widescreen interface
EA source: 4:3 command bar stretched horizontally
Reforged: three pieces at their drawn aspect ratio
Field of view above 16:9
EA source: vertical angle shrinks, picture zooms in
Reforged: horizontal angle widens, more map visible
Tree rendering
EA source: one buffer, about 730 trees; the rest are not drawn
Reforged: four buffers
AI
AI5 changes
EA sourceReforged
Base building
EA source: a wrong value left it with urgent items and one power plant only
Reforged: full base, scouting, expansion to new supply piles
Vision
EA source: auto-targets units under the fog of war
Reforged: sees only what it has scouted; stealth works on it
Production choice
EA source: random pick among teams of equal priority
Reforged: damage, armour and cost against the units it sees you field
Retreat
EA source: not in the code; teams fight to the last unit
Reforged: Hard pulls a team out of a lost fight
Banked money
EA source: Hard sits on 117,000
Reforged: one more attack group per 8,000, up to four
Orders and movement
Orders and movement5 changes
EA sourceReforged
Mouse
EA source: left selects and orders, right drag scrolls
Reforged: left selects, right orders, middle button moves the camera
Shift queue
EA source: move orders only
Reforged: any order type, kept by the units
Mass move order
EA source: route queue holds 512; 329 of 841 units never move
Reforged: all 840 units get a route
Long bridge on Golden Oasis
EA source: one tank in ten stuck under the deck
Reforged: 20 of 20 tanks cross
Diagonal movement
EA source: up to 40% above the unit's speed
Reforged: the unit's defined speed
Other
Other4 changes
EA sourceReforged
Replays
EA source: only the last match kept
Reforged: every match in its own file; timeline with seeking
Countdowns
EA source: rounding bug, 10 seconds shown as 11
Reforged: real seconds
Memory
EA source: 32-bit, 4 GB address space at most
Reforged: 64-bit
Crash report
EA source: none for background-thread and loading faults
Reforged: written for both, sent by the launcher