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

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

Longobard

Фотография Longobard

Longobard

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

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

Написано Longobard на 22 September 2008 - 15:16

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

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

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