Comments 22
А теперь умножь количество пользователей еще на 30 и многократно объем данных для обработки от каждого пользователя и получаем Eve Online с лагаловом и тиди в массзарубах.
Хотя сейчас вроде как тестируется новое програмное обеспечение для распределении нагрузки в ммо, думаю в скором все изменится
А ну да, получается немного другое. Суть в огромной нагрузке описанной выше мной заключается в том что на объекты воздействует огромное количество факторов, и для того что бы пользователю вывести что-то на экран это все необходимо обсчитать на сервере. К примеру в одном месте находятся 100 объектов которые хаотично летают, после столкновения надо пересчитать траектории, прибавляем к этому что они еще и стрелают, трельба ведется из разных орудий, ракеты, турели, лазеры. уроны зависят от нескольких десятков факторов как со стороны стреляющего, так и со стороны цели. еще добавим у некоторых кораблей дронов, которые тоже имеют свои параметры движения, урона, положения в пространстве — которые так же надо проссчитывать.
Нет, вы не понимаете. Вот у меня есть маленькая база. Я играю неспеша, медитативно. Многие люди за то же время строят в сотни раз большие базы. А многие играют по сети десятками и строят ещё большие базы. Так вот её статистика:
![](https://habrastorage.org/webt/a8/xc/0f/a8xc0fc-_kc6muvg95vj0uy-lki.png)
1 миллион 113 тысяч сущностей, которые обновляются 60 раз в секунду. Каждая из этих сущностей имеет свою логику. И самое главное — оно совершенно не тормозит. Игра обрабатывает миллионы объектов (а у некоторых людей и миллиарды) каждые 16 мс и при этом она играбельная.
Сколько там было кораблей в еве в бою макесимум? 7000? И как? Справлялся код? Сколько секунд просчитывался один тик?
Факторио можно сравнивать с Евой. Как пример прекрасной и сложной работы в Факторио и не такой прекрасной в Еве. Но никак не наоборот.
Фактория с технической точки зрения — гениальна.
и для того что бы пользователю вывести что-то на экран это все необходимо обсчитать на сервере
Вы прочитали всю статью, и так и не поняли, что в Factorio для того чтобы вывести что-то на экран, не надо обсчитывать это на сервере?
Зерглинг-рашить кусак.
Когда собираются 2-5 человек, то это строительная бригада. Кто-то из них обязательно бригадир, дальше идут старший мастер, мастер, подмастерье. Они создают что-то единое под чутким управлением бригадира.
Факторка на 20-30 человек уже распадается на обычное человеческое общество. Люди разбиваются на группы, а кто-то вообще действует индивидуально. Начинаются стройки в разных местах карты, и обязательно начинается борьба за ресурсы. Но борьба совсем не такая как в других играх. Борьба начинается как в цивилизованном человеческом обществе. Кто первым установит буры для своего мегапроекта.
А еще пока ты спал кто-то мог повернуть твой конвеер в другую сторону. Или врезаться в трубу. И ты не можешь объяснить этим товарищам с помощью турелей что они не правы. Ты даже не можешь киркой тюкнуть их по голове. А иногда очень хочется. Всё как в реальной жизни. Приходится договариваться, отставать, бросать и уходить.
Турели ладно, не наводятся, а арту можно и вручную. По особо наглой рыжей морде.
Видимо как-то надо подбирать параметры генерации мира чтобы появлялась необходимость соперничать за ресурсы или хотя-бы бартер устраивать.
Мегапакет: как разработчикам Factorio удалось решить проблему с мультиплеером на 200 игроков