Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ Игровые вопросы _ Fps И Uo

Автор: tsk 2.7.2011, 14:12

Кто нибудь пробовал увеличить фпс в UO клиенте? Если добиться, как сделали на The Abyss, игроки вашего шарда только скажут спасибо. Если поиграть на модифицированном клиенте с большим фпс, потом просто невозможно пересесть обратно на слайд-шоу, котором нам предоставило EA.

Автор: Ozzy Osbourne 2.7.2011, 14:33

Цитата(tsk @ 2.7.2011, 14:12) *

Кто нибудь пробовал увеличить фпс в UO клиенте? Если добиться, как сделали на The Abyss, игроки вашего шарда только скажут спасибо. Если поиграть на модифицированном клиенте с большим фпс, потом просто невозможно пересесть обратно на слайд-шоу, котором нам предоставило EA.


Бегал на клиент с ускоренной анимацией, в жизни на него не вернусь. smile.gif
Так что на вкус и цвет.

Автор: tsk 2.7.2011, 19:49

Ты бегал явно мало, и не почувствовал все прелести его в пвп.

Автор: Ozzy Osbourne 2.7.2011, 20:56

Прелесть в том что чар на лошаде бегает как угорелый? Это топорно смотрится, как фильмы на большой скорости перемотки. Бегал я на таком в пвп.

Автор: wap 3.7.2011, 1:17

Чуть более полугода назад, один мой старый знакомый в мире UO, готовясь поднимать свой новый проект, загорелся желанием предоставить игрокам такой клиент. Последнее время он известен, как admin Di. Рассказываю все по порядку.
Сначала, благо зачем изобретать колесо, если оно уже придумано, он прояснил, что уже известно по этому вопросу. А известно довольно ограниченному кругу лиц, которые предпочитают об этом не распространяться. Вышел на Destruction'а. И получил ответ такого рода: да я знаю, как такое делается, но я никому этого не скажу, потому что если механизм будет открыт, появится новый суперчит(СХ?), для борьбы с которым UO серверам потребуются намного более высокие мощности, чем используются сейчас.
Естественно, такой ответ Di не удовлетворил, и так как ждать помощи было неоткуда, он наковырял такой клиент и серверную поддержку сам.
Посмотрел я этот клиент(с абиссовским я дел не имел)... Ну любопытно, да, но использовать постоянно его не захотелось. Думал выложить его у себя, для любителей, благо Di разрешил мне использовать его у себя на сервере, но так что-то дело до рук не дошло. Наверное, надо выложить для разнообразия.
Сам клиент могу показать, только использовать его на других серверах просто так будет нельзя. И разъяснять, как настроить его на другой сервер, я не буду, не потому что жадный, а потому что такой у нас был уговор. Кстати, ничего невероятно опасного, не считая возможности сделать обыкновенный встроенный СХ, мы там не нашли.

Автор: Ozzy Osbourne 3.7.2011, 1:28

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

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

Автор: wap 3.7.2011, 1:52

Цитата(Ozzy Osbourne @ 2.7.2011, 23:28) *

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

Меня лично раздражало это дерганное постоянное повторение анимации аля "быстрая перемотка", поэтому я бы явно на таком не играл.
RUSUO - это и был тот самый проект админа Di.

Автор: Cyxapuk 3.7.2011, 2:06

Так а в чем кайф и смысл? Если это ускоренно дерганная анимация как при использовании сх, когда с лука строчишь как с пулемета, чар бегает как инвалид даун какой то, и тд, то это ппц бред)

Автор: Warstone 3.7.2011, 8:18

Дайте ту dll. Я с IDA покопаюсь )

Автор: StaticZ 4.8.2016, 14:15

Цитата(tsk @ 2.7.2011, 14:12) *
Кто нибудь пробовал увеличить фпс в UO клиенте?

Ога - https://forum.uokit.com/index.php?s=&showtopic=25297&view=findpost&p=222465

Автор: StaticZ 4.8.2016, 18:00

Вопросы по проекту, лучше задавайте в теме проекта, пост переместил, там же и отвечу.

Автор: ЖаК 5.8.2016, 1:50

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

+ Окно 1200х900 +- и норм

