Перейти к содержимому


Фотография

Оптимизация и производительность сервера

оптимизация производительность лаги

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 156

#121 BHaType

BHaType

    Пользователь

  • Пользователь
  • PipPipPip
  • 358 сообщений

Отправлено 19 Январь 2019 - 1:03

Достаточно большую роль в производительности играет AI NextBot's (далее боты) в игре Left 4 Dead. Так как неважно, какой режим (кооператив, сражение или иной). AI код в server.dll/so использует много циклов с очень большой частотой. Поэтому очень сильной оптимизацией работы SRCDS - грамотное создание или редактирование NAV файла для каждой карты. Чтобы AI не застревал нигде и чтобы не прокручивал бесконечные циклы (дабы дойти до цели и атаковать ей - это один из многих примеров). Просматривая и следовательно редактируя NAV файлы карт я понял, что все они очень плохо сделаны. Это дает очень нехорошие показатели в производительности SRCDS L4D. По моему многолетнему опыту создания NAV файлов я мог выжимать до 10% производительности.
К тому же редактирование NAV файла дает невероятные вещи для работы с AI. В игре Left 4 Dead 1 - можно создать достаточно динамичный AI для каждой команды. Как минимум - убрать баги и нелепости в работе AI, как максимум - создание новых путей для прохождения различных препятствий (прыжки, прохождения различных полос препятствий, появлений зараженных в самых различных местах). В игре Left 4 Dead 2 есть все это, но с еще более гибкой системой управления AI (с введением VScripts)

В основном создатели карт, используют авто-генерацию навигации.

Даже сами valve её заюзали на c8m1, это хорошо видно, если прописать nav_edit 1 и посмотреть на трубы, по которым должна зараза лезть.

+ ещё очень большую роль играют метки.(Они дают директору определить, где находится убега, а где основная финальная битва.)

 

https://github.com/K...ting/navmesh.sp - можно и самому её сделать и загрузить плагином(но я не уверен, ибо не проверял).

Но в любом случае делать навигацию с нуля очень геморно, самый простой вариант, сделать авто-генерацию и позже уже посмотреть и подправить, если что-то очень убого вышло.


Сообщение отредактировал BHaType: 19 Январь 2019 - 1:07


#122 Vitamin

Vitamin

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 492 сообщений

Отправлено 19 Январь 2019 - 2:05

Все что ты сказал выше я уже давным давно знаю. Я нигде не упоминал создание NAV файла с нуля. Суть моего сообщения была в том, что повышение производительности и последующая оптимизация состоит в одном из таких вариантов. Насчет плагина - в нем нет необходимости. Ибо в Left 4 Dead 1, и тем более в Left 4 Dead 2. Есть достаточно инструментов для работы с NAV сеткой.
Чтобы сделать по меркам нынешних AI систем более менее адекватный AI для стандартных кампаний. Нужно тестировать не одну неделю только одну карту. Есть вещи при работе с NAV и AI, про которые узнаешь только с опытом. Я делал на заказ NAV файлы для карт. После таких манипуляций AI ходил по геомптрии карты настолько лихо. Что даже по меркам игры Left 4 Dead, игроки со средним Skill'ом игры проигрывали команде Infected AI на уровне сложности Easy

Сообщение отредактировал Vitamin: 19 Январь 2019 - 2:10


#123 BHaType

BHaType

    Пользователь

  • Пользователь
  • PipPipPip
  • 358 сообщений

Отправлено 19 Январь 2019 - 2:29

Все что ты сказал выше я уже давным давно знаю. Я нигде не упоминал создание NAV файла с нуля. Суть моего сообщения была в том, что повышение производительности и последующая оптимизация состоит в одном из таких вариантов. Насчет плагина - в нем нет необходимости. Ибо в Left 4 Dead 1, и тем более в Left 4 Dead 2. Есть достаточно инструментов для работы с NAV сеткой.
Чтобы сделать по меркам нынешних AI систем более менее адекватный AI для стандартных кампаний. Нужно тестировать не одну неделю только одну карту. Есть вещи при работе с NAV и AI, про которые узнаешь только с опытом. Я делал на заказ NAV файлы для карт. После таких манипуляций AI ходил по геомптрии карты настолько лихо. Что даже по меркам игры Left 4 Dead, игроки со средним Skill'ом игры проигрывали команде Infected AI на уровне сложности Easy

