Problema
Un portafolio de simulación se apoya casi siempre en video: se ve el resultado, nunca el criterio. Quise poner encima de la mesa un sistema completo que cualquiera pudiera abrir, jugar y auditar.
Unity WebGL + Cloudflare Workers
Time-trial en el navegador: compites contra el récord de la pista y contra tu propia mejor vuelta. El juego no decide nada — cada tiempo pasa por un backend propio en Cloudflare Workers que lo valida con checks del lado del servidor, idempotencia y rate limiting antes de publicarlo en el leaderboard. Los dos repos son públicos: el del juego en C# y el de la API en TypeScript.
Un portafolio de simulación se apoya casi siempre en video: se ve el resultado, nunca el criterio. Quise poner encima de la mesa un sistema completo que cualquiera pudiera abrir, jugar y auditar.
Construí un juego público de punta a punta: time-trial en Unity WebGL contra el ghost del récord de la pista, con un backend en Workers que valida cada tiempo por cotas, con idempotencia y rate limiting en Durable Objects.
Un demo jugable desde el enlace, un leaderboard en vivo por WebSocket y el repo de la API abierto donde el criterio se puede auditar commit a commit.

Vehículo arcade con suspensión por raycast, grabación de trails cuantizados y reproducción del ghost del récord, en seis assemblies con dependencias dirigidas.

No es «sé Unity» ni «sé backend» cada uno por su lado: es un cliente de juego en tiempo real sostenido por el mismo tipo de infraestructura de servidor que ya opero en producción. El demo tiene que hacer visible esa combinación en menos de 60 segundos para quien abra el link.
El juego es deliberadamente simple; la profundidad está en el pipeline. Abres el link y ya estás corriendo, sin instalar nada. Con jugar un minuto ya viste de qué va el proyecto.
Los endpoints son públicos y el payload se lee en el bundle de JavaScript: cualquiera puede saltarse el juego y llamar la API con datos fabricados. No prometo un anti-cheat perfecto; prometo decir con claridad qué cubre y qué no.
Idempotencia dentro de un Durable Object, rate limiting, validación server-side, observabilidad. La misma garantía que da el lock distribuido en Redis de Mecánica MX, con otra tecnología debajo: el patrón se transfiere, la infraestructura no.
10 muestras por segundo de posición, yaw y velocidad — suficiente para reconstruir el ritmo real de la vuelta sin guardar más que un puñado de KB por run.
Serious game de laboratorio · VR y PC · tutorial, quests y fail-state