Рубрика «многопользовательские игры»

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

▍ Оптимизация роботов (автор: Rseding)

За годы работы над Factorio я профилировал множество файлов сохранений и регулярно встречал сохранёнки, где большая часть времени обновления тратится на логистику и/или строительных дронов. В этом нет ничего нового, но наряду с дронами существуют и дронстанции (в больших количествах).

Factorio: оптимизации 2.0 - 1

Типичная фабрика с кучей дронстанций (Roboport)

Дронстанции никогда не были «медленными», но они всегда присутствуют на карте, и у игроков есть мотивация строить их в больших количествах; к тому же, их будет ещё больше в грядущем Space Age, где нужно будет многое делать удалённо. Сохранение, полученное после последней сессии плейтестинга, снова показало, что они отнимают небольшое, но ненулевое количество времени, поэтому я снова задумался о них.Читать полностью »

Пять важных уроков о балансе в играх - 1

Все игры, которые мы создавали нашей студией Ronimo, делали большой упор на соревновательный многопользовательский режим. Разработка дизайна, тестирование и итеративное улучшение этих игр, и в особенности нашего самого большого хита Awesomenauts, позволили нам узнать много нового о балансе. Сегодня я хочу поделиться наиболее важными уроками, полученными в процессе работы.

1. Слишком сильный намного хуже слишком слабого

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

Причина заключается в том, что игроки стремятся к тому, что самое сильное, и используют только это. Например, в Awesomenauts есть 34 персонажа. Если трое из них будут слишком слабыми, то большинство игроков не будет ими играть, и у них на выбор останется 31 персонаж. То есть у них по-прежнему большой выбор и присутствует разнообразие. С другой стороны, если бы три персонажа были слишком сильными, то игроки играли бы только этими персонажами и не обращали внимания на остальных. Это бы сделало игру очень однообразной и она бы быстро наскучила.

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

image

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

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

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

Уже в течение 14 лет World of Warcraft остаётся не только активным, но и актуальным. Он не стал основателем жанра MMORPG, но продолжает эволюционировать вместе с ним. World of Warcraft был продан миллионами копий, заработал миллиарды долларов и выиграл сотни наград. После выпуска седьмого расширения — Battle for Azeroth, WoW по-прежнему может похвастаться растущей базой поклонников.

Как создавался World of Warcraft: взгляд изнутри на 20 лет разработки - 1

Нам позируют некоторые из бывших лидеров фракций World of Warcraft. [Все изображения из статьи принадлежат Blizzard Entertainment.]

С самого начала World of Warcraft задумывался как ответ другим играм; игроки в успешные MMO задавались вопросом — может ли игровой процесс может быть лучше? После выхода таких игр, как Ultima Online и Everquest, команда разработчиков из Blizzard Entertainment перенесла игроков в Азерот (Azeroth), впервые появившийся в Warcraft 3. Игроки могли исследовать обширный мир, заполненный героями, злодеями, богами и монстрами в игровом процессе, который был гораздо более дружелюбным к пользователю, чем в играх-конкуренртах. Я сам играл в эти старые MMOs; я помню анархию и убийство игроков (вы не забыли Corp Por) в Ultima Online и собирание игроками толп мобов, беготню без брони до своего трупа и жёсткий гринд в Everquest. По сравнению с этим World of Warcraft был похож на глоток свежего воздуха.

Разработка игр сложна. Игры постоянно терпят крах — иногда потому, что плохи, иногда они просто не находят подходящую аудиторию. Выпустить успешную игру трудно, а поддерживать её успешность больше десяти лет требует сочетания ремесла, любви и удачи. Это видно по тому, что куча сломанных конкурентов World of Warcraft осталась на заре MMORPG. В течение последних 14 лет World of Warcraft расцветал благодаря тому, что разработчики учитывали ощущения игроков и учились больше общаться с сообществом.
Читать полностью »

image

Проблема многопользовательских игр

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

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

Обычно программа игры должна симулировать следующее:

изменения в окружении с учётом времени и вводимых игроками данных.

Игра — это программа, хранящая состояние, поэтому она зависит от времени (реального или логического). Например, PACMAN симулирует окружение, в котором постоянно перемещаются призраки.