Я рад, что ты всё это знаешь. Я лишь только дополнил твой ответ.

Но насчёт навигации, то я могу её с нуля сделать, ибо имею опыт с ней(не очень много, но если серьёзно займусь, то сделаю, ибо там не так уж и трудно, только время потраченное будет жалко).

Плагин не для создания навигации(description = "A plugin that can read Valve's Navigation Mesh.").



#124 Vitamin

Vitamin

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 492 сообщений

Отправлено 19 Январь 2019 - 2:38

Создание NAV файла - одно дело. Дополнение его различными вещами - второе. А тестирование AI при всех типах поведения в NAV файле - другое. AI ботов во всех SourceEngine играх такой, что при срабатывании у AI игрока режима ALARM, он начинает вести себя в разных ситуациях по разному. Создание комплексного NAV файла в сочетании с умным AI - дело не простое. Это становится следствием того, что в стандартных кампаниях AI игроки так часто застревают в малых проёмах или углах. Именно поэтому я не согласен что создание NAV файла - простое дело.
И где я в сообщении выше говорил о том, что плагин для создания NAV файлов ?

Сообщение отредактировал Vitamin: 19 Январь 2019 - 2:42


#125 Pringles

Pringles

    Пользователь

  • Пользователь
  • PipPipPip
  • 299 сообщений

Отправлено 19 Январь 2019 - 2:44

Тот момент когда из диалога людей понял только слова "Оптимизация", "AI" и "карты"..


Сообщение отредактировал Pringles: 19 Январь 2019 - 2:45


#126 BHaType

BHaType

    Пользователь

  • Пользователь
  • PipPipPip
  • 358 сообщений

Отправлено 19 Январь 2019 - 3:00

"Насчет плагина - в нем нет необходимости."

 

Я полностью согласен, что создать очень хорошую навигацию, без всяких багов и прочей неведомой дичи, очень трудно.

Но я говорил про обычную навигацию, без всякого раздумия и смысла, просто лепить зоны.

Такую навигацию сделать очень легко, только вот очень много времени надо.


Сообщение отредактировал BHaType: 19 Январь 2019 - 3:01


#127 dragokas

dragokas

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 792 сообщений

Отправлено 29 Январь 2019 - 2:57

Vitamin и BHaType,

 

вопрос к вам, эти модифицированные NAV файлы для стандартных карт потребуется заменять только на сервере или у клиента тоже?


=========

 

Сеть: вопрос к специалистам по сетевым настройкам (есть ли здесь такие?)

кто может платно выполнить оптимизацию

и кто действительно понимает, что он делает.

 

Только не такие, кто ставит рейты на 66000 и выше и считает, что это нормально.

Я когда-то давно настраивал по формуле. Претензий нет. Все работает плавно, идеально, долгое время с большой ордой и на слотах.

Правда, при прохождении игроками карт с большим числом объектов, созданных в Stripper, бывают вылеты "Reliable snapshot overflow".



#128 BHaType

BHaType

    Пользователь

  • Пользователь
  • PipPipPip
  • 358 сообщений

Отправлено 29 Январь 2019 - 3:34

Vitamin и BHaType,

 

вопрос к вам, эти модифицированные NAV файлы для стандартных карт потребуется заменять только на сервере или у клиента тоже?

 

 

Вообще, nav нужен только серваку, тк клиент ничего не делает с этой навигацией(ну только если он не создал свой лок.сервак), а так это легко проверить, просто удалить у себя файл навигации, а на серваке не трогать его и попробовать зайти.



#129 Game Over - L4D2 - CS:GO

Game Over - L4D2 - CS:GO

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 574 сообщений

Отправлено 29 Январь 2019 - 4:49

Vitamin и BHaType,

 

вопрос к вам, эти модифицированные NAV файлы для стандартных карт потребуется заменять только на сервере или у клиента тоже?


=========

 

Сеть: вопрос к специалистам по сетевым настройкам (есть ли здесь такие?)

