Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Игровой клиент (https://forum.zone-game.info/forumdisplay.php?f=54)
-   -   Лаги при эффектах и одевании итемов. (https://forum.zone-game.info/showthread.php?t=42117)

Emperor 21.02.2017 11:29

Лаги при эффектах и одевании итемов.
 
Собсна проблема весьма туманна и решить я пытаюсь её уже давно.

Для начала опишу конфиг железа, дабы не было ответов типа "компьютер нормальный купи".

I5-2500k (слегка оверклокнутый).
GTX950 (сток, ASUS).
2 плашки кингсона по 4гб\1333 мгц.
Дешевый SSD под винду и клиенты.

Для л2 сего всегда хватала с головой, можно попутно врубить стрим и писать шедоуплеем - всё будет в рамках и без лагов.

Теперь к сути:
Имею стабильный FPS, который залочен на 60-ти (больше мне не нужно), просадить эффектами его крайне сложно и даже в скоплении народа он редко уходит ниже 50-ти (не играюсь с HDR+тени и прочая мура).

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

Такой же фриз наблюдается если кто-то вокруг меня переодевает сет\одевает оружие. Чаще всего пролагивает элигия, сеты\пушки ниже S грейда не лагают вообще.

Под фризом я имею ввиду посадку FPS до нуля на пол секунды и последующее его восстановление.


Относительно пачтей и прочего - сначала тоже начал гнать на свой интерфейс. Для теста распаковал ещё 1 копию клиента, накатил патч сервера - в итоге всё равно ловлю этот лаг, но, стоит заметить, в меньшей степени. Возникает он реже, но возникает.

Подобная байда бывает на слабых ПК при первом юзе скилла (как только вошел в мир), или же при переодевании пушки\сета макросом. Такое тоже появилось. Когда я переодеваюсь - ловлю аналогичный микрофриз.
Такой лаг всегда был только на моей стороне, теперь я начал его ощущать от всех вокруг, что заставляет меня ёрзать на стуле во время массовых мероприятий, где юз скиллов и смена эквипа рядовое дело. В конечном итоге, я испытываю лаги постоянно.


Версия: HF5.
Сервера: Много. Начиная от помоек и заканчивая рпг клабом.


Тред решил создать от безысходности, ибо уже неделю ломаю голову с чего это появилось. Никакого софта я не ставил (весь софт в виде портбл версий на диске), винда не обновлялась, вирей нет, на вирусы тоже прогонялся - чисто. Одним словом ничего не менялось, но трабла вылезла.
Знаю что такого не бывает, в чём-то дело явно есть, но я не могу найти слабую точку. Возможно вы сможете дать мне пищу для размышлений.

Visor 21.02.2017 12:18

Re: Лаги при эффектах и одевании итемов.
 
Добавился какой-то пак в клиент?

Emperor 21.02.2017 12:21

Re: Лаги при эффектах и одевании итемов.
 
Visor, Чисто. Онли папка систем. Систем тоже чистый без каких-либо лишних файлов, типа кастомных *.u пакетов.

BeOS 21.02.2017 12:27

Re: Лаги при эффектах и одевании итемов.
 
такая же залупа, причем на разных версиях клиента - на чистом хф и на астериосовской версии монстра из смеси Awakening+чето еще.
лагало как на 4670к+16 гигов ddr3+ssd+gtx660, так и на обновленном железе - 7700к+16гб ддр4+ssd+та же gtx660

частично мне помогало удалять uix файлы. тогда по-крайней мере фпс не так сильно просаживался. баловался с настройками клиента - вплоть до установки самого минимума на все в инишках. результата 0.
такое ощущение, что проблема в interface.u кроется и там надо копаться и искать основной метод отрисовки гуя и пытаться там сделать какие-нибудь аналоги асинхронного выполнения функций

Emperor 21.02.2017 13:03

Re: Лаги при эффектах и одевании итемов.
 
Цитата:

Сообщение от BeOS (Сообщение 424087)
акое ощущение, что проблема в interface.u кроется и там надо копаться и искать основной метод отрисовки гуя и пытаться там сделать какие-нибудь аналоги асинхронного выполнения функций

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

BeOS 21.02.2017 13:20

Re: Лаги при эффектах и одевании итемов.
 
Цитата:

Сообщение от Emperor (Сообщение 424088)
Вот и у меня два предположения: Пакетка (разные сервера разрушают эту теорию) и интерфейс. Но меня вводит в сомнения, что кореяки так хреново оптимизировали клиентскую часть.

ну на оффе на данный момент при том количестве анимаций в годе я ниразу не видел просадки такой.
про л2к вообще молчу - там фпс такой, что просто завидно становится :(

Добавлено через 2 минуты
я бы на самом деле попробовал сдампить траффик допустим за 30-60 минут работы клиента на оффе и на фришке и попробовал бы сравнить частоту отправки сервером тех или иных пакетов

Visor 21.02.2017 13:39

Re: Лаги при эффектах и одевании итемов.
 
Обновилась защита? Супер метод шифрования?

BeOS 21.02.2017 13:42

Re: Лаги при эффектах и одевании итемов.
 
Цитата:

Сообщение от Visor (Сообщение 424093)
Обновилась защита? Супер метод шифрования?

не на всех же серверах одновременно :)

ALeKsIuS 21.02.2017 15:58

Re: Лаги при эффектах и одевании итемов.
 
В другой игре когда объект спавнился тоже фриз ловил, все решилось заменой жесткого диска)

Hack 21.02.2017 16:17

Re: Лаги при эффектах и одевании итемов.
 
С 80% вероятностью виноват диск. При использовании нового скилла клиент берет ресурсы этого скилла из пзу.
Нельзя на дешевые ssd ставить ос и игры вместе. Как минимум получите проседание производительности более чем в 2 раза, не говоря уже о быстром исчерпании ресурса.
Дальнейшие симптомы: задержки при закрытии вкладок в браузере, открытии окон и тд.

n3k0nation 21.02.2017 17:04

Re: Лаги при эффектах и одевании итемов.
 
Hack, это называется снижение производительности при параллельных вызовах на чтение/запись, чем страдают все SSD, без исключения. Зато хайпа то сколько с этими SSD: "убийцы жестких дисков, пирфарманз, праизвадитильнасть!!1одынодын".

BeOS 21.02.2017 18:40

Re: Лаги при эффектах и одевании итемов.
 
Цитата:

Сообщение от n3k0nation (Сообщение 424104)
Hack, это называется снижение производительности при параллельных вызовах на чтение/запись, чем страдают все SSD, без исключения. Зато хайпа то сколько с этими SSD: "убийцы жестких дисков, пирфарманз, праизвадитильнасть!!1одынодын".

2 ssd, 1 под систему, 1 под игрушки. фризит как у тса

Hack 21.02.2017 18:53

Re: Лаги при эффектах и одевании итемов.
 
Цитата:

Сообщение от n3k0nation (Сообщение 424104)
Hack, это называется снижение производительности при параллельных вызовах на чтение/запись, чем страдают все SSD, без исключения. Зато хайпа то сколько с этими SSD: "убийцы жестких дисков, пирфарманз, праизвадитильнасть!!1одынодын".

Верно, но модели среднего и высокого сегмента меньше подвержены этому фактору, например мой Crucial mx200 :3
Что касается их сравнения с HDD, то, в случае грамотного распределения нагрузки между несколькими дисками, прирост производительности системы и уменьшение отклика системы очень заметны.
Однако их цена не позволяет получить нужный обьем за адекватные деньги, по-этому HDD останется атрибутом современного пк еще на несколько лет. Тем не менее (имхо), полностью строить пзу на ссд дисках можно, хоть и дорого, а вот ставить только HDD уже сомнительно в 2017 году. Иначе говоря они останутся ровно до тех пор, пока цены на ссд-шные гигабайты будет кусаться, а это вопрос времени.

n3k0nation 21.02.2017 19:06

Re: Лаги при эффектах и одевании итемов.
 
оффтопик:
Свернуть ↑Развернуть ↓

shegan 21.02.2017 19:12

Re: Лаги при эффектах и одевании итемов.
 
Оффтоп, фанатам SSD посвящается!:
Свернуть ↑Развернуть ↓

Emperor 22.02.2017 02:34

Re: Лаги при эффектах и одевании итемов.
 
Цитата:

Сообщение от Hack (Сообщение 424103)
С 80% вероятностью виноват диск. При использовании нового скилла клиент берет ресурсы этого скилла из пзу.
Нельзя на дешевые ssd ставить ос и игры вместе. Как минимум получите проседание производительности более чем в 2 раза, не говоря уже о быстром исчерпании ресурса.

У меня есть HDD. Попробовал копирнуть на него - такая же ерунда. Только прогрузки при ТП в города появились, SSD это сглаживал.

Deazer 22.02.2017 02:40

Re: Лаги при эффектах и одевании итемов.
 
Пальцем в небо. Но есть такова вероятность - проверь права на чтение, запись, исполнение.
Если стоит Read-Only попробуй снять.
Свойство на папке с игрой > снять Read Only галочку(ну и за одно проверить все ли доступно юзеру в Правах).

Hack 22.02.2017 06:51

Re: Лаги при эффектах и одевании итемов.
 
Off:
Свернуть ↑Развернуть ↓

n3k0nation 22.02.2017 08:06

Re: Лаги при эффектах и одевании итемов.
 
offtop:
Свернуть ↑Развернуть ↓

Gaikotsu 22.02.2017 09:08

Re: Лаги при эффектах и одевании итемов.
 
Оффтоп:
Свернуть ↑Развернуть ↓

Mangol 22.02.2017 10:20

Re: Лаги при эффектах и одевании итемов.
 
Цитата:

Сообщение от Gaikotsu (Сообщение 424128)
Оффтоп:
Свернуть ↑Развернуть ↓

nichoci Я не сомневался. Еще пару пачек винтов в тумбочке лежат с аниме.

Мне 1 ТБ достаточно с головой.:redlol:

BeOS 22.02.2017 10:25

Re: Лаги при эффектах и одевании итемов.
 
Цитата:

Сообщение от Gaikotsu (Сообщение 424128)
Оффтоп:
Свернуть ↑Развернуть ↓

ты там что фулл бекапы гохи хранишь?

Gaikotsu 22.02.2017 10:45

Re: Лаги при эффектах и одевании итемов.
 
нет, китайские порномультики

Emperor 22.02.2017 10:58

Re: Лаги при эффектах и одевании итемов.
 
Ну кароче: Лаги при переодевании итемов вылазают из MagicSkillWnd, непосредственно EV_SkillList.

Если дропнуть эвент - FPS не двигается ни на миллиметр, плюс пропали лаги когда люди вокруг меня переодеваются.
Влечёт за собой это лишь мелочь, в виду отсутствия каких-либо скиллов в MagicSkillWnd. Что логично, ведь мы дропнули эвент отвечающий за наполнение.

Как вывод, имею два варианта:
1) Закостылить эвент и запускать его только по кнопке. Назовём это рефрешем. В этом случае скилл-лист обновляется только тогда, когда нажимается кнопка обновления.
Не уверен, что такое вообще реально собрать.

