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

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

UoKit.com Форумы _ Игровые вопросы _ Как часто крашат старые клиенты? 1.26.4 - 2.0.3

Автор: Juzzver 21.2.2020, 3:50

Пришлось поработать со старыми версиями клиентов от 1.26.4 (с установочного диска), и столкнулся с тем, что периодически возникают фатальные фризы клиентов. Будь то при активных действиях, или же при обычном простое. Версия 1.26.4i зависает стабильно каждые 15-30 минут, а то и намного раньше.

Думал проблема в несовместимости с современными ОС, но на виртуалке аналогичные зависания.
Решил проверить на 51 сфере, аналогичные проблемы.

Вопрос о стабильности к тем, кто уже много лет играет на версиях 2.0.0 и 2.0.3, насколько часто эти клиенты крашат или зависают? Крашится сам клиент или только из-за воздействия инжи?

Может у кого-то есть информация и по 1.26.4 версиям, насколько характерны для них такого рода фризы?Прикрепленное изображение

Автор: cred 21.2.2020, 10:41

играю на 2.0.3 лет 20, заметил что крашит больше инжект чем сам клиент, кривые скрипты, нагруз, быстрое нежимание макросов. Недавно перешел на орион, теперь кайфую !

Автор: Aimed 21.2.2020, 13:06

1.26.4x версии там аккуратно надо. Я ставил этот ихний Т2A клиент как-то и там одно ядро просто по максимуму сжирало и всякие фризы наблюдались. Дальше в какой-то из 1х версий Origin выпустили патч и все было ок 2х и 2.0.3 уже без этой проблемы.

Автор: Doberman 21.2.2020, 16:37

На старых клиентах, даже на 3.х.х, клиент зависает если включить музыку, не звуки а именно музыку. Отключить ее или удалить папку с ней и проблема пропадала.

Автор: Juzzver 21.2.2020, 18:25

Спасибо за отзывы! Попробую поиграться с музыкой и патчами.

Автор: olduo.com 21.2.2020, 21:42

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

Автор: Juzzver 21.2.2020, 22:04

Цитата(olduo.com @ 21.2.2020, 22:42) *

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

Я скажу поболее, ориентируемся на игроков, которые будут играть только с лицензионных дисков, проверяя файлы на целостность biggrin.gif
Но это не моя прерогатива, такие вот задачи ставят нынче в 2020)

Автор: olduo.com 21.2.2020, 22:51

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

Автор: Aimed 21.2.2020, 23:47

Цитата(Juzzver @ 21.2.2020, 20:04) *

Я скажу поболее, ориентируемся на игроков, которые будут играть только с лицензионных дисков


Отличный ориентир в 2к20. Как выше Антон сказал, нужно ещё проверку на то что у них 95 винда стоит и разрешение онли 480 * 640 ))

Автор: Juzzver 21.2.2020, 23:55

Цитата(olduo.com @ 21.2.2020, 23:51) *

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

Да, всё верно. Second Age диск из 98го smile.gif
Цитата(Aimed @ 22.2.2020, 0:47) *

Отличный ориентир в 2к20. Как выше Антон сказал, нужно ещё проверку на то что у них 95 винда стоит и разрешение онли 480 * 640 ))

Кстати да, не мешало бы потестить еще на вин 95/98)), т.к. на XP те же фризы были), может проблема с совместимостью ОС или DX, или вовсе во вшитых устаревших TCP протоколах или же его оптимизаций, которые в сегодняшних реалиях не дружат между собой корректно.

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

Дальше уже начали смотреть на старые операционки, но ниже XP еще не опускались.
И теперь поневоле подходим к тому, что придётся использовать патчи чутка посвежее, где быть может эта проблема была исправлена самими разрабами.

Автор: Wap 22.2.2020, 2:52

По-моему, удачно настроенный 2.0.3 может не крешить годами. По крайней мере, так говорили люди, своими глазами я такой стабильности не видел, но я все время играл на Инжекте, а Инжект 15 летней давности стабильности определенно не добавлял.
Ну некоторые хвастались, что у них вообще нет крешей, вроде не балаболы. А других крешило. Фиг разберешь.
Это я вспоминаю времена, когда большинство играло на клиентах 2 версии.
С клиентами 1 версии никогда не сталкивался, ни как игрок, ни как разработчик (знаю, что шарды на 51 Сфере их используют).

Автор: Narayan 22.2.2020, 9:45

Цитата(Wap @ 22.2.2020, 2:52) *

По-моему, удачно настроенный 2.0.3 может не крешить годами. По крайней мере, так говорили люди, своими глазами я такой стабильности не видел, но я все время играл на Инжекте, а Инжект 15 летней давности стабильности определенно не добавлял.
Ну некоторые хвастались, что у них вообще нет крешей, вроде не балаболы. А других крешило. Фиг разберешь.
Это я вспоминаю времена, когда большинство играло на клиентах 2 версии.
С клиентами 1 версии никогда не сталкивался, ни как игрок, ни как разработчик (знаю, что шарды на 51 Сфере их используют).

Может из-за версий винды

Автор: Aimed 22.2.2020, 13:01

Цитата(Juzzver @ 21.2.2020, 21:55) *

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


Древнюю Сферу на коленке кое-как делали, это ничего не доказывает. Поищи в нете исходники РанУО 1.0 и глянь чё там творится.

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

Итого:
1) Много кода было написано людьми которые недостаточно шарят.
2) Раш сырого продукта, потому что ЕА и деньги.

Получаем клиент, который не стабилен и плохо оптимизирован и все это потихоньку потом патчами и в новых версиях фиксили и оптимизировали.

Автор: Juzzver 22.2.2020, 14:55

Цитата(Aimed @ 22.2.2020, 14:01) *

Древнюю Сферу на коленке кое-как делали, это ничего не доказывает. Поищи в нете исходники РанУО 1.0 и глянь чё там творится.

Ранки начиная с беты уже под аос адаптированы. Насколько знаю, ниже 3+ версий поддержки у них никогда не было в оф. релизах.

Орион и классики, я так понимаю тоже вряд ли заведут это старье?)

Автор: Aimed 22.2.2020, 16:07

Цитата(Juzzver @ 22.2.2020, 12:55) *

Ранки начиная с беты уже под аос адаптированы. Насколько знаю, ниже 3+ версий поддержки у них никогда не было в оф. релизах.

Орион и классики, я так понимаю тоже вряд ли заведут это старье?)


Ты меня не так понял. Суть была в том что там куча багов, мусора и несоответствие с протоколом.
Орион и классик должны работать. Классик даже получше по перформансу будет.

Автор: Narayan 22.2.2020, 17:21

Сейчас же прекрасный энчентед клиент. С той же графикой, что и в классик(с небольшими улучшениями некоторых текстур), но под современный лад с нормальной системой биндов на хот барах, таргет системой и всякими другими полезными штуками. Если бы я делал сервер, то только на этом клиенте, принудительно biggrin.gif

Автор: Aimed 22.2.2020, 21:31

Цитата(Narayan @ 22.2.2020, 15:21) *

Сейчас же прекрасный энчентед клиент. С той же графикой, что и в классик(с небольшими улучшениями некоторых текстур), но под современный лад с нормальной системой биндов на хот барах, таргет системой и всякими другими полезными штуками. Если бы я делал сервер, то только на этом клиенте, принудительно biggrin.gif


Там анимации из других моделек сделаны. Мне классические анимации, те что на основе моделек из 8 Ультимы сделаны, самые красивые. Да, анимации в EC получше тех что были добавлены начиная с АОС и дальше, но самые первые УО анимации все равно самые красивые, имхо.

Автор: Александр Needle™ 25.2.2020, 13:03

Цитата(Juzzver @ 21.2.2020, 4:50) *

Может у кого-то есть информация и по 1.26.4 версиям, насколько характерны для них такого рода фризы?Прикрепленное изображение

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

Автор: Juzzver 25.2.2020, 14:54

а UORice работает с такими версиями клиентов? Вроде помнится мне что начиная с 4х версий он работал и вроде как просто снимал шифрование.