кто может платно выполнить оптимизацию

и кто действительно понимает, что он делает.

 

Только не такие, кто ставит рейты на 66000 и выше и считает, что это нормально.

Я когда-то давно настраивал по формуле. Претензий нет. Все работает плавно, идеально, долгое время с большой ордой и на слотах.

Правда, при прохождении игроками карт с большим числом объектов, созданных в Stripper, бывают вылеты "Reliable snapshot overflow".

 

На L4Dnation есть пост от Prodigy Slim и ещё какие-то темы там всё расписывают
Обычно 60 000 рекомендуют под 60, но в лефки 66  при 100 ставят 100 000 под 33 - 30 000, чем плохо под 66 - 66 000? Может это и не правильно с точки зрения математики или кто там как высчитывает. Я в своё время много экспертов наслушался и каждый в свою сторону тянет одеяло и за истину выдаёт, поэтому тестил всё сам с нетграфом. Я никогда не понимал рекомендуют ставить мин значение, например ставят мин 33 макс 66, но лерп должен иметь разное значение при этих настройках. Вряд ли при таких раскладах мин 33 макс 66 с лерпом 0 сервер будет работать и вашим и нашим. 
 


Сообщение отредактировал Game Over - L4D2 - CS:GO: 29 Январь 2019 - 5:02


#130 dragokas

dragokas

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 792 сообщений

Отправлено 29 Январь 2019 - 6:03

Спасибо.

Дело в том, что sv_minrate, sv_maxrate, net_splitpacket_maxrate не могут в принципе быть выше 30000 (по крайней мере в L4d1). Может конечно я ошибаюсь. Но движок не позволяет это сделать, т.к. у этих кваров принудительно выставлен такой максимум и движок автоматически сбросит указанное значение к этому ограничителю.



#131 Ren89

Ren89

    Пользователь

  • Пользователь
  • PipPipPip
  • 291 сообщений

Отправлено 29 Январь 2019 - 15:11

Дело в том, что sv_minrate, sv_maxrate, net_splitpacket_maxrate не могут в принципе быть выше 30000 (по крайней мере в L4d1).

 

Тебе нужно расширение "tickrate_enabler.so".

Оно как раз и увеличивает лимиты sv_minrate, sv_maxrate, net_splitpacket_maxrate с 30 до 100.

В принципе можно и больше 100, но для этого нужно пересобрать расширение.

Или готовое взять - для л4д2 в сборке zonemod расширение может до 200 увеличить.

А вот для л4д1 не встречал готового в свободном доступе, хотя исходники то есть, можно самому сделать.



#132 Pringles

Pringles

    Пользователь

  • Пользователь
  • PipPipPip
  • 299 сообщений

Отправлено 29 Январь 2019 - 15:46

Тебе нужно расширение "tickrate_enabler.so".

Оно как раз и увеличивает лимиты sv_minrate, sv_maxrate, net_splitpacket_maxrate с 30 до 100.

В принципе можно и больше 100, но для этого нужно пересобрать расширение.

Или готовое взять - для л4д2 в сборке zonemod расширение может до 200 увеличить.

А вот для л4д1 не встречал готового в свободном доступе, хотя исходники то есть, можно самому сделать.

Tickrate Enabler 1.4.2 такой плагин есть на сервере арены - или это нето?



#133 dragokas

dragokas

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 792 сообщений

Отправлено 29 Январь 2019 - 17:51

Т.е. расширение реагирует на смену этой переменной даже не смотря на то что движок сразу же автоматически занижает значение до 30000, или это какое-то модифицированное расширение, не от MyArena?



#134 Game Over - L4D2 - CS:GO

Game Over - L4D2 - CS:GO

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 574 сообщений

Отправлено 29 Январь 2019 - 18:46

Т.е. расширение реагирует на смену этой переменной даже не смотря на то что движок сразу же автоматически занижает значение до 30000, или это какое-то модифицированное расширение, не от MyArena?

