???????? ??????-??????: Tetris, Snake ? Minesweeper ? co-op ? versus
  • TypeScript 71.6%
  • CSS 25.1%
  • JavaScript 1.7%
  • HTML 1.3%
  • PowerShell 0.2%
Find a file
Serjik 222a748a62
All checks were successful
verify / test (push) Successful in 1m28s
verify / deploy (push) Successful in 42s
feat: expand social arcade experience
2026-08-01 11:25:42 +03:00
.forgejo/workflows add talos automatic deployment 2026-07-26 19:43:48 +03:00
k8s add talos automatic deployment 2026-07-26 19:43:48 +03:00
public Rebuild home as immersive arcade diorama 2026-07-23 23:05:15 +03:00
scripts feat: expand social arcade experience 2026-08-01 11:25:42 +03:00
server feat: expand social arcade experience 2026-08-01 11:25:42 +03:00
src feat: expand social arcade experience 2026-08-01 11:25:42 +03:00
.dockerignore Add arcade collections social events and service tricks 2026-07-23 16:31:05 +03:00
.env.example fix: keep multiplayer rooms alive and fit game viewport 2026-07-24 20:06:41 +03:00
.gitignore Add arcade collections social events and service tricks 2026-07-23 16:31:05 +03:00
AGENTS.md Rebuild arcade scene and improve multiplayer Tetris 2026-07-24 18:14:06 +03:00
Dockerfile feat: harden arcade platform for production 2026-07-15 12:19:31 +03:00
ENTERPRISE_ARCHITECTURE.md feat: harden arcade platform for production 2026-07-15 12:19:31 +03:00
GAME_ROADMAP.md feat: expand arcade to eleven online games 2026-07-14 15:13:33 +03:00
ideas.md Add arcade collections social events and service tricks 2026-07-23 16:31:05 +03:00
index.html Upgrade arcade experience and retro cabinet UI 2026-07-21 18:22:12 +03:00
package.json feat: add scalable multiplayer spectators 2026-07-24 19:43:58 +03:00
pnpm-lock.yaml Rebuild arcade scene and improve multiplayer Tetris 2026-07-24 18:14:06 +03:00
pnpm-workspace.yaml feat: launch SERJIK.ARCADE multiplayer games platform 2026-07-14 14:32:17 +03:00
README.md feat: harden arcade platform for production 2026-07-15 12:19:31 +03:00
tsconfig.json feat: launch SERJIK.ARCADE multiplayer games platform 2026-07-14 14:32:17 +03:00
tsconfig.server.json feat: launch SERJIK.ARCADE multiplayer games platform 2026-07-14 14:32:17 +03:00
vite.config.ts Rebuild arcade scene and improve multiplayer Tetris 2026-07-24 18:14:06 +03:00

SERJIK.ARCADE

Домашняя онлайн-аркада с 11 играми: Тетрис, Змейка, Сапёр, Pong, Четыре в ряд, Морской бой, 2048 Duel, Bomber Arena, Neon Trails, Танчики и Asteroids. Есть аккаунты, рекорды, комнаты по коду, co-op и versus-сессии через WebSocket.

Игровые поля Tetris и Snake отрисовываются на Canvas через requestAnimationFrame: React отвечает только за меню и статистику. Tetris поддерживает ghost-piece, next, hold и hard drop; в Snake еда никогда не появляется внутри змейки; Minesweeper гарантирует безопасный первый ход и три сложности.

Локальный запуск

pnpm install
pnpm dev

Клиент откроется на http://localhost:5173, API — на http://localhost:3000.

Продакшен

docker build -t harbor.serjiksgr.ru/arcade/serjik-arcade:TAG .
docker push harbor.serjiksgr.ru/arcade/serjik-arcade:TAG
.\scripts\deploy.ps1 -Tag TAG

Приложение публикуется по адресу https://games.serjiklife.com. SQLite хранится в PVC arcade-data; deployment намеренно имеет одну реплику, потому что realtime-комнаты живут в памяти процесса.

План расширения каталога находится в GAME_ROADMAP.md.

Целевая архитектура для глобального масштабирования, security baseline и этапы перехода с SQLite на PostgreSQL/Redis описаны в ENTERPRISE_ARCHITECTURE.md.

Выдача ролей

Роль хранится только в базе данных. После сборки оператор сервера может назначить администратора без констант в коде:

pnpm admin:set-role -- --username serjik --role admin

В Kubernetes та же команда запускается внутри приложения с доступом к его persistent volume:

kubectl exec -n arcade deploy/serjik-arcade -- node dist-server/admin-cli.js set-role --username serjik --role admin

Допустимые роли: user, moderator, admin. Изменения записываются в operator_audit; снять роль у последнего администратора нельзя.