Рубрика «мультиплеер»

Некоторое время назад я участвовал в разработке поддержки мультиплеера для одной глобальной модификации Цивилизации 5 и сегодня хотел бы поделиться здесь некоторыми подробностями о том, как устроена сетевая игра, как всё-таки запустить ее с модами, что с ней вообще не так, и как мы это фиксили.

Что за Цивилизация 5?

Цивилизация 5Читать полностью »

Пару лет назад единственной настольной игрой, в которую я играл онлайн с друзьями, была «Монополия». Со временем она начала надоедать, и мне захотелось чего‑то нового. Моим открытием стала Machi Koro — экономическая карточная игра, где победа зависит не столько от случайности, сколько от выбранной стратегии, что выгодно отличает её от «Монополии».

На тот момент я не нашёл достойных онлайн‑аналогов Machi Koro, что и подтолкнуло меня к созданию собственной реализации. В этой статье я подробно расскажу о технической стороне проекта: от составления требований до выбора стека технологий.

Читать полностью »

Привет.

Статья в помощь разработчикам мультиплеера на UnrealEngine, которые по тем или иным причинам испытывают сложности билда сервера локально (разрабатываете на Mac, или недостаток ресурсов, места, и так далее).

Начнем с проблематики. Хоть движок и мультиплатформенный, сам сервер логично иметь на Linux. Вы можете конечно хостить сервер на Mac, но вряд ли это оправданно. Поэтому, встает резонный вопрос — а как сбилдить сервер под Linux?

Далее проблематика билда сервер под Linux, находясь на другой ОС:

  1. На Linux проблем нет, если есть ресурсы и место (а это минимум 200 гигабайт места и лучше от 8 ядер и 32Гб памяти).

  2. Читать полностью »

Автостопом по мультиплееру. Часть 4: Авторитарность и Топологии - 1

Это четвёртая статья путеводителя по разработке многопользовательских игр, где я пытаюсь последовательно и в одном месте собрать знания, которые потребуются для осознанной разработки мультиплеерного проекта.

Читать полностью »

Разработчики Jedi Academy пообещали исправить проблему, из-за которой ПК-игроки подключаются к серверам PS4 и Switch - 1

27 марта компания Aspyr Media выпустила игру Star Wars Jedi Knight: Jedi Academy для консолей PlayStation 4 и Nintendo Switch — ранее она была доступна только для ПК и Xbox. Однако некоторым ПК-игрокам удалось найти лазейку, благодаря которой они смогли подключаться к серверам PS4 и Switch в мультиплеере и получить преимущество за счёт моддинга и использования мыши и клавиатуры, которые дают более высокую точность наведения на противника. Читать полностью »

Физика для мобильного PvP шутера, или как мы из двумерной игру в трёхмерную переделывали - 1

В предыдущей статье мой коллега рассказал о том, как мы использовали двумерный физический движок в нашем мобильном мультиплеерном шутере. А теперь я хочу поделиться тем, как мы выкинули всё, что делали до этого, и начали с нуля ― иными словами, как мы перевели нашу игру из 2D-мира в 3D.
Читать полностью »

Всем привет! В этой статье мы расскажем про личный опыт работы с физическими движками для мультиплеерного шутера и главным образом сфокусируемся на взаимодействии физики и ECS: на какие грабли мы наступили в процессе работы, чему научились, почему остановились на конкретных решениях.

Физика для мобильного PvP шутера и как мы подружили её с ECS - 1

Читать полностью »

image

В мае этого года я участвовал в качестве игрока в MMO-мероприятии KatherineOfSky. Я заметил, что когда количество игроков достигает определённого числа, через каждые несколько минут часть из них «отваливается». К счастью для вас (но не для меня), я был одним из тех игроков, которые отключались каждый раз, даже при наличии хорошего подключения. Я воспринял это как личный вызов и начал искать причины проблемы. Спустя три недели отладки, тестирования и исправлений ошибка наконец устранена, но это путешествие было не таким уж простым.

Проблемы многопользовательских игр очень трудно отследить. Обычно они возникают в очень конкретных условиях параметров сетей и при очень специфичных состояниях игры (в данном случае — наличие более 200 игроков). И даже когда удаётся воспроизвести проблему, её невозможно должным образом отлаживать, потому что вставка контрольных точек останавливает игру, путает таймеры и обычно приводит к завершению соединения из-за превышения срока ожидания. Но благодаря упорности и замечательному инструменту под названием clumsy мне удалось выяснить, что же происходит.

Если вкратце: из-за ошибки и неполной реализации симуляции состояния задержки клиент иногда оказывался в ситуации, когда ему приходится за один такт отправлять сетевой пакет, состоящий из вводимых игроком действий выбора примерно 400 игровых сущностей (мы называем его «мегапакетом»). После этого сервер не только должен правильно получить все эти действия ввода, но и отправить их всем остальным клиентам. Если у тебя 200 клиентов, это быстро становится проблемой. Канал к серверу быстро забивается, что приводит к утере пакетов и каскаду повторно запрошенных пакетов. Откладывание действий ввода затем приводит к тому, что ещё больше клиентов начинает отправлять мегапакеты, и их лавина становится ещё сильнее. Удачливым клиентам удаётся восстановиться, все остальные «отваливаются».
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js