Помощь - Поиск - Пользователи - Календарь
Полная версия: Как часто крашат старые клиенты? 1.26.4 - 2.0.3
UoKit.com Форумы > Ultima Online > Общий > Игровые вопросы
Juzzver
Пришлось поработать со старыми версиями клиентов от 1.26.4 (с установочного диска), и столкнулся с тем, что периодически возникают фатальные фризы клиентов. Будь то при активных действиях, или же при обычном простое. Версия 1.26.4i зависает стабильно каждые 15-30 минут, а то и намного раньше.

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

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

Может у кого-то есть информация и по 1.26.4 версиям, насколько характерны для них такого рода фризы?Нажмите для просмотра прикрепленного файла
cred
играю на 2.0.3 лет 20, заметил что крашит больше инжект чем сам клиент, кривые скрипты, нагруз, быстрое нежимание макросов. Недавно перешел на орион, теперь кайфую !
Aimed
1.26.4x версии там аккуратно надо. Я ставил этот ихний Т2A клиент как-то и там одно ядро просто по максимуму сжирало и всякие фризы наблюдались. Дальше в какой-то из 1х версий Origin выпустили патч и все было ок 2х и 2.0.3 уже без этой проблемы.
Doberman
На старых клиентах, даже на 3.х.х, клиент зависает если включить музыку, не звуки а именно музыку. Отключить ее или удалить папку с ней и проблема пропадала.
Juzzver
Спасибо за отзывы! Попробую поиграться с музыкой и патчами.
olduo.com
долго играл на 203 и хорошо помню как количество крашей уменьшилось как сел на 400. вообще канеш затея со старыми клиентами это привет крашам как бы ты с чем не игрался. мне так кажеца.
олдскул он же не в клиенте, а в коде и конфиге. темболее что при логине там был пакет который по маске может отключать в клиент его же клиентские фичи.
вы надеюсь не ориентируетесь на 95 винду, для полного погружения =)
Juzzver
Цитата(olduo.com @ 21.2.2020, 22:42) *

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

Я скажу поболее, ориентируемся на игроков, которые будут играть только с лицензионных дисков, проверяя файлы на целостность biggrin.gif
Но это не моя прерогатива, такие вот задачи ставят нынче в 2020)
olduo.com
я даже теряюсь в дагадках. может ты както просветиш?
официальная уо от элекрониников? то на что не стала замарачиваться угнова? или как...
Aimed
Цитата(Juzzver @ 21.2.2020, 20:04) *

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


Отличный ориентир в 2к20. Как выше Антон сказал, нужно ещё проверку на то что у них 95 винда стоит и разрешение онли 480 * 640 ))
Juzzver
Цитата(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
По-моему, удачно настроенный 2.0.3 может не крешить годами. По крайней мере, так говорили люди, своими глазами я такой стабильности не видел, но я все время играл на Инжекте, а Инжект 15 летней давности стабильности определенно не добавлял.
Ну некоторые хвастались, что у них вообще нет крешей, вроде не балаболы. А других крешило. Фиг разберешь.
Это я вспоминаю времена, когда большинство играло на клиентах 2 версии.
С клиентами 1 версии никогда не сталкивался, ни как игрок, ни как разработчик (знаю, что шарды на 51 Сфере их используют).
Narayan
Цитата(Wap @ 22.2.2020, 2:52) *

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

Может из-за версий винды
Aimed
Цитата(Juzzver @ 21.2.2020, 21:55) *

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


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

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

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

Получаем клиент, который не стабилен и плохо оптимизирован и все это потихоньку потом патчами и в новых версиях фиксили и оптимизировали.
Juzzver
Цитата(Aimed @ 22.2.2020, 14:01) *

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

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

Орион и классики, я так понимаю тоже вряд ли заведут это старье?)
Aimed
Цитата(Juzzver @ 22.2.2020, 12:55) *

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

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


Ты меня не так понял. Суть была в том что там куча багов, мусора и несоответствие с протоколом.
Орион и классик должны работать. Классик даже получше по перформансу будет.
Narayan
Сейчас же прекрасный энчентед клиент. С той же графикой, что и в классик(с небольшими улучшениями некоторых текстур), но под современный лад с нормальной системой биндов на хот барах, таргет системой и всякими другими полезными штуками. Если бы я делал сервер, то только на этом клиенте, принудительно biggrin.gif
Aimed
Цитата(Narayan @ 22.2.2020, 15:21) *

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


Там анимации из других моделек сделаны. Мне классические анимации, те что на основе моделек из 8 Ультимы сделаны, самые красивые. Да, анимации в EC получше тех что были добавлены начиная с АОС и дальше, но самые первые УО анимации все равно самые красивые, имхо.
Александр Needle™
Цитата(Juzzver @ 21.2.2020, 4:50) *

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

Не характерны, больше ссылаюсь к тому, что проблемы в железе ну или еще есть догадка, что ты не воспользовался UORice или не прописал пути в реестр (если используешь клиент с диска не забывай про NO-CD утилиты того времени). Запускал старые клиенты на разных ОС - все отлично, даже на десятке, за исключением багов с анимацией, но это чисто их фишечка. К эмуляторам вообще вопросов нет.
Juzzver
а UORice работает с такими версиями клиентов? Вроде помнится мне что начиная с 4х версий он работал и вроде как просто снимал шифрование.
Александр Needle™
Цитата(Juzzver @ 25.2.2020, 15:54) *

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

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

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


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

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

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

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

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

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

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


Это прога от винды. Нажимаешь win клавишу и пишешь Event Viewer. Погугли, если что.
Juzzver
Цитата(Aimed @ 26.2.2020, 1:03) *

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

Я заглядывал, но не нашел никаких событий связанных с клиентом. Погуглю на досуге, мб не правильно что-то делал.
Александр Needle™
Цитата(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
Цитата(Александр 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 есть ещё один вариант. Если в эвент вьювер логи не попадают, то запускай клиент через ProcDump. Внизу примеры с использованием. Там по дампу можно попробовать разобраться.
Juzzver
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
С эвент логом скудновато : /

Цитата(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
Цитата
А если просто этот трон поставить рядом?

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

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

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

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

Кстати, визуально даже заметно, что старый клиент значительно дольше отрисовывает элементы, чем к примеру зайти на той же 4й версии. И на ней соответственно всё будет ок.
Aimed
Цитата(Juzzver @ 26.2.2020, 14:22) *

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


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

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

Но все это никак тебе не поможет. Я не думаю что ты пойдешь так далеко что б дизасмить это дело и создавать патч для фикса. Меняй клиент)
Александр Needle™
Цитата(Aimed @ 26.2.2020, 19:31) *

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

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

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

То есть, причина в кривом рендеринге?
Почему тогда такая проблема не у всех пользователей?
Aimed
Цитата(Александр Needle™ @ 12.3.2020, 19:52) *

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


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


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

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

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

Когда я скачивал этот клиент у меня практически сразу одно ядро на 100% загружалось и сессий дольше 5 минут у меня не было, потому что я просто тестил его поддержку протокола. Я его очень быстро удалил.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.