Sobre o projeto
BoardGames é um aplicativo web totalmente funcional para jogar jogos de tabuleiro multiplayer em tempo real, servindo também como exemplo para o ActualLab.Fusion. Ele roda em .NET 10, ASP.NET Core com Blazor Server e WebAssembly, EF Core e Blazorise. Uma demonstração ao vivo está disponível em boardgames.actuallab.net.
O projeto é gerado e mantido atualizado com Claude Code, e o registro completo das interações está armazenado em docs/ai-sessions/.
Recursos implementados:
- Cinco jogos: Gomoku, Jogo da Velha, Lig4, Reversi e Pedra-Papel-Tesoura, com uma API base comum para adicionar novos jogos.
- Lobby de jogos para acompanhar partidas em que você participa, navegar por jogos abertos e entrar neles.
- Chat do jogo com menções, usando um analisador de mensagens extensível e um renderizador modular.
- Rastreamento de status online/offline do usuário, exibido em cada selo de usuário.
- Página de perfil do usuário para editar seu nome, adicionar contas Microsoft/GitHub, visualizar sessões do navegador, encerrar sessões ou sair de todos os lugares.
- Persistência completa de estado em qualquer banco de dados compatível com EF Core.
- RPC Fusion sobre WebSockets para o modo Blazor WebAssembly.
O exemplo suporta tanto o modo Blazor Server quanto o Blazor WebAssembly. A sincronização de estado em tempo real funciona em todo o aplicativo; abri-lo em dois navegadores com contas diferentes permite ver listas de jogos, movimentos, mensagens de chat e alterações de nome de usuário atualizadas ao vivo.
A versão ao vivo roda em uma única VM Arm de nível gratuito na Oracle Cloud, compartilhando o host com outros exemplos do Fusion. Um contêiner Caddy lida com TLS e faz proxy reverso de subdomínios, com Cloudflare na frente. O PostgreSQL roda em Docker com dados persistidos em uma pasta do host, e as migrações do EF Core são aplicadas na inicialização. A pilha usa Docker Compose e é reimplantada automaticamente por um temporizador systemd que consulta o branch main, sem serviços de CI/CD ou webhooks.
O README observa que as atualizações em tempo real exigiram apenas cerca de 50 linhas extras de código, principalmente lógica de invalidação. O autor afirma que o aplicativo foi construído individualmente em 9 dias. Para mais sobre o Fusion, veja o repositório do Fusion e seus outros exemplos, ou entre no servidor Discord. Bugs podem ser relatados via issues do GitHub.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.