Pre-alpha · v0.1.0

Escape

Change Log

Change log

Every build, newest first. v0.93 through v1.31.

v1.31 June 2026 Current
canStomp reads from type table; unique stage backgrounds; portal 20 tiles from shard; all enemy shields active.
  • FixcanStomp now reads EnemyDefs table — previously hardcoded to type 2 only; all 29 immune types now correctly show the cyan shield and block stomps at runtime.
  • ChangeStage backgrounds — each stage now uses a genuinely different theme: 1-1 Infernal Caverns (BG 0), 1-2 Bone Cathedral (BG 8), 1-3 Plague Marshes (BG 20), 1-4 Void Abyss (BG 32).
  • ChangePortal placement — exit portal now appears exactly 20 tiles (200 px) to the right of the first shard, landing on the nearest solid tile. Replaces the previous halfway-point calculation.
  • ChangeAll 80 enemy sprite cases verified detailed (scores 20–37 draw calls each).
v1.30 June 2026 Critical fix
Pattern switch was never closed — collision code was unreachable dead code for all enemies.
  • Fixswitch (e.pattern) missing closing brace — the entire player collision block (stomping + damage) was inside the switch statement as unreachable code after the last case. No enemy could be stomped or deal damage. Fixed by adding the missing } after case 9.
v1.29 June 2026 Stable
Portals overhauled with spinning vortex animations; shield much more visible; main menu save info improved.
Portals
  • ChangeDeath portal (purple) — radial fill glow, 6 spinning spokes that accelerate with death timer, double concentric outer rings, white core flash at 70% complete, enemy shrinks into vortex.
  • ChangeDespawn portal (orange/red) — fire-coloured radial glow, 5 spokes spinning in reverse, outer gold ring + inner red ring, enemy sprite shrinks to zero as portal opens.
  • ChangeSpawn portal (teal/green) — counter-rotating spoke pattern, dual concentric rings, enemy grows from centre as portal closes. T15 Shadow also shows fading orange residue at old position during teleport.
Shield
  • ChangeNon-stompable shield — three concentric anatomy-matched rings (120–220 alpha), white core flash on pulse peak, four rotating corner sparks orbiting the sprite perimeter with trailing dots. Much more visible than previous single-outline version.
Main menu
  • ChangeSave info moved into CONTINUE label as (L:S) — e.g. CONTINUE (1:2). Play time removed.
  • ChangeCopyright and version text rendered at half-size using new scale=0 pixel font mode.
v1.28 June 2026 Stable
T15 Shadow portal movement; T1 Shell patrol-around-player; scale-0 font mode.
  • ChangeT15 Shadow — teleportation now uses proper green spawn portal at new position + orange residue ring at old position. After 5 snaps, opens permanent despawn portal (chaseExhausted).
  • ChangeT1 Shell — on reaching the player, switches to patrol mode ±5 tiles around player's position. Resumes chase if player moves more than 6 tiles away.
  • Newscale=0 mode added to renderText — draws every other pixel of the 5×7 bitmap font for a half-size appearance.
  • FixsnapCount field added to EnemyRuntime for T15 snap tracking.
v1.27 June 2026 Stable
Enemy sprites T11–T19 fully upgraded; changelog document updated.
  • ChangeRoller (T11) — warm amber gradient ball, hot-spot highlight, cos/sin spinning cross, directional speed blur trail.
  • ChangeShooter (T12) — layered robe, hooded shadow, red glowing eyes, pulsing animated staff orb.
  • ChangeLava Blob (T13) — heat glow aura, multi-layer interior, animated surface bubble, twin drip columns.
  • ChangeSkull (T14) — 3-shade dome, specular catch-light, recessed eye sockets with ember glow, individual teeth, jaw crack, directional speed blur.
  • ChangeShadow (T15) — multi-layer blend-mode body, dark trailing tendrils, bright magenta glowing eyes with glint.
  • ChangeSpike Ball (T16) — chain links with alternating offset, 4-shade ball, hot-spot, 8 spikes with bright tips.
  • ChangeDemon Imp (T17) — 3-shade body, curved horns with tip shine, detailed stub wings, yellow eyes, animated tail.
  • ChangeIce Golem (T18) — 4-shade ice body, fracture lines, shoulder plates, cold blue glowing eyes, extending giant hand.
  • ChangeHell Hound (T19) — very low wide stance, 4 spine ridges, open jaw with teeth, orange glowing eyes, 4 alternating running legs with compression animation.
  • NewChangelog document updated: Escape_Changelog_v126.docx covering v1.00 through v1.26.
v1.26 June 2026
T19 and T15 state machines rewritten; brace bug fix in updateEnemies; swoop floor fix.
  • ChangeT19 Hell Hound — full rewrite: waits until player is 20 tiles away, spawns 20 tiles behind; approach at 90 px/s; turns at 5 tiles, retreats 5 tiles; despawn portal decrements cycle; chaseExhausted flag prevents re-activation. Default 2 cycles.
  • ChangeT15 Shadow — new stalk behaviour: walks toward player until 3 tiles away, holds; teleports 4 tiles behind player every 5s; never lands on top of player.
  • FixupdateEnemies() was missing one closing brace — all function definitions after it were inside its scope. Player collision and physics were unreachable.
  • FixPattern 5 Swoop: return phase now uses spawnY as ceiling target, preventing floor dive-through.
  • FixINPUT per-frame spam removed from log — KEY events only.
