Mechanic · simulation · real-time strategy
Structure decay
Structures lose health over time, often unless built on a prepared surface.
On this page
Structure decay takes health from buildings as time passes. In Dune II, after the first missions, a marked structure loses a few hit points, set by its house, at a fixed interval until it falls to half health, and the original game marks every structure it places1.
Games
| Game | Year | How | Note |
|---|---|---|---|
| Dune II | 1992 | All structures | from the third mission every structure built in play loses 1–3 hit points by house each interval down to half; OpenDUNE's default spares structures wholly on slabs |
Every claim about this mechanic, by game (1)
References
- ^ abFrom the third mission on, every 10,800 game-timer ticks at normal game speed, each structure marked as degrading loses hit points while it stands above half its table maximum: 3 for the Harkonnen, 2 for the Ordos, and 1 for every other house. Placement marks a structure when any footprint tile lacks a concrete slab, except a construction yard, which never counts missing slabs; in the original mode it marks every structure placed, slabs or not, and OpenDUNE's enhanced mode (the default) leaves a construction yard and a structure built wholly on slabs unmarked. Structures a scenario places start unmarked, and slabs and walls never decay. Computed: OpenDUNE's 60 Hz timer makes the interval 3 minutes, and a structure placed with no slab, which starts at half health, doesn't decay until repaired above it.CodeOpenDUNErevised
How we know
61 if (s_tickStructureDegrade <= g_timerGame && g_campaignID > 1) { 62 tickDegrade = true; 63 s_tickStructureDegrade = g_timerGame + Tools_AdjustToGameSpeed(10800, 5400, 21600, true);
src/structure.c lines 61–63 at ebea79a · upstream ↗ 95 if (s->o.type == STRUCTURE_SLAB_1x1 || s->o.type == STRUCTURE_SLAB_2x2 || s->o.type == STRUCTURE_WALL) continue;src/structure.c line 95 at ebea79a · upstream ↗ 121 if (tickDegrade && s->o.flags.s.degrades && s->o.hitpoints > si->o.hitpoints / 2) { 122 Structure_Damage(s, hi->degradingAmount, 0);
src/structure.c lines 121–122 at ebea79a · upstream ↗ 9 /* name */ "Harkonnen", ⋮ 12 /* degradingAmount */ 3,
src/table/houseinfo.c lines 9–12 at ebea79a · upstream ↗ 41 /* name */ "Ordos", ⋮ 44 /* degradingAmount */ 2,
src/table/houseinfo.c lines 41–44 at ebea79a · upstream ↗ 28 /* degradingAmount */ 1, ⋮ 60 /* degradingAmount */ 1, ⋮ 76 /* degradingAmount */ 1, ⋮ 92 /* degradingAmount */ 1,
src/table/houseinfo.c lines 25–92 at ebea79a · upstream ↗ 550 if (validBuildLocation < 0) { ⋮ 556 s->o.flags.s.degrades = true; 557 } else { 558 /* ENHANCEMENT -- When you build a structure completely on slabs, it should not degrade */ 559 if (!g_dune2_enhanced) { 560 s->o.flags.s.degrades = true;
src/structure.c lines 550–561 at ebea79a · upstream ↗ 766 if (si->o.flags.notOnConcrete) { ⋮ 776 if (lst != LST_CONCRETE_SLAB) neededSlabs++;
src/structure.c lines 766–777 at ebea79a · upstream ↗ 542 /* notOnConcrete */ true,src/table/structureinfo.c lines 536–542 at ebea79a · upstream ↗ 285 s->o.flags.s.degrades = false;src/scenario.c lines 284–285 at ebea79a · upstream ↗ 1168 Timer_Add(Timer_Tick, 1000000 / 60, false);src/opendune.c line 1168 at ebea79a · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-22.
Revised after a check by a second AI model, 2026-10-22.
Sources
Code
- OpenDUNE contributors. 2026. “OpenDUNE: a C re-creation of Dune II from its DOS executable (OpenDUNE/OpenDUNE).” Commit ebea79a. OpenDUNE/OpenDUNE @ ebea79a · licence, all uses