El NYT Mini popularizó una forma específica de puzle: rejilla pequeña, un único puzle compartido por día, seguimiento de racha que se acumula durante semanas. Mini Cross toma esa forma y la renderiza en una estética de terminal cyber — verde fósforo sobre casi negro, panel de pistas monoespaciado, overlay de scanline. El juego se envió a 59 sobre 60 en nuestra rúbrica de QA a lo largo de cuatro iteraciones, y es el primer juego del catálogo que se construyó a través de múltiples disparos de cron de nuestro pipeline de creación remoto.
Este post es la historia de cómo se juntó: la restricción de solo-diario que se fijó antes del scaffold, las iteraciones que ajustaron la sensación antes que el contenido, la escalera de racha que emergió en la iter-4, y el momento en que el pipeline cruzó su propia frontera a mitad de la creación.
¿Quieres jugar primero y luego leer la historia de cómo lo creamos?
▶ Juega Mini Cross AhoraLa Restricción Que Se Fijó Antes del Código
La primera decisión de diseño para Mini Cross se tomó antes de cualquier scaffold: cada jugador recibe el mismo puzle el mismo día, elegido determinísticamente de una rotación con semilla por fecha. La especificación describía un paquete de 60 puzles con la rotación indexada por daysSinceEpoch % 60.
Esto suena incidental. Es todo el juego. El modo libre multi-puzle era la alternativa — deja a los jugadores resolver tantos como quieran, en cualquier orden, guardar progreso por puzle. Lo rechazamos antes del scaffold. El significado de la racha colapsa si puedes resolver cinco puzles el domingo para "ahorrar" para los días de semana. El ancla social compartida (todo el mundo recibió el mismo puzle hoy) desaparece. La mecánica de visita-de-retorno que define el género deja de funcionar.
Rejilla DOM, No Canvas
La rejilla es una rejilla CSS 5×5 de celdas div. Sin canvas. La elección surgió en la iter-1 y se mantuvo.
El canvas nos habría dado control perfecto al píxel sobre las animaciones y el overlay de scanline. También nos habría forzado a reimplementar la gestión de foco, parpadeo del cursor, flujo del lector de pantalla y navegación con teclado — todo lo cual el DOM nos da gratis. Los efectos visuales que realmente necesitábamos (brillo de celda activa, flashes de celda correcta/incorrecta, resaltado de palabra completada) eran todos alcanzables en CSS.
La elección dio sus frutos otra vez en la iter-4 cuando añadimos el overlay de hito de racha. Añadir role="status" y aria-live="polite" a un banner DOM es un par de atributos. Hacer el equivalente para un banner renderizado en canvas habría requerido reconstruir por separado la capa de avisos para lectores de pantalla.
El Problema del Teclado Móvil
El teclado nativo de iOS Safari rompe las rejillas 5×5. Cuando aparece el teclado, la página re-layoutea, la rejilla pierde el foco, y la celda que el jugador tocó se desplaza fuera de pantalla. No hay forma limpia de evitarlo con el teclado nativo — el reflow del layout es el comportamiento de la plataforma, y no podemos anularlo.
El arreglo es un overlay de teclado virtual personalizado. Una fila de botones A-Z + Backspace se desliza desde abajo en móvil, cada botón mide 44 píxeles de alto (el mínimo objetivo de toque de iOS), y cada botón usa touchstart con preventDefault para suprimir que el teclado nativo aparezca jamás. La rejilla mantiene el foco. La página no reflowea. El cursor avanza limpiamente.
Path Runner resolvió su problema de input por swipe de la misma forma (umbral mínimo de velocidad para desambiguar intención de arrastre). El patrón se reutiliza entre géneros.
Sensación de Puntuación Antes Que Profundidad de Contenido
La iter-1 envió a 47 sobre 60. El juego era jugable. La nota de QA marcaba un problema de calidad de contenido: algunas entradas Verticales no eran palabras inglesas reales. Eran relleno provisional que estructuralmente validaba como datos de crucigrama — el integration lint pasó, el puzle era resoluble, pero al resolverlo de verdad surgía "¿esto es siquiera una palabra?".
La iter-2 arregló el relleno, añadió SFX Web Audio y fijó el teclado virtual de 44 píxeles. Puntuación: 54 sobre 60.
La iter-3 fue donde el juego empezó a sentirse como si valiera la pena volver: persistencia de puntuación (tu mejor de todos los tiempos + puntuación de ayer viven en el HUD), Modo Difícil (un bonus de +50, con Check/Reveal ocultos para que no puedas hacer red de seguridad), y una ráfaga de partículas en canvas al ganar — 80 cuadrados verdes y turquesa emiten desde el centro de la rejilla durante 60 frames y se limpian solos. El paquete de puzles se expandió de 10 a 13. Puntuación: 57 sobre 60.
El orden importa aquí. El trabajo de puntuación y sensación aterrizó primero. La profundidad de contenido (más puzles) segundo. Podríamos haberlo invertido — enviar 60 puzles primero, pulir el momento de victoria segundo — pero el inverso no habría recompensado al jugador de visita-de-retorno diaria. La persistencia de puntuación es lo que te hace recordar si el puzle de ayer fue difícil. Sin ella, cada resolución es algo de una sola vez.
La Escalera de Racha
La iter-4 añadió la celebración que no estaba en la especificación. Seis niveles — 3, 7, 14, 30, 60 y 100 días — cada uno dispara un acorde triunfal más un arpegio ascendente y un banner a pantalla completa con una animación de keyframe CSS de escalado y desvanecimiento.
La elección de niveles importa. Un banner cada-N-días lineal fatiga rápido. Niveles logarítmicos (1, 2, 4, 8, ...) sobre-recompensan el juego temprano y sub-recompensan el engagement sostenido. La escalera que aterrizamos mapea a mesetas naturales de compromiso: tres días es el momento "podría hacer esto otra vez mañana", siete es una semana, catorce son dos semanas, treinta es un mes, sesenta son dos meses, cien son cien. El pop de 3 días es crítico — dispara lo bastante pronto para que los jugadores de bajo engagement vean uno antes de que de otra forma abandonaran.
Puntuación final: 59 sobre 60. La iter-5 se saltó según nuestra regla de envío a 58 puntos.
El Pipeline Cruzó Su Propia Frontera
Mini Cross es el primer juego del catálogo que se construyó a través de múltiples disparos de cron de nuestro pipeline de creación remoto. La mayoría de los juegos anteriores se habían construido en una única sesión. Mini Cross fue distinto — la especificación, scaffold y las tres primeras iteraciones corrieron en la máquina de estados remota a lo largo de aproximadamente cinco disparos de trigger distintos. Uno de esos disparos auto-resolvió un conflicto de merge git a media ejecución.
La iter-4, la pasada de QA de la iter-4 y el wrapup corrieron todos localmente en el orquestador en lugar de en el pipeline remoto. La razón era práctica: el siguiente disparo remoto se atascó brevemente, la ronda de pulido era lo bastante pequeña para terminarla inline más rápido que esperar el siguiente cron, y el commit de integración necesitaba revisión humana más estricta de la que da una ejecución remota.
Ese patrón híbrido local+remoto — remoto para fases iterativas pesadas donde importa el estado del contexto, local para el pulido final donde el desarrollador quiere control más estricto — es ahora el modo canónico para el pipeline. Mini Cross fue el primer juego en descubrirlo. No estaba planeado; simplemente resultó ser la forma correcta.
Por Qué Vale la Pena Volver a Mini Cross
Mini Cross es corto. La mayoría de las resoluciones corren bajo cinco minutos. El punto no es la profundidad de sesión — es la profundidad de racha. El mismo puzle cada día, el mismo leaderboard global, la misma escalera de celebración de seis niveles esperando al otro lado de tres, siete, catorce, treinta, sesenta y cien días consecutivos.
El paquete de puzles crecerá incrementalmente — las adiciones de contenido se envían vía migraciones de D1 en lugar de cambios de código del juego, separando la capa de contenido de la capa de lógica. Se añaden puzles nuevos sin volver a enviar el juego.
Si has estado rebotando contra el muro de pago del NYT Mini o simplemente quieres una estética distinta para tu crucigrama matutino, dale una vuelta. El pop de 3 días está más cerca de lo que crees.
Juega Mini Cross →Relacionado: Cómo Creamos Deadlock · Mejores Alternativas a Wordle 2026 · Mejores Juegos Gratis de Sudoku 2026 · ¿Qué es Vibe Coding?