Что это
Браузерная многопользовательская игра в жанре splix.io: змейка ползает по общему полю 200×140 клеток и закрашивает территорию своим цветом. Вышел за границу — за тобой тянется след; замкнул петлю — всё внутри контура твоё. Пересекли твой след — погиб и потерял всё. Чем наглее заход, тем больше куш и выше риск.
Игровой цикл
Матчи по 5 минут (3000 тиков по 100 мс), комнаты до 16 живых игроков, свободные места добирают 14 ботов с полноценным ИИ: они планируют заходы, оценивают свободное место, считают путь назад и уклоняются от чужих следов. Поверх — бонусы (щит, рывок, «нова»), мутаторы матча, награды за голову, серии убийств, контракты и ежедневки. Валюта «Стиль» тратится в магазине косметики: эффекты захвата, головы, сегменты, шильдики, рамки.
Инженерное
- Сервер: Go 1.22, единственная зависимость —
nhooyr.io/websocket. Без БД: профили в JSON-файле с атомарной записью и HMAC-токенами, состояние матча — в памяти. - Бинарный протокол: 19 типов событий и снапшотов, байтовая раскладка зафиксирована «золотыми» тестами.
- Клиент: vanilla JS + Canvas 2D — без сборщика и фреймворков вообще.
- Прод: Docker multi-stage, nginx, rate-limit по IP, санитайзеры ввода, graceful shutdown, e2e smoke-тесты поверх
httptest.Server.
Стек
Go, WebSocket, Canvas 2D, WebAudio, Docker, nginx.