Автор: Александр Needle™ 25.2.2020, 17:01

Цитата(Juzzver @ 25.2.2020, 15:54) *

а UORice работает с такими версиями клиентов? Вроде помнится мне что начиная с 4х версий он работал и вроде как просто снимал шифрование.

Ты полностью прав, я и позабыл про это.
У меня, если что, где-то были старые программы для внесения изменений в реестр (NO-CD) и ещё есть диск официальный, но с версией постарше, но также есть образ с диска Т2А и где-то был чистый ренессанс клиент (образ полный).

Автор: Aimed 25.2.2020, 18:27

Цитата(Александр Needle™ @ 25.2.2020, 11:03) *

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


Оо, опять этот эксперт активировался!))
Проблемы в железе, проблемы в реестре, UORice, NO-CD. Прям все что в голову пришло - все назвал, плохо что без каких либо аргументов и главное, - все мимо.
Что может быть проблемой в железе?
Причем тут шифрование и UORice? Как ты думаешь, когда клиент использует шифрование?
Что может такого быть в реестре, из-за чего клиент крашит? Зачем по-твоему реестр вообще нужен?
NO-CD тут причем? Игра у него запускается.

Кстати! Совсем забыл кое что важное по теме.
Juzzver, какие логи во время фриза/краша в Event Viewer попадают? Вангую банальный Access Violation эксепшен, он же null reference.

Автор: Juzzver 25.2.2020, 22:12

Цитата(Aimed @ 25.2.2020, 19:27) *

Кстати! Совсем забыл кое что важное по теме.
Juzzver, какие логи во время фриза/краша в Event Viewer попадают? Вангую банальный Access Violation эксепшен, он же null reference.

Через что можно посмотреть?
Пробовал отладку делать, но в ассемблерских инструкциях не силён.

Процесс просто зависает в диспетчере("Не отвечает"), никакой цепочки задач при этом на нём не отображается, но цп по прежнему прыгатся в районе 15-20%.

Автор: Aimed 26.2.2020, 0:03

Цитата(Juzzver @ 25.2.2020, 20:12) *

Через что можно посмотреть?
Пробовал отладку делать, но в ассемблерских инструкциях не силён.

Процесс просто зависает в диспетчере("Не отвечает"), никакой цепочки задач при этом на нём не отображается, но цп по прежнему прыгатся в районе 15-20%.


Это прога от винды. Нажимаешь win клавишу и пишешь Event Viewer. Погугли, если что.

Автор: Juzzver 26.2.2020, 0:06

Цитата(Aimed @ 26.2.2020, 1:03) *

Это прога от винды. Нажимаешь win клавишу и пишешь Event Viewer. Погугли, если что.

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

Автор: Александр Needle™ 26.2.2020, 0:37

Цитата(Aimed @ 25.2.2020, 19:27) *

Оо, опять этот эксперт активировался!))
Проблемы в железе, проблемы в реестре, UORice, NO-CD. Прям все что в голову пришло - все назвал, плохо что без каких либо аргументов и главное, - все мимо.
Что может быть проблемой в железе?
Причем тут шифрование и UORice? Как ты думаешь, когда клиент использует шифрование?
Что может такого быть в реестре, из-за чего клиент крашит? Зачем по-твоему реестр вообще нужен?
NO-CD тут причем? Игра у него запускается.

Кстати! Совсем забыл кое что важное по теме.
Juzzver, какие логи во время фриза/краша в Event Viewer попадают? Вангую банальный Access Violation эксепшен, он же null reference.

При установке с диска и даже после снятия шифрования происходило следующее - авторизация, создание или выбор персонажа и как только ты появлялся в игре, делал шаг - зависание рабочего окна или вылет клиента.
Лечилось банально использование NO-CD или uo.reg файла с прописыванием в него путей к клиенту и следовательно внесение изменений в файл реестра.

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

Ошибок у старых клиентов было много, всех уже и не вспомню, но все лечилось довольно просто.

Juzzver, если понадобятся файлы, я скину, тему буду наблюдать.

Автор: Aimed 26.2.2020, 0:51

Цитата(Александр Needle™ @ 25.2.2020, 22:37) *

