Об этом проекте
singedTerra — это браузерная пошаговая артиллерийская игра, написанная с нуля на TypeScript и созданная как оммаж игре Wendell Hicken Scorched Earth (1991). В ней сохранен классический игровой цикл: выбор угла, учет ветра, установка мощности и выстрел, при этом ландшафт фиксирует все последствия. Игра доступна для 2–4 игроков в режиме hot-seat в одном браузере или онлайн через публичные и приватные комнаты Supabase.
Основные механики. Ландшафт представляет собой попиксельный битмап: взрывы пробивают реальные дыры, неопоры обваливаются, танки скатываются в кратеры, а оружие земляного типа позволяет создавать новые укрытия. Каждый раунд имеет seed, а каждый ход получает детерминированный вектор ветра, поэтому все клиенты вычисляют одну и ту же траекторию полета. Шестнадцать видов оружия включают прямой огонь, воздушные разрывы, прыгающие снаряды, напалм, строительство ландшафта, туннелирование и защиту. Передвижение расходует топливо, а за нанесенный урон начисляются кредиты, которые в многораундовых матчах нужно распределять между боеприпасами, щитами, батареями и топливом. Визуальное оформление включает авторские танки, поле боя в сумерках, баллистические приборы, освещение от ударов, тряску экрана и синтезированный звук.
Гараж танков. Для каждого места предусмотрен Гараж: игроки начинают с шасси Foundry, Ranger, Bulwark или Jackal и комбинируют детали мобильности, корпуса, башни и ствола в кастомный силуэт, который отображается в предпросмотре состава команд и переносится в матч.
Режимы и сетевой код. Управляемые компьютером места используют ту же детерминированную физику, что и люди; режимы hot-seat и онлайн не имеют различий в физическом движке. Hot-seat запускает общий движок напрямую в браузере через HotSeatClient. Для онлайн-игры каждый браузер запускает свою копию того же движка: Supabase валидирует действия в комнате, присваивает порядковые номера, хранит упорядоченный лог и транслирует подтвержденные строки через Realtime. Канонический онлайн-матч представляет собой seed и упорядоченный лог действий; состояние игры восстанавливается локально, а не стримится с сервера, что делает фиксированные временные шаги, seed-рандом и идентичность реплеев частью контракта разработки.
Управление. Стрелки настраивают ствол и мощность; A и D отвечают за движение и расход топлива; Q переключает выбранное оружие; Space или Enter производят выстрел или активируют щит; G переключает подсказки траектории; M выключает или включает синтезированный звук; удержание F ускоряет текущий выстрел локально. Сенсорные раскладки заменяют клавиатуру групповой панелью команд (Aim, Power, Drive), в то время как Weapon и Menu служат утилитами, а Fire, Store, fuel и Arsenal остаются на тактической панели. На десктопе перетаскивание курсора от активного танка задает угол и мощность без выстрела.
Запуск и проверка. Проект требует Node 24.15 или новее (линия Node 24 LTS) и npm; выполнение npm install, а затем npm run dev запускает Vite-клиент на localhost:5173, при этом для hot-seat не требуется настройка бэкенда. Для онлайн-игры в client/.env необходимы VITE_SUPABASE_URL и VITE_SUPABASE_ANON_KEY; anon-ключ предназначен для публичного клиента, а Row-Level Security и валидация Edge Function защищают данные на стороне сервера. Команды проверки включают npm run check (проверка типов и детерминированного движка), npm run test:client (тесты Vitest и DOM), npm run check:edge (тесты Deno для Supabase Edge Functions), npm run test:e2e (проверки макета и геймплея в Chromium) и npm run build. CI запускает те же проверки для каждого pull request, а изменения в shared/src/engine/ должны сохранять детерминизм реплеев.
Структура репозитория и документация. client/ содержит Vite-приложение, Canvas-рендеры, HTML-HUD, ввод и лобби; shared/ содержит детерминированный движок, логику реплеев и общие типы; supabase/ содержит миграции Postgres и stateless-рефери Edge Function; scripts/checks/ содержит тесты детерминизма движка; e2e/ содержит проверки геймплея и макета в продакшн-браузере; docs/ содержит записи для игроков, архитектуру, документацию по разработке и проекту. Документация охватывает игровой процесс, архитектуру, эксплуатацию, систему UI и текущую спецификацию. Проект выпущен под лицензией MIT и не связан с авторами оригинальной Scorched Earth и не одобрен ими.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.