Лучшее  🚀
31.01.2020 в 19:19 Evernews

Как авторы Myst победили первые CD-ROM

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

Кстати, на сайте читать удобнее

Самая первая часть Myst вышла в тот же год, что и оригинальный Doom, но графически между играми была пропасть. Если Doom выглядел как мешанина пикселей, то Myst поражал воображение тщательно отрисованным фантастическим миром.

Такая разница логична: все кадры Doom рендерились в реальном времени, а красоты Myst были нарисованы заранее. Правда, с отрисовкой этих изображений на компьютерах игроков у разработчиков Myst возникли проблемы.

Из-за большого количества заранее отрендеренных кадров игра поставлялась на CD-ROM. 600 мегабайт хватило, чтобы вместить весь мир Myst, но разработчикам не удавалось загружать их достаточно быстро. В 1993 году у большинства игроков был односкоростной CD-ROM, способный читать данный со скоростью только 150 килобайт в секунду.

Стало ясно — нужна оптимизация. В первую очередь, вспоминают Робин и Рэнд Миллеры, братья-разработчики игры, порезали самую очевидную вещь: качество картинки. Ассеты для Myst генерировались на мощном Mac, но у большинства игроков компьютеры могли обрабатывать только восьмибитную графику.

Итак, у нас две проблемы: надо найти [изображение] на CD-ROM, а затем — загрузить его оттуда так быстро, как это только возможно. Мы начали с конца: компьютеры большей части игроков могут обрабатывать только 8-битную графику, значит, на экране одновременно отрисовываются только 256 цветов.

Рэнд Миллер

Кроме того, разработчики использовали два алгоритма сжатия изображений. Первый уменьшал количество цветов до 256, а второй гарантировал, что картинка будет загружаться так быстро, как это только возможно. В результате удалось уменьшить размер каждого изображения примерно до 50 килобайт.

Оставалось разобраться с быстрым поиском ассетов на дисках. Просто загрузить их в алфавитном порядке — не лучшая идея. Чтобы ускорить поиск файлов, было решено записывать изображения так, чтобы файлы, имеющие отношение друг к другу, оказывались на соседних дорожках диска.

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

Рэнд Миллер

Затем возникла еще одна проблема — со звуком и музыкой. В Myst почти все время звучит либо музыка, либо какие-то фоновые звуки, при этом звуки тоже стримятся прямо с CD-ROM. Как сделать так, чтобы при переходе к следующей картинке не прерывался звук?

Решение, рассказывает Миллер, снова заключалось в специфическом расположении файлов на диске. Музыку и фоновые звуки тоже постарались разместить ближе к ассетам, которые загружаются параллельно с ними. Так игра успевает загрузить картинку и вернуться к подгрузке звука до того, как закончится его буферизованный фрагмент.

Читать далее