Skip to content

sit-itmo/DoomBF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DoomBF

На связи Мастерская системного программирования ИТМО

Идея: собрать Doom и запустить его поверх Brainfuck. Мы используем оригинальный исходный код Doom, компилируем его в Brainfuck, а затем исполняем BF‑код в собственной среде.

DoomBF banner

Репозиторий: https://github.com/sit-itmo/DoomBF

Проект является совместным творчеством группы энтузиастов в рамках студенческого сообщества ФБИТ ИТМО.

Статус проекта

Прототипирование активно идёт: уже есть рабочие заготовки, среда для Windows и первые результаты.

Что уже сделано

  1. Оснастка для Windows: система сборки, скрипты и утилиты — собирается и тестируется.
  2. Взят оригинальный код Doom и добавлена С‑обвязка CrtDoom, которая сводит API к двум функциям (см. doom_env.h).
  3. Реализация внешней среды для CrtDoom под Windows — win_doom.cработает.
  4. Заготовки реализаций среды для Linux (lnx_doom.c) и macOS (mac_doom.m) — пока не подключены к скриптам сборки.
  5. Добавлен оригинальный код tcc; сейчас он используется для сборки Doom‑кода (без модификаций).
  6. Написаны два интерпретатора Brainfuck на C; ведётся серьёзная работа по оптимизациям.
  7. Подготовлен ряд примеров на Brainfuck — в папке b (спасибо за развитие примеров и добавление варианта JMP).

Актуальные задачи (Roadmap)

  • Исправить структуру проекта: добавить каталоги frontend/, crt/, tests/.
  • Починить скрипты/сборку для поддержки Linux‑среды.
  • Починить скрипты/сборку для поддержки macOS‑среды.
  • Добавить новую платформу в tcc для генерации .b‑кода.
  • Расширить примеры и тесты BF в папке b/: математика, битовые операции, стек, call/jmp, и др.
  • Добавить soft‑float реализацию на C (поддержка float) и интегрировать в tcc (предварительно).
  • Продолжить работу над BF‑интерпретаторами (оптимизации на усмотрение авторов).

Быстрый старт (Windows)

Требуется:

  • CMake
  • Компилятор из Visual Studio (или совместимый) — только для сборки tcc.

Для Windows

Сборка и запуск:

> build.cmd
> cd bin
> mini_doom.exe

Запуск тестов BF:

> cd test
> bench.cmd

Для Linux

Предварительно надо установить X11 SDK. Для Debian/ubuntu:

$ sudo apt-get update
$ sudo apt-get install libx11-dev

Далее для сборки в Linux:

$ ./build.sh
$ cd bin
$ ./mini_doom

Запуск тестов BF в Linux:

$ cd test
$ ./bench.sh

Планы по кроссплатформенности

Цель — поддержка Windows / Linux / macOS. Linux и macOS в стадии интеграции окружений (lnx_doom.c, mac_doom.m) и допила скриптов.

Как поучаствовать

Присоединяйтесь к обсуждению и обратной связи: https://t.me/itmosysint

Зачем это всё?

Эзотерические языки программирования — любопытны и трудны для человека; мы исследуем их потенциал на практике и хотим довести до играбельного результата хотя бы одну легендарную игру на одном из самых «жёстких» языков.

Команда

Авторы (по алфавиту):

  • Александр Кравченко
  • Александр Суров
  • Алексей Никольский
  • Виталий
  • Иван Сакаев

Полезные ссылки

Лицензия

Код публичный: использовать/скачивать/модифицировать — свободно. (При необходимости добавим отдельный LICENSE.)