vibecoded
#023 ·

Cosmos

Вертикальный космический шутер в браузере — с геймпадом, боссами и ангаром

собран за 3 дня·Claude CodeThree.jsTypeScript
Открыть продукт ↗
Первый уровень Cosmos: серебристый истребитель «Сокол» под голубым щитом внизу экрана стреляет сдвоенными белыми лучами вверх на фоне фиолетово-розовой туманности и яркой галактики, слева HUD — полоски корпуса и щита, счётчик бомб и заряд боевого дрона

Классический shoot 'em up с видом сверху, только не в пиксель-арте, а в 3D: корабли с бронёй и соплами, фон в духе снимков Хаббла. Шесть уровней, в конце каждого — босс, за победу дают монеты, их тратишь в ангаре на прокачку и новые корабли. Играется прямо в браузере, без установки.

Что делает

Уровни идут от «Пояса Кеплера» до «Горизонта событий»: волны разведчиков, роёв, камикадзе и минёров, затем босс — крейсер, станция, дредноут, авианосец. Кораблей три, у каждого своя ветка прокачки и своё особое оружие: боевой дрон, рывок или лазер. Волны собираются заново на каждый заход по бюджету угрозы, поэтому один и тот же уровень не повторяется кадр в кадр. Прогресс сохраняется в браузере.

Как устроено

Three.js и TypeScript, игровой цикл с фиксированным шагом 60 Гц, поверх рендера — bloom. Одиннадцать моделей кораблей построены Blender-скриптом, сжаты gzip'ом и вшиты прямо в сборку, так что игра — один HTML-файл, который открывается и без сервера. Музыка и звуки не записаны, а синтезируются через Web Audio. Кнопки геймпада привязаны к положению, а не к букве, и переназначаются в настройках. Логику — траектории, волны, экономику, сохранения — покрывают тесты на vitest.

Ограничения

Задумана под геймпад; клавиатура работает, но это запасной вариант. Тач-управления нет, поэтому на телефоне не поиграть — нужен компьютер. Сборка весит около 14 МБ: модели лежат внутри файла, первая загрузка занимает несколько секунд. Сохранения живут в localStorage конкретного браузера, в приватном режиме игра идёт без них.

заметка куратора

Промпт требовал двух вещей: полноценной игры на Bluetooth-геймпаде и «никакого пиксель-арта». Обе выполнены всерьёз — от кнопок, привязанных к положению на ромбе, до моделей, которые собирает Blender-скрипт. Приятно, что всё это уместилось в один HTML-файл: его можно просто переслать и открыть двойным щелчком.

автор · @artps
для автора · бейдж на ваш сайт
запущено на vibecoded.ru
<a href="https://vibecoded.ru/products/cosmos">
  <img src="https://vibecoded.ru/badge.svg" alt="запущено на vibecoded.ru" width="200" height="44">
</a>

Похожие запуски