#gamedev #pixelart #desarrollodejuegos #juegosindie #programacion #typescript #phaserjs #flashgame #preservacion #solodev
El backend FMS del juego original lleva décadas caído. Solo sobrevive el SWF en Wayback. Decompilé con JPEXS, recuperé las clases AS2, y reconstruí toda las mecánicas internas del juego leyendo `main.flr` (~5300 líneas).
#vibecoding #gamedev #pixelart #desarrollodejuegos #juegosindie #programacion #typescript #phaserjs #flashgame #preservacion #solodev
Estuve a punto de tirar la toalla cuando descubrí que el cliente "main.swf" no contenía los datos de los luchadores: los cargaba dinámicamente de ficheros externos. Y estos ficheros no se habían guardado en Wayback Machine: se había perdido todo.
Por suerte, el juego contaba con un tutorial que incluía unos pantallazos gráficos que sí se incrustaron en el fichero principal. Así que, construí un editor básico para generar mi propio fichero "gamedata.xml" con la información de los luchadores.
Sprint 1 (1 semana): había que montar el esqueleto Phaser 3.90 + TypeScript + Vite, y generar un tablero de hexágonos con filas 5/6/5/6/5, añadir la lógica determinista de resolución de acciones según el canon (BLOQUEO → MOVER → ATACAR), 3 acciones por ronda, crear un "ActionChooser", y hacer que funcionase el modo "hot-seat" a 2 jugadores.
#vibecoding #gamedev #pixelart #desarrollodejuegos #juegosindie #programacion #typescript #phaserjs #flashgame #preservacion #solodev
Sorpresa en el Sprint 1: me sobra tiempo.
Y descubro que el juego original tiene una IA bastante decente montada dentro de ComputerPlayer.as.
La porto literalmente "línea por línea" a TypeScript con su propio ADR que documenta la única fuente de aleatoriedad permitida: una PRNG seedable usada solo por la CPU.
En fin, que empiezo a darme de tortas con enemigos que se mueven solos y empiezo a sonreír.
Esto marcha.
#vibecoding #gamedev #pixelart #desarrollodejuegos #juegosindie #phaserjs #solodev

Una vez tenemos a 2 jugadores funcionando, la siguiente capa de complejidad era el modo 3 jugadores ("matchmaker" más complejo, "timing" de rondas tri-polar) y un "round timer" de 30 segundos que rellena con acciones nulas en los slots no selecccionados.
Los "timeouts" dejan de ser silenciosos: salen en pantalla como "PLAYER XX TIMED OUT"
#vibecoding #gamedev #pixelart #desarrollodejuegos #juegosindie #programacion #typescript #phaserjs #flashgame #preservacion #solodev

Sprint 7:
Necesito una sala de espera como la del videojuego original, y habitaciones.
El modo "online" debe empezar a parecerse a la referencia.
Añado "Room browser", "guest usernames", "bot-fill" para 2P/3P incompletos, 6 emoticonos en el combate (no quiero un chat).
La demo deja de tener pinta de "matchmaking instantáneo de Steam".
#vibecoding #gamedev #pixelart #desarrollodejuegos #juegosindie #programacion #typescript #phaserjs #flashgame #preservacion #solodev

En el sprint 8 preparo el despliegue a fly.io con Dockerfile + healthcheck + rate-limiting per-IP.
El cliente lo subo a Cloudflare Workers Static Assets vía wrangler.
Añado una latencia visible en HUD arriba a la derecha en partidas net-*.
#vibecoding #gamedev #pixelart #desarrollodejuegos #juegosindie #programacion #typescript #phaserjs #flashgame #preservacion #solodev
Sprint 9:
La demo deja de parecer una demo llena de "placeholders".
Añado backgrounds pixel art (8 escenarios) comprados (Ansimuz), sprites de luchadores generados vía PixelLab y retocadas por mí manualmente, animaciones por personaje (idle / move / 3 ataques / hit / death), VFX para cada ataque, audio (SFX + música).
#vibecoding #gamedev #pixelart #desarrollodejuegos #juegosindie #programacion #typescript #phaserjs #flashgame #preservacion #solodev
Sprint 10:
Hay que empezar a hacerlo bonito.
Divido los fondos del combate en capas y les añado movimiento y efectos, parallax horizontal en cielos, FX ambientales por escenario — lluvia y truenos en la cueva, hojas cayendo en el bosque, pájaros en el atardecer, antorchas en el castillo...
También añado: transición char-select a combate, banner con el nombre del escenario al empezar combate ("STRONGHOLD OF SHADOWS"…), bitmap fonts globales, y HUD nuevo con retrato 64×64 + barras HP/EN animadas.
Y casi está terminado: reskin del roster (los nombres canon son IP de Marvel y no quiero líos).
Genero nombres y lore alternativos, y listo para meter en el horno.
La beta ya está disponible para jugar como invitado o usuario registrado aquí:
https://www.artemisninjahunter.online/
Todos los comentarios son bienvenidos a través del botón "bug" (en las esquinas).
Gracias por la atención.
#vibecoding #gamedev #pixelart #desarrollodejuegos #juegosindie #phaserjs #solodev