Разработка многопользовательской онлайн-игры Змейка
Цель проекта - создание кастомной браузерной многопользовательской игры в реальном времени, вдохновлённой механикой классических .io-игр. На первом этапе необходимо разработать минимально жизнеспособный продукт (MVP) - одну стабильную игровую комнату, способную поддерживать до 100 одновременных игроков без лагов.
Технический стек и требования
Клиентская часть (Frontend)
- Язык: JavaScript или TypeScript.
- Отрисовка графики: Canvas или WebGL (для высокой производительности и качественной графики, характерной для .io-игр).
- Кросс-платформенность: Поддержка современных десктопных браузеров (Chrome, Firefox, Edge) и мобильных устройств (управление касанием).
Серверная часть и сетевое взаимодействие (Backend)
- Сервер: Node.js.
- Realtime-взаимодействие: WebSocket (реализация через socket.io или чистые WebSocket).
- Задачи сервера: Хранение состояния игровой комнаты в памяти, обработка игровой логики (движение змей, сбор еды, коллизии), рассылка обновлений всем подключённым клиентам.
Инфраструктура и деплой
- Стартовый сервер: Один VPS (конфигурация 2-4 vCPU, 4-8 GB RAM), расположенный в дата-центре с низким пингом (30-80 мс) для целевой аудитории.
- Архитектура: Игровой сервер - stateless, состояние хранится в памяти. На первом этапе база данных не требуется.
- Масштабирование (перспектива): Горизонтальное - развёртывание отдельных игровых серверов по регионам (EU/US/ASIA). Статика (фронтенд) будет обслуживаться через CDN.
- Деплой: Использование Docker на Linux-сервере.
Задачи на первый этап (MVP)
- Создание базового игрового клиента с отрисовкой игрового поля, змей игроков и еды.
- Разработка игрового сервера, обрабатывающего подключения по WebSocket, основную игровую механику и синхронизацию состояния между всеми игроками в комнате.
- Обеспечение стабильной работы одной игровой комнаты с онлайн до 100 человек без заметных задержек (лагов).
- Реализация базового управления как с клавиатуры/мыши, так и с сенсорного экрана.
Требования к специалистам
Ищем разработчиков со следующими компетенциями:
- Frontend-разработчик: Опыт работы с JS/TS, Canvas/WebGL, оптимизация графики для браузера.
- Backend-разработчик: Глубокие знания Node.js, опыт работы с WebSocket (socket.io), понимание сетевой синхронизации в реальном времени.
- DevOps/Системный администратор: Опыт развёртывания приложений на VPS, настройки Docker, мониторинга сетевой задержки и производительности.