Автор: Aimed 5.8.2016, 12:31

Цитата(ЖаК @ 5.8.2016, 0:50) *

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

+ Окно 1200х900 +- и норм


ФПС патч - убогий костыль, что СтатикЗ и пытается показать. На момент его создания конкуренции у него небыло, поэтому он и *зашёл* многим, особенно нагибаторам с Абисса.
Сейчас же есть Саллос(тоже толком недоделанный клиент, но имеющий свои особенности и главное нормальный ФПС) - но он закрыт и его надо доламывать что-бы его могли использовать все, СтатикЗ вот представил свои наработки для оригинального клиента, скоро ещё третья альтернатива появится, которую мы допиливаем. Open source УО клиент на OpenGL с поддержкой самых популярных версий протоколов. Про ФПС патч забудут как про страшный сон biggrin.gif

Автор: StaticZ 5.8.2016, 13:50

Цитата(Aimed @ 5.8.2016, 12:31) *
скоро ещё третья альтернатива появится, которую мы допиливаем. Open source УО клиент на OpenGL с поддержкой самых популярных версий протоколов. Про ФПС патч забудут как про страшный сон biggrin.gif

Ну-ну, владельцы UO уже 3й раз разрабатывают новый клиент и пытаются им заменить классик, чтобы списать его, вот только он до сих пор пользуется большой популярностью. Да и не саллосом единым жив интернет - есть ИРИС2, есть ХНЯ, есть Флюрка и тд и тп. Конечно желаю успехов с клиентом, но я бы не стал рассчитывать на то что кастомный клиент повсеместно заменит оригинальный клиент. В конце концов одна привычка огромная сила - если вы привыкли к чему-то то переходить на другое ПО не станете пускай даже оно во всем лучше, зачем если вы уже привыкли к старому и вас все устраивает.

PS Кстати Iris2 тоже Open source, хотя честно говоря проще свой клиент написать чем разобраться в их коде )))

Автор: Aimed 5.8.2016, 14:11

Потому что они не модернизацию классика делают, а какую-то свою 3д шляпу. Если б ты этого не понимал, ты б не делал UCS wink.gif

Цитата(StaticZ @ 5.8.2016, 12:50) *

Да и не саллосом единым жив интернет - есть ИРИС2, есть ХНЯ, есть Флюрка и тд и тп. Конечно желаю успехов с клиентом, но я бы не стал рассчитывать на то что кастомный клиент повсеместно заменит оригинальный клиент. В конце концов одна привычка огромная сила - если вы привыкли к чему-то то переходить на другое ПО не станете пускай даже оно во всем лучше, зачем если вы уже привыкли к старому и вас все устраивает.

PS Кстати Iris2 тоже Open source, хотя честно говоря проще свой клиент написать чем разобраться в их коде )))


ИРИС2, ХНЯ и Флоурессенс далеки от юзабельного состояния. Да и тем более на них забили. ИРИС2 это вобще уродство какое-то. На самом деле Саллос тоже юзабельный только частично. Там даже создание персонажа не сделали, а только что я увидел что и теней там нету, отсюда и "плаванье". Зато есть виртуальная клавиатура для упрощения настройки биндов, есть интеграция уо автомапы и так далее.

Самая сложность разработки клиента это не делать крутые мега фичи, которые ты у себя в UCS пытаешься сделать, а сделать те мелочи, которые ДОЛЖНЫ работать безотказно и так-же удобно как в оригинале. Которые НУДНО делать и нужно кропотливо сидеть и задрачивать, дизасмить и постоянно сравнивать оригинал и свой клиент.
У меня куча времени ушло только на одну реализацию прорисовки сидячих персонажей. Зато я там нашёл кучу глюков в самом оригинале, которых в Орионе уже не будет, а так-же особенностей прорисовки слоев в УО клиенте.

Автор: StaticZ 5.8.2016, 14:40

Цитата(Aimed @ 5.8.2016, 14:11) *
Потому что они не модернизацию классика делают, а какую-то свою 3д шляпу. Если б ты этого не понимал, ты б не делал UCS wink.gif
Любой другой клиент является модернизацией. Ибо кдассик клиент 100% пиксель арт, а сегодня всех тянет на всякие Direct3D. Ну а дальше больше... В целлом как по мне тут все правильно - если уж делать клиент для новой платформы "GPU" с новыми красивостями и прочим то надо переделывать всю графику под это. Иначе будет дизонанс и мешанина стилей.


Цитата(Aimed @ 5.8.2016, 14:11) *
ИРИС2, ХНЯ и Флоурессенс далеки от юзабельного состояния. ИРИС2 это вобще уродство какое-то.
Согласен, но тем не менее Ирис2 единственный более менее готовый и юзабельный сторонний клиент на сегодняшний день, а что касается ХНИ то ее активно разрабатывают.


Цитата(Aimed @ 5.8.2016, 14:11) *
Самая сложность разработки клиента это не делать крутые мега фичи, которые ты у себя в UCS пытаешься сделать, а сделать те мелочи, которые ДОЛЖНЫ работать безотказно и так-же удобно как в оригинале. Которые НУДНО делать и нужно кропотливо сидеть и задрачивать, дизасмить и постоянно сравнивать оригинал и свой клиент.
Ну я об этом с самого начала и говорил, по этому и считаю что если уж писать клиент то нужно писать на C#. Иначе потом утонешь в реализации этих "мелочей".

Цитата(Aimed @ 5.8.2016, 14:11) *
У меня куча времени ушло только на одну реализацию прорисовки сидячих персонажей. Зато я там нашёл кучу глюков в самом оригинале, которых в Орионе уже не будет, а так-же особенностей прорисовки слоев в УО клиенте.
На самом деле там все достаточно просто для двух направлений используется анимация для лошади а для оставшихся старый добрый shear, что посути просто блиттинг по строкам\столбцам. Хотя для Опенгуля тут конечно пришлось ихвращаться сильнее. Куда сложнее с освещением, делал как-то модель по Гауссу замучался с модификацией интерполяции ))

Автор: Aimed 5.8.2016, 15:05

Цитата(StaticZ @ 5.8.2016, 13:40) *

а что касается ХНИ то ее активно разрабатывают.


Последний коммит 23 января 2016. Как-то не очень активно.
Заходил я в гиттер, там мне сказали что создатель гитхаба ушёл учиться на адвоката и неизвестно когда вернется.

Pull requests тоже как-то слабовато для опенсорса то.

Цитата(StaticZ @ 5.8.2016, 13:40) *

На самом деле там все достаточно просто для двух направлений используется анимация для лошади а для оставшихся старый добрый shear, что посути просто блиттинг по строкам\столбцам. Хотя для Опенгуля тут конечно пришлось ихвращаться сильнее. Куда сложнее с освещением, делал как-то модель по Гауссу замучался с модификацией интерполяции ))


Как делать то понятно, а вот саму формулу и константы соотношений получить было довольно времяемким и проблема тут не в С++ или ОпенГЛ, а в том что-бы сделать 1 в 1.

Вот, кстати, некоторые результаты:
Изображение
Изображение

Автор: ЖаК 5.8.2016, 16:08

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

Автор: Aimed 5.8.2016, 16:18

Цитата(ЖаК @ 5.8.2016, 15:08) *

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


О какой плавности речь? Если с 203 клиентом сравнивать, то плавности чуть больше, зато идиотская анимация и легкий спидхак на поворотах.
Посмотри видео СтатикЗа он там показывает разницу между тем как должно быть и тем как выглядит ФПС патч.

Автор: StaticZ 5.8.2016, 19:11

Цитата(ЖаК @ 5.8.2016, 16:08) *

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

Костылями называется кривая реализация чего либо. А о косяках FPS Patch'а снято много видяшек и много разговоров на различных форумах (к примеру инжекта). Да и сам факт побочного ускорения воспроизведения анимации уже говорит сам за себя о качестве данной реализации. А сервер тут не причем, хотя новая система синхронизации времении в 7.x клиентах возможно может решить часть проблем, но тем не менее суть в том что FPS Patch ломает таймер клиента и он начинает потихоньку накапливать рассинхронизацию, а так как клиент работает асинхронно через какое-то время когда разница набегает достаточно существенная игрока швыряет..

Автор: ЖаК 5.8.2016, 21:20

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