v1.25 June 2026
  • FixT19 re-activating after exhaustion — chaseExhausted flag added.
  • FixT19 spawn clamping to left wall (x=10) — minimum raised to 2 tiles.
  • FixT15 teleporting on top of player — patrolOriX reset after each teleport.
  • FixSwoop (pattern 5) diving through map floor — player Y threshold check added.
  • FixKill log missing enemy index prefix.
v1.24 June 2026
Enemy debug logging overhauled — events from all source files now captured.
  • NewStage load: full enemy roster — pos, pattern, hp, speed, stomp immunity, fireball flag.
  • NewSpawn/despawn portal start and completion logged with enemy index.
  • NewPatrol reversal, fireball spawn (with velocity and pool count), stomp (HP before/after, distance from spawn), kill, player-hit (overlap vector) all logged.
  • New10-second periodic snapshot: all enemies — state, pos, HP, pattern, vx, dist to player.
  • NewT19 full cycle trace: activation, each cycle, approach, turn, retreat, despawn.
v1.23 June 2026
Enemy sprites T0–T10 fully redrawn with 16-bit pixel-art detail.
Sprite upgrades (T0–T10)
  • ChangeGoomba — 3-shade mushroom cap, spots, highlighted belly, distinct boots, eye glint.
  • ChangeShell — shell with highlight quad, ridge cross, pecking head animation.
  • ChangeSpiky — multi-tone armour, chest plate, rivets, metallic spikes with white tip sheen.
  • ChangeJumper — deep blue body, belly stripe, oversized round eyes, spring legs.
  • ChangeFlyer — blended wing membranes with vein detail, segmented thorax, compound orange eyes.
  • ChangeBat — dark membrane wings, vein highlights, flap animation, pointed ears.
  • ChangeCrab — highlighted red shell, eye-stalk reflections, extending claws, 6-leg crawl.
  • ChangeStalker — layered coat, collar, reaching arm with claw tips, pale yellow eyes.
  • ChangeBouncer — highlight quad, cos/sin spinning cross, cardinal spikes with bright tips.
  • ChangeGhost — multi-layer blend-mode body, outer wisp, trailing wisps, purple glowing eyes.
  • ChangeArmour — full plate, chest panel, visor slit, crest, shield with gold boss, spear.
Shield system
  • ChangeAnatomy-matched sprite-outline shield replaces flat bounding-box glow. Each immune type has custom segments (e.g. T33 Rib Crawler — 4 individual segment outlines; T34 Bone Drake — body + both wings).
Log
  • FixLog path: OpenLog now tries %USERPROFILE%\Desktop\escape_debug.log on Windows, with fallback chain and SDL_Log diagnostics at each attempt.
v1.22 June 2026 Critical fix
Log shared file pointer bug — all GameLog() calls outside GameState.cpp were silently discarded.
  • Fixg_logFile declared static in GameLog.h — each translation unit had its own copy. OpenLog() set one copy; all other TUs saw nullptr and discarded output. Fixed: extern declaration in header, single definition in GameState.cpp.
v1.20–21 June 2026
  • ChangeLog: append mode (sessions preserved), session header with version + timestamp, "Session ended" on close.
  • NewInvincibility glow: sprite-shaped additive blend at ±1/±2px offsets; 8 Hz pulse fading to 4 Hz over last second; 3-second duration.
  • NewNon-stompable shield: anatomy-matched pulsing cyan outline (first pass).
  • FixT19 portal states now run before generic despawn/spawn checks.
  • FixPattern 9 teleport: orbitAngle used as dedicated timer; patrolOriX reset after each teleport.
v1.18–19 June 2026
  • ChangeMap rebuilt: 20 platforms in 7 clusters (x=400–4280); no enemy within 280px of spawn.
  • ChangeEnemy distribution: floor walkers in gaps, flyers on upper platforms, pattern matched to platform height.
  • NewSpawn portal green/teal; despawn portal orange/red; despawnPortalX/Y stored at fall position.
  • NewDebug overlay: yellow T# labels above each enemy head; SP/DS/CHASE/RETREAT state labels.
  • FixPortal cull bypass — portals now render even when off-screen.
v1.15–17 June 2026
  • NewT19 Hell Hound first implementation: 10-tile behind spawn, approach, turn, retreat, despawn portal cycle.
  • NewT15 Shadow pattern 9: dedicated timer, patrolOriX reset on teleport.
  • FixSettings BACK: ESC now works; uses MainMenuItem::SETTINGS enum not hardcoded index.
  • ChangePortal appears at halfway point of each stage on shard collection.
  • NewCountdown protection: player fully invincible during 3-2-1-GO sequence.
