Brisca
Roguelike de cartas con baraja española 1v1 contra IA, inspirado en Balatro. Motor 100% determinista en TypeScript puro con sim harness headless que corre miles de runs para balancear thresholds y rankear talismanes.
El Reto
Los juegos de cartas tradicionales españoles tienen poco recorrido más allá de la partida puntual. Balatro demostró que el roguelike puede inyectar variedad y matemática a una baraja conocida, pero ningún proyecto había llevado esa fórmula a la Brisca.
Resultados
- Motor 100% determinista (mulberry32 PRNG) simulable headless
- 30 talismanes con hook system parametrizable (onTrickResolve, onMatchStart...)
- Sim harness con 10 escenarios: thresholds, combos, fairness, economy
- Renderizado 3D de cartas con React Three Fiber + react-spring
La Solución
Construí un roguelike completo con 12 matches por run repartidos en 3 tabernas con jefes, 30 talismanes en 3 rarezas, tienda pre-boss y scoring estilo Balatro (fichas × mult). El motor es puro TypeScript sin React, simulable headless — eso permite un sim harness que corre miles de runs para detectar talismanes muertos, combos rotos y thresholds triviales.
Motivación
Quería un proyecto donde el game design fuera medible, no solo intuitivo. La Brisca era ideal porque la conozco desde siempre y porque sus reglas (40 cartas, baza fija, palo de triunfo) son simples pero permiten capas estratégicas profundas.
Retos
Lo más complejo fue separar el motor puro de la capa de render para que la misma lógica pudiera correr en una partida real (con animaciones React Three Fiber + Zustand) y en un sim de 10.000 runs sin DOM ni framework. Y rebalancear talismanes con datos: el sim me decía 'El Avaro nunca dispara' y había que mirar el hook.
Aprendizajes
Aprendí que un sim harness es la mejor herramienta de game design que puedes tener: convierte intuiciones discutibles ('este talismán es OP') en hechos cuantitativos ('synergy 452 vs baseline 310'). Y que el coste de mantener pureza en el reducer se paga en cuanto necesitas testarlo a escala.
Contexto
Jugable de extremo a extremo: 12 matches, recompensas, tienda, 3 jefes con trampas, 30 talismanes con arte castizo curado. Pendiente meta-progresión y rebalance final tras los reportes del sim.