Автор: TeS 5.8.2016, 22:18

Цитата(StaticZ @ 5.8.2016, 13:50) *

Ну-ну, владельцы UO уже 3й раз разрабатывают новый клиент и пытаются им заменить классик, чтобы списать его, вот только он до сих пор пользуется большой популярностью. Да и не саллосом единым жив интернет - есть ИРИС2, есть ХНЯ, есть Флюрка и тд и тп. Конечно желаю успехов с клиентом, но я бы не стал рассчитывать на то что кастомный клиент повсеместно заменит оригинальный клиент. В конце концов одна привычка огромная сила - если вы привыкли к чему-то то переходить на другое ПО не станете пускай даже оно во всем лучше, зачем если вы уже привыкли к старому и вас все устраивает.

PS Кстати Iris2 тоже Open source, хотя честно говоря проще свой клиент написать чем разобраться в их коде )))


у ириса был визуально прикольный 2д клиент , даже забавная попытка с 3д где можно было увидить небо .. но чето у них не пошло и уже лет 5 все замороженно (
А привыкли люди не к клиенту, а к асистам которых новое клиенты соотвецно поддерживать не будут .. вот взять реборн вроде нече такой , кучу графики добавили , возможностей .. но вот асистов на него не добавили и некто на нем не играет )

Автор: ЖаК 6.8.2016, 16:50

Цитата(StaticZ @ 5.8.2016, 19:11) *

Костылями называется кривая реализация чего либо. А о косяках FPS Patch'а снято много видяшек и много разговоров на различных форумах (к примеру инжекта). Да и сам факт побочного ускорения воспроизведения анимации уже говорит сам за себя о качестве данной реализации. А сервер тут не причем, хотя новая система синхронизации времении в 7.x клиентах возможно может решить часть проблем, но тем не менее суть в том что FPS Patch ломает таймер клиента и он начинает потихоньку накапливать рассинхронизацию, а так как клиент работает асинхронно через какое-то время когда разница набегает достаточно существенная игрока швыряет..


К этому состоянию ведут многие действия, так что это капля в море. Грубо говоря, достаточно уменьшить физически анимации передвижений и получить тот же результат

Автор: StaticZ 6.8.2016, 17:59

Цитата(ЖаК @ 6.8.2016, 16:50) *

К этому состоянию ведут многие действия, так что это капля в море. Грубо говоря, достаточно уменьшить физически анимации передвижений и получить тот же результат

Тогда уж не уменьшить а увеличить в два раза, иначе у вас скорость анимации увеличиться не в 2 а в 4 раза. При этом мулы распухнут в два раза, учитывая что последние клиенты весят 2 GB из которых 1 GB анимация в результате получим 3 GB и клиент не сможет запуститься т.к. ему не будет хватать адресного пространства (обычное 32 битное приложение не может адресовать больше 2 GB). Кроме того это не решает проблем со звуком, периодического подергивания при перемещении и прочего, не говоря уже о том что придется делать по два клиента для использования FPS патча и нет, так как подобный изменения на клиентах без оного патча превратят движение в слоумо. Но главное - все всегда можно исправить, доработать и улучшить, вот только покажите кто этим занимается. FPS патчу много лет а никаких подвижек в его развитии и доработке нет.

Автор: Juzzver 6.8.2016, 21:06

Цитата
3 GB и клиент не сможет запуститься т.к. ему не будет хватать адресного пространства (обычное 32 битное приложение не может адресовать больше 2 GB)

Почему не будет хватать? Клиент ведь не будет загружать в память все данные сборки.

Автор: StaticZ 6.8.2016, 21:48

Цитата(Juzzver @ 6.8.2016, 21:06) *

Почему не будет хватать? Клиент ведь не будет загружать в память все данные сборки.

Адресное пространство не является синонимом используемой оперативной памяти. При запуске клиент проецирует все данные (ну кроме музыки, видео, текстовых конфигов и может какой-то еще мелочи) в адресное пространство, используя так называемую виртуальную память. Если посмотрите на мое видео внимательнее то заметите сверху OSD там какраз и выводиться - RAM - использование физической оперативной памяти оно составляет чуть менее 100 мб и VMS - используемая виртуальная память, сразу после запуска оно принимает значение близкое к 2 GB.