При установке с диска и даже после снятия шифрования происходило следующее - авторизация, создание или выбор персонажа и как только ты появлялся в игре, делал шаг - зависание рабочего окна или вылет клиента.
Лечилось банально использование NO-CD или uo.reg файла с прописыванием в него путей к клиенту и следовательно внесение изменений в файл реестра.

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

Ошибок у старых клиентов было много, всех уже и не вспомню, но все лечилось довольно просто.

Juzzver, если понадобятся файлы, я скину, тему буду наблюдать.


Теперь все понятно.

Цитата(Juzzver @ 21.2.2020, 1:50) *

Пришлось поработать со старыми версиями клиентов от 1.26.4 (с установочного диска), и столкнулся с тем, что периодически возникают фатальные фризы клиентов. Будь то при активных действиях, или же при обычном простое. Версия 1.26.4i зависает стабильно каждые 15-30 минут, а то и намного раньше.


Где тут речь о том что у него зависает стабильно после входа игру или на авторизации?

@Juzzver есть ещё один вариант. Если в эвент вьювер логи не попадают, то запускай клиент через https://docs.microsoft.com/en-us/sysinternals/downloads/procdump. Внизу примеры с использованием. Там по дампу можно попробовать разобраться.

Автор: Juzzver 26.2.2020, 6:23

Event Viewer отлавливает его только после завершения заглючившего процесса, тип ошибки Application Hang.
Там есть какой-то Unknown пакет, но это что-то стороннее судя по всему.

В общем лог такой:

Цитата
- System

- Provider

[ Name] Application Hang

- EventID 1002

[ Qualifiers] 0

Level 2

Task 101

Keywords 0x80000000000000

- TimeCreated

[ SystemTime] 2020-02-26T02:17:22.071110500Z

EventRecordID 91052

Channel Application

Computer DESKTOP-VPEKCHL

Security


- EventData

client1.26.4i.exe
0.0.0.0
45ec
01d5ec4aaea263a2
10
E:\UO_1.26\UOClient\client1.26.4i.exe
51b63d4b-515a-454e-bd30-9c574598cacd


55006E006B006E006F0077006E0000000000


--------------------------------------------------------------------------------

Двоичные файлы:


По словам

0000: 006E0055 006E006B 0077006F 0000006E
0010: 0000


По байтам

0000: 55 00 6E 00 6B 00 6E 00 U.n.k.n.
0008: 6F 00 77 00 6E 00 00 00 o.w.n...
0010: 00 00 ..




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

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

Постестил в полях, и обнаружил еще одну закономерность. Если создать много объектов, к примеру bag, штук 500 (что равносильно кол-ву объектов в зоне видимости того данжа, где я зависал), то всё будет нормально. Даже при резких телепортациях в эту область. Но стоить только изменить всем bag в этой области айдишник на тип стула "throne", то во время их отрисовки ловится баг.
Аналогично потестил с прочими более менее крупными объектами и выявил такую тенденцию к зависаниям при отрисовке крупных компонентов. Пусть даже их будет 100 штук, лаг будет обеспечен. А с многокомпонентными вещами, типа largeboat, то и еще меньше объектов достаточно для вызова лага.

Видимо копать надо в эту сторону.

Автор: Aimed 26.2.2020, 14:55

С эвент логом скудновато : /

Цитата(Juzzver @ 26.2.2020, 4:23) *

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


А что в этот момент приходит перед фризом? В Орионе, в самом начале, один в один такая ситуация была когда в апдейт ренж попадали айтемы или мобайлы с айдишниками графики, которых не было в файлах.

Цитата(Juzzver @ 26.2.2020, 4:23) *

Постестил в полях, и обнаружил еще одну закономерность. Если создать много объектов, к примеру bag, штук 500 (что равносильно кол-ву объектов в зоне видимости того данжа, где я зависал), то всё будет нормально. Даже при резких телепортациях в эту область. Но стоить только изменить всем bag в этой области айдишник на тип стула "throne", то во время их отрисовки ловится баг.


А если просто этот трон поставить рядом?