2) Научить MagicSkillWnd не обновлять скилл-лист, когда онное закрыто, а обновлять\обновляться только тогда, когда открылось\открыто.
Этот вариант наиболее адекватен, но, как и стоит полагать - более сложен.

В обоих случаях не помешала бы посильная помощь в реализации, ибо это шажок в сторону избавления от лагов. Тут я говорю не только о себе, а о всех, кто испытывает такие проблемы, а таких весьма много, даже с хорошим ПК.

Либо с удовольствием почитал бы рассуждения на этот счет, ибо зацепку я нашел.

Emperor 22.02.2017 11:31

Re: Лаги при эффектах и одевании итемов.
 
UPD.

Кароче говоря, руинят всё вот эти 3 товарища:
//		HandleSkillList(param);
//		ComputeItemWndHeight();
//		ComputeItemWndAnchor();
Code: C#
Если закомментить их выполнение в эвенте - всё прекрасно.

Присобачить ComputeItemWndHeight(); и ComputeItemWndAnchor(); на кнопку не проблема (решил пойти путём рефреш-кнопки), но вот с HandleSkillList(param) уже проблема, ругается. Куда смотреть, что думать?

BeOS 22.02.2017 16:29

Re: Лаги при эффектах и одевании итемов.
 
Цитата:

