Перейти к содержимому

Донат
На хостинг
ISK за переводы
до 75kk за 1000зн.
Хроники EVE
Сборник
Новичкам
Полезная информация

Longobard

Фотография Longobard

Longobard

Регистрация: 22 Sep 2008
Не на форуме Активность: May 24 2009 20:21
-----

В теме:На Tranquility введён лимит на кол-во игроков в одной системе

22 September 2008 - 16:07

2. Есть масса нелагающих игр, объединённых одним и тем же: просчёт физики в клиенте. Разумеется сейчас мне начнут говорить про читеров и т.д., но когда вопрос встанет как выбор между полной неиграбельностью и необходимость бороться с читерами (которых, кстати, в ЕВЕ будет мало и с которыми, в силу игровой механики, можно бороться довольно эффективно), уверен, выбор будет сделан в пользу локального обсчёта. Разумеется, если не произойдёт чудо или проект не закроют совсем.

bullshit :)
во-первых в еве физики то особой и нет. Коллизий нет (кроме бама кораблей), ничего нет. Кораблики представляют собой шары разного веса, которые летают по простым траекториям и при столкновении разлетаются с учетом разности масс. Все. Считать нечего. Даже ракеты - и там дамаг считается по формулам в зависимости от параметров, а сама ракета - просто анимация.
Та "физика", что есть - считается на стороне клиента. Или ты думаешь, что сервер пишет клиенту "а вот теперь подвинь корабль на 3px по x, 2px по z и 0px по y"? нет, клиент сам это делает, зная вектор скорости корабля.
Локальный обсчет взаимодействий невозможен, к сожалению. Сами по себе арифметические операции просчета - почти нисколько времени не отнимают. Гораздо дольше проходят всякие операции с памятью, итерации из контейнеров и прочая жажа. И эти вещи можно делать только на сервере.
Если бы ммо сервер имел p2p архитектуру - был бы возможен локальный просчет взаимодействий. Но сейчас ммо имеют серверную архитектуру.

В теме:На Tranquility введён лимит на кол-во игроков в одной системе

22 September 2008 - 15:16

Я принимал участие в программинге серверной части одной MMORPG (браузерной, но в данном случае это неважно, серверная часть не сильно отличается). Так что могу сказать пару слов с позиции человека, который немного представляет, как устроены сервера онлайновых игр.

Если кто еще не понял - причина лагов - не количество людей, в системе, а количество взаимодействий между этими людьми. В Еве оно очень большое, к сожалению, такая механика. И даже то, что сделано в CCP сейчас - это очень хорошая производительность. Просчеты взаимных взаимодействий очень плохо масштабируются и разносятся на разные сервера, т.к. для просчета нужно держать в памяти инстанцированные объекты всех участников боя и постоянно просчитывать все новые и новые взаимодействия. Тут надо дать слово какому-нибудь спецу по постройке кластеров, я не знаю какие получаются задержки на кластерах с единым адресным пространством оперативки, и бывают ли такие вобще. Вроде есть, но не сталкивался.
Сами алгоритмы обсчета взаимодействий имеют определенный предел по оптимизации, их нельзя оптимизировать бесконечно, будь ты хоть трижды умным.
Проблема еще в том, что подобного рода сервера почти невозможно профайлить (запустить под профайлером - программой, показывающей узкие места по производительности). Просто по причине того, что профайлер резко увеличивает количество используемой памяти и сильно тормозит саму программу. То же самое относится и к утечкам памяти, хотя с ними в Питоне все проще из-за сборки мусора. Кстати, крики "перепишите еву на с++" оставьте при себе, так как в с++ с памятью полная попа, даже если юзать смартпойнтеры и идиому "выделяем ресурсы в конструкторе, освобождаем в деструкторе". И тут очень хорошо, что сервер написан на языке со сборкой мусора (кроме питона таким свойством обладает также c# и ява).

К чему я это все. Хватит гундосить как бабки на завалинке. Лаги есть, да. Нытьем вы этому помочь никак не можете, единственное что можете сделать - настроить брекеты. Просто сидите на попе ровно и ждите, пока технологии шагнут вперед и можно будет построить нужный кластер. Или хотя бы скажите доброе слово в адрес CCP. А то куда не плюнь - везде все недовольны, ай CCP уроды, ай сволочи. Хотя такое отношение характерно для всех онлайн игр, но им будет гораздо приятнее, если хоть часть игроков отнесется к таким проблемам с пониманием. В конце концов, ева считается игрой с одной из самых взрослых и умных аудиторией, а вы тут пердите как детишки. Стыдно! :)