Многопользовательская игра не является исключением, однако из-за взаимодействия игроков её сложность намного выше.
Читать полностью »

Компенсация лагов для оружия в MechWarrior Online - 1

Задержка в сети (лаг) — это реальность, которую нужно учитывать в многопользовательских играх. Сообщениям, передаваемым через Интернет, требуется время, чтобы достичь точки назначения. В зависимости от маршрута и его длины передача этих сообщений может занять довольно долгое время. Это может негативно влиять на процесс игры, особенно в динамичных клиент-серверных играх, таких как FPS. То, что кажется очень простой задачей (стреляй, пытаясь попасть в цель), внезапно становится очень сложным в создании плавного игрового процесса для всех игроков. Думаю, не нужно говорить, что создавать многопользовательские игры сложно, при этом возникает множество проблем, которые разработчики должны решить. В этой статье я расскажу, как система вооружения MechWarrior Online справляется с лагом.
Читать полностью »

Серверы игры отключили, устроив перед этим апокалипсис

Достойный конец: разработчики уничтожили мир игры Planetside метеоритной бомбардировкой - 1

В 2003 году была представлена ММО игра Planetside. На то время это был интереснейший многопользовательский проект, успешно конкурирующий с другими ММО-играмми. Но спустя некоторое время ММО игрушек становилось больше, и Planetside все сложнее было конкурировать с прочими игровыми проектами. Игроки постепенно уходили, и спустя десятилетие разработчики решили прекратить активное развитие игрового мира. Все силы старая команда бросила на развитие второй части игрушки, Planetside 2.

В 2014 году первая версия перешла на free-to-play модель, но средств, получаемых от игроков, все равно не хватало. Фактически, доходы не покрывали даже расходы на содержание серверов. До поры до времени серверы Planetside не отключали, и многие пользователи продолжали изучать игровой мир, который был не так уж и мал. Но всему приходит конец, не является исключением и эта ММО. Студия Daybreak Games объявила о закрытии серверов игры, заметив, что решение о завершении проекта было принято для дальнейшего развития бизнеса компании и из-за ряда технических ограничений самой игрушки.
Читать полностью »

Мультиплеер в быстрых играх (Часть IV: Хэдшот! Путешествуем во времени) - 1

  1. Части I, II (синглплеер с авторитарным сервером)
  2. Часть III (Появление врага)
  3. Часть IV (Хэдшот!)

Как повесить идеальный хэдшот если у тебя пинг 2 секунды? Вы узнаете в этой статье.

Текущий алгоритм работы мультиплеера

  • Сервер получает команды с клиентов и времена их отправления
  • Сервер обновляет состояние мира
  • Сервер с некоторой частотой отправляет свое состояние всем клиентам
  • Клиент отправляет команды и локально воспроизводит их результат
  • Клиент получает обновленные состояния мира и:
    • Применяет состояние от сервера
    • Заново применяет все свои команды, которые сервер не успел применить.
    • Интерполирует предыдущие состояния других игроков
  • С точки зрения игрока, есть два серьезных последствия:
    • Игрок видит себя в настоящем
    • Игрок видит других в прошлом.

Обычно это отлично работает, но это становится большой проблемой для событий, которым нужна высокая пространственно-временная точность. Например если хочется разнести врагу бошку!
Читать полностью »

Мультиплеер в быстрых играх (Часть III: появление врага) - 1

  1. Части I, II (синглплеер с авторитарным сервером)
  2. Часть III (Появление врага)
  3. Часть IV (Хэдшот!)

Введение

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

В этой статье мы рассмотрим последствия одновременного подключения нескольких игроков к одному серверу.Читать полностью »

Мультиплеер в быстрых играх (части I, II) - 1

Предлагаю вашему вниманию перевод статьи Fast-Paced Multiplayer (Part I): Introduction.

Разработка игры — само по себе непростое занятие. Но мультиплеерные игры создают совершенно новые проблемы, требующие разрешения. Забавно, что у наших проблем всего две причины: человеческая натура и законы физики. Законы физики привнесут проблемы из области теории относительности, а человеческая натура не даст нам доверять сообщениям с клиента.
Читать полностью »


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