v1.08–14 June 2026
  • New80 enemy types across 10 themes (6 per theme + 20 generics); enemies distributed across stages 1-1 to 1-3 by group; boss warmup on 1-4.
  • NewThree portal types: green spawn (stompable, no damage), orange despawn (fall-off, shows at last valid position), purple death (stomped, permanent removal).
  • NewLog system: extern g_logFile, Windows Desktop path, append mode, session header, toggleable in Settings (default OFF).
  • ChangeInvincibility: 3 seconds; glow fades over last second.
  • ChangeBackground system: 40 presets (10 themes × 4 variants), each with 3 parallax layers.
v1.08 June 2026
  • NewBackground system: 40 presets (10 hell themes × 4 variants) replacing 20 presets. New draw functions: Bone Architecture, Chain Curtain, Fire Pillars, Crystal Spires.
  • NewBG_NAMES[40] in EditorConstants.h; editor BG dropdown cycles all 40 presets with theme/variant names.
  • NewGDD, User Guide, and Changelog documents created.
v1.00–1.07 June 2026
First stable release. Core game loop, all four stages, demon system, audio, and installer.
  • NewDemon scan: positional/timer triggers, 5 sweep speeds, per-trigger settings in editor, chained d3→d4 audio, perspective eye-beam cones.
  • NewEnemy tile collision: tileAt()-based ground and edge checks; reverseAtEdge behaviour; fireball system (updateFireballs, renderFireballs).
  • New40 background presets with 3 parallax layers each; lava flow system; moving platforms.
  • NewBoss system: variant 0 (The Gatekeeper) with 5 HP, fall-from-sky entrance.
  • NewAll four stages complete: 1-1 Gates of Hell, 1-2 Ember Tunnels, 1-3 The Abyss (with demon), 1-4 Demon's Keep (boss).
  • NewWindows installer (NSIS) and build_release.bat.
  • FixBeam yBottom changed from LOGICAL_H (180) to MAP_H × TILE_SIZE (2180) — beams now span full world height.
  • FixBeam world-space collision: worldBeamX = beam.xPos + camOffX; player correctly takes damage in beam path.
  • FixStomp detection: tolerance widened to 45% of enemy height; velocity.y ≥ 0 (was >0); 2px X inset prevents edge-grazing.
v0.99–v0.99c Early 2026 Pre-release
  • NewDemonTriggerDef struct; DTRIG save/load; multi-trigger update loop (positional box + timer countdown); sweep speed per trigger; Demon Trigger editor item; trigger boxes in debug overlay.
  • NewDemonAudio.h: d1–d6 stinger filenames; demon SFX overlay stream separate from stage music; music duck to 25% during demon with 8s restore.
  • Newrock / rock_large decorations; m_playerHiding: crouching near rock blocks beam damage. rock_large front layer (behindPlayer=0).
  • FixPlay button two-click bug: OPEN MUSIC deferred via m_pendingOpenMusic; SDL event queue flushed after native dialog.
  • FixMusic field blank on editor open / new file; play button shows NO FILE when field empty.
  • FixDemon idle timer set to 99999s when dat triggers present (was auto-firing after 18–30s).
  • FixOPEN MUSIC click zone corrected to WIN_W-202.
v0.95–v0.98 Early 2026 Pre-release
  • NewEnemy system: 20 types, 10 movement patterns, EnemyDefs.h, EnemyRuntime.h, 12×12 ARGB pixel-art icons in editor.
  • NewPortal death effect: purple ring expansion with enemy shrink animation.
  • NewBackground system: 20 presets with 3 parallax layers each.
  • NewLogo splash screen (LOGO phase); intro cut-scene (TomIntro namespace).
  • NewDifficulty system: EASY / MEDIUM / HARD with configurable demon timing and sweep speed.
  • NewLevel editor modularised: EditorRender.cpp, EditorEvent.cpp. Enemy rendering in editor map view.
  • FixPlayer spawn scans downward from row 10 col 5 (was upward, hitting ceiling stalactites).
  • FixContext menu dismiss clears m_ldown/m_rdown (prevented accidental tile painting).
  • FixStage props dialog dh corrected 490→600; boss/BG click zones added.
v0.93 Early 2026 First build
Initial codebase. Everything that makes it a game and not a blank window.
  • NewSDL2 / C++17 project structure, CMakeLists.txt, game loop.
  • NewTile map: 448×218, solid / platform / air tile types.
  • NewPlayer sprite: procedural pixel-art with walk, jump, crouch, sprint animations.
  • NewCamera: follows player with world-space clamping.
  • NewDemon system: phase state machine (IDLE → WARNING → ARRIVAL → SCANNING → DEPARTING → FADEOUT); silhouette sprite with wings, horns, skull head, eye glow; perspective beam sweep.
  • NewAudio: dr_mp3 for MP3 playback; shard SFX, portal SFX, creak SFX.
  • NewCrystal shard collectibles with sparkle animation.
  • NewMoving platforms with configurable path and speed.
  • NewLava flow system with trigger zones.
  • NewBoss enemy system (BossPhase state machine).
  • NewLevel editor: tile painting, palette, zoom levels, mini-map.
  • NewNSIS installer script and build_release.bat.
  • NoteEditor music play button requires two clicks to register — click-zone fix scheduled.