Skip to content

OpenRealm v0.0.7-alpha

Choose a tag to compare

@corepunch corepunch released this 20 Sep 08:38
· 1014 commits to main since this release
e0a9a34

OpenRealm v0.0.7-alpha

This alpha lands the Undead Blight simulation, procedural Chain Lightning and missile-trail rendering, a large wave of finished WC3 abilities, race-specific economy and construction, team-color ownership, and a sweep of campaign, HUD, JASS, and pathing fixes. It also fixes Windows releases shipping without their MinGW runtime DLLs.

Undead Blight (new)

  • Mutable Blight world state with persistence across save/load, plus authored-data contracts and behavior/persistence tests.
  • Server→client Blight mask sync isolated from entity snapshots, with a self-healing sweep resync, shared mask lookup, and datagram registry.
  • Client mirror and terrain-layer rendering through terrain layers using the authored Blight terrain texture (no repainting of authored Blight).
  • Aura of Blight (Aabr) and related Blight-adjacent abilities (Essence of Blight, Replenish, Spirit Touch) registered on existing aura infrastructure.

Combat presentation: lightning, projectiles, trails

  • Procedural Chain Lightning rendering matched to Warcraft III bounce behavior, with beam-oriented lightning textures attached to moving units and tracked through the ability-ownership rules.
  • Missile projectiles animated and oriented in flight; Spirit Tower attack targeting and acquisition enforced with invulnerable-unit handling.
  • MDX ribbon emitters promoted to a shared engine trail object (fade on detach; reuse, double-advance, hitch-stacking, and UV-rescale fixes).

Abilities: finished wave + registry groundwork

  • Finished: Mana Shield toggle and damage conversion, Cyclone (incl. DataA dispel), Volcano (incl. leftover fields), Pocket Factory (incl. leash), Rain of Chaos, Possession, Inferno landing, Clockwerk Self-Destruct, Dark Portal, Kaboom click, Unstable Concoction, Exhume Corpses, Unsummon Building, Hippogryph couple, Spirit Link, item Anti-Magic Shell, Mana Flare, Healing Spray/Transmute, Ensnare (flying land-and-lock) + Purge Apg2 immobilization/recovery, Stasis Trap/Sentry Ward, Soul Burn silence, Disenchant/Devour Magic, Cannibalize, Barkskin, Ancestral Spirit, Polymorph (with caster mana upgrades).
  • New coverage: melee spell abilities (Frenzy, Unholy Frenzy, Curse, Cripple, Taunt, Purge, Lightning Shield, Healing Ward), Spirit of Vengeance/Moon Glaive/Slow Poison/Raise Dead, item orb bonus damage with on-hit debuffs, poison on-hit buff state, creep code= parents and all remaining creep ability aliases with parent-owned hooks.
  • Auras: fountain regeneration auras with persistent visuals, retail 2-second cadence throttling, cache indexing/lifecycle fixes, and alias art-lookup fallback.
  • Registry: all 67 TFT base/intermediate ability classes extracted with parent-chain helpers and demo registrations; spell definitions flattened into flag-driven abilities (AB_SPELL); Raven Form and locomotion encapsulated in abilities with authored morph animations and save versioning; ability-ownership and test-first rules documented.

Economy, construction, and gathering

  • Race-specific construction mechanics with lifecycle regression tests, versioned construction saves, central race mapping, and data-driven in-place building upgrades (requirements, progress panel, footprint spawn rules).
  • Race-specific gold mining (incl. scripted Haunted Mine creation/harvest orders, preplaced-mine parent binding, overlay death/restore handling, Entangled Mine depletion, Ghoul lumber harvesting, authored harvest data with legacy Ahar compatibility).
  • Build routing: non-blocking pending-birth sites, displaced-worker/builder order preservation, footprint detour destinations, friendly-unit displacement, cinematic-route preservation, and Human04 town-hall cancellation/recovery coverage; worker crowd routing for tree harvest.
  • Upgrades train instant-build behavior restored for structures/upgrades where authored.

Team colors

  • Full ownership chain documented and tested: authored placement colors preserved, lobby fixed-player locks, JASS recolor APIs honored, resolution/persistence propagated to presentation, with generic map-placement color fields kept out of engine code.

HUD and selection

  • New timer-dialog and leaderboard HUDs (content-sized, stacked, positioned), variable-limit trigger events with persistence, mapped-leaderboard/spawn filtering fixes.
  • Hover gates restored with shared size-to-content payloads, mana-snapshot filtering, and cursor-tint fixes; inventory tooltips use item names; invulnerable-unit health hidden; build-queue/action placeholders hidden where inappropriate.
  • Selection: scripted-selection sync, same-type selection, Tab subgroup cycling, focused-icon second click, hero/idle-worker shortcuts with invalidation fixes, portrait targeting (Holy Light), minimap bounds outline, quest notifications with retail MDX particles.

JASS, maps, shops, and saves

  • JASS: hashtable natives with save/load persistence and post-restore handle resolution, multiboard/texttag natives, spell order/effect events, building-order wiring, world-bounds enumeration, stale-handle save semantics, coroutine-handle preservation, variable-limit events.
  • Maps/compat: DotA v6.83d playability track (Vexorian parse, minified return"", null-mapscript rejection, map-imported Units/Misc/w3a INI, shop/hero/combat natives, mercenary wrote), MPQ sectors above 64 KiB honored, bulk campaign-map audit added, war3map.j loader and map-data-set overlays honored.
  • Saves: config-lifecycle state persisted and versioned, construction preview state fixed, item/shop/patron/stock overrides honored (merchant, mercenary), empty CreateItem IDs rejected, #418 crash families fixed.
  • Deferred unit lifecycle completed (KillUnit exclusion, replacement timing, paused death animation, duplicate death-event/loot fix) after two reverted attempts.

Campaign missions

  • Human04 town-hall builder/harvest recovery, Human05 dark-conversion replacements, Human06 bridge axis/rotation/routing fixes with runtime crossing tests, Human07 lifecycle constants/coverage/collision fix, Human09 cinematic lifecycle capture with intro-cleanup hero walk and save-restore cinefilter fix (no more black screen on prologue restore).

Movement and pathing

  • Game-specific pathing routed through the game API; movement-layer collision, unflyable-terrain flying rules, movement-driven region entry, and throttled unreachable-route fallback (no per-order floods); SC2 shares WC3 routing with smooth movement/selection restored.

Renderer, camera, and server

  • Camera field transitions + StopCamera with documented field limitations; arrow-scroll input timing and camera-input crash fixes; WC3 sky models anchored/animated; scene fog applied to ground shadows; airborne rings placed below models; stale-cinefilter regression test.
  • Server: exact-edict unicast diagnosis with unowned-recipient rejection, WC3 data/configstring contract enforcement, synchronous-load yields keeping the window responsive.

StarCraft II and tools

  • Galaxy: previously stubbed natives implemented, smoke test loads MapScript.galaxy; MPQ/sector, ability_audit, mkdir, and Sleep-collision portability fixes; hero-select cheat, sandbox/docker and gdb-cheat docs; audit loaders no longer write __pycache__.

Distribution

  • Fixed Windows release archives missing their MinGW runtime DLL closure (issue #462): SDL2/zlib/libepoxy plus transitive deps are now bundled beside the exe, with the job failing loudly on unresolved dependencies.
  • Release assets are built only on release tags: Linux, macOS, Windows, and Flatpak packages attach to this tag via the Release workflow.

Thanks to @sookyboo for major contributions to this release.

Full changelog: v0.0.6-alpha...v0.0.7-alpha