Быть или не быть... тестированию?
Игры iD Software всегда вызывали неоднозначную реакцию у игровой общественности. Можно долго спорить о том, что же лучше удаётся команде Джона Кармака - сами игры или движки к ним. Со времён первого Doom понятия одиночной и сетевой игры заметно изменились, и то, что было хорошо в девяностых прошлого века, вызывает лишь снисходительную улыбку как у обозревателей, так и у игроков. С уверенностью можно сказать, что Doom III является одной из наиболее ожидаемых игр в жанре 3D Action. Скриншоты из игры, а также предварительные обзоры уже создали большой ажиотаж, в том числе на страницах 3DNews. У нас же Doom III вызывает интерес не столько как игра, ибо до момента его выхода осталось ещё очень много времени, но скорее как утилита для тестирования.
С недавних пор в Сети появилась версия Doom III, предположительно похищенная с весеннего E3. В последних неделях октября альфа всплыла на рынках Москвы под именем "Doom III Lite", и сотни доверчивых покупателей отдали пиратам массу денег за то, что по сути не является игрой. Записанное на CD, является очень сырой и ранней альфа-версией, по которой нельзя судить ни о геймплее, ни о искусственном интеллекте монстров, ни о чём бы то ни было ещё. Своего рода пища для ума и первые намёки любопытствующим. Тем не менее, как и во всех движках ID, в ядре Doom III существует возможность замера FPS, что позволяет, с некоторыми оговорками, использовать его для тестирования производительности современных 3D акселераторов.
Что это за оговорки? Прежде всего, нужно отдавать себе отчёт, что по альфа-версии игры, неоптимизированной и неотлаженной, в принципе нельзя делать выводы о стабильности или правильности реализации тех или иных функций акселератора. Взяв ядро Doom III, мы не можем сказать, что на такой-то карте неправильно работает Z-Buffer или анизотропная фильтрация, и что на другой карте слабенькая реализация шейдеров. Применяя Doom III alpha 0.02 как бенчмарк, мы лишь демонстрируем возможный FPS, и говорим о том, что с некоторой долей вероятности игры 2003 года, включая сам Doom III, будут демонстрировать схожую производительность. На текущий момент в альфа-версии более-менее корректно работают лишь акселераторы nVidia, и при некоторых условиях, акселераторы на базе чипов ATI. Масса проблем с Matrox Parhelia, вполне возможны проблемы с продуктами 3DLabs.
Так тестировать ли акселераторы при помощи Doom III или нет? Сложный вопрос, ответ на который мы вам дать не сможем. Да, мы будем использовать альфу для тестов, но просим наших читателей ни в коем случае не судить по этим результатам о надёжности оборудования. Что называется "просто для того, чтобы вы знали", и не более того.
Итак, как тестировать железо в Doom III? Прежде всего, в комплекте с альфой не поставляется никаких стандартных демо-роликов, и их придётся записать самостоятельно. Мы подготовили для тестирования две демонстрашки - demo002.demo и demo006.demo. Demo002 записана в первом уровне игры, Demo006 во втором. Для того, чтобы просмотреть их, необходимо поместить файлы в папку basedemos, и ни в коем случае не переименовывать. В ближайшее время оба файла будут выложены на нашем FTP. В распакованном виде каждый из них занимает около 160 мегабайт, то есть, прибавляем к требованиям Doom ещё 320 Мб свободного дискового пространства.
После скачивания и установки демок, необходимо запустить игру в любом уровне и набрать в консоли ряд команд. Рассмотрим их подробнее:
Устанавливаем разрешение (r_mode)
По умолчанию, игра запускается в разрешении 640x480 при частоте обновления экрана 60 Гц. В альфа-версии Doom III минимальное разрешение установлено в 400x300, или "r_mode 1". Чтобы изменить разрешение, нужно ввести в консоли команду "r_mode X", где X может принимать значение от 1 до 8. После этого, необходимо выполнить команду vid_restart, чтобы перезагрузить видеоподсистему игры.
Скриншот снят при r_mode 1 на GeForce4 Ti4600 с сглаживанием Quincunx
Ниже приведены значения r_mode:
Значения r_mode | Разрешение |
1 | 400x300 |
2 | 512x384 |
3 (по умолчанию) | 640x480 |
4 | 800x600 |
5 | 1024x768 |
6 | 1152x864 |
7 | 1280x1024 |
8 | 1600x1200 |
Итак, для тестирования в 800x600 набираем:
r_mode 4 [enter] vid_restart [enter]
Под [enter] подразумевается нажатие кнопки "Ввод". Среди дополнительных комманд можно отметить r_DisplayRefresh, которая устанавливает частоту обновления экрана. Для того, чтобы в 800x600 установить 100 Гц, между r_mode и vid_restart наберите:
r_displayRefresh 100 [enter]
Записываем и воспроизводим демку
Если вы захотите записать демку для тестов самостоятельно, это можно сделать командой recordDemo. Воспроизведение запускается командой playDemo.
По умолчанию, в комплекте с альфой Doom III поставляется демка "activate_demo1.demo", которую можно запустить, набрав в консоли:
demoPlay activate_demo1.demo [enter]
Для записи собственной демки необходимо стартовать игру в любом уровне, после чего набрать в консоли:
recordDemo demo00x.demo [enter]
Где "x" означает порядковый номер демки. Если ввести команду без параметра, то игра начнёт считает количество демок в каталоге и начнёт записывать новую демку с очередным порядковым номером. Все записи будут сохранены в папке basedemos, а для того, чтобы закончить запись, необходимо ввести в консоли:
stopRecording [enter]
Производим замеры
Сложность с замерами заключается в том, что на медленных ПК, пропуская кадры, в итоговом результате компьютер выведет цифру в 31-32 FPS. Для того, чтобы обойти это, необходимо набрать в консоли:
com_SkipDemoFrames 0 [enter]
Затем, запускаете на воспроизведение записанную перед этим демку:
timeDemo demo002.demo [enter]
По окончании, в консоли будет виден результат:
Результат: 39.9 fps
Мы сознательно обошли вниманием в этом материале другие консольные команды, значения переменных и различные опции. Скажем лишь, что в DooM III существует несколько конфигурационных файлов для установки стандартного и высокого уровня графики. Запустить их можно, набрав в консоли:
exec highquality.cfg [enter]
или
exec mediumquality.cfg [enter]
А также, возможно снимать скриншоты, нажимая по ходу игры F11, или привязав команду "screenshot" к какой-нибудь клавише:
bind s "screenshot"
С остальными переменными вы можете разобраться самостоятельно. Подробнее о некоторых из них написано в нашем обзоре игры.
Ссылки:
Дополнительные материалы:
Unreal Tournament 2003 в роли бенчмарка3DMark 2003: увидеть будущее
Max Payne в роли бенчмарка
Serious Sam в роли бенчмарка
Тестовый пакет 3DMark 2001 Pro
Тестовый пакет 3DMark 2000
Понимание и расчёт скорости заполнения (fillrate) акселератора