Скриншот геймплея КРИПТА — коридор ангара, враг впереди, HUD с монетами и здоровьем

дневник разработки · браузерная игра

Подземелье не прощает ошибок

КРИПТА — шутер от первого лица в духе Doom девяностых, полностью написанный на JavaScript и Canvas. Один HTML-файл. Без движка, без сборки, без единой внешней библиотеки для рендера.

О проекте

Игрок спускается через логово тварей, отстреливаясь от врагов ближнего и дальнего боя, и тратит добытые монеты в лавке апгрейдов между уровнями. Каждый спуск — это гонка на выживание: чем глубже, тем плотнее засады и тем злее враги.

Технически всё держится на raycasting — той самой технике, которая в 1992 году лежала в основе Wolfenstein 3D. Никакого WebGL и трёхмерных движков: трёхмерность на экране — иллюзия, построенная из вертикальных полос и математики лучей, пересчитываемой заново на каждом кадре.

4уровня подземелья
1HTML-файл целиком
0внешних библиотек рендера
1босс в финале

Как это устроено

Ни сборщика, ни npm, ни подключаемых фреймворков — вся игра открывается двойным щелчком по файлу.

Скриншоты

Титульный экран игры КРИПТА с описанием управления
Титульный экран — управление показано сразу, без отдельного обучающего уровня
Геймплей: первый уровень Ангар, враг в коридоре
Первый уровень, «Ангар» — враг ближнего боя перекрывает проход

Уровни

Управление

WASD
движение
Мышь
обзор (Pointer Lock)
ЛКМ / Пробел
выстрел
Esc
пауза
Мобильные
джойстик слева, свайп-прицел справа, кнопка огня

Об авторе

Пишу браузерные игры в свободное время, с одним и тем же правилом: каждая должна умещаться в один HTML-файл, без сборки и внешних зависимостей. До КРИПТЫ были аркадный боец ROBO ARENA и его продолжение MECH BRAWL с посегментным разрушением частей тела роботов — обе тоже на чистом Canvas и JavaScript.