Автор: WRWR 6.8.2016, 22:32

Цитата(StaticZ @ 6.8.2016, 17:59) *

Тогда уж не уменьшить а увеличить в два раза, иначе у вас скорость анимации увеличиться не в 2 а в 4 раза. При этом мулы распухнут в два раза, учитывая что последние клиенты весят 2 GB из которых 1 GB анимация в результате получим 3 GB и клиент не сможет запуститься т.к. ему не будет хватать адресного пространства (обычное 32 битное приложение не может адресовать больше 2 GB). Кроме того это не решает проблем со звуком, периодического подергивания при перемещении и прочего, не говоря уже о том что придется делать по два клиента для использования FPS патча и нет, так как подобный изменения на клиентах без оного патча превратят движение в слоумо. Но главное - все всегда можно исправить, доработать и улучшить, вот только покажите кто этим занимается. FPS патчу много лет а никаких подвижек в его развитии и доработке нет.

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

Автор: StaticZ 6.8.2016, 22:55

Цитата(WRWR @ 6.8.2016, 22:32) *

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

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

Автор: Wap 6.8.2016, 23:32

Цитата(StaticZ @ 6.8.2016, 20:55) *

Клиент работает асинхронно, наверное все замечали что когда рвется связь с сервером клиент еще какое-то время по инерции продолжает движение. Это как раз и есть наглядный пример ассинхронной работы клиента, движение идет само по себе без ожидание запросов или подтверждений с сервера. Периодически конечно идет синхронизация, грубо говоря проверка того что вышло и что должно было быть. FPS патч нарушает немного темп работы клиента, на глаз это не видно т.к. тут речь идет о миллисекундах, но при движении эта рассинхранизация постепенно набегает и когда когда идет сверка с сервером оказывается что клиент убежал достаточно далеко или не достаточно далеко и выходит отскок или подскок. В случае если на сервере плохо организована синхронизация движения то сервер может схавать не правильное положение игрока, о котором ему сообщает клиент и тогда отскок\подскок уже происходит на сервере и он обновляет положение игрока у других клиентов и тогда другие игроки наблюдают отскоки\подскоки.
Да там все проще. Клиент начинает следующий шаг, когда закончилась актуальная анимация шага. Поэтому возможно использование ресенда для ускорения, ресенд во время шага позволяет МОМЕНТАЛЬНО начать следующий шаг.
Так вот, в фпс патче ускорена анимация поворота. В 2 раза или почти в 2 раза. Само перемещение подправлено, а анимация поворота - нет. И на поворотах получается эффект того же самого ресенда, следующий шаг после разворота происходит намного быстрее, чем должен.
Если включить сервер, локально зайти на него и включить лог пакетов с временем, вы увидите это очень четко.
Правда нужны единицы времени менее десятой секунды, на Сфере раньше были с этим проблемы (в норме скорость поворота 0.1с, у фпса где-то 0.05 или чуть-чуть больше почему-то).

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

Автор: StaticZ 6.8.2016, 23:45

Цитата(Wap @ 6.8.2016, 23:32) *

Да там все проще. Клиент начинает следующий шаг, когда закончилась актуальная анимация шага. Поэтому возможно использование ресенда для ускорения, ресенд во время шага позволяет МОМЕНТАЛЬНО начать следующий шаг.
Так вот, в фпс патче ускорена анимация поворота. В 2 раза или почти в 2 раза
Ну это тоже, это отчасти и является следствием сбитого счетчика обновлений. Но помимо этого там еще расинхрон набегает при беге по прямой. Дело в том что в оригинальном клиенте обновление идет каждую 0.1 секунду, в реальности код выполняется каждый раз разное время поэтому вызов обработчика может быть произведен на 0.01 секунду позже, но клиент гарантирует дискретность того что число вызовов будет кратно 0.1 а при FPS патче это сбивается и клиент просто начинает вызывать обработчик каждые 0.05 секунды + задержка. В результате этого через какое-то время выходит что было сделано меньше вызовов чем должно было быть.

Автор: Aimed 8.8.2016, 18:20

