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