Данный материал является продолжением цикла статей из серии «что делать, чтобы ничего не делать», в котором лень «тестировщика» возводится в абсолют, а также происходит доработка скриптов «до ума».
Предыдущие материалы:
Сегодня в программе - дальнейшее развитие прошлых идей и расширение тестового пакета. Не правда ли, запускать встроенные средства измерения производительности в играх вручную, да ещё при том, что автоматически тестируются собственноручно написанные сцены, довольно странно? Автоматизировать, так полностью…
Поскольку тестовый пакет может быть довольно обширным, то «за компанию» ставится вопрос сбора и сортировки полученных результатов. Делать это вручную - не самое приятное в мире занятие, поэтому в скрипты добавлены строки кода, отвечающие за складирование и сортировку результатов.
Напомню, для работы скриптов необходимо установленное ПО AutoHotkey.
Файлы скриптов помещаются в директорию с .exe файлами соответствующих игр, замер производительности стартует запуском скрипта. Там, где их несколько - дополнительно указывается необходимый для «скриптового бенчмаркинга» файл.
В общем, интересного вам чтения.
Основная проверка работоспособности скриптов производилась на следующей конфигурации:
В этом разделе продолжается оптимизация уже знакомого по прошлым частям набора скриптов. Модификации во многом косметические и коснутся лишь мелочей. Целиком цитировать/комментировать код не стану, распишу лишь изменения относительно того, что было здесь.
Все необходимые файлы можно скачать по ссылке: http://trash.overclockers.ru/Ivan_FCB/to68/Arcania.rar
В архив вложены два Save файла, для версий игры 1.0 и 1.1. Путь к сохранению (для Win7): C:\Users\%имя пользователя%\Documents\ArcaniA - Gothic 4.
Список файлов в архиве:
Пытливый читатель, знакомый с предыдущей статьей уже может заметить, что в списке нет файлов, которые отвечали за смену разрешения экрана в главном меню игры. Почему так было сделано, выяснится позже.
Теперь более подробно по исходному коду каждого файла:
01_Arcania.ahk
| FileCopy, C:\Users\RT_FM\Documents\ArcaniA - Gothic 4\test\1.xml, C:\Users\RT_FM\Documents\ArcaniA - Gothic 4\VideoSettings.xml, 1 ; run, Arcania.exe, , , NewPID ; Process, priority, %NewPID%, High FileRead, t, 10_t1.txt Sleep t Send {up down} Sleep 60 Send {up up} Sleep 200 Send {up down} Sleep 60 Send {up up} Sleep 200 Send {down down} Sleep 60 Send {down up} Sleep 200 runwait, 02_bench.ahk Sleep 1000 runwait, 06_exit.ahk Sleep 5000 ; FileCopyDir, C:\fraps\Benchmarks, C:\Test\Arcania, 1 ; FileCopy, C:\fraps\frapslog.txt, C:\Test\Arcania, 1 ; FileRemoveDir, C:\fraps\Benchmarks, 1 ; FileDelete, C:\fraps\frapslog.txt ; FileCopyDir, C:\fraps\Screenshots, C:\Test\Arcania, 1 ; FileRemoveDir, C:\fraps\Screenshots, 1 ; ExitApp ; Numpad0::ExitApp ; |
02_Bench.ahk, 03_load.ahk, 04_scene.ahk, 05_exitmenu.ahk, 06_exit.ahk
Единственное изменение в коде этих файлов – добавление строк:
| ExitApp Numpad0::ExitApp |
В конец каждого. Во всём остальном код остался нетронутым.
10_t1.txt, 11_t2.txt, 12_t3.txt
Не менялись.
Все необходимые файлы можно скачать по ссылке: http://trash.overclockers.ru/Ivan_FCB/to68/BFBC2.rar
В архиве приложено сохранение, но подойдёт любой Save-файл с пройденной игрой. Путь к сохранению (для Win7): C:\Users\%имя пользователя%\Documents\BFBC2
Список файлов в архиве:
Как и в Arcania: Gothic 4, скрипты с алгоритмами смены разрешения экрана убраны за ненадобностью.
Теперь более подробно по исходному коду каждого файла:
01_BFBC2.ahk
| IniWrite, 1920, C:\Users\RT_FM\Documents\BFBC2\settings.ini, WindowSettings, Width ; IniWrite, 1080, C:\Users\RT_FM\Documents\BFBC2\settings.ini, WindowSettings, Height ; run, BFBC2Game.exe, , , NewPID ; Process, priority, %NewPID%, High FileRead, t, 11_t1.txt Sleep t Send {Esc down} Sleep 60 Send {Esc up} Sleep 12000 runwait, 02_bench.ahk Sleep 1000 runwait, 06_exit.ahk FileCopyDir, C:\fraps\Benchmarks, C:\Test\BFBC2, 1 ; FileCopy, C:\fraps\frapslog.txt, C:\Test\BFBC2, 1 ; FileRemoveDir, C:\fraps\Benchmarks, 1 ; FileDelete, C:\fraps\frapslog.txt ; FileCopyDir, C:\fraps\Screenshots, C:\Test\BFBC2, 1 ; FileRemoveDir, C:\fraps\Screenshots, 1 ; ExitApp ; Numpad0::ExitApp ; |
02_Bench.ahk, 04_scene.ahk
Единственная модификация кода – добавление строк:
| ExitApp Numpad0::ExitApp |
В остальном без изменений.
03_load.ahk, 05_exitmenu.ahk, 06_exit.ahk
Привязка данных файлов к списку допустимых разрешений экрана пока сохранилась. Скрипт адаптирован для разрешений 1920x1080, 1680x1050, 1280x1024.
Строка кода «» заменена на строку:
| IniRead, x, C:\Users\RT_FM\Documents\BFBC2\settings.ini, WindowSettings, Width ; |
Добавлены строки:
| ExitApp Numpad0::ExitApp |
В остальном изменений нет.
11_t1.txt
Модификациям файл не подвергался.
Все необходимые файлы можно скачать по ссылке: http://trash.overclockers.ru/Ivan_FCB/to68/Borderlands.rar
Путь к сохранению (для Win7): C:\Users\%имя пользователя%\Documents\My Games\Borderlands\SaveData. Сохранение актуально для 1.2 версии .exe файла. Но не исключено, что будет работать и на других версиях.
Список файлов в архиве:
Теперь более подробно по исходному коду каждого файла:
01_Borderlands.ahk
| IniWrite, 1920, C:\Users\RT_FM\Documents\My Games\Borderlands\WillowGame\Config\WillowEngine.ini, SystemSettings, ResX ; IniWrite, 1080, C:\Users\RT_FM\Documents\My Games\Borderlands\WillowGame\Config\WillowEngine.ini, SystemSettings, ResY ; SetKeyDelay [, 20, 20] ; run, Borderlands.exe, , , NewPID Process, priority, %NewPID%, High FileRead, t, 09_t1.txt Sleep t Send {Enter} Sleep 3000 runwait, 02_bench.ahk runwait, 05_exit.ahk Sleep 1000 FileCopyDir, C:\fraps\Benchmarks, C:\Test\Borderlands, 1 ; FileCopy, C:\fraps\frapslog.txt, C:\Test\Borderlands, 1 ; FileRemoveDir, C:\fraps\Benchmarks, 1 ; FileDelete, C:\fraps\frapslog.txt ; FileCopyDir, C:\fraps\Screenshots, C:\Test\Borderlands, 1 ; FileRemoveDir, C:\fraps\Screenshots, 1 ; ExitApp ; Numpad0::ExitApp ; |
02_bench.ahk, 03_load.ahk, 04_scene.ahk, 05_exit.ahk
Единственная модификация кода – добавление строк:
| ExitApp Numpad0::ExitApp |
В остальном изменений нет.
09_t1.txt, 10_t2.txt
Не менялись.
Все необходимые файлы можно скачать по ссылке: http://trash.overclockers.ru/Ivan_FCB/to68/BlackOPS.rar
В архиве приложено сохранение, но вообще подойдёт любой Save-файл с пройденной игрой. «Сэйв» хранится в папке с игрой (Call of Duty - Black Ops\players\save).
Список файлов в архиве:
Теперь более подробно по исходному коду каждого файла:
01_BlackOPS.ahk
| FileCopy, players\test\1.cfg, players\config.cfg , 1 ; MouseMove, 1, 1, 30 ; run, BlackOps.exe, , , NewPID Process, priority, %NewPID%, High FileRead, t, 12_t1.txt Sleep t Send {LButton down} sleep 500 Send {LButton up} Sleep 3000 Send {Enter} Sleep 2000 runwait, 02_bench.ahk runwait, 06_exit.ahk Sleep 5000 ; FileCopyDir, C:\fraps\Benchmarks, C:\Test\COD, 1 ; FileCopy, C:\fraps\frapslog.txt, C:\Test\Borderlands, 1 ; FileRemoveDir, C:\fraps\Benchmarks, 1 ; FileDelete, C:\fraps\frapslog.txt ; FileCopyDir, C:\fraps\Screenshots, C:\Test\COD, 1 ; FileRemoveDir, C:\fraps\Screenshots, 1 ; ExitApp ; Numpad0::ExitApp ; |
02_Bench.ahk, 03_load.ahk, 04_scene.ahk, 05_exitmenu.ahk, 06_exit.ahk
Единственное изменение в коде этих файлов – добавление строк:
| ExitApp Numpad0::ExitApp |
В конец каждого. Во всём остальном код остался нетронутым.
10_i.txt, 12_t1.txt, 13_t2.txt, 14_t3.txt
Не менялись.
Все необходимые файлы можно скачать по ссылке: http://trash.overclockers.ru/Ivan_FCB/to68/DragonAge.rar
Путь к сохранению (для Win7): C:\Users\%имя пользователя%\Documents\BioWare\Dragon Age\Saves. Сохранение актуально для 1.0.9353 версии .exe файла. Но не исключено, что будет работать и на других версиях.
Список файлов в архиве:
Теперь более подробно по исходному коду каждого файла:
01_daorigins.ahk
| IniWrite, 1920, C:\Users\RT_FM\Documents\BioWare\Dragon Age\Settings\DragonAge.ini, VideoOptions, ResolutionWidth ; IniWrite, 1080, C:\Users\RT_FM\Documents\BioWare\Dragon Age\Settings\DragonAge.ini, VideoOptions, ResolutionHeight ; SetKeyDelay [, 20, 20] ; Run, daorigins.exe, , , NewPID Process, priority, %NewPID%, High FileRead, t, 11_t1.txt Sleep t Send {Esc down} Sleep 60 Send {Esc up} Sleep 500 Send {Esc down} Sleep 60 Send {ESC up} Sleep 1000 runwait, 02_bench.ahk runwait, 06_exit.ahk Sleep 5000 FileCopyDir, C:\fraps\Benchmarks, C:\Test\DragonAge, 1 ; FileCopy, C:\fraps\frapslog.txt, C:\Test\DragonAge, 1 ; FileRemoveDir, C:\fraps\Benchmarks, 1 ; FileDelete, C:\fraps\frapslog.txt ; FileCopyDir, C:\fraps\Screenshots, C:\Test\DragonAge, 1 ; FileRemoveDir, C:\fraps\Screenshots, 1 ; ExitApp ; Numpad0::ExitApp ; |
02_Bench.ahk, 03_load.ahk, 05_exitmenu.ahk, 06_exit.ahk
Привязка данных файлов к списку допустимых разрешений экрана пока сохранилась. Скрипт адаптирован для разрешений 1920x1080, 1680x1050, 1280x1024.
Строка кода «» заменена на строку:
| IniRead, x, C:\Users\RT_FM\Documents\BioWare\Dragon Age\Settings\DragonAge.ini, VideoOptions, ResolutionWidth ;Считывание и помещение в переменную x текущего разрешения экрана. Считывается и учитывается только количество пикселей по горизонтали, то есть «защита от дурака» на данный момент не предусмотрена. Не забываем изменить путь к файлу на свой. |
Добавлены строки:
| ExitApp Numpad0::ExitApp |
В остальном изменений нет.
04_scene.ahk
Единственное изменение в коде файла - добавление строк:
| ExitApp Numpad0::ExitApp |
В конец файла. Во всём остальном код остался нетронутым.
10_i.txt, 11_t1.txt, 12_t2.txt, 13_t3.txt
Не менялись.
Все необходимые файлы можно скачать по ссылке: http://trash.overclockers.ru/Ivan_FCB/to68/MOH2010.rar
В архиве приложено сохранение, но подойдёт любой Save-файл с пройденной игрой. Путь к сохранению (для Win7): C:\Users\%имя пользователя%\Documents\EA Games\Medal of Honor\Saved.
Список файлов:
Теперь более подробно по исходному коду каждого файла:
01_moh.ahk
| IniWrite, 1920, C:\Users\RT_FM\Documents\EA Games\Medal of Honor\Config\MOHAEngine.ini, SystemSettings, ResX ; IniWrite, 1080, C:\Users\RT_FM\Documents\EA Games\Medal of Honor\Config\MOHAEngine.ini, SystemSettings, ResY ; SetKeyDelay [, 30, 30] ; run, moh.exe, , , NewPID Process, priority, %NewPID%, High FileRead, t, 10_t1.txt Sleep t runwait, 02_bench.ahk runwait, 06_exit.ahk Sleep 5000 FileCopyDir, C:\fraps\Benchmarks, C:\Test\MOH2010, 1 ; FileCopy, C:\fraps\frapslog.txt, C:\Test\MOH2010, 1 FileRemoveDir, C:\fraps\Benchmarks, 1 ; FileDelete, C:\fraps\frapslog.txt ; FileCopyDir, C:\fraps\Screenshots, C:\Test\MOH2010, 1; FileRemoveDir, C:\fraps\Screenshots, 1 ; ExitApp ; Numpad0::ExitApp ; |
02_Bench.ahk, 03_load.ahk, 04_scene.ahk, 05_exitmenu.ahk, 06_exit.ahk
Единственное изменение в коде этих файлов – добавление строк:
| ExitApp Numpad0::ExitApp |
В конец каждого. Во всём остальном код остался нетронутым.
10_t1.txt, 11_t2.txt
Не менялись.
Все необходимые файлы можно скачать по ссылке: http://trash.overclockers.ru/Ivan_FCB/to68/Metro2033.rar
Путь к сохранению (для Win7): C:\Users\%имя пользователя%\Documents\4A Games\Metro 2033. В архиве приложено сохранение, но, скорее всего, подойдёт любой (*) Save-файл с пройденной игрой. Работоспособность приложенного сохранения опробована на Update1 и Update2 версиях игры.
*Ограничения – последней запущенной миссией должна быть «Глава 7 - Башня», в инвентаре должно быть хотя бы две аптечки.
Список файлов:
Основной код не претерпел изменений по сравнению с использованным в прошлой статье по автоматизации, изменения коснулись лишь добавления алгоритма складирования результатов в папку C:\test и горячей клавиши для экстренной остановки работы скрипта.
На правку конфиг-файлов игра почему-то не реагирует (либо у меня не получается), поэтому алгоритмы смены разрешения экрана не претерпели изменений. Расписывать что-либо смысла мало. Процитирую лишь код, отвечающий за складирование результатов в директорию C:\Test.
| FileCopyDir, C:\fraps\Benchmarks, C:\Test\Metro2033, 1 ; FileCopy, C:\fraps\frapslog.txt, C:\Test\Metro2033, 1 ; FileRemoveDir, C:\fraps\Benchmarks, 1 ; FileDelete, C:\fraps\frapslog.txt ; FileCopyDir, C:\fraps\Screenshots, C:\Test\Metro2033, 1 ; FileRemoveDir, C:\fraps\Screenshots, 1 ; |
Развитие скрипта для данного «глюкодрома» приостановлено. Главная причина – частые сбои в работе из-за того, что время запуска игры, а также время загрузки тестовой сцены сильно зависит от внешних факторов. При последовательном запуске скриптов нескольких игр данная проблема становится более актуальной, чем (на первый взгляд) кажется.
Надо стремиться к тому, чтобы бОльшее время уходило не на получение данных, а на их анализ и на повышение качества материалов, так что автоматизируем замер производительности и во встроенных бенчмарках.
Что ж, приступим.
В оригинале у игры бенчмарк отсутствовал, появившись с версии 1.01.
Код скрипта довольно короткий:
| IniWrite, 1920, C:\Users\RT_FM\Documents\My Games\Borderlands\WillowGame\Config\WillowEngine.ini, SystemSettings, ResX IniWrite, 1080, C:\Users\RT_FM\Documents\My Games\Borderlands\WillowGame\Config\WillowEngine.ini, SystemSettings, ResY ; Loop 3 ; { Runwait, borderlands.exe timedemo1_p -benchmark -seconds=60 -novsync ; Sleep 5000 } FileCreateDir, C:\Test\Borderlands ; FileCopy, C:\Users\RT_FM\Documents\My Games\Borderlands\WillowGame\Logs\benchmark.log, C:\Test\Borderlands\Test1.txt, 1 ; FileDelete, C:\Users\RT_FM\Documents\My Games\Borderlands\WillowGame\Logs\benchmark.log ExitApp ; Numpad0::ExitApp ; |
Как видно, ничего принципиально сложного.
Для того чтобы бенчмарк сохранял результаты, надо в config.ini (по адресу Documents\My Games\Sid Meier's Civilization 5) поставить единицу в значение параметра LoggingEnable.
Бенчмарков в игре несколько, автоматизация запуска и складирования результатов в одном из них:
| runwait, CivilizationV_DX11.exe -benchmark lateGameView ; Sleep 5000 FileCreateDir, C:\Test\CIV5 ; FileCopy, C:\Users\RT_FM\Documents\My Games\Sid Meier's Civilization 5\Logs\LateGameViewBench.log, C:\Test\CIV5\test1.txt, 1 ; runwait, CivilizationV_DX11.exe -benchmark lateGameView ; Sleep 5000 FileCopy, C:\Users\RT_FM\Documents\My Games\Sid Meier's Civilization 5\Logs\LateGameViewBench.log, C:\Test\CIV5\test2.txt, 1 ; ExitApp ; Numpad0::ExitApp ; |
Поскольку результаты бенчмарка представлены абстрактными «попугаями», то тестировать им игру при разных разрешениях экрана смысла мало, отсюда - алгоритма смены разрешения экрана в скрипте не предусмотрено.
Бенчмарк присутствует в любой версии игры.
Код:
| FileCopy, C:\Users\RT_FM\Documents\My Games\DiRT2\hardwaresettings\test\hardware_settings_config1.xml, C:\Users\RT_FM\Documents\My Games\DiRT2\hardwaresettings\hardware_settings_config.xml, 1 ; loop 3 ; { runwait, dirt2.exe –benchmark ; Sleep 5000 } FileCopyDir, C:\Users\RT_FM\Documents\My Games\DiRT2\benchmarks, C:\Test\Dirt2, 1 ; FileRemoveDir, C:\Users\RT_FM\Documents\My Games\DiRT2\benchmarks, 1 ; ExitApp ; Numpad0::ExitApp ; |
В оригинале у игры бенчмарк отсутствовал, появившись с версии 1.01.
Код:
| FileCopy, C:\Users\RT_FM\Documents\My Games\FormulaOne\hardwaresettings\test\hardware_settings_config1.xml, C:\Users\RT_FM\Documents\My Games\FormulaOne\hardwaresettings\hardware_settings_config.xml, 1 ; Loop 3 ; { runwait, f1_2010.exe –benchmark ; Sleep 5000 } FileCopyDir, C:\Users\RT_FM\Documents\My Games\FormulaOne\benchmarks, C:\Test\F1_2010, 1 ; FileRemoveDir, C:\Users\RT_FM\Documents\My Games\FormulaOne\benchmarks, 1 ; ExitApp ; Numpad0::ExitApp ; |
Бенчмарк присутствует в любой версии игры.
Скрипт состоит из двух файлов. Запуску подлежит первый, EPLC.ahk. Второй файл, minfps_EPLC.ahk, как видно из названия – отвечает за замер MIN FPS.
EPLC.ahk
| Loop 3 ; { run, minfps_EPLC.ahk ; runwait, LaunchEFLC.exe -Benchmark -width=1920 -height=1080 ; Sleep 5000 } FileCopyDir, C:\Users\RT_FM\Documents\Rockstar Games\TLaD\Benchmarks, C:\Test\GTA4, 1 ; FileCopyDir, C:\fraps\Benchmarks, C:\Test\GTA4, 1 ; FileCopy, C:\fraps\frapslog.txt, C:\Test\GTA4, 1 ; FileRemoveDir, C:\fraps\Benchmarks, 1 ; FileRemoveDir, C:\Users\RT_FM\Documents\Rockstar Games\TLaD\Benchmarks, 1 ; FileDelete, C:\fraps\frapslog.txt ; ExitApp ; Numpad0::ExitApp ; |
minfps_EPLC.ahk
| Sleep 36000 ; Send {F11} ; Sleep 20000 Send {F11} ; ExitApp ; Numpad0::ExitApp ; |
Бенчмарк присутствует в любой версии игры. Замер производительности осуществляется силами FRAPS'а.
Код:
| IniWrite, 1280x1024, C:\Users\RT_FM\AppData\Local\capcom\lostplanetcolonies\config.ini, DISPLAY, Resolution ; IniWrite, 4, C:\Users\RT_FM\AppData\Local\capcom\lostplanetcolonies\config.ini, CPU, JobThread ; SetKeyDelay [, 20, 20] Run, LPCLauncher.exe ; Sleep 2000 Loop 2 ; { Send {down down} Sleep 100 Send {down up} Sleep 100 } Sleep 1000 Send {Enter down} ; Sleep 100 Send {Enter up} Sleep 16000 ; Send {Enter down} ; Sleep 100 Send {Enter up} Sleep 5000 Send {Enter down} ; Sleep 100 Send {Enter up} MouseMove, 1, 1 ; Sleep 5000 Send {Enter down} ; Sleep 100 Send {Enter up} Sleep 3000 Loop 3 ; { Sleep 1000 Send {down down} Sleep 100 Send {down up} Sleep 1000 Send {down down} Sleep 100 Send {down up} Sleep 1000 Send {Enter down} Sleep 100 Send {Enter up} Sleep 1000 Send {down down} Sleep 100 Send {down up} Sleep 1000 Send {down down} Sleep 100 Send {down up} Sleep 1000 Send {Enter down} Sleep 100 Send {Enter up} Sleep 4000 ; Send {F10} ; Sleep 200 Send {F11} ; Sleep 55000 Send {F11} ; Sleep 1000 Send {F10} ; Sleep 1000 Send {Esc down} ; Sleep 100 Send {Esc up} Sleep 5000 } Send !{F4} Sleep 1000 Send {Enter} ; Sleep 5000 FileCopyDir, C:\fraps\Screenshots, C:\Test\LPC, 1 ; FileRemoveDir, C:\fraps\Screenshots, 1 ; FileCopyDir, C:\fraps\Benchmarks, C:\Test\LPC, 1 ; FileCopy, C:\fraps\frapslog.txt, C:\Test\LPC, 1 ; FileRemoveDir, C:\fraps\Benchmarks, 1 ; FileDelete, C:\fraps\frapslog.txt ; ExitApp ; Numpad0::ExitApp ; |
Бенчмарк присутствует в любой версии игры. Замер производительности осуществляется средствами игры.
Код:
| IniWrite, 1920x1080, C:\Users\RT_FM\Documents\capcom\LOST PLANET 2\config.ini, DISPLAY, Resolution ; IniWrite, 4, C:\Users\RT_FM\Documents\capcom\LOST PLANET 2\config.ini, CPU, JobThread ; SetKeyDelay [, 20, 20] Run, Launcher.exe ; Sleep 2000 Send {Enter} ; Sleep 25000 ; MouseMove, 1, 1 ; Sleep 1000 Loop 3 ; { Sleep 2000 Send {down down} Sleep 100 Send {down up} Sleep 1000 Send {Enter down} Sleep 100 Send {Enter up} Sleep 1000 Send {down down} ; Sleep 100 Send {down up} Sleep 1000 Send {Enter down} ; Sleep 100 Send {Enter up} Sleep 150000 ; Send {F10} ; Sleep 1000 Send {BS down} ; Sleep 100 Send {BS up} Sleep 2000 } ; Send {up} Sleep 500 Send {Enter} ; Sleep 5000 FileCopyDir, C:\fraps\Screenshots, C:\Test\LP2, 1 ; FileRemoveDir, C:\fraps\Screenshots, 1 ; ExitApp ; Numpad0::ExitApp ; |
Бенчмарк присутствует в любой версии игры. AVG FPS в бенчмарк-сцене измеряется средствами игры и фиксируется в виде скриншота, MIN FPS замеряется при помощи утилиты FRAPS (замер производится с 90-й по 120-ю секунду сцены, где нагрузка максимальна).
Код:
| FileDelete, C:\Users\RT_FM\AppData\Local\2K Games\Mafia II\Saves\videoconfig.cfg ; FileAppend, 0 0 1920 1080 1 0 0 0, C:\Users\RT_FM\AppData\Local\2K Games\Mafia II\Saves\videoconfig.cfg ; SetKeyDelay [, 60, 60] run, mafia2.exe ; Sleep 9000 Send {Esc} Sleep 1000 Send {Esc} Sleep 1000 Send {Enter} ; Loop 3 ; { Sleep 4000 Loop 3 { Send {down} Sleep 500 } Send {Enter} Sleep 2000 Send {down down} Sleep 3000 Send {down up} Sleep 500 Send {Enter} ; Sleep 95000 ; Send {F11} ; Sleep 30000 Send {F11} ; Sleep 20000 Send {F10} ; Sleep 1000 Send {Esc} ; Sleep 2000 } ; Send !{F4} Sleep 500 Send {Enter} ; FileCopyDir, C:\fraps\Screenshots, C:\Test\Mafia2, 1 ; FileRemoveDir, C:\fraps\Screenshots, 1 ; FileCopyDir, C:\fraps\Benchmarks, C:\Test\Mafia2, 1 ; FileCopy, C:\fraps\frapslog.txt, C:\Test\Mafia2, 1 ; FileRemoveDir, C:\fraps\Benchmarks, 1 ; FileDelete, C:\fraps\frapslog.txt ; ExitApp ; Numpad0::ExitApp ; |
Бенчмарк есть только в update2 версии игры.
Код:
| SetKeyDelay [, 20, 20] FileCopy, test\1.mbcfg, frontline.mbcfg , 1 ; Run, metro2033benchmark.exe, , , NewPID ; Process, priority, %NewPID%, High Sleep 5000 Loop 16 ; { Send {Tab} ; Sleep 500 } Send {Space} ; Sleep 260000 ; Send !{F4} ; Sleep 5000 FileCopyDir, C:\Users\RT_FM\Documents\4A Games\Metro 2033\Benchmark, C:\Test\Metro2033, 1 ; FileRemoveDir, C:\Users\RT_FM\Documents\4A Games\Metro 2033\Benchmark, 1 ; Send {Tab} ; Sleep 500 Send {Space} ; ExitApp ; Numpad0::ExitApp ; |
Бенчмарк присутствует в любой версии игры. Замер производительности осуществляется средствами игры.
Код:
| IniWrite, 1920x1080, C:\Users\RT_FM\Documents\capcom\RESIDENT EVIL 5\config.ini, DISPLAY, Resolution ; IniWrite, 4, C:\Users\RT_FM\Documents\capcom\RESIDENT EVIL 5\config.ini, CPU, JobThread ; run, launcher.exe ; Sleep 3000 Send {down down} ; Sleep 60 Send {down up} Sleep 100 Send {Enter down} ; Sleep 60 Send {Enter up} Sleep 8000 Loop 4 ; { Send {Enter down} Sleep 60 Send {Enter up} Sleep 1000 } Sleep 4000 Loop 3 ; { Sleep 1500 Send {Enter down} ; Sleep 60 Send {Enter up} Sleep 2000 Loop 2 { Send {down down} Sleep 60 Send {down up} Sleep 200 } Send {Enter down} Sleep 60 Send {Enter up} Sleep 1000 Send {down down} Sleep 60 Send {down up} Sleep 100 Send {Enter down} Sleep 60 Send {Enter up} ; Sleep 105000 Send {F10} ; Sleep 1000 Send {Esc down} ; Sleep 60 Send {Esc up} Sleep 5000 } Send !{F4} ; Sleep 5000 FileCopyDir, C:\fraps\Screenshots, C:\Test\RE5, 1 ; FileRemoveDir, C:\fraps\Screenshots, 1 ; ExitApp ; Numpad0::ExitApp ; |
Бенчмарк добавляется патчем 1.3.2. Замер производительности осуществляется средствами игры.
Код:
| FileCopy C:\Users\RT_FM\Documents\My Games\Dawn of War 2\Settings\test\1.lua, C:\Users\RT_FM\Documents\My Games\Dawn of War 2\Settings\configuration.lua, 1 ; SetKeyDelay [, 20, 20] SetDefaultMouseSpeed, 30 Run, dow2.exe, , , NewPID ; Process, priority, %NewPID%, High Sleep 17000 ; loop 6 ; { Send {Esc} Sleep 200 } Sleep 8000 ; WinGetPos, x, y, Width, Height, ahk_pid %NewPID% ; Sleep 1000 MouseMove, Width/1.2, Height/1.12 ; Sleep 1000 Send {LButton down} ; Sleep 100 Send {LButton up} Sleep 2000 MouseMove, Width/2.3, Height/6.93 ; Sleep 1000 Send {LButton down} ; Sleep 100 Send {LButton up} Sleep 2000 Loop 3 ; { MouseMove, Width/1.3, Height/1.2 ; Sleep 1000 Send {LButton down} ; Sleep 100 Send {LButton up} ; Sleep 85000 ; Send {F10} ; MouseMove, Width/2, Height/1.3 ; Sleep 1000 Send {LButton down} ; Sleep 100 Send {LButton up} ; Sleep 3000 } ; Send !{F4} ; Sleep 5000 FileCopyDir, C:\fraps\Screenshots, C:\Test\DOW2, 1 ; FileRemoveDir, C:\fraps\Screenshots, 1 ; ExitApp ; Numpad0::ExitApp ; |
Когда в наличии есть готовая коллекция скриптов автоматизации замера производительности к различным играм, то сразу в голове возникает вопрос: «Я что, сам всё это должен запускать?» Ну, разумеется, нет.
Последовательность создаётся в виде:
| Runwait, “полный путь к скрипту” Sleep 10000 ; Runwait, “полный путь к следующему скрипту” |
И так далее. В конце:
| ExitApp Numpad0::ExitApp |
Разумеется, такой скрипт пишется уже по факту отладки и работоспособности кода всех .ahk файлов, принимающих участие в тестировании.
Разумно предположить, что при исполнении кода в различных играх существует вероятность как «зависания», так и ухода скрипта в «дебри», когда исполняется уже не требуемая комбинация действий, а что-то нехорошее. Исходя из навыков тестирования производительности в играх и написания всех скриптов, принимающих участие в данной статье, рекомендую разбить игры на три категории:
1) Те скрипты, которые запускаются в первую очередь, в которых вероятность сбоя работы autohotkey минимальна.
К таким играм можно отнести:
2) Группа повышенного риска. Скрипты запускаются в последнюю очередь. Если при их выполнении произойдёт сбой – можно будет запустить заново только их, при этом результаты всех предыдущих замеров производительности в других играх сохранятся.
К таким играм можно отнести:
Остальные игры можно запускать произвольно. Как правило, когда скрипты подогнаны под стенд, то и особых проблем с ними не возникает.
В общем, в какие только дебри не заведут простая человеческая лень и нежелание делать что-либо.
Следующего продолжения цикла статей «Автоматизируем процесс замера производительности в играх» ждать, скорее всего, придётся долго - по факту накопления нескольких новых ресурсоёмких игр. На этом пока всё.