Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Патч от Hool1gan(антирелог)
L2Patch Написал:Да есть же сервера где онлайна и побольше, например кетра, на баюме бывало до 300 доходило, на валике около 400-500. Ну заведи например фулку, и просто пусть все баттлхилом себя похилят. Потом из моей группы скачай патч, и похильтесь с ним. С моим патчем фпс не будет забиваться, а с обычным уже через 1 минуту сядет до 10-20. Так это только 1 фулка, а прикинь если больше и каждый постоянно что-то юзает. Нужен релог.

Добавлено через 4 минуты
Зубастик тоже блин, сначала отписал мне в лс, типа ой скажи да расскажи, а теперь поливает грязью, так еще и не правду говорит. Пусть каждый запустит патч и посмотрит разницу. Правда в версии 3.0 не полностью пофикшено, но разницу вы увидите и очень даже большую.

Опять же говорю - когда это кому то будет реально нужно, может и заюзают твой "Патчик" , а скорее найдут реальную первопричину и пофиксят таким образом чтобы работало только у них, ибо то что ты мутишь это не есть реальный фикс, а больше похоже на борьбу с ветряными мельницами, в первой версии не вышло ну так третью выпущу там точно прокатит, а что выпускает - как это реально отражается в движке ты никакого понятия не имеешь. А раз не имеешь ты не видишь первопричину проблемы(именно в коде), все это тупо твои предположения, так можно вечно выпускать патчи толку 0 будет.
Ответ
Реальная причина такова, что из скриптов, это уж никак не пофиксить Big Grin
У ладвы есть менеджемент хип, который используется для скриптовых объектов, а так же для объектов движка игры. Туда впиливаются текстуры, модели и много др. фигни. Реальная очистка хипа происходит при запуске сборщика мусора, который запускается только при загрузке уровня игры с нуля.
Есть аж несколько причин почему FPS падаетSmile
Первая из них - какие-то эффекты не возвращаются в пул (на более новых версиях клиента пофикшено).
Вторая причина - фрагментация менеджемент хипа.
Третья причина - загрузка левела, с нуля, происходит не то что редко, а очень редко, из-за чего запуск GC становится манной небесной.
Четвертая причина - тупенький GC, который неумет разбирать сложные ссылки.

Данные дефекты могут пофиксить только корейцы и только они, но уж ни как не парень "вася", который чето там подредактировал в скриптах Big Grin Максимум, это исправить первую причину, которая лишь отсрочит "конец".
Реальный вариант исправить "это" - вручную вызывать перезагрузку левела (при том надо дать серверу знать, что клиенту требуется заного переслать все объекты в регионе), попутно перефигачив половину core.dll & engine.dll.

И да, ручной запуск GC, в процессе игры, выгрузит все загруженные ресурсы, поэтому такой вариант не канает.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
n3k0nation Написал:при запуске сборщика мусора
Щас бы имея возможность полного ручного контроля за памятью сборщики мусора вызывать. Эх корейцы, всё на скорую руку, лишь бы работало. Хотя, кого-то они мне напоминают kappa
Ответ
n3k0nation Написал:Реальная причина такова, что из скриптов, это уж никак не пофиксить Big Grin
У ладвы есть менеджемент хип, который используется для скриптовых объектов, а так же для объектов движка игры. Туда впиливаются текстуры, модели и много др. фигни. Реальная очистка хипа происходит при запуске сборщика мусора, который запускается только при загрузке уровня игры с нуля.
Есть аж несколько причин почему FPS падаетSmile
Первая из них - какие-то эффекты не возвращаются в пул (на более новых версиях клиента пофикшено).
Вторая причина - фрагментация менеджемент хипа.
Третья причина - загрузка левела, с нуля, происходит не то что редко, а очень редко, из-за чего запуск GC становится манной небесной.
Четвертая причина - тупенький GC, который неумет разбирать сложные ссылки.

Данные дефекты могут пофиксить только корейцы и только они, но уж ни как не парень "вася", который чето там подредактировал в скриптах Big Grin Максимум, это исправить первую причину, которая лишь отсрочит "конец".
Реальный вариант исправить "это" - вручную вызывать перезагрузку левела (при том надо дать серверу знать, что клиенту требуется заного переслать все объекты в регионе), попутно перефигачив половину core.dll & engine.dll.

И да, ручной запуск GC, в процессе игры, выгрузит все загруженные ресурсы, поэтому такой вариант не канает.
Это бред, достаточно вызывать Garbage Collector, нежели инициировать прогрузку уровня, это ведь затрагивает пакетку и много еще чего, но опять же стоит ли оно того(как ты определишь когда именно это должно произойти) ?

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

Connie Написал:Щас бы имея возможность полного ручного контроля за памятью сборщики мусора вызывать. Эх корейцы, всё на скорую руку, лишь бы работало. Хотя, кого-то они мне напоминают kappa

