![]() |
#1 | ||||||||
Таков мой путь Гения
Технические вопросы
![]()
В этой теме можете задавать и отвечать на вопросы связанные с техническими проблемами, настройками (и сопутствующие). Флуд и неуместные обсуждения будет пресекаться.
__________________
Моя гик-коллекция ![]() * Имя Гению Коджима Хидео. |
|||||||||
Views: 237590
![]() |
![]() |
#276 | |
Гигант мысли
|
Re: Технические вопросы
Еще раз, простой ответ. Клиент не может обрабатывать данные, которых у него нет - в частности, данные о действиях, состоянии и положении других игроков. Он может получить эти данные только с сервера, причём только в виде, который сервер "соизволит" дать - лишь в необходимом и достаточном объеме. Именно во избежание читов в первую очередь. Если бы все коллизии, включая таковые с активными объектами, считались на клиенте - Молаг Бала убивали бы ваншотом от входа на локацию, например (дичайше упрощаю, понятно). Ну и в ПвП наблюдалась бы та же самая картина. А раз её нет - значит таки на сервере они считаются и проверяются. Сделал. Выше. ![]() ![]() Но я так не могу, мне надо больше для комфортной игры. |
|
![]() |
![]() |
#277 | ||
Предводитель
|
Re: Технические вопросы
Quote:
![]() Какой ваншот от входа в локацию и ПвП в TESO? Речь точно о коллизиях с динамическими объектами? Так как первое к ним не имеет никакого отношения, а второе - ну нет коллизий между игроками в TESO, просто нет, только с мобами/нпс. ![]() Я в третий раз спрашиваю: какие данные по коллизиям должен получить клиент от сервера кроме корректных данных о положении и ориентации объекта? В очередной раз ответа не будет? ![]() Ну и опять же, что скажешь на это: ![]() Если получил прирос в 20% fps, то уже интереснее (хотя, тут тоже вопрос, 20% от чего? ![]() ![]() Last edited by Kirixoid_renamed_1055396_19012023; 26.06.2014 at 02:10. Reason: Добавлено сообщение |
||
![]() |
![]() |
#278 | ||
Гигант мысли
|
Re: Технические вопросы
Молаг Бал - не динамический объект ? Если коллизии считаются на клиенте полностью - что мешает его ваншотнуть от входа в локацию, путём редактирования соответствующих функций и данных прямо в коде процесса eso.exe ? Quote:
Клиент таки получил последние координаты и состояние мобов до отвала связи, и рисует сцену исходя из этого. И реагирует на действия пользователя соответствующим образом. Если связь восстановится - будет роллбэк (вероятно) либо таки вылет с Unknown Error (как оно и происходит в ТЕСО). Я не экспериментировал конкретно с ТЕСО, насколько там прирост фпс от разгона - нет у меня такой нужды. В ТЕСО и с разгоном 100 бывает, только если пялиться в небо в месте, где ни одного игрока рядом нет. У меня, разумеется. |
||
![]() |
![]() |
#280 | |||
Предводитель
|
Re: Технические вопросы
Примеры чего?
Quote:
![]() ![]() Quote:
Хватит уже пороть чушь никак не связанную с темой и просто ответь на уже трижды заданный вопрос, если ты такой "специалист": ![]() ![]() А я ещё с ним серьёзный диалог пытаюсь вести, зачем? ![]() Last edited by Kirixoid_renamed_1055396_19012023; 26.06.2014 at 15:27. |
|||
![]() |
![]() |
#281 | |
Гигант мысли
|
Re: Технические вопросы
![]() За полным непониманием Вами предмета спора, считаю его исчерпанным, продолжать смысла не вижу. |
|
![]() |
![]() |
#283 | |
Предводитель
|
Re: Технические вопросы
Просто так совпало, что эмблема Havok появилась в игре в тот момент, когда в ней ввели коллизии с мобами, а сам Havok отвечает за физику и коллизии. Очень хочу теперь узнать от Вас, для чего же используется Havok в клиенте TESO, просветите нас, о мудрейший ![]() ![]() Правда больше на слив смахивает... ![]() Ладно, не обижайся, но ты тут пытаешь стоить из себя специалиста в области сервером ММОРПГ и как минимум толкового программиста. Я программер хреновенький, именно потому, что знаю столько, что понимаю, что знаю очень мало ![]() ![]() |
|
![]() |
![]() |
#284 | |
Гигант мысли
|
Re: Технические вопросы
![]() ![]() И как программист - программисту не могу, я "программистом" себя называть не могу никак. "Программист" - это как слесарь: от сантехника до КИПиА. Да и сам вопрос не совсем корректен. Попробую описать процесс, как я его вижу: С сервера клиент получает все данные, которых у него точно нет, а именно - положение и состояние всех "активных" объектов. О чём уже в который раз и пишу. Причем получает с некой периодичностью, с фпс на клиенте почти никак не связанной. А вот эти самые положение и состояние этих самых активных объектов - в ММО - считаются именно на сервере. Исходя из данных, поступивших со всех клиентов конкретно этого сервера, собственной карты объектов (всех) и правил взаимодействия этих объектов. Клиент ММО этого сделать не может, ибо опухнет на 2-3 десятке источников данных/подключений (см. мультиплеерные игры). Мало того, сервер определяет область видимости для клиента - т.е. какие объекты участвуют в отображаемой клиентом сцене, какие нет - и именно и только по этим объектам данные прилетят на клиента. Иногда с запозданием. Сам же сервер считает все коллизии для всех объектов (ну или - все участки карты, видимые клиентам, например+некоторый объем вокруг них, тут очень много всяких факторов, например - событий, случающихся вне зависимости от воздействий игроков: в ТЕСО долмены те же). Что касается ситуации с разрывом связи - опять же всё просто: получил клиент последний набор данных (повторяю, частота синхронизации данных между сервером и клиентом к фпс на клиенте не имеет почти никакого отношения), "сделал" сцену, новых данных нет - и что ? Можно зависнуть, что будет некрасиво. Можно продолжать предсказывать (ну ладно - считать ![]() Что, видимо и делается. Вся собственно деятельность сервера и сводится к расчёту коллизий, в основном, и если есть рассинхрон именно коллизий между сервером и клиентом - один из вариантов решения это именно что откат. "Короткий" откат, доли-единицы секунд. "Длинный" откат (десятки секунд-минуты) - это совсем другая история: "мегасерверы" и прочие игровые серверы - это несколько (от единиц до тысяч, зависит от реализации движка) процессов, внутри которых "живут" (считаются видимость и коллизии, ага) клиентские сессии. Эти процессы регулярно делают снэпшоты текущего состояния - ради балансировки и устойчивости к сбоям/отказам эти данные могут быть переброшены другому процессу (даже и на другом физическом сервере), и расчёты будут продолжены с этого места. Так вот, если этот самый процесс заглючил или повис нафиг - происходит поднятие другого процесса и продолжение расчёта с того места, где убившийся процесс успел последний раз отдать снэпшот. Разумеется, то, что процесс висит или вылетел, обнаруживается не сразу, а если и сразу (вылет процесса/упал физический сервер, например) - то реакция на него (переезд данных на наименее занятое железо, старт процесса, обработка им данных) занимает некоторое время. При этом данные о том, что произошло с момента снятия снэпшота до момента фактического убиения процесса - тупо теряются, и происходит именно то, что именуется на оффоруме роллбэком, а я тут обозвал "длинным откатом". Сорри за портянку. |
|
![]() |
![]() |
#287 | |||||
Предводитель
|
Re: Технические вопросы
![]() Я тебя спрашиваю хотя бы на уровне логики как это реализовано в коде. Quote:
![]() Quote:
Ты написал прописные истину про работу ммо серверов, а как дошёл до предмета спора, отделался лишь сервер считает. Так я о том и спрашиваю - как именно считает? В чём заключается работа сервера? Что является результатом этих его расчётов? Ты до сих пор не можешь дать внятного ответа, может уже признаешь, что не владеешь темой? Quote:
Далее, слушай как происходит на самом деле - клиенту приходят данные о положении объекта и его ориентации. Всё, точно. 4 цифры (x, y, z - позиция и o - ориентация). Ну и сам объект, конечно, модель его. Коллизии относительно этого объекта считает уже сам клиент. Если это не так, то расскажи мне, пожалуйста, как программист, какие данные о коллизиях посылает сервер клиенту? ![]() ![]() Ну и ты не ответил ещё на один вопрос: Quote:
![]() ![]() ![]() ![]() ![]() |
|||||
![]() |
![]() |
#288 | ||
Гигант мысли
|
Re: Технические вопросы
Причём чем дальше - тем смешнее. Quote:
![]() Уже и коротко расписывал (трижды), и длинно (один раз). Продолжайте считать, что коллизии "рулятся пресловутым Havoc", щито тут поделать. Но у Вас он считает коллизии... ![]() У меня только одна надежда - что разработчики ТЕСО таки разбираются лучше. Добавлено через 8 минут Примеры ММО, в разработке которых Вы участвовали - в студию, пожалуйста. Также укажите свою позицию, на которой Вы находились в этих проектах, хотя бы в общих чертах - разработка сетевого кода, серверной части (пусть даже и в общем, без детализации конкретной части), клиентской части. Last edited by thrashbox_renamed_1140134_03092022; 26.06.2014 at 18:36. Reason: Добавлено сообщение |
||
![]() |
![]() |
#289 | ||
Предводитель
|
Re: Технические вопросы
![]() Т.е. пока в TESO игроки могли спокойно проходить сквозь НПС - взаимодействия объектов не было? Ведь не было коллизий с мобами, а ты говоришь, что коллизии - это взаимодействие объектов? Ну и какое же отношение коллизии имеют к дальности видимости? ![]() Добавлено через 9 минут Ан нет, прочитал дальше: Quote:
![]() Нет, блин, вы послушайте только! В TESO за "реалистичное" падение трупов с сопутствующим дрыганием конечностей и (иногда, не знаю, как конкретно в ТЕСО - эта его часть нечасто как-то используется) - за "реалистичное" разрушение объектов отвечает Havok! В игре, где вообще нет эмуляции реалистичной физики! ![]() Не, чувак, поговорим дальше, когда ты хоть чуть-чуть разберёшься, что такое коллизии и за что отвечает движок Havok (может теперь запомнишь, как он правильно называется). ![]() Last edited by Kirixoid_renamed_1055396_19012023; 26.06.2014 at 20:58. Reason: Добавлено сообщение |
||
![]() |
![]() |
#290 | |
Гигант мысли
|
Re: Технические вопросы
Пичальбида.
![]() Снимаю все вопросы, оставляю ровно один. Список ММО, в разработке которых Вы принимали участие, в студию. И - свою позицию в этом проекте (необязательно детально). Намекаю: бетатестер - не катит ![]() |
|
![]() |
![]() |
#291 | ||
Предводитель
|
Re: Технические вопросы
![]() О нет, причина как раз есть и ещё какая ![]() Quote:
![]() |
||
![]() |
![]() |
#297 | |
Забанен
|
Re: Технические вопросы
![]() |
|
![]() |
![]() |
#300 | |
Читатель
|
Re: Технические вопросы
А, ну там в папке liveeu валяется файл ShaderCache.cooked, возможно, это оно и есть.
Кстати, кто сталкивался с проблемой исчезновения всплывающих данных в игре, когда на экране перестает появляться информация о завершении квеста, открытии новой местности, получении ачивки и т.п.? Лечится на короткое время перезаходом в игру и снова пропадает. |
|
![]() |