All MicroEvals
Engine Architecture & State ContractsEndless Abyss runs on a...
Create MicroEval
Header image for Engine Architecture & State ContractsEndless Abyss runs on a...

Engine Architecture & State ContractsEndless Abyss runs on a...

Prompt

Engine Architecture & State ContractsEndless Abyss runs on a fixed-timestep loop ($\Delta t = 1/60\text{s}$, max 4 sub-steps) with an input queue buffer ($0.28\text{s}$) to register attacks during animations.TypeScriptinterface GameState { depth: number; time: number; hitStop: number; player: Player; enemies: Entity[]; projectiles: Projectile[]; hazards: Hazard[]; telegraphs: Telegraph[]; particles: Particle[]; level: Level; camera: Camera; combo: { count: number; timer: number; maxCombo: number }; boss: Entity | null; activeLoreTablet: LoreTablet | null; levelUpPending: boolean; boonLockoutTimer: number; boonChoices: BoonChoice[]; settings: { screenShake: number; showDamageNumbers: boolean; minimapMode: 'compact' | 'expanded' | 'hidden' }; runStats: { kills: number; bossesSlain: number; maxDepth: number; damageDealt: number }; } interface Player { cls: ClassDef; x: number; y: number; vx: number; vy: number; hp: number; maxHp: number; atk: number; dfn: number; speed: number; radius: 13; facing: number; attackCd: number; swingTimer: number; swingAngle: number; comboStep: number; comboTimer: number; abilityCd: number; dodgeCd: number; dodgeTimer: number; dodgeDir: { x: number; y: number }; invuln: number; hitFlash: number; slow: number; level: number; xp: number; xpNext: number; kills: number; relics: string[]; boons: string[]; boonTiers: Record<string, number>; critCharges: number; critRate: number; cadenceTimer: number; parryTimer: number; chargeTimer: number; bloodthirstTimer: number; bloodthirstStacks: number; adrenalineTimer: number; bladeStacks: number; bladeStackTimer: number; phoenixUsed?: boolean; dead: boolean; queuedAttackTimer: number; } interface Entity { uid: number; def: EnemyDef; x: number; y: number; hp: number; maxHp: number; atk: number; dfn: number; speed: number; radius: number; state: 'idle' | 'wander' | 'chase' | 'windup' | 'charge' | 'recover' | 'stunned' | 'channel' | 'transition'; facing: number; kbx: number; kby: number; elite: boolean; timer: number; cooldown: number; hitFlash: number; stunTimer: number; slow: number; frozen?: number; poison: { dmg: number; time: number; tick: number } | null; bleed: { dmg: number; time: number; tick: number } | null; burn: { dmg: number; time: number; tick: number } | null; affix?: 'shielded' | 'berserker' | 'blinker'; shieldHp?: number; boss?: BossRuntime; dead?: boolean; } Combat Mathematics & PhysicsDamage FormulasIncoming Player Damage:$$D_{\text{in}} = \max\left(1, \left\lfloor D_{\text{raw}} \cdot \frac{60}{60 + \text{DEF}_{\text{player}}}\right\rfloor\right)$$Outgoing Enemy Damage:$$D_{\text{out}} = \max\left(1, \left\lfloor D_{\text{raw}} \cdot \frac{50}{50 + \text{DEF}_{\text{enemy}}}\right\rfloor\right) \cdot (2.0 \text{ if Crit})$$Collision & EnvironmentTile Grid: $32\text{px} \times 32\text{px}$.2-Pass Circle-AABB Wall Push:$$\Delta x = x - \operatorname{clamp}(x, t_x \cdot 32, (t_x + 1) \cdot 32), \quad \Delta y = y - \operatorname{clamp}(y, t_y \cdot 32, (t_y + 1) \cdot 32)$$$$\text{If } d = \sqrt{\Delta x^2 + \Delta y^2} < r \implies x \mathrel{+}= \frac{\Delta x}{d}(r - d), \quad y \mathrel{+}= \frac{\Delta y}{d}(r - d)$$Line-of-Sight (LOS) Raycast: Steps along vector at $\delta = 8\text{px}$; returns false if intersecting wall tile ($0$).Hit-stop Delays: $0.03\text{s}$ (glance), $0.05\text{s}$ (sweet spot/crit), $0.06\text{s}$ (combo finisher), $0.40\text{s}$ (boss kill).Screen Shake: Linearly decays at $40\text{ units/s}$; dynamic range $2\text{--}34\text{px}$.XP Scaling: $\text{XP}_{\text{req}}(L) = 40 + 28L + 2L^2$. Level-up heals $25\%$ HP, increases Max HP $+6\%$, ATK $+2$, DEF $+1$.Streak Timer: $3.5\text{s}$ window ($3\times$ Streak, $5\times$ Rampage, $8\times$ Carnage, $12\times$ Unstoppable, $15\times$ Godlike).Class Mechanics & Spacing GeometryDodge Roll (All Classes): $0.30\text{s}$ duration, $0.34\text{s}$ invulnerability, $2.7\times$ speed, $0.85\text{s}$ cooldown. Dodging through an active attack windup grants a Perfect Dodge (+1 guaranteed Crit Charge).Vanguard (Greatsword & Shield):Stats: HP 150, ATK 16, DEF 14, SPD 165. Reach $64\text{px}$, Arc $0.95\pi$, CD $0.48\text{s}$.Tip Sweet Spot: Hits at $d \ge 0.48 \times \text{reach}$ deal $+45\%$ damage, guaranteed critical, and interrupt enemy windups. Hilt hits deal $75\%$ glancing damage.Cadence: Attacking within $0.24\text{s}$ after swing recovery triggers a Cadenced Cleave ($+25\%$ cleave speed and range).Shield Bash ($E$, $6\text{s}$ CD): Lunges forward ($0.26\text{s}$), dealing $1.6\times$ ATK, $1.6\text{s}$ stun, heavy knockback, and breaks secret walls.Shade (Twin Daggers):Stats: HP 95, ATK 13, DEF 5, SPD 215. Reach $46\text{px}$, Arc $0.65\pi$, CD $0.22\text{s}$.Backstab: Striking within $\vert{}\Delta\theta\vert{} < 0.42\pi$ of enemy facing deals $+120\%$ damage, inflicts bleed ($45\%$ ATK/s for $4\text{s}$), and grants a $+35\%$ speed burst for $0.6\text{s}$.Combo Flurry: 4-hit rapid combo; the 4th strike lunges forward in a piercing phantom thrust.Shadowstep ($E$, $5\text{s}$ CD): Instantly blinks to cursor ($200\text{px}$ limit), granting $0.4\text{s}$ i-frames and 3 guaranteed crit charges.Arcanist (Astral Staff):Stats: HP 90, ATK 12, DEF 3, SPD 175. Range $280\text{px}$, Ranged Bolt, CD $0.52\text{s}$.Focus Zone: Projectiles detonating at $160\text{--}280\text{px}$ trigger a Focus Burst ($+35\%$ damage, $55\text{px}$ AoE splash).Astral Charge: Holding attack $\ge 0.65\text{s}$ releases an Overcharged Astral Sphere ($1.85\times$ ATK, pierces 2 enemies).Arcane Nova ($E$, $7\text{s}$ CD): $170\text{px}$ radial shockwave, $2.4\times$ ATK, $520\text{px/s}$ knockback.Paladin (Dawn Mace):Stats: HP 130, ATK 14, DEF 10, SPD 172. Reach $58\text{px}$, Arc $0.80\pi$, CD $0.46\text{s}$.Smite Sweet Spot: Outer mace head ($d \ge 36\text{px}$) deals $+50\%$ damage, guaranteed crit, and $0.75\text{s}$ stun.Active Parry Window: First $0.14\text{s}$ of swing parries melee hits, deflects projectiles back at $2.5\times$ damage, and heals $+6$ HP.Holy Radiance ($E$, $9\text{s}$ CD): Heals $30\%$ Max HP, emits a $150\text{px}$ wave dealing $1.7\times$ ATK.AI Steering & Enemy TelegraphsSeparation Repulsion: Reciprocal push prevents mob clumping:$$F_{\text{repel}} = \frac{(r_a + r_b) - d}{2} \cdot 5\Delta t \cdot \hat{n}$$Navigation: Checks direct vector; if obstructed, tests steering offsets $[\pm 45^\circ, \pm 90^\circ, \pm 135^\circ]$ at $r + 16\text{px}$ to flank around corners.Projectile Avoidance: Reaction check ($75\%$ elite, $45\%$ depth $\ge 3$, $25\%$ base) when player projectile approaches within $130\text{px}$ along trajectory ($\vec{v} \cdot \vec{d} > 0.82$), triggering a perpendicular dodge roll.Telegraph Trajectory Locking: Ranged and charging enemies dynamically lead player velocity during early windup, but lock their angle rigidly in the final $0.22\text{s}$ before release, ensuring clear dodging windows.Elite Affixes:Shielded: Ward absorbing $45\%$ Max HP with total flinch immunity until broken.Berserker: Below $55\%$ HP, gains $+35\%$ SPD and $+25\%$ faster attack animations.Blinker: Blinks $65\text{px}$ laterally when struck at range or during combo openers.Boss Encounters & Bullet-Hell FSMBosses feature 3 distinct phases ($100\%\text{--}66\%$, $66\%\text{--}33\%$, $<33\%$). Thresholds trigger a $1.5\text{s}$ invulnerable phase transition with a radial shockwave ($400\text{--}480\text{px}$, $22\text{--}40\text{ damage}$).Broodmother Vexia (Depth 3):P1: Melee charges with toxic bite.P2 (Venom Barrage): Spits 8 arcing venom projectiles leaving $62\text{px}$ acid pools ($6.5\text{s}$ duration, $60\%$ slow, $0.5\text{s}$ tick).P3 (Brood Frenzy): Spawns 2 spiderlings every $7\text{s}$; fires targeted acid shots every $1.1\text{s}$.Archlich Malakor (Depth 6):P1: 3-way piercing necrotic bolts ($260\text{ speed}$).P2 (Spiral of Souls): 16-step Archimedean spiral of homing skull projectiles ($150\text{ speed}$, $1.9\text{ rad/s}$ turn rate, $5.5\text{s}$ life).P3 (Necrotic Deluge): Floor void sigils ($70\text{px}$ radius, $0.9\text{s}$ arm time) paired with quad homing skulls every $2.2\text{s}$.Ignis the Colossus (Depth 9):P1: Heavy ground slams ($r=150\text{px}$) and line charges ($520\text{px/s}$).P2 (Infernal Rings): 3 concentric fire rings expanding at $210\text{px/s}$ ($620\text{px}$ max radius) with $0.85\text{ rad}$ safe gaps.P3 (Meteor Storm): Targeted meteor markers ($58\text{px}$, $1.1\text{s}$ delay, $1.0\times$ ATK) leaving lingering magma.Xylar the Void Sovereign (Depth 12):P1: 5-way spread void bolts ($320\text{ speed}$); teleports every $4.2\text{s}$.P2 (Cross of Annihilation): 4 rotating continuous lasers ($900\text{px}$ length, $22\text{px}$ width, rotating at $0.80\text{ rad/s}$ for $5\text{--}7\text{s}$).P3 (Unmaking): Gravitational singularities ($80\text{px}$ radius, $170\text{ pull force}$) collapse while laser speed increases to $1.05\text{ rad/s}$.Procedural Generation & Multi-Pass LightingLayout: 11 rectangular rooms ($6 \times 6$ to $12 \times 11$) linked via 2-tile wide corridors using Manhattan routing, plus 2 cyclic loop connectors.Secret Sanctuary: Scans exterior room perimeters to carve a hidden $5 \times 5$ vault behind a solid wall ($20\text{ HP}$, crumbling particles on hit). Contains a Gilded Reliquary and 2 ethereal torches.Lighting Engine:Draw background tiles, decals, and entities.Overlay a full-screen canvas fill using biome.fog at opacity biome.darkness ($0.74\text{--}0.88$).Clear ambient darkness using ctx.globalCompositeOperation = 'destination-out' with radial gradients: player aura ($r=85\text{px}$), torches ($r=110\text{px}$), and projectiles ($r=30\text{--}60\text{px}$).Reset blend mode to 'source-over' to render UI, damage floating numbers, and attack telegraphs.Upgrades, Archetypes & Synergies3-Tier Upgrade ProgressionAll drafting upgrades follow a standardized 3-tier structure:Tier 1 (Base Passive/Proc): Grants the core offensive/defensive modifier or elemental infusion (e.g., base stat boost, lightning chain to 2 targets, or flat dodge cooldown reduction).Tier 2 (Magnitude & Secondary Effect): Increases core values by $\sim 50\text{--}75\%$ and introduces a secondary combat trigger (e.g., status ailment, defense shred, or execution thresholds).Tier 3 (Overcharged Capstone): Maximizes values and adds an archetype-defining perk (e.g., full cooldown resets on kill, invulnerability frames, or single-target overcharge damage).Archetype Thresholds (Set Bonuses)Tempest: (2) $+15\%$ ATK SPD, 3rd strike chains shock | (4) Chain range $+60\%$, shocks apply -4 DEF.Inferno: (2) Burn tick rate $+40\%$, $+20\%$ damage to burning targets | (4) Burning enemies explode on death for $150\%$ ATK ($75\text{px}$ radius).Frostbite: (2) $+25\%$ slow magnitude, Shatter bonus increased to $+50\%$ | (4) Hitting frozen targets casts a frost nova and heals $+3$ HP.Necrotic: (2) Poison duration $+2.5\text{s}$, $+4$ HP on killing poisoned foes | (4) Kills launch a homing soul skull dealing $120\%$ ATK.Juggernaut: (2) $+20\%$ Max HP, take $20\%$ less damage during attacks | (4) Gain bonus ATK equal to $35\%$ total DEF; knockback/slow immune.Blade: (2) Hits grant $+3\%$ Move Speed and $+3\%$ Crit (stacks 6x, $5\text{s}$ duration) | (4) Every 3rd finisher or crit launches a $100\%$ ATK phantom wave.Dual Fusions (Pairing 2+ Pieces of Each Archetype)Thermal Shock (Inferno + Frostbite): Triggering burn on a frozen foe (or freeze on a burning foe) causes a $200\%$ ATK thermal detonation.Plasma Conduit (Inferno + Tempest): Burning enemies hit by lightning emit plasma pulses that stagger adjacent foes.Cryo-Toxin (Frostbite + Necrotic): Frozen, poisoned targets shatter into 6 piercing toxic ice shards.Thunder Brawler (Tempest + Juggernaut): Dodging charges a kinetic capacitor that discharges a stunning blast on the next attack.UI/UX & Feedback SystemsAscension Modal: Level-up window enforces a $1.0\text{s}$ input lockout to eliminate accidental selections while buffering attacks. Shows 3 cards with rarity tiers, archetype counters ($n/4$), and keys [1], [2], [3].Vitals Strip: HP bar uses a dual layer: immediate foreground drop and a delayed red damage accumulator. Displays numeric values, XP bar, and active combat indicators (CADENCE READY, PARRY ACTIVE, FOCUS ZONE).Widescreen Boss Bar: Anchored to screen top; displays phase notches at 66% and 33%, dynamic boss title headers, and phase-shifting color gradients.