Что за чушь - причем тут корейцы ? Архитектура движка это прямое наследие Epic Games, во всех играх на этом движке так же, если ничего не менять - целенаправленно.
Ответ
Connie Написал:Щас бы имея возможность полного ручного контроля за памятью сборщики мусора вызывать. Эх корейцы, всё на скорую руку, лишь бы работало. Хотя, кого-то они мне напоминают kappa

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

Добавлено через 2 минуты
luslighter;413250 Написал:Это бред, достаточно вызывать Garbage Collector, нежели инициировать прогрузку уровня, это ведь затрагивает пакетку и много еще чего, но опять же стоит ли оно того(как ты определишь когда именно это должно произойти) ?
Дизассемблер в руки и вперед, узнавать новые горизонты и почему нельзя просто вызвать GC (и к каким последствиям это приведет).
Даю подсказку: краш. Почему? Все отлично описано в моем посте выше.


luslighter;413250 Написал:Ну и саму проблемы ты очень плохо описал, если простым языком, то объекты грузятся в память - по несколько раз, и не как оттуда не выгружаются, поскольку клиент не как это не регулирует(в плане источника - все очень разобщено(т.е не важно грузиться текстура либо скелетная модель, либо эмитер) все идет в общий поток, и на сколько я понял как раз эмитеры не передают флага - на выгрузку из памяти(когда игрок заюзал какой то скилл, предыдущий эмиттер остается) ибо время выполнения анимации скила - имеет не фиксированное значение, т.е от скила к скилу оно разное. А вот как это объяснить движку и стоит ли вообще - совсем другой вопрос.
А теперь идем читать, что такое управляемый хип под контролем GC и как работает GC.
Вы можете сколько угодно устанавливать флаги в объектах (в объектах, КАРЛ!), только вот от фрагментации и от занятости памяти этими объектами, это не спасет.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
n3k0nation Написал:Это, кстати, нормальная практика. Единственное, что не нормально - то что при телепорте не происходит нормальная сборка мусора (т.к. там по сути можно вообще почти все выгрузить).

Добавлено через 2 минуты

Дизассемблер в руки и вперед, узнавать новые горизонты и почему нельзя просто вызвать GC (и к каким последствиям это приведет).



А теперь идем читать, что такое управляемый хип под контролем GC и как работает GC.
Вы можете сколько угодно устанавливать флаги в объектах (в объектах, КАРЛ!), только вот от фрагментации и от занятости памяти этими объектами, это не спасет.

Я не вдавался в это все на столько - насколько нужно, ибо мне это нафиг не надо.
Но если бы такая потребность возникла, решалась бы она примерно по такой схеме(С проработкой механизма Garbage Collectora) возможно еще что-то, да я бы убил не мало времени на все это, но в целом это задача решаема(без костылей вроде перезагрузки всего уровня, который как раз запускает Garbage Collector и опять же, объясни мне как ты будешь определять когда нужно перезагрузить уровень, а когда нет ?)
Ответ
luslighter;413250 Написал:Что за чушь - причем тут корейцы ? Архитектура движка это прямое наследие Epic Games, во всех играх на этом движке так же, если ничего не менять - целенаправленно.
Потому-что в ладве используется свой сборщик мусора и это далеко не наследие Unreal Engine.

Добавлено через 9 минут
luslighter;413254 Написал:Я не вдавался в это все на столько - насколько нужно, ибо мне это нафиг не надо.
Но если бы такая потребность возникла, решалась бы она примерно по такой схеме(С проработкой механизма Garbage Collectora) возможно еще что-то, да я бы убил не мало времени на все это, но в целом это задача решаема(без костылей вроде перезагрузки всего уровня, который как раз запускает Garbage Collector и опять же, объясни мне как ты будешь определять когда нужно перезагрузить уровень, а когда нет ?)
фамильярность

Вы походу вообще не въежаете о чем речь. Окей, я объясню подробно.

При вызове GC будет очищен выделенный хип, это означает:
1. Текстуры
2. Модели
3. Скриптовые объекты
4. Карты
5. ???
Будут ВЫГРУЖЕНЫ. Указатели на них могут сохраниться, где-то в недрах движка игры (unsafe, такой unsafe) и при обращении к памяти, где был раньше объект, либо ресурс, мы получим мусор. Далее поведение неопределенно, но, в большинстве случаев, это краш.
Это понятно? Идем дальше.

При загрузке нового левела игры, мы выгружаем старый, в этот момент, после выгрузки, мы по хорошему, должны запустить GC, а так же почистить указатели, там где требуется и уже после этого вгружать новый уровень. Все эти действия происходят при:
1. Телепорте (только GC не вызывается, плюс остаются референсы)
2. Входе в игру
3. Выходе из игры

Вы бы убили всю свою жизнь, но не починили бы это, я это гарантирую. Вы даже не понимаете о чем идет речьBig Grin
Хотя, давайте попробуем. Вот флаг/маска, который должен передаваться на вызов GC, при телепорте: 67108864u, ах да, не забываем, что вызов GC деклалирован thiscall и нужно передавать в ecx указатель на объект. Если у Вас получится, то с меня пиво, в хорошем баре.

Я даже облегчу задачу, вот код вызова GC, для Interlude
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
n3k0nation, Почему никто из вас ещё не перепилил эту систему? Зубастик что-то пытался, но у него быстро иссяк энтузиазм.
Ответ
Emperor Написал:n3k0nation, Почему никто из вас ещё не перепилил эту систему? Зубастик что-то пытался, но у него быстро иссяк энтузиазм.
Разобрались, но выхлоп мне не особо понравился. Забил на это Smile
[Изображение: 4e38c909fcd08c5fcdf363b54a62.png]
Ответ
n3k0nation Написал:Потому-что в ладве используется свой сборщик мусора и это далеко не наследие Unreal Engine.

Добавлено через 9 минут

фамильярность

Вы походу вообще не въежаете о чем речь. Окей, я объясню подробно.

При вызове GC будет очищен выделенный хип, это означает:
1. Текстуры
2. Модели
3. Скриптовые объекты
4. Карты
5. ???
Будут ВЫГРУЖЕНЫ. Указатели на них могут сохраниться, где-то в недрах движка игры (unsafe, такой unsafe) и при обращении к памяти, где был раньше объект, либо ресурс, мы получим мусор. Далее поведение неопределенно, но, в большинстве случаев, это краш.
Это понятно? Идем дальше.

При загрузке нового левела игры, мы выгружаем старый, в этот момент, после выгрузки, мы по хорошему, должны запустить GC, а так же почистить указатели, там где требуется и уже после этого вгружать новый уровень. Все эти действия происходят при:
1. Телепорте (только GC не вызывается, плюс остаются референсы)
2. Входе в игру
3. Выходе из игры

Вы бы убили всю свою жизнь, но не починили бы это, я это гарантирую. Вы даже не понимаете о чем идет речьBig Grin
Хотя, давайте попробуем. Вот флаг/маска, который должен передаваться на вызов GC, при телепорте: 67108864u, ах да, не забываем, что вызов GC деклалирован thiscall и нужно передавать в ecx указатель на объект. Если у Вас получится, то с меня пиво, в хорошем баре.

Чувак ты вроде меня не понял, я тебе сразу сказал мне нафиг не сдалась эта фигня(может в будущем еще столкнусь).
И на счет GarbageCollector, он весь завязан на флагах, и обрабатывает все глобальные объекты, с пометкой GExitPurge(требующие выгрузки) RF_Native(загруженные в память)P.S> тот самый 67108864u, я не очень уверен что в самом классе эмиттеров - существует обработчик который эти самые флаги устанавливает, если условия соблюдены(к примеру объект создан), но скорее это в каком то более глобальном классе(Ибо только благодаря этим флагам происходит выгрузка из памяти по средствам GarbageCollect(по средствам того хука ты говоришь ему что все объекты с флагом native(т.е память), должны быть выгружены),и вообще их можно устанавливать и раньше и вызывать Destroy() намного раньше, но вот толку ? ).
А решил бы я это как раз допиливанием класса эмитеров, и самого метода очистки, ибо он предназначен для более простой работы - нежели той где этот самый класс вызывают over9000 раз воимя хила ! Естественно он запускает рендер этих самых 9000 Объектов, тем самым грузит систему, и удаляет он их медленее чем они создаются, а возможно даже и не просчитывается это ввиду слишком быстрого запроса(отсюда и весь баг).
Короче говоря это можно сделать(и без костылей, по канону), было бы желание.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Патч Hellbound для Win10 Magican 0 1,337 01-14-2022, 04:14 PM
Последний пост: Magican
  C5 патч без GG существует? Magican 2 1,692 10-18-2021, 02:08 PM
Последний пост: yohohox
  Патч High Five Evencelance 18 9,382 03-21-2021, 09:32 PM
Последний пост: frs709fed1w12j9p
  Патч Grand Crusade Antonio 3 2,919 08-29-2017, 11:05 AM
Последний пост: smeli
  Корейский клиент/патч 110 протокол Visor 1 1,556 07-30-2017, 06:34 PM
Последний пост: Visor
  Патч Lindvior knaif 9 2,965 05-30-2017, 11:16 AM
Последний пост: knaif
  Патч 610 проктокол Evencelance 7 4,459 07-19-2016, 09:27 AM
Последний пост: AfterJob
  Рабочий патч interlude monami 11 3,863 01-18-2016, 05:18 PM
Последний пост: monami
  Чудо патч(Epilogue) Sai_One 6 2,919 09-19-2015, 05:20 PM
Последний пост: moveton
  Мультиязычный патч hf Double 6 3,148 06-14-2015, 05:27 AM
Последний пост: kolibri

Перейти к форуму:


Пользователи, просматривающие эту тему: 7 Гость(ей)