Антон Дельвиг
Гражданин
Хочу представить вашему вниманию bat-file (это такой скрипт под Windows, выполняющий команды в определенной последовательности).
Этот скрипт и еще парочка манипуляций позволили мне играть без FPS-дроп и аварийного завершения Arma 3, а главное повороты корпуса персонажа в бою больше не чувствуются так будто персонаж делает их в неком мире, который весь доверху наполнен киселем или иной, густой жидкостью.
Эти параметры определяют, как бы это сказать: куда вы будете смотреть в следующий момент, ни больше ни меньше. т.е. софт пытается предугадать куда же вы будете смотреть своим героем в следующую секунду и даже готовит кадры для этого и держит в памяти. Никакая, жалкая программа не способна угадать наше следующее движение! Если серьезно: оно не работает так как задумано и мешает.
Вкладка № 1 "Общее":
-> Вкладка № 2 "AA && PP":
Нужно сделать так в настройках видеокарты:
Отрываем Панель управления NVIDIA -> Параметры 3D -> Настройка Surround, PhysX -> ставим "ЦП" в настройках PhysX
В "Управлении параметрами 3D" добавляем ваш exe-шник (Определите, что вы будете использовать для игры: для 64-х разрядной Arma это arma3_x64.exe, да 32-х разрядной это arma3.exe - оба файла лежат в папке с установленной игрой). После добавления exe-шника ставим 3 параметра (выделено черным на картинке) ровно так как на картинке, особенно важно установить: "Предпочтительно использовать режим максимальной..." Из-за него ваша карта будет молотить на 100% без экономии энергии, когда будет запущена Arma = никаких рывков и фризов.
Я делаю это .bat-ником мне так удобно, если вы найдете способ передать все параметры через арма-лаунчер то вы - молодцы. Мне лаунчер не нравится, я его не использую.
Привожу пример 2-х батников:
(Использовать так: копируем текст в текстовый файл, меняем путь до папки с установленной arma 3 с "E:\Games\Steam\steamapps\common\Arma 3" на то, что там у вас на компьютере. Меняем (переименовываем файл) расширение файла с .txt на .bat)
Bat-file №1 Простая версия.
Bat-file №2 Используется мною для игры на Тушино с использованием BattlEye. (он немного сложнее, далее будет пояснение почему).
Что делают скрипты?
Первый скрипт просто стартует Arma, выставляя ей высокий приоритет в системе и выдавая процессу все возможные ядра процессора для использования. (Без параметра /affinity оно с завидным упорством использует 2 ядра. Скрипт заставляет Arma использовать 64-х разрядный (tbb4malloc_bi_x64) менеджер памяти и саму арму стартует такую же. В теории это позволяет использовать больше оперативной памяти и быстрее обрабатывать инструкции процессором. (Сейчас все CPU 64-х разрядные, странно использовать 32-х разрядное приложение на них) Под конкретно вашу машину надо установить -maxMem= максимальное количество памяти в вашей системе минус 4 Гб - 5 Гб под работу самой операционки.
Пример: У меня 16 Гб, Windows 10 жрет 5Гб в среднем, я забираю остальное под Arma. Далее параметр -maxVRAM= количество видеопамяти минус 200-300 мб под работу ОС. У меня 4ГБ я поставил 3500.
Второй скрипт немного хитрее он стартует Battleye (смотрит обновления Battleye и стартует - если быть точным) и далее уже BattleEye в свою очередь запускает Arma через параметр -exe
Тут крылась сложность, через BattleEye невозможно передать параметры дочернему процессу Arma3_x64.exe, по этому путем "гугления" придумалось следующее:
Выставлять нужные параметры CPU и приоритета на уже запущенном процессе Arma3_x64.exe
Battleye стартует Arma3_x64.exe и пока оно инициализируется, начинает работать цикл поиска процесса Arma3_64.exe.(:loop) Цикл сделан для того, что бы скрипт повышения приоритета процесса не выключился раньше времени, пока процесса еще нет в списках запущенных процессов. Когда цикл натыкается на процесс Arma3_x64.exe, он ставит ему высокий приоритет и назначает максимальное количество ядер в системе, далее скрипт повышения приоритета (bat-file) завершается.
Для игры с модами , после надписи mod= , необходимо написать название мода через "@". К примеру ( mod=@TacticalLife )
Сайт , откуда была взята информация
Этот скрипт и еще парочка манипуляций позволили мне играть без FPS-дроп и аварийного завершения Arma 3, а главное повороты корпуса персонажа в бою больше не чувствуются так будто персонаж делает их в неком мире, который весь доверху наполнен киселем или иной, густой жидкостью.
Часть 1
Специальная настройка Arma 3
Первое, что нужно сделать это поставить следующие параметры в значение "1" (выделено на картинке серым) Они находятся в файле Arma3.cfg, который лежит обычно по пути "C:\Users\имя вашего пользователя в системе\Documents\Arma 3\Arma3.cfg" Специальная настройка Arma 3
Эти параметры определяют, как бы это сказать: куда вы будете смотреть в следующий момент, ни больше ни меньше. т.е. софт пытается предугадать куда же вы будете смотреть своим героем в следующую секунду и даже готовит кадры для этого и держит в памяти. Никакая, жалкая программа не способна угадать наше следующее движение! Если серьезно: оно не работает так как задумано и мешает.
Часть 2
Настройка параметров графики в игре
Сначала я покажу как настроена моя копия Arma 3, в плане графики. Настройки -> Видео - >Настройка параметров графики в игре
Вкладка № 1 "Общее":
-> Вкладка № 2 "AA && PP":
Часть 3
Настройка для карт NVIDIA
Перейдем в настройки видеокарты. У меня используется NVIDIA 1050TI 4GB.Настройка для карт NVIDIA
Нужно сделать так в настройках видеокарты:
Отрываем Панель управления NVIDIA -> Параметры 3D -> Настройка Surround, PhysX -> ставим "ЦП" в настройках PhysX
В "Управлении параметрами 3D" добавляем ваш exe-шник (Определите, что вы будете использовать для игры: для 64-х разрядной Arma это arma3_x64.exe, да 32-х разрядной это arma3.exe - оба файла лежат в папке с установленной игрой). После добавления exe-шника ставим 3 параметра (выделено черным на картинке) ровно так как на картинке, особенно важно установить: "Предпочтительно использовать режим максимальной..." Из-за него ваша карта будет молотить на 100% без экономии энергии, когда будет запущена Arma = никаких рывков и фризов.
Часть 4
Скрипты (bat-файлы)
Далее перейдем к скриптам запуска Arma 3.Скрипты (bat-файлы)
Я делаю это .bat-ником мне так удобно, если вы найдете способ передать все параметры через арма-лаунчер то вы - молодцы. Мне лаунчер не нравится, я его не использую.
Привожу пример 2-х батников:
(Использовать так: копируем текст в текстовый файл, меняем путь до папки с установленной arma 3 с "E:\Games\Steam\steamapps\common\Arma 3" на то, что там у вас на компьютере. Меняем (переименовываем файл) расширение файла с .txt на .bat)
Bat-file №1 Простая версия.
cd /d "E:\Games\Steam\steamapps\common\Arma 3"
start "" /high /affinity FF arma3_x64.exe -malloc=tbb4malloc_bi_x64 -hugepages -maxMem=11192 -maxVRAM=2800 -enableHT -exthreads=7 -skipIntro -nosplash -world=empty -useBE -nopause -noLogs -connect= -port= -password=wogames -mod=
start "" /high /affinity FF arma3_x64.exe -malloc=tbb4malloc_bi_x64 -hugepages -maxMem=11192 -maxVRAM=2800 -enableHT -exthreads=7 -skipIntro -nosplash -world=empty -useBE -nopause -noLogs -connect= -port= -password=wogames -mod=
Bat-file №2 Используется мною для игры на Тушино с использованием BattlEye. (он немного сложнее, далее будет пояснение почему).
cd /d "S:\Steam\steamapps\common\Arma 3"
start "" /normal arma3battleye.exe 2 1 0 -exe arma3_x64.exe -malloc=tbb4malloc_bi_x64 -hugepages -maxMem=10000 -maxVRAM=3500 -enableHT -exthreads=4 -skipIntro -nosplash -world=empty -useBE -nopause -noLogs -mod=
:loop
tasklist /FI "IMAGENAME eq arma3_x64.exe" 2>NUL | find /I /N "arma3_x64.exe">NUL
if "%ERRORLEVEL%"=="1" goto loop
PowerShell "$Process = Get-Process arma3_x64; $Process.ProcessorAffinity=255"
wmic process where name="arma3_x64.exe" CALL setpriority "128"
start "" /normal arma3battleye.exe 2 1 0 -exe arma3_x64.exe -malloc=tbb4malloc_bi_x64 -hugepages -maxMem=10000 -maxVRAM=3500 -enableHT -exthreads=4 -skipIntro -nosplash -world=empty -useBE -nopause -noLogs -mod=
:loop
tasklist /FI "IMAGENAME eq arma3_x64.exe" 2>NUL | find /I /N "arma3_x64.exe">NUL
if "%ERRORLEVEL%"=="1" goto loop
PowerShell "$Process = Get-Process arma3_x64; $Process.ProcessorAffinity=255"
wmic process where name="arma3_x64.exe" CALL setpriority "128"
Что делают скрипты?
Первый скрипт просто стартует Arma, выставляя ей высокий приоритет в системе и выдавая процессу все возможные ядра процессора для использования. (Без параметра /affinity оно с завидным упорством использует 2 ядра. Скрипт заставляет Arma использовать 64-х разрядный (tbb4malloc_bi_x64) менеджер памяти и саму арму стартует такую же. В теории это позволяет использовать больше оперативной памяти и быстрее обрабатывать инструкции процессором. (Сейчас все CPU 64-х разрядные, странно использовать 32-х разрядное приложение на них) Под конкретно вашу машину надо установить -maxMem= максимальное количество памяти в вашей системе минус 4 Гб - 5 Гб под работу самой операционки.
Пример: У меня 16 Гб, Windows 10 жрет 5Гб в среднем, я забираю остальное под Arma. Далее параметр -maxVRAM= количество видеопамяти минус 200-300 мб под работу ОС. У меня 4ГБ я поставил 3500.
Второй скрипт немного хитрее он стартует Battleye (смотрит обновления Battleye и стартует - если быть точным) и далее уже BattleEye в свою очередь запускает Arma через параметр -exe
Тут крылась сложность, через BattleEye невозможно передать параметры дочернему процессу Arma3_x64.exe, по этому путем "гугления" придумалось следующее:
Выставлять нужные параметры CPU и приоритета на уже запущенном процессе Arma3_x64.exe
Battleye стартует Arma3_x64.exe и пока оно инициализируется, начинает работать цикл поиска процесса Arma3_64.exe.(:loop) Цикл сделан для того, что бы скрипт повышения приоритета процесса не выключился раньше времени, пока процесса еще нет в списках запущенных процессов. Когда цикл натыкается на процесс Arma3_x64.exe, он ставит ему высокий приоритет и назначает максимальное количество ядер в системе, далее скрипт повышения приоритета (bat-file) завершается.
Для игры с модами , после надписи mod= , необходимо написать название мода через "@". К примеру ( mod=@TacticalLife )
Сайт , откуда была взята информация