+ Ответить в теме
Страница 1 из 464 1 2 3 11 51 101 ... ПоследняяПоследняя
Показано с 1 по 10 из 4638

Тема: Игровые механики. Железная часть.

  1. #1
    Маршал Аватар для BearGentleman
    Регистрация
    21.07.2013
    Сообщений
    8,455
    Лучших ответов
    17

    48

    Игровые механики. Железная часть.

    День добрый, коллеги!

    Собственно как и все предыдущие данная тема будет являться некой записной книжкой, где будут опубликованы некие "несекретные секреты" железной части нашей любимой игры (ну раз мы в нее играем, значит любим). Это не только мой опыт, а также опыт моих друзей. Также данная тема является переосмыслением многих вещей, о которых написано в теме Фризы. Поиск решения. Непроверенные вещи постараюсь в эту тему не писать. Любые исправления и дополнения только приветствуются.

    1. Игра способна создать нагрузку в общей сумме, соответствующую загрузке двух ядер процессора максимум.
    1.1. Игра создана на DirectX9 и как все игры созданные на этой версии директа имеет один самый главный поток, занимающий ровно одно ядро процессора и плюс несколько небольших (от пяти до десяти) потоков, которые в общей сумме дают загрузку еще одного ядра.
    На практике загрузка процессора выглядит так:

    1.2. Если взглянуть на распределение игровой загрузки процессора по ядрам, то видно, что одно ядро всегда будет загружено на максимум (это и есть ключевой игровой поток) и еще два ядра загружены примерно на 50% каждое (на них распределены те самые мелкие 5-10 потоков). Плюс есть защитный механизм от Интел, который перераспределяет нагрузку по незагруженным ядрам, чтобы предотвратить перегрев одних ядер при простаивающих других, поэтому иногда картина описанная в данном пункте немного "размазывается", но в целом это происходит именно так.
    1.3. С практической точки зрения эта информация имеет смысл при выборе процессора под игру: никакие многоядерные процессоры для Warface не нужны. Самый безумно многоядерный Ryzen 7 проиграет в Warface двухядерному процессору i3-7350k, разогнанному до частоты 4.8 GHz.
    1.4. Самым дешевым из лучших процессоров для WF является Pentium G4560/4600/4620 - он хорошо подходит для этой игры, но не идеально. Идеальный вариант описан в п.1.3 - это i3-7350k, разогнанный до частоты 4.6-5.0 ГГц - больше для этой игры не нужно.
    1.5. Самым важным с учетом вышесказанного является частота процессора. Поэтому если речь об экономии не идет, а вы хотите в моменты даже самых жутких просадок иметь фпс не ниже герцовки вашего крутого 120/144/160/180/240 герцового монитора, то покупать нужно процессор, который можно разогнать до частоты выше 4GHz (у интела это процессоры с индексом "k").

    Исключением из вышесказанного является возможно наш нелюбимый античит MRAC, который сейчас существует как отдельный процесс в системе и может давать загрузку проца выше чем 2 ядра. А также вы должны хорошо знать свою систему и то, что у вас висит в автозагрузке. И если вы видите загрузку вашего 4ядерного проца во время игры более чем на 50%, то стоит поискать "врага", который пашет одновременно с игрой (хотя им конечно может оказаться как раз-таки MRAC)



    2. Почему Hyperthreading может быть вреден для игры.
    2.1. Несмотря на то, что гипертрейдинг (и аналогичная ему технология от AMD) безусловно расширяет возможности вашего процессора, но как ни странно он может мешать играм, которые не обладают настоящей многопоточностью.
    2.2. Как работает гипертрейдинг: предположим некий условный процессор в своем одном ядре имеет два блока, один из которых может выполнять сложение, а второй вычитание. Оба блока могут выполнять свое действие за один такт процессора. И если вам нужно получить результат двух функций подряд 4+2=? 7-3=?, то процессор выполнит их за один такт, отправив вычисление каждой из этих функций к соответствующему блоку и одно ядро отработает как два. А вот если вам надо получить результат функций 2+3=? 4+5=?, то процессору придется выполнить эти действия за два такта, так как блок сложения у него один, а блок вычитания будет простаивать.
    Конечно в реальном ЦП все гораздо сложнее и речь не идет о блоках вычитания и сложения. Ядро ЦП состоит из многих узкоспециализированных блоков (а также блоков общего назначения), которые никогда не задействуются все одновременно, а гипертрейдинг позволяет выполнить две различных операции на разных блоках одного ядра за один такт, но в реальных задачах не всегда вычисления расположены в нужной последовательности.
    Вот и получается, что в реальных приложениях с непредсказуемой последовательностью вычислений одно ядро с гипертрейдингом работает всего на 30% быстрее (ну как бы как 1.3 ядра) и не может составить полную конкуренцию двух железным ядрам.
    2.3. А теперь предположим, что игра вместо двух железных ядер подсела на одно железное и одно виртуальное (гипертрейдинговое). И мы в итоге получаем производительность примерно полутора ядер вместо двух ожидаемых.

    Конечно описанное в п.2 достаточно условно и в реальной жизни компенсируется тем самым защитным механизмом от Интела, который распределит потоки по реально свободным ядрам. Но этот нюанс надо учитывать, если вы займетесь ручным перераспределением ядер, как будет описано в одном из секретов ниже.

    3. Баланс между загрузкой процессора и видеокарты.
    3.1. Хотя вам возможно покажется это не слишком очевидным, но для достижения наибольшего фпс, доступного вашей системе, а также плавности игры и минимизации просадок фпс, вам нужно сделать так, чтобы видеокарта не тормозила процессор в ВФ.
    Да, возможно вам эта информация покажется бредом, ведь во всех обзорах чаще встречается ситуация, когда процессор не может раскрыть видеокарту. Но это для многопоточных игр, а в нашей игре с учетом сказанного в п.1 есть именно такой нюанс - фпс по большей части зависит именно от процессора и надо сделать так, чтобы видеокарта не мешала процессору раскрыться на полную.
    3.2. Для того, чтобы проверить баланс загрузки ЦП/ВК вам понадобится любая программа мониторинга (ссылки на самые лучшие выложу чуть позже внизу темы).
    При мониторинге во время боя (это очень важно - именно во время боя, а не на полигоне!!!) посмотрите процент загрузки процессора и видеокарты.
    Типичные варианты ситуаций для 4ядерного процессора (для себя просто замените цифру 50% на ту, что представлена в таблице в п.1 для вашего процессора) я представил в таблице:


    4. Настройка видеокарты под максимальную производительность или максимальное качество.
    В текущий момент не вижу смысла выкладывать настройки, так как гайдов в инете очень много. Пока выкладываю самый лучший гайд по настройке карт nvidia (если что с гугл-переводчиком читается легко) и надеюсь, что кто-нибудь подкинет такую же ссылку по настройке карт от AMD.
    1. Руководство Nvidia GeForce Tweak - самое подробное и практичное руководство, которое я только встречал.


    На сегодня все. Дальше буду писать по мере появления свободного времени

    3. Выбор видеокарты для Warface.
    4. Настройки видеокарты.
    5. Ручное перераспределение процесса игры по ядрам.
    6. Что влияет на появление фризов в игре.

    Самые полезные железные темы на форуме
    1. Мой опыт оптимизации игры + Батник для запуска - безусловно лучшая тема по оптимизации игры. Плюс содержит описание создания bat файла для запуска, которым я сам также пользуюсь.
    2. Оптимизация с помощью RAM-драйв - тоже сам пользуюсь. Ускоряет кэширование игровых файлов, плюс экономит ресурс SSD диска.
    3. Тестирование процессора Intel Core i7 8700k - очень наглядно показана зависимость фпс в варфейсе от частоты процессора, количества ядер процессора и частоты оперативной памяти.
    4. Минитест бюджетного ПК в Варфейс - продолжение тестов от Димы. Теперь в средне-нижнем ценовом сегменте.
    Последний раз редактировалось BearGentleman; 30.03.2019 в 19:18.

  2. #2
    Герой Аватар для 27dimarik27rus
    Регистрация
    22.05.2015
    Адрес
    ТОСЭР
    Сообщений
    11,174
    Лучших ответов
    1

    4

  3. #3
    Маршал Аватар для BearGentleman
    Регистрация
    21.07.2013
    Сообщений
    8,455
    Лучших ответов
    17

    0
    Ага, Дима, спасибо! Очень наглядное видео

  4. #4
    Герой Аватар для STALKERGREEN
    Регистрация
    12.11.2012
    Адрес
    ( . Y . )
    Сообщений
    11,905
    Лучших ответов
    0

    0
    А если 8 потоков и игра использует два потока с разных ядер разве это будет плохо, конфликтовать они по сути не должны)
    Просто помню в оверлее выставлял нагрузку всех потоков и загружены были вроде второй(или третий) и восьмой
    Во имя отца, Киберпанка и святого Киану

  5. #5
    Маршал Аватар для BearGentleman
    Регистрация
    21.07.2013
    Сообщений
    8,455
    Лучших ответов
    17

    0
    Цитата Сообщение от STALKERGREEN Посмотреть сообщение
    А если 8 потоков и игра использует два потока с разных ядер разве это будет плохо, конфликтовать они по сути не должны)
    Просто помню в оверлее выставлял нагрузку всех потоков и загружены были вроде второй(или третий) и восьмой
    На самом деле я тоже распределяю игру на три ядра, чтобы оставить запас и не нагружать два ядра на 100%, оставляя одно (нулевое) ядро под нужды системы, программы мониторинга и записи видео.

    Я об этом чуть позже напишу, так как есть нюанс - если игру не раскидывать по ядрам вручную, то обычно распределение происходит так: самое последнее ядро загружено на 80-95%, то есть практически полностью, а вторая половина нагрузки распределяется равномерно на оставшиеся ядра.
    После ручного распределения три ядра пашут более-менее равномерно. Как именно так запрограммировали - я ваще не в курсах

  6. #6
    Герой Аватар для 27dimarik27rus
    Регистрация
    22.05.2015
    Адрес
    ТОСЭР
    Сообщений
    11,174
    Лучших ответов
    1

    0
    Цитата Сообщение от BearGentleman Посмотреть сообщение
    Ага, Дима, спасибо! Очень наглядное видео
    а я то думал, куда ты пропал ? оказалось, что видосик смотрел, Аффтору зачёт !!! всё просто и наглядно

  7. #7
    Герой Аватар для STALKERGREEN
    Регистрация
    12.11.2012
    Адрес
    ( . Y . )
    Сообщений
    11,905
    Лучших ответов
    0

    0
    Цитата Сообщение от BearGentleman Посмотреть сообщение
    На самом деле я тоже распределяю игру на три ядра, чтобы оставить запас и не нагружать два ядра на 100%, оставляя одно (нулевое) ядро под нужды системы, программы мониторинга и записи видео.

    Я об этом чуть позже напишу, так как есть нюанс - если игру не раскидывать по ядрам вручную, то обычно распределение происходит так: самое последнее ядро загружено на 80-95%, то есть практически полностью, а вторая половина нагрузки распределяется равномерно на оставшиеся ядра.
    После ручного распределения три ядра пашут более-менее равномерно. Как именно так запрограммировали - я ваще не в курсах
    Ну меня ничего не распределялось равномерно Два потока загружены под завязку а остальные 6 спали)
    Во имя отца, Киберпанка и святого Киану

  8. #8
    Маршал Аватар для BearGentleman
    Регистрация
    21.07.2013
    Сообщений
    8,455
    Лучших ответов
    17

    0
    Цитата Сообщение от STALKERGREEN Посмотреть сообщение
    Ну меня ничего не распределялось равномерно Два потока загружены под завязку а остальные 6 спали)
    Хм... Странно, ты чем смотрел? Можно пару скриншотов или видео?

  9. #9
    Герой Аватар для STALKERGREEN
    Регистрация
    12.11.2012
    Адрес
    ( . Y . )
    Сообщений
    11,905
    Лучших ответов
    0

    0
    Цитата Сообщение от BearGentleman Посмотреть сообщение
    Хм... Странно, ты чем смотрел? Можно пару скриншотов или видео?
    Через RivaTunerStatisticServer, а скриншоты и видео я тогда не делал)
    Во имя отца, Киберпанка и святого Киану

  10. #10
    Маршал Аватар для BearGentleman
    Регистрация
    21.07.2013
    Сообщений
    8,455
    Лучших ответов
    17

    0
    Постараюсь переносить обсуждение железок сюда.

    Цитата Сообщение от Bradway Посмотреть сообщение
    Кеш представляет меньшую ценность в плане производительности, разумнее выжать из ядер разумный максимум и кеш подогнать под них, а не наоборот.
    Дык в том то и дело, что при разгоне ядер до 4.9 кэш может выкинуть в синий экран даже при 4.3.
    Видео, в котором я нормально играю на 4.9 снято когда кэш еще вообще не был разогнан и пахал на 3.7.

    ---------- Сообщение добавлено в 17:00 ----------

    Цитата Сообщение от STALKERGREEN Посмотреть сообщение
    Через RivaTunerStatisticServer, а скриншоты и видео я тогда не делал)
    Ну сам риватюнер это просто инструмент для вывода оверлея. А что использовалось для мониторинга: афтербернер или HWinfo?

+ Ответить в теме
Страница 1 из 464 1 2 3 11 51 101 ... ПоследняяПоследняя

Ваши права

  • Нельзя создавать новые темы
  • Нельзя отвечать в темах
  • Нельзя прикреплять вложения
  • Нельзя редактировать свои сообщения