Так у тебя расширение не стоит, а я думаю, что за блок появился в 30 000 в 1 части
https://forums.allie...ad.php?t=299669
https://www.l4dnatio...r-1-0/385/?wap2
Я вот про что говорил
при 100 ставят 100 000
при 60 ставят 60 000
при 66 у меня стоит 66 000
если 128  ставят 128 000


sm_cvar sv_minrate 128000
sm_cvar sv_maxrate 128000
sm_cvar sv_minupdaterate 128
sm_cvar sv_maxupdaterate 128
sm_cvar sv_mincmdrate 128
sm_cvar sv_maxcmdrate 128
sm_cvar nb_update_frequency 0.024  // This is lighter on the server, if you want perfectly perfect smooth common and you have the CPU for it, use 0.018
sm_cvar net_splitrate 2
sm_cvar net_splitpacket_maxrate 64000

Сообщение отредактировал Game Over - L4D2 - CS:GO: 29 Январь 2019 - 18:49


#135 dragokas

dragokas

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 792 сообщений

Отправлено 29 Январь 2019 - 18:53

GameOver, у меня расширение Tickrate Enabler 1.4.2 поставлено через панель управления MyArena.

Но если это имеет значение, конечно попробую поставить отдельно.



#136 Game Over - L4D2 - CS:GO

Game Over - L4D2 - CS:GO

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 574 сообщений

Отправлено 29 Январь 2019 - 18:59

GameOver, у меня расширение Tickrate Enabler 1.4.2 поставлено через панель управления MyArena.

Но если это имеет значение, конечно попробую поставить отдельно.

Из п/у не тестил. Расширение от ProdigySim рабочее 
 



#137 Pringles

Pringles

    Пользователь

  • Пользователь
  • PipPipPip
  • 299 сообщений

Отправлено 29 Январь 2019 - 19:22

Из п/у не тестил. Расширение от ProdigySim рабочее 
 

там на странице 2 версий "tickrate_enabler" и "tickrate_enabler_hardcode_60"  :blink:

Для первой l4d какой ставить?


Сообщение отредактировал Pringles: 29 Январь 2019 - 19:26


#138 Game Over - L4D2 - CS:GO

Game Over - L4D2 - CS:GO

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 574 сообщений

Отправлено 30 Январь 2019 - 0:34

там на странице 2 версий "tickrate_enabler" и "tickrate_enabler_hardcode_60"  :blink:

Для первой l4d какой ставить?

Я настраивал года 2 назад и уже точно не помню где и что брал и какая версия была. Там вроде в папках должно быть подписано l4d и l4d2. Помню что автор этот был а какая версия и откуда была взята уже хз Я в этот период  экстренно винду менял и все мои настройки, плагины и сохранения канули в небытие 


Сообщение отредактировал Game Over - L4D2 - CS:GO: 30 Январь 2019 - 0:36


#139 Ren89

Ren89

    Пользователь

  • Пользователь
  • PipPipPip
  • 291 сообщений

Отправлено 30 Январь 2019 - 13:54

Не использую из П/У.

Проверял его несколько лет назад и были проблемы со стабильностью.

Оказалось что муареновский "tickrate_enabler" по весу чуть ли не в 2 раза меньше чем "официальный".

Что сейчас там выдают под видом "tickrate_enabler" не знаю.


  • dr_lex и dragokas это нравится

#140 anarki1980

anarki1980

    Участник

  • Пользователь
  • PipPip
  • 147 сообщений

Отправлено 20 Февраль 2019 - 14:43

Касательно оптимизации плагинов - меня посещает мысль, что если вместо того чтобы подписываться на события в разных плагинах и делать в каждом из них одни и те же операции (проверка легитимности клиентов, принадлежность команде, уровень хп и тп) сделать один плагин который подписывается на все, все проверяет и создает множество forward функций для каждого случая.

 

И каждый плагин вместо того чтобы к примеру подписываться на событие урона и выяснять кучей проверок выживший ли это который получает урон от танка - может просто сразу использовать функцию SurvivorTakesDamageFromTank(). 

 

Экономия может быть существенной, но вопрос насколько требователен к ресурсам механизм форвардов? Не сожрет ли он всю выгоду от сокращения лишних операций





Темы с аналогичным тегами оптимизация, производительность, лаги

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных