프로젝트 소개
BoardGames는 실시간 멀티플레이어 보드 게임을 즐길 수 있는 완전한 기능의 웹 앱이며, ActualLab.Fusion의 샘플로도 사용됩니다. .NET 10, ASP.NET Core와 Blazor Server 및 WebAssembly, EF Core, Blazorise에서 실행됩니다. 라이브 데모는 boardgames.actuallab.net에서 이용할 수 있습니다.
이 프로젝트는 Claude Code로 생성되고 최신 상태로 유지되며, 전체 상호작용 로그는 docs/ai-sessions/에 저장됩니다.
구현된 기능:
- 다섯 가지 게임: 오목, 틱택토, 커넥트 포, 리버시, 가위바위보가 있으며, 새 게임을 추가하기 위한 공통 기본 API가 있습니다.
- 참여 중인 게임을 추적하고, 열린 게임을 탐색하고 참여할 수 있는 게임 로비.
- 확장 가능한 메시지 파서와 모듈식 렌더러를 사용하는 멘션 기능이 있는 게임 채팅.
- 모든 사용자 배지에 표시되는 사용자 온라인/오프라인 상태 추적.
- 이름을 편집하고, Microsoft/GitHub 계정을 추가하고, 브라우저 세션을 확인하고, 세션을 강제 종료하거나 모든 곳에서 로그아웃할 수 있는 사용자 프로필 페이지.
- EF Core가 지원하는 모든 데이터베이스에 대한 전체 상태 저장.
- Blazor WebAssembly 모드를 위한 WebSocket 기반 Fusion RPC.
이 샘플은 Blazor Server와 Blazor WebAssembly 모드를 모두 지원합니다. 실시간 상태 동기화는 앱 전체에서 작동합니다. 서로 다른 계정으로 두 브라우저에서 열면 게임 목록, 이동, 채팅 메시지, 사용자 이름 변경이 실시간으로 업데이트되는 것을 볼 수 있습니다.
라이브 버전은 Oracle Cloud의 무료 티어 Arm VM 한 대에서 실행되며, 다른 Fusion 샘플과 호스트를 공유합니다. Caddy 컨테이너가 TLS를 처리하고 하위 도메인을 리버스 프록시하며, 앞단에는 Cloudflare가 있습니다. PostgreSQL은 Docker에서 실행되고 데이터는 호스트 폴더에 유지되며, EF Core 마이그레이션은 시작 시 적용됩니다. 스택은 Docker Compose를 사용하고 systemd 타이머가 main을 폴링하여 자동 재배포하며, CI/CD 서비스나 웹훅은 사용하지 않습니다.
README에 따르면 실시간 업데이트에는 약 50줄의 추가 코드만 필요했으며, 대부분 무효화 로직이었습니다. 작성자는 이 앱을 9일 만에 혼자 구축했다고 밝혔습니다. Fusion에 대한 자세한 내용은 Fusion 저장소와 다른 샘플을 참조하거나 Discord 서버에 참여하세요. 버그는 GitHub 이슈를 통해 보고할 수 있습니다.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.