Skip to content

v2.9.0 — shooter: perfil puro-datos + Neon Swarm + simulación testeada en Node

Choose a tag to compare

@MauricioPerera MauricioPerera released this 08 Jul 01:10

Release aditivo sobre 2.8.1 (bump minor según SPEC §7.0): un género nuevo de punta a punta sin tocar el core — la tesis del protocolo, ejecutada otra vez, ahora con simulación verificable. La versión del protocolo sigue en 0.1.

Added — shooter: perfil puro-datos + Neon Swarm + simulación testeada + runtime

  • profiles/shooter.json (12º perfil, segundo puro-datos): arena shmup vertical — ships, weapons, enemies con behavior (enum chaser/drifter), waves, powerups (heal/rapid/shield), arena continua y balance. 4 refs con mensajes por defecto, 14 bounds, 2 enums — cero funciones, dataOnly: true. Límite documentado: bounds no alcanza campos dentro de arrays (spawns[].count/gap — primer caso concreto para los "agregados anidados" de SPEC §11).
  • Neon Swarm: 2 naves, 2 armas, 4 enemigos, 5 oleadas, 3 powerups. Lint 0/0 a la primera.
  • Simulación pura (shooterInit/shooterTick + LCG en game3d-logic.mjs): determinista, un tick = un frame — el juego entero se gana y se pierde en Node dentro de npm test (+9 chequeos): victoria de la IA sobre las 5 oleadas, derrota sin input, invariante de conservación kills+leaked+lost == spawns (que cazó un hueco de contabilidad real al escribirlo), rapid a mitad de cooldown, shield y heal con tope.
  • Runtime shooter en game3d: render Three.js de la simulación (input mantenido, HUD, overlays). Verificado además sobre el estado vivo del navegador: victoria con 920 pts y conservación exacta (46+5+4=55). Nota operativa: el RAF pausa en pestañas ocultas — los harnesses pilotan los ticks directamente.
  • Conformance 179 casos (+13), 16 pares de ejemplos, 12 hints nuevos, 128 reglas, 12 perfiles; footer de index y nota SPEC §6 sin enumeraciones (principio anti-drift).

Changelog completo: CHANGELOG.md