Об этом проекте
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.
- Fusion RPC через WebSockets для режима Blazor WebAssembly.
Пример поддерживает как режим Blazor Server, так и Blazor WebAssembly. Синхронизация состояния в реальном времени работает во всем приложении; открытие его в двух браузерах с разными учетными записями позволяет увидеть, как списки игр, ходы, сообщения чата и изменения имен пользователей обновляются в реальном времени.
Живая версия работает на одной бесплатной Arm-виртуальной машине в Oracle Cloud, разделяя хост с другими примерами Fusion. Контейнер Caddy обрабатывает TLS и обратное проксирование поддоменов, с Cloudflare впереди. PostgreSQL работает в Docker с данными, сохраняемыми в папку хоста, а миграции EF Core применяются при запуске. Стек использует Docker Compose и автоматически переразвертывается системным таймером systemd, опрашивающим main, без сервисов CI/CD или вебхуков.
В README отмечается, что для обновлений в реальном времени потребовалось всего около 50 дополнительных строк кода, в основном логика инвалидации. Автор утверждает, что приложение было создано в одиночку за 9 дней. Для получения дополнительной информации о Fusion см. репозиторий Fusion и другие его примеры или присоединитесь к серверу Discord. Ошибки можно сообщать через GitHub issues.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.