Версия для печати темы
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 винду, для полного погружения =)
Я скажу поболее, ориентируемся на игроков, которые будут играть только с лицензионных дисков, проверяя файлы на целостность
Но это не моя прерогатива, такие вот задачи ставят нынче в 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го
Цитата(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
Сейчас же прекрасный энчентед клиент. С той же графикой, что и в классик(с небольшими улучшениями некоторых текстур), но под современный лад с нормальной системой биндов на хот барах, таргет системой и всякими другими полезными штуками. Если бы я делал сервер, то только на этом клиенте, принудительно
Автор: Aimed 22.2.2020, 21:31
Цитата(Narayan @ 22.2.2020, 15:21)
Сейчас же прекрасный энчентед клиент. С той же графикой, что и в классик(с небольшими улучшениями некоторых текстур), но под современный лад с нормальной системой биндов на хот барах, таргет системой и всякими другими полезными штуками. Если бы я делал сервер, то только на этом клиенте, принудительно
Там анимации из других моделек сделаны. Мне классические анимации, те что на основе моделек из 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)