Цитата(StaticZ @ 6.8.2016, 21:55) *

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



Тут есть инфа что в клиенте есть стек шагов где хранятся ~3 последние запроса.
Причем при обработке каждого шага учитывается средняя задержка по отсылке прошлых пакетов. Таким образом клиент в какой-то мере выравнивает лаги и свою неточтость от GetTickCount() (скорее всего) тем что иногда может послать пакет быстрее стандартной задержки, а иногда увеличить задержку. Если вывести в отдельный лог интервалы между пакетами передвижения, желательно что-бы это была одна скорость, там будет постоянное колебание интервалов. Даже на локалке. Тут уже, наверное, от системы как-то зависит.

Поэтому я замечал как игроки не имеющие ФПС патча и каких-либо лагов( пинг 5-10 мс и без потерь), на том-же УОРПГ, прыгали будто он есть, только гораздо реже. После этого я забил на наказания за ФПС патч.

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

Автор: StaticZ 8.8.2016, 18:53

Цитата(Aimed @ 8.8.2016, 18:20) *
Таким образом клиент в какой-то мере выравнивает лаги и свою неточтость от GetTickCount() (скорее всего) тем что иногда может послать пакет быстрее стандартной задержки, а иногда увеличить задержку. Если вывести в отдельный лог интервалы между пакетами передвижения, желательно что-бы это была одна скорость, там будет постоянное колебание интервалов. Даже на локалке. Тут уже, наверное, от системы как-то зависит.
Естественно, время выполнения одного куска кода всегда будет разное, это зависит от кучи факторов - от загруженности процессора, диспетчера памяти ОС, кэшируемых на процессоре в данные момент и до этого комманд, загруженной в данный момент страницы памяти и т.д., проверка времени гарантирует лишь то что код не будет выполнен раньше, но вовсе не означает что он не будет выполнен позже а насколько это как повезет речь может идти о паре тактов процессорного времени, наносекундах или миллисекундах и в особо тяжких случаях даже более. Собственно в клиенте обработка событий так и устроенна там идет расчет интервала времени когда должно быть обновление а не просто конкретная задержка между несколькими обновлениями.

Цитата(Aimed @ 8.8.2016, 18:20) *
Там блокировать пакеты нельзя, нужно как-то задерживать пакетный ответ(хотя это создасть видимое ощущение лага), либо решать на стороне клиента. На сторое сервера такое адекватно не решить. Блокировать пакеты == раздражать всех игроков.
Для этого лучше всего доработать само движение на сервере, чтобы оно просчитывалось параллельно, исключив тем самым саму возможность спидхака - даже если клиент будет спамить пакетами это никак не будет влиять на скорость движения и человек просто сам себе создаст проблемы СХ т.к. будет видеть не то что есть на самом деле.

Автор: Aimed 8.8.2016, 19:16

Цитата(StaticZ @ 8.8.2016, 17:53) *

Для этого лучше всего доработать само движение на сервере, чтобы оно просчитывалось параллельно, исключив тем самым саму возможность спидхака - даже если клиент будет спамить пакетами это никак не будет влиять на скорость движения и человек просто сам себе создаст проблемы СХ т.к. будет видеть не то что есть на самом деле.


Ну так и будет тоже самое что и у Вапа сейчас. Клиент постоянно меняет интервалы, они там могут достигать разницу в 70 мс. Если начать задерживать ответ или блокировать пакет - игроки будут злиться. sad.gif А как отличить легкий спидхак от лагающего клиента тогда? По-моему никак.

Автор: StaticZ 8.8.2016, 19:29

Цитата(Aimed @ 8.8.2016, 19:16) *

Ну так и будет тоже самое что и у Вапа сейчас. Клиент постоянно меняет интервалы, они там могут достигать разницу в 70 мс. Если начать задерживать ответ или блокировать пакет - игроки будут злиться. sad.gif А как отличить легкий спидхак от лагающего клиента тогда? По-моему никак.
зачем чего-то блочить? клиент присылает пакет начала движения - начинаем считать движение присылает еще раз - если тоже направление ничего не делаем вообще и отслаем разрешение, если другое то проверяем можно ли туда двигаться и отсылаем разрешение или запрет. Таким образом вообще никакой роли не будет играть с какой частотой шлются пакеты, хоть в 10 раз чаще чем надо и даже если кто-то врубит спидхак, на сервере игрок будет двигаться с обычной скоростью, а у игрока будет каша - он будет будет рисоваться не там где должен быть, в то время как на сервере и у других игроков его положение и скорость будет правильной.