Цитата(Juzzver @ 26.2.2020, 4:23) *

Аналогично потестил с прочими более менее крупными объектами и выявил такую тенденцию к зависаниям при отрисовке крупных компонентов. Пусть даже их будет 100 штук, лаг будет обеспечен. А с многокомпонентными вещами, типа largeboat, то и еще меньше объектов достаточно для вызова лага.

Видимо копать надо в эту сторону.


Лаг или завасание клиента?

Автор: Juzzver 26.2.2020, 16:22

Цитата
А если просто этот трон поставить рядом?

ничего не произойдет, корректно поставится. Это явление с зависанием происходит только при массовых прогрузках картинок.
К примеру делаю [tile bag, создаю штук 100-200 мешков, далее делаю [area set itemid 2353 where bag (где 2353 к примеру айдишник "throne" картинки), и вижу как половина стульев отрисовывается, а на оставшейся части - клиент зависает.
Цитата
Лаг или завасание клиента?

зависание, как на скрине в первом посте.

Цитата
А что в этот момент приходит перед фризом? В Орионе, в самом начале, один в один такая ситуация была когда в апдейт ренж попадали айтемы или мобайлы с айдишниками графики, которых не было в файлах.

на гринзоне чисто, тестил считай на нескольких айдишниках, которые точно есть в клиенте.

Кстати, визуально даже заметно, что старый клиент значительно дольше отрисовывает элементы, чем к примеру зайти на той же 4й версии. И на ней соответственно всё будет ок.

Автор: Aimed 26.2.2020, 18:31

Цитата(Juzzver @ 26.2.2020, 14:22) *

Кстати, визуально даже заметно, что старый клиент значительно дольше отрисовывает элементы, чем к примеру зайти на той же 4й версии. И на ней соответственно всё будет ок.


Кривой рендеринг, как я в первом посту и говорил - изначально большую часть кода ГД писали, вот и результат : /
Может много чего быть, но похоже на кривой n² алгоритм сортировки, при котором количество итераций врзрывается. А ты пробовал хоть раз подождать, вдруг отвиснет? )))

Если оно отвиснет, то это нубская сортировка. Либо там ещё и аллокации памяти идут и рано или поздно будет краш из-за нехватки памяти, как это обычно с такими алгоритмами и бывает.

Но все это никак тебе не поможет. Я не думаю что ты пойдешь так далеко что б дизасмить это дело и создавать патч для фикса. Меняй клиент)

Автор: Александр Needle™ 12.3.2020, 21:52

Цитата(Aimed @ 26.2.2020, 19:31) *

Кривой рендеринг, как я в первом посту и говорил - изначально большую часть кода ГД писали, вот и результат : /
Может много чего быть, но похоже на кривой n² алгоритм сортировки, при котором количество итераций врзрывается. А ты пробовал хоть раз подождать, вдруг отвиснет? )))

Если оно отвиснет, то это нубская сортировка. Либо там ещё и аллокации памяти идут и рано или поздно будет краш из-за нехватки памяти, как это обычно с такими алгоритмами и бывает.

Но все это никак тебе не поможет. Я не думаю что ты пойдешь так далеко что б дизасмить это дело и создавать патч для фикса. Меняй клиент)

То есть, причина в кривом рендеринге?
Почему тогда такая проблема не у всех пользователей?

Автор: Aimed 13.3.2020, 18:30

Цитата(Александр Needle™ @ 12.3.2020, 19:52) *

Почему тогда такая проблема не у всех пользователей?


Это мое предлоположение, основанное на утверждениях самих создателей и наблюдениях Juzzverя.


Цитата(Александр Needle™ @ 12.3.2020, 19:52) *

Почему тогда такая проблема не у всех пользователей?

У тебя есть доказательства того что все пользователи проходили тот же путь что и Juzzver. Что б у них те же аллокации были, те же пиксели на экран выводились и не было фризов и подвешивания клиента?

Когда я скачивал этот клиент у меня практически сразу одно ядро на 100% загружалось и сессий дольше 5 минут у меня не было, потому что я просто тестил его поддержку протокола. Я его очень быстро удалил.

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