Lua HideStreamZone - виртуальное окружение прорисовки

Rice.

Известный
Автор темы
Модератор
1,757
1,646
На многих серверах GTA5 разработчики отделяют популярные места "личной" зоной стрима для повышения оптимизации игроков возле этих мест. Например, во время проезда игрока около казино не прогружаются все игроки внутри него.

Я захотел попытаться реализовать это в SAMP'e. Первоначальной задачей было - оптимизация, но по итогу на сильно загруженном рынке Аризоны разница ФПС почти не чувствуется (хоть процентное соотношение довольно неплохое). Скорее, это будет просто исходником для дальнейших улучшений и пищей для размышления, чем какой-то хорошей реализацией.

Из минусов можно отметить:

  • В непонятный для меня момент может крашнуть игру
  • Отсутствует "синхронизация" аксессуаров у игроков, которые временно "скрыты" от вас
  • Отсутствует функция скрытия машин и лишнего мусора
  • Отсутствует возможность создания новых зон прорисовки
  • Отсутствует красивое затемнение экрана
  • Отсутствует отключение скрипта прямо в игре, активация автоматическая
Оптимизация:
  • Ситуация вне ЦР более менее: 75% повышения ФПС
  • Ситуация внутри ЦР хуже: 30% повышения ФПС
Всеми известный Central Cleaner дает прирост ФПС примерно в 100%. Но из его недостатков - нету адекватной "синхронизации" игроков в реальном времени (только после обновления зоны стрима).

По итогу, скрипт получился интересной заменой удаленного интерьера ЦР'а Аризоны, но сыроватым.



 

Вложения

  • HideStreamZone.lua
    3.8 KB · Просмотры: 46

ARMOR

Go Robot
Модератор
4,985
6,953
В теории можно хукнуть CEntity::Render, и рендерить педов и объекты которые есть на ЦР только если локальный пед в этой зоне стрима. Это даст тебе преймущество в том что не придётся работать с битстримом и каждый раз создавать/удалять педов и исправит всё твои "минусы" ( Да, они будут храниться все равно в самповских и игровый пулах в отличии от твоего метода, но всё же )

Ещё кстати для оптимизации я бы во время нахождения на ЦР не рендерил то что находится за его пределами, т.е: кары, других игроков и объекты

PS: Ладно, дало не такой большой прирост ФПС как твой скрипт. Получил около 90 ФПС за ЦР в моменте когда с твоим скриптом 130
 
Последнее редактирование:

Vespan

loneliness
Проверенный
2,130
1,751
Это типо что бы не видеть всех этих обезьян
необходимо всех игроков-машин удалять что бы не видеть этих обезьян
1736545069702.png
 
  • Ха-ха
  • Нравится
Реакции: dsaf1 и ARMOR

kinamaster22

Известный
1,260
187
Может кто-то умный кратко обьяснить как этот скрипт работает? Нихуя не понял
 

SummerSouL

Известный
94
52
Может кто-то умный кратко обьяснить как этот скрипт работает? Нихуя не понял
Все игроки на ЦРе грузятся, только когда ты в ЦР заходишь. Проходя/проезжая мимо - ЦР пустой для тебя, дабы не нагружать компек и не снижать тебе фпс с, условных, 200 до 50

И, наоборот, находясь на территории ЦР - всё остальное пустое у тебя
 
  • Нравится
Реакции: kinamaster22

waparabka

Известный
111
168
В теории можно хукнуть CEntity::Render, и рендерить педов и объекты которые есть на ЦР только если локальный пед в этой зоне стрима. Это даст тебе преймущество в том что не придётся работать с битстримом и каждый раз создавать/удалять педов и исправит всё твои "минусы" ( Да, они будут храниться все равно в самповских и игровый пулах в отличии от твоего метода, но всё же )

Ещё кстати для оптимизации я бы во время нахождения на ЦР не рендерил то что находится за его пределами, т.е: кары, других игроков и объекты

PS: Ладно, дало не такой большой прирост ФПС как твой скрипт. Получил около 90 ФПС за ЦР в моменте когда с твоим скриптом 130
Рендер педов особо не влияет на фпс в игре, вся проблема с фпсом исключительно в сампе с его однопоточной реализацией сетевой части. Проверить эту шизотеорию легко, достаточно сравнить удаление педов и игроков в одинаковом количестве, там результат на лицо. Поэтому prmenu дает такой прирост по фпсу, от удаленных игроков пакеты приходят реже в несколько раз
 
  • Нравится
Реакции: g305noobo и ARMOR

sazzas1978

Известный
137
127
Вот так можно намного короче и без гемора скрыть и обьекты приатаченные и сами модельки, и еще машины (кроме незанятых), и не надо так много ебатся
 

Вложения

  • shiza.lua
    1.7 KB · Просмотры: 21