Sobre el proyecto
BoardGames es una aplicación web completamente funcional para jugar juegos de mesa multijugador en tiempo real, y también sirve como ejemplo de ActualLab.Fusion. Funciona con .NET 10, ASP.NET Core con Blazor Server y WebAssembly, EF Core y Blazorise. Hay una demostración en vivo disponible en boardgames.actuallab.net.
El proyecto se genera y se mantiene actualizado con Claude Code, y el registro completo de interacción se almacena en docs/ai-sessions/.
Características implementadas:
- Cinco juegos: Gomoku, Tres en Raya, Conecta Cuatro, Reversi y Piedra-Papel-Tijeras, con una API base común para añadir nuevos juegos.
- Lobby de juegos para seguir los juegos en los que participas, explorar juegos abiertos y unirte a ellos.
- Chat del juego con menciones, utilizando un analizador de mensajes extensible y un renderizador modular.
- Seguimiento del estado en línea/fuera de línea de los usuarios, mostrado en cada insignia de usuario.
- Página de perfil de usuario para editar tu nombre, añadir cuentas de Microsoft/GitHub, ver sesiones del navegador, cerrar sesiones o cerrar sesión en todas partes.
- Persistencia completa del estado en cualquier base de datos compatible con EF Core.
- Fusion RPC sobre WebSockets para el modo Blazor WebAssembly.
El ejemplo admite tanto el modo Blazor Server como Blazor WebAssembly. La sincronización de estado en tiempo real funciona en toda la aplicación; al abrirla en dos navegadores con cuentas diferentes, puedes ver cómo las listas de juegos, los movimientos, los mensajes de chat y los cambios de nombre de usuario se actualizan en vivo.
La versión en vivo se ejecuta en una única máquina virtual Arm de nivel gratuito en Oracle Cloud, compartiendo el host con otros ejemplos de Fusion. Un contenedor Caddy gestiona TLS y hace de proxy inverso para los subdominios, con Cloudflare delante. PostgreSQL se ejecuta en Docker con los datos persistidos en una carpeta del host, y las migraciones de EF Core se aplican al iniciar. La pila utiliza Docker Compose y se redespliega automáticamente mediante un temporizador de systemd que consulta la rama main, sin servicios de CI/CD ni webhooks.
El README señala que las actualizaciones en tiempo real requirieron solo unas 50 líneas adicionales de código, principalmente lógica de invalidación. El autor afirma que la aplicación fue construida en solitario en 9 días. Para más información sobre Fusion, consulta el repositorio de Fusion y sus otros ejemplos, o únete al servidor de Discord. Los errores se pueden reportar a través de issues de GitHub.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.