Мой тур по играм
- суббота, 5 сентября 2026 г. в 00:00:15

Разумеется, в виду имеются старые игры. Игры детства. В какой-то момент, захотелось их вспомнить. Многие скажут, что есть DOS Zone и будут правы, но что может сравниться с тем, чтобы запустить любимую игру у себя на компьютере, локально, пусть даже и внутри Internet-браузера? Ну и сама возможность разобраться, пусть даже и довольно поверхностно, со всеми этими JS-DOS технологиями дорогого стоит.
Начать это увлекательное приключение проще всего с create-dosbox. Тут даже не нужно ничего устанавливать. Просто заходим в Node.js и …
C:\Users\User>npx create-dosbox aladdin ? Enter title of the game to search (e.g. Digger) aladdin ? Please select the game from list Disney's Aladdin Downloading bundle Downloading bundle %: 0.87 remaining bytes: 1774598 ... Downloading bundle %: 100.00 remaining bytes: 0 Creating web-site Well done...

Хотя create-dosbox считается устаревшим, в нём можно найти такие игры как: Lost Vikings, Airborne Ranger, Battle Chess… И всё это будет работать! Самое главное, в каталог _site собирается всё необходимое для запуска игры. Файл bundle.jsdos можно подменить на другой (об этом чуть позже) и будет запускаться другая игра. Можно было бы запускать index.html и напрямую с диска, но тут мешает CORS. Приходится поднимать локальный http-сервер.
Главная проблема create-dosbox - ограниченный список игр. Сами игры можно найти здесь, но как собрать бандл? В этом поможет DOS Zone Game Studio (7-ой версии). Интерфейс максимально простой:

Загружаем zip-файл (именно zip, rar придётся перепаковать). Выбираем запускаемый файл из предложенного списка…

Далее пока ничего не трогаем, просто жмём “Create Archive”:

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

С подменой бандла связан один нюанс. Не разбирался детально как именно js-dos 7 этого добивается, но при первом запуске игра кэшируется в браузере и при последующих загрузках запускается именно она, а не та игра, что содержится в подложенном бандле. Проще всего, взять за правило менять номер порта при каждой замене бандла. Сделать это (под Windows) можно следующей командой:
set PORT=8081 && npm start
В этом месте вскрывается целый пласт незаслуженно забытых игр. Прежде всего, обнаружилась древняя пятнашковая игра Argh!, в четвёртой версии которой нашлись головоломки ранее отсутствовавшие в моей коллекции. Разумеется, они были немедленно добавлены.

Игра Chess Housers показывает, насколько красивой может быть CGA-графика (впрочем, EGA-версия тоже существует).

Ещё один образчик превосходной CGA-графики - La Abadía del Crimen. Игра “Имя розы”, по одноимённому произведению Умберто Эко. Поиграть можно здесь. К сожалению, игра доступна только на испанском языке.

Huang-di - ещё одна игра для полиглотов. Симулятор жизни Жёлтого императора доступен по правой кнопке мыши, после прохождения небольшого экзамена. Китайский язык несколько затрудняет понимание происходящего, но DeepSeek помогает с этим разобраться.

Некоторые игры красивые, но странные. Игра Astroid предлагает собирать минералы в космосе. К сожалению, игра многопользовательская и требует, для полноценной работы, подключения к Минитель. Поскольку с июля 2012 года сеть прекратила свою работу, нам остаётся наслаждаться демкой.

Надо отметить, что в те времена гораздо чаще чем сейчас появлялись подлинно хардкорные игры. Хорошим пример может служить симулятор хождения по парусом America’s Cup Yacht Racing Simulator, сочетающий в себе нарочитый минимализм графики со скрупулёзной проработкой всего связанного с физикой движения яхты. В общем, заядлым яхтсменам на заметку:

И, конечно же, на портале Old-Games представлено огромное количество настольных игр, включающих в себя шашки, шахматы, нарды, сянцы и сёги и некоторые другие, менее распространённые игры. Знатокам рекомендую обратить внимание на TrianGo и Chester.
Как правило, js-dos 7 прекрасно справляется с задачей, но иногда что-то идёт не так. И разумеется, когда надо запустить Windows игру, 7-ая версия тоже не поможет. В качестве примера приведу ещё одну любимую игру детства.

В принципе, под 7-кой она запустилась, но курсор мыши уполз в левый верхний угол и отказался его покидать. Восьмёрка помогла, но сборка под ней бандла, это целая история. Прежде всего, запускаем js-dos 8.xx: Game Studio. Далее, нам нужна операционная система под которой будет запускаться игра (в нашем случае, это MS DOS).

Выгружаем образ на диск, а затем загружаем его в студию и запускаем. Далее надо добавить в образ файл с игрой. Последовательно нажимаем отмеченные кнопки и подгружаем файлы:

Останавливаем виртуалку, пересобирая тем самым бандл:

дописываем в секцию [autoexec] две важных команды…
mount d: . boot c:
После чего запускаем виртуалку, вносим изменения в уже её autoexec.bat и выгружаем бандл:

и получаем ошибку:

ладно, ладно, сперва надо было сконфигурировать звуковую карту (SNDSETUP.BAT):

После перезапуска бандла, всё должно заработать…
Запуск игрушек под Windows выглядит сходным образом, с поправкой на то, что надо загружать другой образ операционной системы, а автозапуск настраивать не в autoexec.bat, а в папке автозагрузки. Для монтирования образов дисков можно использовать imgmount. Иногда, важно сохранить структуру папок и мне так и не удалось найти как сделать это средствами Game Studio. Но тут нам помогает, что jsdos - это тот же zip-файл (просто с другим расширением). Переименовываем, распаковываем, подкладываем всё что надо и куда надо, снова запаковываем в zip, переименовываем… и бандл готов!
Обвязка созданная create-dosbox, для запуска бандла 8-ой версии разумеется не подойдёт. Придётся склонировать и собрать js-dos. Здесь тоже возможны разнообразные затыки, но ничего нерешаемого…

Декораторы @ ts-ignore пришлось добавить, чтобы сделать компилятор счастливым, после чего сборка заработала:

Чтобы бандл запускался, его надо прописать в index.html (ну и абсолютные пути желательно заменить на относительные:

Вот в принципе и всё. Конечно, не всё всегда идёт так радужно. Мне не удалось запустить Nox (хотя я честно обновил драйвера видеокарты) и Gangsters 2 (поскольку игра потребовала MMX), а для древней игры Trains потребовался предустановленный в ROM BASIC. С учётом того что на DOS Zone игры работают, проблемы должны как-то решаться, но я не знаю как.
Впрочем, всё это сложности, с которыми интереснее сталкиваться самому. Часто, процесс гораздо увлекательнее результата…