Сообщение от Emperor (Сообщение 424136)
UPD.

Кароче говоря, руинят всё вот эти 3 товарища:
//		HandleSkillList(param);
//		ComputeItemWndHeight();
//		ComputeItemWndAnchor();
Code: C#
Если закомментить их выполнение в эвенте - всё прекрасно.

Присобачить ComputeItemWndHeight(); и ComputeItemWndAnchor(); на кнопку не проблема (решил пойти путём рефреш-кнопки), но вот с HandleSkillList(param) уже проблема, ругается. Куда смотреть, что думать?

я конечно не знаток uscript-a, но может быть проканает нечто такое:
PHP код:

else if (Event_ID == EV_SkillList)
    {
        if (
Drawer.IsShowWindow() == true)
            {
                
HandleSkillList(param);
                
ComputeItemWndHeight();
                
ComputeItemWndAnchor();
            }    
    } 

по крайней мере компилятор собрал без ошибок.

Emperor 22.02.2017 16:42

Re: Лаги при эффектах и одевании итемов.
 
Цитата:

Сообщение от BeOS (Сообщение 424138)
if-(Drawer.IsShowWindow()-==-true)

Только надо не Drawer чекать, а m_wndTop. Drawer - окно заточки умений.

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

И чё кореяки не сделали тоже самое? На кой обновлять закрытые окна?

BeOS 22.02.2017 16:45

Re: Лаги при эффектах и одевании итемов.
 
Цитата:

Сообщение от Emperor (Сообщение 424139)
Только надо не Drawer чекать, а m_wndTop. Drawer - окно заточки умений.

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

И чё корейяки не сделали тоже самое? На кой обновлять закрытые окна?

