Producto propio

Spectrum Online

Los clásicos deportivos del ZX Spectrum, para jugar 1 contra 1 por internet desde el navegador. Gratis y sin instalar nada.

Con 7 u 8 años, mi hermano y yo tuvimos un ZX Spectrum 48K. Con él aprendí a programar en BASIC a base de prueba y error, y eso me sirvió de base para mi trabajo años después. Al Match Day era muy bueno, y siempre me quedé con las ganas de jugar contra más gente.

Un día pensé: ¿cómo habría molado poder jugar al Match Day online? ¿Y por qué no pruebo a montarlo? Una vez montado el sistema para jugar por internet, se me ocurrió añadir más juegos. Así nació Spectrum Online: los juegos originales, en el navegador, contra un amigo que está en su casa.

Todo el código está hecho con Claude, la IA de Anthropic. Yo no escribí ni una línea: le iba diciendo lo que quería y Claude lo programaba. De crío aprendí con el Spectrum a base de prueba y error; ahora el proceso es parecido, pero mi parte es saber qué pedir.

Por ahora hay cuatro: Match Day y Match Day II (Ocean), Match Point (Psion / Sinclair) y Fernando Martín Basket Master (Dinamic). El catálogo irá creciendo, y los usuarios pueden sugerir juegos.

Stack técnico

  • Desarrollado con Claude (IA de Anthropic)
  • HTML + JavaScript sin frameworks
  • Vite (compilación)
  • JSSpeccy 3 (emulador en WebAssembly)
  • WebRTC (vídeo del juego al invitado)
  • PeerJS (canal de datos para el teclado)
  • Web multipágina con JSON-LD (VideoGame, FAQPage, Person)
  • Juegos desde Internet Archive

El reto técnico

Los juegos del Spectrum se hicieron para dos jugadores sentados delante del mismo teclado. El reto es que jueguen dos personas desde casas distintas sin tocar el juego original y sin montar un servidor de juego propio.

La solución: el emulador solo corre en el navegador de quien crea la partida. La imagen del juego se envía al invitado como vídeo por WebRTC, y sus pulsaciones viajan de vuelta por un canal de datos (PeerJS) y se traducen a las teclas del jugador 2. El invitado entra con un código de 5 letras, ve el partido en directo y juega con su teclado.

Y luego están los detalles de cada juego. Match Day trae al jugador 1 configurado con un joystick que el emulador no tiene. Claude localizó en la memoria del Spectrum dónde guarda el juego los controles, y la web los reescribe al cargar.

Proceso y decisiones

El proyecto está construido entero con Claude. Mi papel era el de quien encarga: la idea, qué juegos meter y cómo quería que funcionara una partida. Claude proponía la forma de hacerlo y escribía el código.

HTML y JavaScript sin frameworks, compilado con Vite. Es una web de varias páginas pensada para SEO, con datos estructurados (VideoGame, FAQPage, Person). Para lo que hace, un framework solo añadía peso.

El emulador es JSSpeccy 3, compilado a WebAssembly, que ejecuta los juegos originales dentro del navegador. Los juegos no se alojan en la web: se descargan desde la colección de ZX Spectrum de Internet Archive.

Los menús de estos juegos son de otra época, así que un botón «Preparar partido» los recorre solo hasta el saque. Cada juego tiene su propia automatización para que nadie tenga que pelearse con ellos. También se puede jugar solo contra el ordenador.

Tracción

4Juegos
5 letrasCódigo de partida
NoRegistro
NingunaPublicidad
NingunoDatos guardados
NingunoServidor de juego propio

¿Qué significa esto para tu proyecto?

Sobre todo, demuestra hasta dónde llega hoy el desarrollo con IA. Un proyecto con emulación, vídeo en tiempo real y juego en red, construido entero con Claude a partir de lo que yo le iba pidiendo, sin un equipo detrás. Si tienes una idea y quieres saber si se puede montar así, este es el ejemplo.

Además, si tu proyecto necesita conectar a dos usuarios en tiempo real (ver lo mismo a la vez, compartir una pantalla, mandar acciones de uno a otro), este proyecto demuestra que se puede montar con WebRTC directamente entre navegadores, sin servidor propio en medio y sin coste por uso.

También sirve como ejemplo de software pesado corriendo dentro del navegador con WebAssembly: aquí es un ordenador entero de los 80, pero el mismo patrón vale para herramientas que hoy piden instalar algo.

Y si lo tuyo es entrar en las tripas de un sistema que no controlas (un programa antiguo, un formato cerrado, algo sin documentación) para hacerlo funcionar de otra manera, reescribir los controles de Match Day en la memoria del Spectrum es exactamente eso.

¿Quieres algo parecido?

Cuéntame qué tienes en mente y te digo qué puedo hacer.