Doom в браузере на чистом TypeScript
Представляю завершённый pet-проект — порт движка Doom 1/2, полностью переписанный с нуля
Это не запуск через DOSBox и не WebAssembly-обёртка.
Движок реализован как честный software rendering на TypeScript и работает прямо в браузере, отрисовывая каждый пиксель на 2D Canvas — по тем же принципам, что и в 1993 году. При написании я опирался на исходники оригинального Doom (https://github.com/id-Software/DOOM)
Проект начался как эксперимент и в итоге вырос в полноценную реализацию. Значительная часть работы выполнялась с использованием ИИ Claude, при этом вся разработка заняла около трёх недель. Опыт в разработке и ИТ с 2003 года позволил сохранять полный контроль над процессом, так как проект несмотря на наличие исходников весьма не простой и требовал много внимания к архитектуре и деталям, по факту ничего нельзя пропустить и оставить без внимания
Игра использует оригинальные ассеты работая напрямую с WAD файлами
При этом добавил пару доработок (все настраиваются в меню Options):
TrueColor
Полноценный цвет без ограничений палитры в 256 цветов
Динамическое освещение
Источники света, которых не было в оригинальной игре
Поддержка высоких разрешений
Без привязки к 320×200 — можно запускать в любом разрешении. Правда если поставить боль 960х600 то браузер уже тяжелее справляется и выдать стабильные 30 FPS ему сложнее
Freelook (свободный обзор)
Можно смотреть вверх и вниз.
При включении freelook отключается автоаим и стрельба идёт строго по перекрестию. За то теперь можно стрелять из окна куда раньше аим не видел противников
Мобильное управление
Не самая сильная сторона, доделывал в последнюю очередь по запросу друзей, но работает и даже можно пройти игру
Полноэкранный режим в мобильной версии
Кнопка FS включает fullscreen с блокировкой ориентации в горизонтальный режим и скрытием интерфейса браузера
Поддержка широких экранов
Рендеринг занимает всю доступную область экрана, включая widescreen-форматы
Проект можно попробовать здесь:
https://doom.kabloo.ru
Буду рад обратной связи и замечаниям 👍
PS: Позже выложу исходники в открытый доступ для всех желающих
DOOMbaby
DOOM baby
Нарисовала для себя сегодня новый арт, скоро ДР все же)
Рисовальный процесс пока только на Твиче, скоро появится и на Ютубе.
Прошлогодний арт неожиданно стал интро для персонажа DOOM baby в новом нашумевшем моде для Дума. Когда у меня спрашивали, можно ли использовать для мода к DOOM 2 я и представить не могла, что все это выльется в персонажа.
Здравствуйте, DOOM baby - это я, и это самый сложный перс в моде "DOOM 3", потому что стартует с лоу хп (впрочем именно так я обычно играю в DOOM, забавное совпадение). Сам мод еще не тестила, планирую засесть в начале ноября на стримах. Можешь составить компанию, ессесно буду самой собой в игре :)
(не)смешные (не)анекдоты
Анекдоты и Анегдоты и Афоризмы и Мудрости
хрен да душа-одна наша-а
говорят о мужчине женщины с дополнением
человек постоянно на движении, но не за наркоту - реальный пацан
жизнь смертельная болезнь передающаяся половым путем
(жизнь смертельная венерическая болезнь)
на заборе хрен - а там дрова
Убивает не стрелок, убивает - страх
мудрость войны
Хлопок одной ладонью
дзен притча-задание-осознание
Одна нога здесь, а другая там
о перемещении в пространстве
мое
обвинение в убийстве каменным хлебом
атом поднимется и набьет тебе морду(надерет зад)(колобок)
был рама, а теперь ты пластиковый(масло)
авторские за квадрат малевича
аигенерэйтедбрежнев
Главное не размер, а ввод
Evere(th)sing Connected
Анегдот
Раньше Цвет Нации
Потом кухонный интеллегент
Теперь диванный аналитег
Штирлиц все стрелял и стрелял в Бормана
Борман все не падал и не падал
«IDDQD», — подумал Штирлиц
«IDKFA», — подумал Борман
притча-задание-осознание
DOOM 2
первый этап отрисовала)










