Перед тем, как приступить к прочтению данной статьи – рекомендуется прочитать вводный материал, иначе будет сложно понять, о чём тут речь вообще.
В начальном материале по попыткам автоматизации процесса замера производительности были рассмотрены основы написания скриптов в AutoHotkey и проверена их работоспособность. Данная статья является логическим продолжением предыдущей и посвящена усовершенствованию алгоритмов, применённых ранее.
Улучшения должны сказаться как на удобности тестирования, что реализовано алгоритмами автоматической смены разрешения экрана, так и на совместимости скриптов с различными конфигурациями, что обеспечивается вынесением значения ключевых пауз (время, необходимое на запуск игры, а также время, необходимое для загрузки тестовой сцены) в текстовые переменные. Дополнительно для удобства восприятия и для удобства модификаций, каждый скрипт разбит на несколько отдельных файлов.
Собственно, чего тянуть, приступим.
Основная проверка работоспособности скриптов производилась на следующей конфигурации:
Версии .exe файлов игр:
Как уже говорилось выше, теперь скрипт состоит не из одного файла, а из нескольких.
Список файлов, используемых для автоматизации замера производительности, с небольшим комментарием по каждому из них:
Теперь более подробно по исходному коду каждого из файлов:
(Щелкните на ссылке, чтобы открыть .txt файл).
01_Arcania.ahk [2 KB]
Выше была представлена простейшая реализация файла 01_Arcania.ahk. Для смены разрешения экрана можно вставить соответствующие команды:
Данные строки кода можно добавить как перед запуском замера производительности (например, если тест в стартовом разрешении экрана не нужен), так и между замерами производительности.
Если необходимо протестировать производительность во всех трёх доступных разрешениях, то часть кода, отвечающая за замер производительности будет выглядеть так:
runwait, 02_bench.ahk
runwait, 07_1920-1680.ahk
runwait, 02_bench.ahk
runwait, 08_1680-1280.ahk
runwait, 02_bench.ahk
runwait, 09_1280-1920.ahk
Подразумевается, что исходное разрешение экрана – 1920x1080.
02_bench.ahk [2 KB]
03_load.ahk [1 KB]
04_scene.ahk [1 KB]
Следующие два файла также не представляют особого интереса, и комментировать в них нечего:
05_exitmenu.ahk [1 KB]
06_exit.ahk [1 KB]
07_1920-1680.ahk [3 KB]
08_1680-1280.ahk [1 KB]
09_1280-1920.ahk [1 KB]
10_t1.txt, 11_t2.txt, 12_t3.txt, 13_i.txt
Об этих файлах уже было сказано выше. В первом хранится значение паузы, необходимой для запуска игры, во втором хранится значение паузы, необходимой для первой загрузки тестового сохранения, в третьем хранится значение паузы, необходимой для второй и каждой последующей загрузки уровня. Напомню, все значения пауз записываются в миллисекундах. В четвёртом файле хранится значение переменной, используемой для алгоритмов автосмены разрешения экрана.
Видеозапись тестовой сцены можно было наблюдать во вводной статье, с тех пор тестовая сцена не менялась. Независимо от разрешения экрана сцена проходится без отклонений, так что показывать там нечего.
Видеозапись с запуском игры и с автоматизированной последовательной сменой разрешения экрана 1920x1080->1680x1050->1280x1024->1920x1080:
Архив со всеми необходимыми для тестирования файлами: http://trash.overclockers.ru/Ivan_FCB/Arcania_script.rar
Список файлов, используемых для автоматизации замера производительности, с небольшим комментарием по каждому из них:
Теперь более подробно по исходному коду каждого из файлов:
(Щелкните на ссылке, чтобы открыть .txt файл).
01_BFBC2.ahk [1 KB]
Выше была представлена простейшая реализация файла 01_BFBC2.ahk. Для смены разрешения экрана можно вставить соответствующие команды:
Данные строки кода можно добавить как перед запуском замера производительности (например, если тест в стартовом разрешении экрана не нужен), так и между замерами производительности.
Если необходимо протестировать производительность во всех трёх доступных разрешениях, то часть кода, отвечающая за замер производительности будет выглядеть так:
runwait, 02_bench.ahk
runwait, 07_1920-1680.ahk
runwait, 02_bench.ahk
runwait, 08_1680-1280.ahk
runwait, 02_bench.ahk
runwait, 09_1280-1920.ahk
Подразумевается, что исходное разрешение экрана – 1920x1080.
02_bench.ahk [1 KB]
03_load.ahk [1 KB]
04_scene.ahk [1 KB]
05_exitmenu.ahk [1 KB]
06_exit.ahk [1 KB]
07_1920-1680.ahk [1 KB]
08_1680-1280.ahk [1 KB]
09_1280-1920.ahk [1 KB]
10_r.txt, 11_t1.txt
Об этих файлах уже было сказано выше. В первом хранится значение идентификатора разрешения экрана, необходимого для алгоритмов загрузки тестовой сцены и для алгоритмов выхода в главное меню/выхода из игры. Во втором файле хранится значение паузы, необходимой для запуска игры.
Видеозапись тестовой сцены можно было наблюдать во вводной статье, с тех пор тестовая сцена не менялась. Независимо от разрешения экрана сцена проходится без отклонений, так что показывать там нечего.
Видеозапись с запуском игры и с автоматизированной последовательной сменой разрешения экрана 1920x1080->1680x1050->1280x1024->1920x1080:
Архив со всеми необходимыми для тестирования файлами: http://trash.overclockers.ru/Ivan_FCB/BFBC2_script.rar
Список файлов, используемых для автоматизации замера производительности, с небольшим комментарием по каждому из них:
Теперь более подробно по исходному коду каждого из файлов:
(Щелкните на ссылке, чтобы открыть .txt файл).
01_Borderlands.ahk [1 KB]
Выше была представлена простейшая реализация файла 01_Borderlands.ahk. Для смены разрешения экрана можно вставить соответствующие команды:
Данные строки кода можно добавить как перед запуском замера производительности (например, если тест в стартовом разрешении экрана не нужен), так и между замерами производительности.
Если необходимо протестировать производительность во всех трёх доступных разрешениях, то часть кода, отвечающая за замер производительности будет выглядеть так:
runwait, 02_bench.ahk
runwait, 06_1920-1680.ahk
runwait, 02_bench.ahk
runwait, 07_1680-1280.ahk
runwait, 02_bench.ahk
runwait, 08_1280-1920.ahk
Подразумевается, что исходное разрешение экрана – 1920x1080.
02_bench.ahk [1 KB]
03_load.ahk [1 KB]
04_scene.ahk [1 KB]
05_exit.ahk [1 KB]
06_1920-1680.ahk [1 KB]
07_1680-1280.ahk [1 KB]
08_1280-1920.ahk [1 KB]
09_t1.txt, 10_t2.txt
Об этих файлах уже было сказано выше. В первом хранится значение паузы, необходимой для запуска игры, во втором хранится значение паузы, необходимой для загрузки тестового сохранения.
Видеозапись тестовой сцены можно было наблюдать во вводной статье, с тех пор тестовая сцена не менялась. Независимо от разрешения экрана сцена проходится без отклонений, так что показывать там нечего.
Видеозапись с запуском игры и с автоматизированной последовательной сменой разрешения экрана 1920x1080->1680x1050->1280x1024->1920x1080:
Архив со всеми необходимыми для тестирования файлами: http://trash.overclockers.ru/Ivan_FCB/Borderlands_script.rar
Список файлов, используемых для автоматизации замера производительности, с небольшим комментарием по каждому из них:
Теперь более подробно по исходному коду каждого из файлов:
(Щелкните на ссылке, чтобы открыть .txt файл).
01_BlackOPS.ahk [1 KB]
Выше была представлена простейшая реализация файла 01_BlackOPS.ahk. Для смены разрешения экрана можно вставить соответствующие команды:
Данные строки кода можно добавить как перед запуском замера производительности (например, если тест в стартовом разрешении экрана не нужен), так и между замерами производительности.
Если необходимо протестировать производительность во всех трёх доступных разрешениях, то часть кода, отвечающая за замер производительности будет выглядеть так:
runwait, 02_bench.ahk
runwait, 07_1920-1680.ahk
runwait, 02_bench.ahk
runwait, 08_1680-1280.ahk
runwait, 02_bench.ahk
runwait, 09_1280-1920.ahk
Подразумевается, что исходное разрешение экрана – 1920x1080.
02_bench.ahk [1 KB]
03_load.ahk [1 KB]
04_scene.ahk [1 KB]
05_exitmenu.ahk [1 KB]
06_exit.ahk [1 KB]
07_1920-1680.ahk [1 KB]
08_1680-1280.ahk [1 KB]
09_1280-1920.ahk [1 KB]
10_i.txt, 11_j.txt, 12_t1.txt, 13_t2.txt, 14_t3.txt
Об этих файлах уже было сказано выше. В первом хранится значение переменной i, необходимой для правильной загрузки тестовой сцены. Во втором хранится значение переменной j, необходимой для правильной работы алгоритма автоматической смены разрешения экрана. В третьем хранится значение паузы, необходимое для запуска игры, в четвёртом хранится значение паузы, необходимое для первого запуска тестовой сцены, ну, и в пятом файле хранится значение паузы, необходимое для второго и каждого последующего запуска тестовой сцены.
Видеозапись тестовой сцены можно было наблюдать во вводной статье, с тех пор тестовая сцена не менялась. Независимо от разрешения экрана сцена проходится без отклонений, так что показывать там нечего.
Видеозапись с запуском игры и с автоматизированной последовательной сменой разрешения экрана 1920x1080->1680x1050->1280x1024->1920x1080:
Архив со всеми необходимыми для тестирования файлами: http://trash.overclockers.ru/Ivan_FCB/BlackOPS_script.rar
Список файлов, используемых для автоматизации замера производительности, с небольшим комментарием по каждому из них:
Теперь более подробно по исходному коду каждого из файлов:
(Щелкните на ссылке, чтобы открыть .txt файл).
01_daorigins.ahk [1 KB]
Выше была представлена простейшая реализация файла 01_daorigin.ahk. Для смены разрешения экрана можно вставить соответствующие команды:
Данные строки кода можно добавить как перед запуском замера производительности (например, если тест в стартовом разрешении экрана не нужен), так и между замерами производительности.
Если необходимо протестировать производительность во всех трёх доступных разрешениях, то часть кода, отвечающая за замер производительности будет выглядеть так:
runwait, 02_bench.ahk
runwait, 07_1920-1680.ahk
runwait, 02_bench.ahk
runwait, 08_1680-1280.ahk
runwait, 02_bench.ahk
runwait, 09_1280-1920.ahk
Подразумевается, что исходное разрешение экрана – 1920x1080.
02_bench.ahk [2 KB]
03_load.ahk [1 KB]
04_scene.ahk [1 KB]
05_exitmenu.ahk [1 KB]
06_exit.ahk [1 KB]
07_1920-1680.ahk [1 KB]
08_1680-1280.ahk [1 KB]
09_1280-1920.ahk [1 KB]
10_i.txt, 11_t1.txt, 12_t2.txt, 13_t3.txt, 14_r.txt
Об этих файлах уже было сказано выше. В первом хранится значение переменной i, необходимой для правильной загрузки тестовой сцены. Во втором хранится значение паузы, необходимое для запуска игры, в третьем хранится значение паузы, необходимое для первого запуска тестовой сцены, в четвёртом хранится значение паузы, необходимое для второго и каждого последующего запуска тестовой сцены. В пятом файле хранится значение идентификатора разрешения экрана, необходимое для правильной работы алгоритмов загрузки тестовой сцены, а также для алгоритмов выхода в главное меню/из игры.
Видеозапись тестовой сцены можно было наблюдать во вводной статье, с тех пор тестовая сцена не менялась. Независимо от разрешения экрана сцена проходится без отклонений, так что показывать там нечего.
Видеозапись с запуском игры и с автоматизированной последовательной сменой разрешения экрана 1920x1080->1680x1050->1280x1024->1920x1080:
Архив со всеми необходимыми для тестирования файлами: http://trash.overclockers.ru/Ivan_FCB/DragonAge_script.rar
Список файлов, используемых для автоматизации замера производительности, с небольшим комментарием по каждому из них:
Теперь более подробно по исходному коду каждого из файлов:
(Щелкните на ссылке, чтобы открыть .txt файл).
01_moh.ahk [1 KB]
Выше была представлена простейшая реализация файла 01_moh.ahk. Для смены разрешения экрана можно вставить соответствующие команды:
Данные строки кода можно добавить как перед запуском замера производительности (например, если тест в стартовом разрешении экрана не нужен), так и между замерами производительности.
Если необходимо протестировать производительность во всех трёх доступных разрешениях, то часть кода, отвечающая за замер производительности будет выглядеть так:
runwait, 02_bench.ahk
runwait, 07_1920-1680.ahk
runwait, 02_bench.ahk
runwait, 08_1680-1280.ahk
runwait, 02_bench.ahk
runwait, 09_1280-1920.ahk
Подразумевается, что исходное разрешение экрана – 1920x1080.
02_bench.ahk [1 KB]
03_load.ahk [1 KB]
04_scene.ahk [1 KB]
05_exitmenu.ahk [1 KB]
06_exit.ahk [1 KB]
07_1920-1680.ahk [1 KB]
08_1680-1280.ahk [1 KB]
09_1280-1920.ahk [1 KB]
10_t1.txt, 11_t2.txt
Об этих файлах уже было сказано выше. В первом хранится значение паузы, необходимое для запуска игры, во втором хранится значение паузы, необходимое для запуска тестовой сцены.
Видеозапись тестовой сцены можно было наблюдать во вводной статье, с тех пор тестовая сцена не менялась. Независимо от разрешения экрана сцена проходится без отклонений, так что показывать там нечего.
Видеозапись с запуском игры и с автоматизированной последовательной сменой разрешения экрана 1920x1080->1680x1050->1280x1024->1920x1080:
Архив со всеми необходимыми для тестирования файлами: http://trash.overclockers.ru/Ivan_FCB/MOH2010_script.rar
Список файлов, используемых для автоматизации замера производительности, с небольшим комментарием по каждому из них:
Теперь более подробно по исходному коду каждого из файлов:
(Щелкните на ссылке, чтобы открыть .txt файл).
01_metro2033.ahk [1 KB]
Выше была представлена простейшая реализация файла 01_metro2033.ahk. Для смены разрешения экрана можно вставить соответствующие команды:
Данные строки кода можно добавить как перед запуском замера производительности (например, если тест в стартовом разрешении экрана не нужен), так и между замерами производительности.
Если необходимо протестировать производительность во всех трёх доступных разрешениях, то часть кода, отвечающая за замер производительности будет выглядеть так:
runwait, 02_bench.ahk
runwait, 07_1920-1680.ahk
runwait, 02_bench.ahk
runwait, 08_1680-1280.ahk
runwait, 02_bench.ahk
runwait, 09_1280-1920.ahk
Подразумевается, что исходное разрешение экрана – 1920x1080.
02_bench.ahk [1 KB]
03_load.ahk [1 KB]
04_scene.ahk [1 KB]
05_exitmenu.ahk [1 KB]
06_exit.ahk [1 KB]
07_1920-1680.ahk [1 KB]
08_1680-1280.ahk [1 KB]
09_1280-1920.ahk [1 KB]
10_x.txt, 11_t1.txt
Об этих файлах уже было сказано выше. В первом хранится значение паузы, необходимое для запуска игры, во втором хранится значение переменной, необходимой в алгоритмах автосмены разрешения экрана.
Видеозапись тестовой сцены можно было наблюдать во вводной статье, с тех пор тестовая сцена не менялась. Независимо от разрешения экрана сцена проходится без отклонений, так что показывать там нечего.
Видеозапись с запуском игры и с автоматизированной последовательной сменой разрешения экрана 1920x1080->1680x1050->1280x1024->1920x1080:
Архив со всеми необходимыми для тестирования файлами: http://trash.overclockers.ru/Ivan_FCB/Metro2033_script.rar
Список файлов, используемых для автоматизации замера производительности, с небольшим комментарием по каждому из них:
Теперь более подробно по исходному коду каждого из файлов:
(Щелкните на ссылке, чтобы открыть .txt файл).
01_cop.ahk [1 KB]
Выше была представлена простейшая реализация файла 01_cop.ahk. Для смены разрешения экрана можно вставить соответствующие команды:
Данные строки кода можно добавить как перед запуском замера производительности (например, если тест в стартовом разрешении экрана не нужен), так и между замерами производительности.
Если необходимо протестировать производительность во всех трёх доступных разрешениях, то часть кода, отвечающая за замер производительности будет выглядеть так:
runwait, 02_bench.ahk
runwait, 07_1920-1680.ahk
runwait, 02_bench.ahk
runwait, 08_1680-1280.ahk
runwait, 02_bench.ahk
runwait, 09_1280-1920.ahk
Подразумевается, что исходное разрешение экрана – 1920x1080.
02_bench.ahk [1 KB]
03_load.ahk [1 KB]
04_false_scene.ahk [1 KB]
04_scene.ahk [1 KB]
05_exitmenu.ahk [1 KB]
06_exit.ahk [1 KB]
07_1920-1680.ahk [1 KB]
08_1680-1280.ahk [1 KB]
09_1280-1920.ahk [1 KB]
10_r.txt, 11_t1.txt, 12_t2.txt
Об этих файлах уже было сказано выше. В первом хранится значение идентификатора разрешения экрана, необходимое для правильной работы алгоритма загрузки сохранения. Во втором хранится значение паузы, необходимое для запуска игры, в третьем файле хранится значение паузы, необходимое для первой загрузки сохранения.
Видеозапись тестовой сцены можно было наблюдать во вводной статье, с тех пор тестовая сцена не менялась. Независимо от разрешения экрана сцена проходится без отклонений, так что показывать там нечего.
Видеозапись с запуском игры и с автоматизированной последовательной сменой разрешения экрана 1920x1080->1680x1050->1280x1024->1920x1080:
Архив со всеми необходимыми для тестирования файлами: http://trash.overclockers.ru/Ivan_FCB/COP_script.rar
Что ж, вот и подошел к завершению затянувшийся обзор возможностей по автоматизации замера производительности в играх. Теперь для скриптов исследована возможность автоматической смены разрешения экрана, а также оптимизирована их совместимость с различными конфигурациями. В качестве бонуса код оптимизирован для лёгкой и безболезненной правки разбитием на отдельные составляющие.