«Последний Свет» (Last Light) — кроссплатформенный 2D survival-шутер, разработанный с нуля на Vanilla JavaScript (ES6+) и HTML5 Canvas. Проект создавался как демонстрация сильной игровой архитектуры, работы с нативными веб-технологиями и умения собирать полноценный игровой продукт без тяжеловесных движков вроде Unity или Phaser.
Ключевые технические особенности:
Игра построена на собственном canvas-рендере: боевые сцены, противники, окружение, эффекты, снаряды, зоны, погода и визуальные состояния отрисовываются в реальном времени. В проекте реализованы 24 героя, 16 типов противников, 3 карты и боссы, появляющиеся циклом каждые 3 волны. Звуки и музыкальные эффекты генерируются через Web Audio API: осцилляторы, шумовые буферы, фильтры и динамические огибающие. Для поведения врагов используется собственный 8-направленный BFS pathfinding, позволяющий обходить стены и препятствия, а не просто двигаться напрямую к игроку.
Игровой процесс и мета-прогрессия:
Помимо survival-геймплея, в игре реализован полноценный хаб прогрессии из 5 вкладок: Ангар, Кейсы, Испытания, Коллекция и Рекорды. Игрок открывает героев через кейсы, получает пассивные преимущества, зарабатывает алмазы и призмы, проходит испытания, повышает мастерство героев и заполняет энциклопедию врагов, боссов, карт и статусов. В экономике есть 3 типа кейсов: геройский, пассивный и призматический, с редкостями, случайными наградами и компенсацией за дубликаты.
Результат:
Более 14 000 строк JS/CSS, модульная архитектура, Vanilla JS gameplay без игрового движка, адаптивный интерфейс, localStorage-сохранения, сенсорное dual-stick управление и сборка Android APK через Capacitor. Проект вырос из аркадного survival-прототипа в полноценную мини-игру с боевой системой, мета-прогрессией, коллекцией, достижениями и мобильной готовностью.