Автор: Aimed 8.8.2016, 19:43

Цитата(StaticZ @ 8.8.2016, 18:29) *

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


И отсылаешь ты ему запрет. А этот игрок, который и так уже залагал и у него прошлый пакет превысил интервал, получит откидывание назад из-за уменьшенного интервала на текущем пакете. Вот он обрадуется!

Автор: StaticZ 9.8.2016, 3:33

Цитата(Aimed @ 8.8.2016, 19:43) *

И отсылаешь ты ему запрет. А этот игрок, который и так уже залагал и у него прошлый пакет превысил интервал, получит откидывание назад из-за уменьшенного интервала на текущем пакете. Вот он обрадуется!
Да нет, запрет отсылать только в случае невозможности движения к примеру стамина села или на пути препятствие или скастанули фриз и тд. Единственное что в случае большого рассинхрона положение на экране клиента может не совпасть с фактическим, но это лишь в случае если у клиента нет вообще никакой проверки времени при движении, но для надежности можно периодически опрашивать и сверять координаты.

Автор: Aimed 9.8.2016, 18:25

Да уж, на ХНУ действительно забили.
https://github.com/ZaneDubya
У него серьёзная активность на 2х других проектах. Так что видать наврали мне про учебу на юриста, он просто забил на УО клиент : /

Автор: Juzzver 10.8.2016, 15:23

Цитата
Да уж, на ХНУ действительно забили.
https://github.com/ZaneDubya

Что в ХНЕ осталось доделать?

Автор: d`ArcZeal 2.1.2017, 18:53

Почти в тему -
Сильно лагает УО, ввиду многоядерности процессора. Буквально невозможно играть.
Как это можно исправить?

Автор: Aimed 2.1.2017, 18:58

Цитата(Juzzver @ 10.8.2016, 13:23) *

Что в ХНЕ осталось доделать?


Легче будет назвать то что уже сделано...

Автор: Wap 2.1.2017, 18:59

Цитата(d`ArcZeal @ 2.1.2017, 17:53) *

Почти в тему -
Сильно лагает УО, ввиду многоядерности процессора. Буквально невозможно играть.
Как это можно исправить?
Что значит, "ввиду многоядерности процессора"? Сейчас у всех многоядерные процессоры, но у остальных же не лагает...

И да, ты очень в тему.

Автор: Aimed 2.1.2017, 19:00

Цитата(d`ArcZeal @ 2.1.2017, 16:53) *

Почти в тему -
Сильно лагает УО, ввиду многоядерности процессора. Буквально невозможно играть.
Как это можно исправить?


Откуда инфа что УО лагает ввиду многоядерности процессора?
Весь клиент по-моему в 1 треде написан, там роли не играет сколько у тебя ядер.

Автор: StaticZ 26.1.2017, 3:29

Цитата(d`ArcZeal @ 2.1.2017, 18:53) *

Почти в тему -
Сильно лагает УО, ввиду многоядерности процессора. Буквально невозможно играть.
Как это можно исправить?

Можно принудительно запустить приложение на выполнение на определенных ядрах\процессорах, для запуска на первом ядре\процессоре:
START /AFFINITY 1 client.exe

Это действительно помагает, в случае если приложение испытывает разнообразные программные проблемы на многоядерных процессорах, не знаю как насчет старых клиентов, но начиная с 6х клиентов никаких проблем из-за многоядерности ниразу не встречал. Так что скорее всего проблемы с UO связаны с чем-то иным.


Цитата(Aimed @ 2.1.2017, 19:00) *

Откуда инфа что УО лагает ввиду многоядерности процессора?
Весь клиент по-моему в 1 треде написан, там роли не играет сколько у тебя ядер.

В общем да, но на самом деле звуковой движок клиента достаточно независим и очень хорошо хамиться в том числе и на другое ядро.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)