Re: Патч от Hool1gan(антирелог)
У меня есть предположение, что это связано с тем, что клиент выгружает неиспользуемые пакеты, однако используемые разбухают из-за чего фпс садится, однако прямой аналогии тут врядли можно достичь.
|
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
--
|
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
--
|
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
Который нихрена не помогает :) |
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
админ с той группы что крысят патчи и наработки и выдают за свои. |
Re: Патч от Hool1gan(антирелог)
--
|
Re: Патч от Hool1gan(антирелог)
Цитата:
https://forum.zone-game.info/showpos...5&postcount=77 |
Re: Патч от Hool1gan(антирелог)
--
|
Re: Патч от Hool1gan(антирелог)
:facepalm:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
этой видимо? :) https://vk.com/topic-110134558_33992153 вот это просто :redlol::redlol::redlol: |
Re: Патч от Hool1gan(антирелог)
Цитата:
Ну и собственно сам чудо "разраб" kappa https://vk.com/rezzimx |
Re: Патч от Hool1gan(антирелог)
--
|
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
--
|
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
Реальная причина такова, что из скриптов, это уж никак не пофиксить :D
У ладвы есть менеджемент хип, который используется для скриптовых объектов, а так же для объектов движка игры. Туда впиливаются текстуры, модели и много др. фигни. Реальная очистка хипа происходит при запуске сборщика мусора, который запускается только при загрузке уровня игры с нуля. Есть аж несколько причин почему FPS падает:) Первая из них - какие-то эффекты не возвращаются в пул (на более новых версиях клиента пофикшено). Вторая причина - фрагментация менеджемент хипа. Третья причина - загрузка левела, с нуля, происходит не то что редко, а очень редко, из-за чего запуск GC становится манной небесной. Четвертая причина - тупенький GC, который неумет разбирать сложные ссылки. Данные дефекты могут пофиксить только корейцы и только они, но уж ни как не парень "вася", который чето там подредактировал в скриптах :D Максимум, это исправить первую причину, которая лишь отсрочит "конец". Реальный вариант исправить "это" - вручную вызывать перезагрузку левела (при том надо дать серверу знать, что клиенту требуется заного переслать все объекты в регионе), попутно перефигачив половину core.dll & engine.dll. И да, ручной запуск GC, в процессе игры, выгрузит все загруженные ресурсы, поэтому такой вариант не канает. |
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
Ну и саму проблемы ты очень плохо описал, если простым языком, то объекты грузятся в память - по несколько раз, и не как оттуда не выгружаются, поскольку клиент не как это не регулирует(в плане источника - все очень разобщено(т.е не важно грузиться текстура либо скелетная модель, либо эмитер) все идет в общий поток, и на сколько я понял как раз эмитеры не передают флага - на выгрузку из памяти(когда игрок заюзал какой то скилл, предыдущий эмиттер остается) ибо время выполнения анимации скила - имеет не фиксированное значение, т.е от скила к скилу оно разное. А вот как это объяснить движку и стоит ли вообще - совсем другой вопрос. Цитата:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
Добавлено через 2 минуты Цитата:
Даю подсказку: краш. Почему? Все отлично описано в моем посте выше. Цитата:
Вы можете сколько угодно устанавливать флаги в объектах (в объектах, КАРЛ!), только вот от фрагментации и от занятости памяти этими объектами, это не спасет. |
Re: Патч от Hool1gan(антирелог)
Цитата:
Но если бы такая потребность возникла, решалась бы она примерно по такой схеме(С проработкой механизма Garbage Collectora) возможно еще что-то, да я бы убил не мало времени на все это, но в целом это задача решаема(без костылей вроде перезагрузки всего уровня, который как раз запускает Garbage Collector и опять же, объясни мне как ты будешь определять когда нужно перезагрузить уровень, а когда нет ?) |
Re: Патч от Hool1gan(антирелог)
Цитата:
Добавлено через 9 минут Цитата:
фамильярность:Развернуть ↓Вы походу вообще не въежаете о чем речь. Окей, я объясню подробно. При вызове GC будет очищен выделенный хип, это означает: 1. Текстуры 2. Модели 3. Скриптовые объекты 4. Карты 5. ??? Будут ВЫГРУЖЕНЫ. Указатели на них могут сохраниться, где-то в недрах движка игры (unsafe, такой unsafe) и при обращении к памяти, где был раньше объект, либо ресурс, мы получим мусор. Далее поведение неопределенно, но, в большинстве случаев, это краш. Это понятно? Идем дальше. При загрузке нового левела игры, мы выгружаем старый, в этот момент, после выгрузки, мы по хорошему, должны запустить GC, а так же почистить указатели, там где требуется и уже после этого вгружать новый уровень. Все эти действия происходят при: 1. Телепорте (только GC не вызывается, плюс остаются референсы) 2. Входе в игру 3. Выходе из игры Вы бы убили всю свою жизнь, но не починили бы это, я это гарантирую. Вы даже не понимаете о чем идет речь:D Хотя, давайте попробуем. Вот флаг/маска, который должен передаваться на вызов GC, при телепорте: 67108864u, ах да, не забываем, что вызов GC деклалирован thiscall и нужно передавать в ecx указатель на объект. Если у Вас получится, то с меня пиво, в хорошем баре. Я даже облегчу задачу, вот код вызова GC, для Interlude:Развернуть ↓ |
Re: Патч от Hool1gan(антирелог)
n3k0nation, Почему никто из вас ещё не перепилил эту систему? Зубастик что-то пытался, но у него быстро иссяк энтузиазм.
|
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
И на счет GarbageCollector, он весь завязан на флагах, и обрабатывает все глобальные объекты, с пометкой GExitPurge(требующие выгрузки) RF_Native(загруженные в память)P.S> тот самый 67108864u, я не очень уверен что в самом классе эмиттеров - существует обработчик который эти самые флаги устанавливает, если условия соблюдены(к примеру объект создан), но скорее это в каком то более глобальном классе(Ибо только благодаря этим флагам происходит выгрузка из памяти по средствам GarbageCollect(по средствам того хука ты говоришь ему что все объекты с флагом native(т.е память), должны быть выгружены),и вообще их можно устанавливать и раньше и вызывать Destroy() намного раньше, но вот толку ? ). А решил бы я это как раз допиливанием класса эмитеров, и самого метода очистки, ибо он предназначен для более простой работы - нежели той где этот самый класс вызывают over9000 раз воимя хила ! Естественно он запускает рендер этих самых 9000 Объектов, тем самым грузит систему, и удаляет он их медленее чем они создаются, а возможно даже и не просчитывается это ввиду слишком быстрого запроса(отсюда и весь баг). Короче говоря это можно сделать(и без костылей, по канону), было бы желание. |
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
нет, но можно попробывать сделать реализацию "быстрого релога" при телепортации вместо пакета телепортации посылать пакет релога, а как тп завершится посылать пакет входа в игру... персонажа которым играли... тоесть со стороны сервера ты как бы телепортируешся а со стороны клиента ты как бы вышел в релог и сразу же зашел... короче не знаю как у клиента будет выглядит но думаю забавно xDD
|
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
Цитата:
Вообще, как вариант, менее костыльный, но все равно, костыльный, можно попробовать разгрузить BSP дерево, просто выпиливая оттуда не нужные объекты. Но память, все равно, закончится когда-нибудь, да. |
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
|
Re: Патч от Hool1gan(антирелог)
Цитата:
Если говорить простым языком - клиент получает Over9000 запросов на рендер эмитеров, и тем самым виснет - не успевая обработать, каким боком тут сервер :Olen': |
Текущее время: 04:30. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot