Two Players
Una plataforma web para jugar juegos combinatorios clásicos en línea, con soporte para múltiples juegos, sistema de salas y chat en tiempo real.
Por Qué Lo Construí
Mientras exploraba Wikipedia me topé al azar con la página de teoría de juegos combinatorios y me pareció muy interesante. Conseguí Lessons in Play basándome en las recomendaciones, y en el primer capítulo me decía que jugara algunas partidas de Domineering con un amigo primero. Sin embargo, no tenía fichas de dominó ni un tablero para jugar, y buscando en línea no encontré ningún lugar para jugar estos juegos combinatorios clásicos… Así que construí uno. Este proyecto se convirtió en mi manera de explorar tanto la teoría de juegos como el desarrollo full-stack, y ahora hay una plataforma donde cualquiera puede jugar estos juegos con amigos en línea ^^
¡Juega aquí!: https://two-players.org
Características
- Múltiples juegos: Tic-Tac-Toe, Domineering, Dots and Boxes, y más
- Juego en tiempo real con WebSockets
- Chat en el juego para comunicarte con tu oponente
- Sistema de revancha para jugar múltiples rondas
- Interfaz moderna y responsiva con diseño limpio
Stack Tecnológico
- Backend: Go, PostgreSQL, WebSockets, sqlc, go-migrate
- Frontend: SvelteKit, TypeScript, TailwindCSS, Bun
Qué Aprendí
- Arquitectura en Tiempo Real: Implementé un sistema pub/sub basado en WebSockets con patrón de goroutine por cliente, manejando conexiones concurrentes con guardas mutex y colas de canales no bloqueantes
- Sistema de Juegos Modular: Diseñé una arquitectura de juegos extensible usando patrón factory e interfaces, permitiendo agregar nuevos juegos fácilmente
- Gestión de Estado Concurrente: Construí un sistema de salas thread safe con carga diferida y limpieza automática de conexiones inactivas
- Integración de Base de Datos: Gestioné migraciones de esquema con
go-migratey generé consultas type-safe usandosqlc - Desarrollo Frontend Moderno: Creé una UI reactiva con componentes de SvelteKit y TailwindCSS, implementando sincronización de estado en tiempo real
- Despliegue en Producción: Desplegué la aplicación fullstack en un VPS, gestionando servicios de Linux y base de datos PostgreSQL
Enlaces
Últimos Proyectos
-
Two Players
Una plataforma web para jugar juegos combinatorios clásicos en línea, con soporte para múltiples juegos, sistema de salas y chat en tiempo real.
-
¡Este sitio!
Mi sitio web personal. Un sitio estático simple y rápido que sirve como mi portafolio digital y blog.
-
hntui
Un pequeño cliente TUI de Hacker News hecho mientras aprendía Go para el desarrollo de CLI/TUI con Bubble Tea.
Últimos Posts
Estadísticas
- Visitas: ...
- Tiempo pasado: 0s
- Estadísticas completas: View dashboard →