← Путь
2001 · BASIC, Pascal и олимпиады

Doom RF

Сделал за две недели в подарок однокласснику на день рождения, потом почти год дорабатывал: 4 игрока за одним компьютером плюс 8 ботов на вейпоинтах, редактор уровней и трюк с переключением банков, чтобы рисовать 640×480 за пределами 64-килобайтного окна видеопамяти. В 2026 портировал на 64 бита и SDL2, добавил звук и выпустил как полноценный релиз.

Borland PascalFree PascalSDL2

Картинки

С моего первого сайта

27.02.2001 я начал делать и за 2 недели я сделал игру Doom RF как подарок на день рождения однокласснику по просьбе двух других одноклассников. С тех пор я верил, что если проект начать 28 февраля, то он будет успешным.

За основу были взяты ресурсы из WAD-файла от игры Doom 2D. Doom RF дорабатывался почти год. Видеодвижок: 320x200 256 цветов. Была разработкана технология предобработки для спрайтов с прозрачностью: спрайт делится на полоски, каждая их которых быстрым mrmcopy записывается в видеопамять.

Далее я почти год улучшал игру. Самое привлекательное улучшение - это переход на Free Pascal, который генерировал более эффективны код, что давало многократный прирост произвоительности по сравнению с версией на Borland Pascal. BP также имел неприятный лимит в 64Kb на размер модуля программы.

Также Free Pascal умел рисовать в разрешении 640x480 в 256 цветах. PutPixel работал медленно, а прямой доступ к видео памяти позволял заполнять только верхние 64K экрана (около 20%). Но я придумал комбинированное решение - использовать PutPixel для переключения банков памяти. То есть, делается один PutPixel и дальше буфер записывается в видеопамять обычным MemCopy.

В игре было:

- Мультиплейер 4-х игроков на одном компьютере + 8 ботов.

- Телепорты

- Боты на вейпоинтах

- Заставки между уровнями

- Редактор уровней

В эту игру играли все курсы Progmeistars и половина Золика. Эта игра помещалась на одну дискету, и поэтому легко размножалась в замкнутом пространстве прямо на глазах преподавателей :))).

Требования:

OS: DOS/Windows 98