ну я не вглядывался особо. посмотрел, что
PHP код:

Drawer GetWindowHandle"MagicSkillDrawerWnd"); 

а кореяки они такие...

Emperor 22.02.2017 16:50

Re: Лаги при эффектах и одевании итемов.
 
P.S. Подкорректированный класс для тех, у кого возникают подобные проблемы при переодевании итемов\оружия и прочего. Может кому и сгодится.

ЗГ не может в иероглифы, так что куча классных комментариев.
MagicSkillWnd:
Свернуть ↑Развернуть ↓


Глобально не тестировал, но, по видимому, проблема решена. Точнее будет видно через пару дней.

kolibri 22.02.2017 16:56

Re: Лаги при эффектах и одевании итемов.
 
С такой-то проверкой, что будет если активный скилл (ЛС) будет на панели шорткатов и одеть оружие с этим ЛС, скилл обновится?

Добавлено через 3 минуты
m_wndTop.IsShowWindow() == true

хватит и такой проверки: m_wndTop.IsShowWindow()

Emperor 22.02.2017 17:00

Re: Лаги при эффектах и одевании итемов.
 
kolibri, Всё работает адекватно. Только что проверил - совершенно спокойно нюкает с палок, без какой-либо просадки FPS.

Main 22.02.2017 17:06

Re: Лаги при эффектах и одевании итемов.
 
Ткнул спасибище, но мне не подошел твой вариант (ошибку на 294 строку выдает)

Строка 143, для тех у кого как и у меня ошибка :):
Свернуть ↑Развернуть ↓

Emperor 22.02.2017 17:11

Re: Лаги при эффектах и одевании итемов.
 
Main, В чистый класс из архива с компилом. Можешь это, можешь исправить как сказали постом раньше, без разницы, работать будет в любом случае.
У меня этот UnrealScript уже все мозги съел, так что даже править лень.

	else if (Event_ID == EV_SkillList) 
    { 
        if (m_wndTop.IsShowWindow() == true) 
            { 
                HandleSkillList(param); 
                ComputeItemWndHeight(); 
                ComputeItemWndAnchor(); 
            }     
    }
Code: C#

BeOS 22.02.2017 21:14

Re: Лаги при эффектах и одевании итемов.
 
Цитата:

Сообщение от Gaikotsu (Сообщение 424133)
нет, китайские порномультики

мб тогда лучше на такое перейти - https://www.youtube.com/watch?v=uykMPICGeqw?

Emperor 23.02.2017 02:59

Re: Лаги при эффектах и одевании итемов.
 
Ну, дела обстоят так: В основном - лаг пропал. Я всё юзаю нормально, все вокруг юзают нормально (почти), итемы одеваются снимаются как и должны, кароче спс корейцам за говнокод.

Касательно почти : лаг появляется очень редко. Если говорить простым языком - до того как я создал топик и начал копать - 100%, сейчас примерно 10-15%, по ощущениям. Вроде и ерунда, но эстетически неприятно. На этот раз нет идей, какое окно может создавать эту нагрузку.

Zubastic 23.02.2017 03:30

Re: Лаги при эффектах и одевании итемов.
 
У меня этот лаг возникал только иногда и решался перезапуском клиента. Причем на моем компиле интерфейса его нет совсем. Вангую, что проблема в компиляторе.

Emperor 23.02.2017 04:05

Re: Лаги при эффектах и одевании итемов.
 
Zubastic, Дай чистый компил, уверен что будет. Тут дело даже не в компиле - я пробовал чистые файлы.

kolibri 23.02.2017 09:45

Re: Лаги при эффектах и одевании итемов.
 
на слабом ноуте при одевании - лаг пропал.. при снятии - лагает.

Emperor 23.02.2017 15:58

Re: Лаги при эффектах и одевании итемов.
 
kolibri, Можно такой же метод апдейта ещё и на инвентарь прикрутить, возможно ещё он создаёт нагрузку в фоне. Надо будет на своём ноуте затестить, ради интереса.
Я себе попутно на окно статистик и инвентарь повесил ради спокойствия. Визуально ничего не поменялось, всё таки у меня MagicSkillWnd был основной причиной. Но, за компанию можно, тем более последствий нет, всё моментально апдейтится при открытии окна.

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

BeOS 23.02.2017 17:26

Re: Лаги при эффектах и одевании итемов.
 
Цитата:

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

Касательно почти : лаг появляется очень редко. Если говорить простым языком - до того как я создал топик и начал копать - 100%, сейчас примерно 10-15%, по ощущениям. Вроде и ерунда, но эстетически неприятно. На этот раз нет идей, какое окно может создавать эту нагрузку.

я бы еще глянул в сторону ShortcutWND и иже.
особенно если там допилинги гуя а-ля бабоява и рпг


Текущее время: 08:45. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot