Что значит мультиплеер в играх

Многопользовательская игра

Многопо́льзовательская игра́ — тип компьютерных игр, при котором одновременно играет несколько человек.

Содержание

История

Первой многопользовательской игрой считается Tennis for Two (1958 год). Игра была сделана для аналоговой ЭВМ и выводила игровое поле на осциллографе. Игра Maze War стала и первой реализацией deathmatch’а, и первой сетевой игрой.

Уже первые приставки (Pong, Magnavox Odyssey) имели два контроллера, что позволяло играть вдвоём.

Наиболее значимыми сетевыми играми для IBM-совместимых компьютеров были:

Классификация

По технической реализации

Некоторые игры (в основном для игровых приставок) поддерживают сетевую игру, в которой на каждой машине могут играть несколько игроков в режиме splitscreen.

По правилам

По организации связи

По принципу организации связи между компьютерами сетевые игры делятся на:

LAN party

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

Другие причины организации LAN party:

Зачастую любители моддинга и разгона компьютеров показывают свои достижения на LAN party.

Типы многопользовательской игры в 3D-шутерах

Типы многопользовательской игры в стратегиях в реальном времени

Массовые онлайн-игры

Сетевая компьютерная игра, в которой одновременно играют большое количество игроков (в основном, не менее нескольких десятков).

Мошенничество в сетевых играх

Мошенничество, или «читерство» (англ. cheat — мошенничество) — серьёзная проблема сетевых компьютерных игр.

Само определение понятия «мошенничество» туманно. Классическое определение мошенничества как «получение нечестного преимущества» не годится, так как остаётся непонятным смысл слова «нечестный». Мошенничеством определённо является применение «наводчиков» (англ. aimbot ), которые стреляют быстро и без промаха. Перенастройка управления мошенничеством, разумеется, не является. Но всё, что находится между ними, является спорным. Даже настройка драйверов может оказаться вне закона (например, убирание тумана ускоряет игру, но увеличивает видимость, поэтому в некоторых играх это расценивается как мошенничество). Поэтому большинство лиг определяют, какие изменения игры разрешены, и все остальное считается мошенничеством.

Некоторые мошеннические программы настолько хорошо замаскированы, что даже человек, приставленный к монитору мошенника, может не заметить подвоха. Например, программа-наводчик может активизироваться при одновременном нажатии кнопок «Влево» и «Вправо».

Источник

Мультиплеер в играх: взгляд изнутри

Недавно я создал мобильную игру для Android, в которой потенциально мог бы быть мультиплеер, чего и затребовали пользователи.
Мультиплеер не предусматривался, так как не соблюдал разделения модели и представления.
В этой статье я рассмотрю простую реализацию сетевого режима игры и расскажу об ошибках, допущенных на этапе продумывания архитектуры игры.
Воодушевившись статьей goblin wars II структура игры была разделена на независимые блоки, что в конечном итоге позволило пользователям играть по сети.

Базовый класс для всех игровых объектов содержал всю логику модели MVC внутри себя — он умел и рисовать себя, и менять свое состояние.

Разделим модель от представления.
Любой класс, который будет рисовать игровые объекты, будет реализовывать интерфейс.

Продумывая архитектуру для мультиплеера, а именно отдельно реализацию клиента и реализацию сервера, вынесем поля, необходимые для рисования объекта в отдельный класс.

Таким образом, мы сможем хранить на стороне клиента лишь представление, и в создании объектов модели необходимости не будет.

Когда объектов в игре стало много, сопровождать такой код и добавлять новые возможности стало слишком сложно.
Переход на компоненты существенно облегчил создание новых игровых объектов, так как по сути создание новой сущности представляло собой конструктор.
Все объекты в игре наследуются от базового класса Entity, и отличие лишь в возвращаемом методом getState() состоянии и различным набором компонентов.

Действия класса сервера каждый кадр — он отдает актуальный массив состояний для ServerImplementation и передает на клиент.
выглядит это так:

Любые действия на стороне клиента сперва отправляются на сервер, на сервере меняется состояние, и эти данные возвращаются назад к клиенту.
Записал небольшое видео, которое демонстрирует сетевой режим (движок libgdx позволяет запускать приложения и на ПК)

Источник

Что лучше многопользовательские или одиночные игры?

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

Что значит мультиплеер в играх. Смотреть фото Что значит мультиплеер в играх. Смотреть картинку Что значит мультиплеер в играх. Картинка про Что значит мультиплеер в играх. Фото Что значит мультиплеер в играх

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

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

Достоинства Многопользовательской игры

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

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

Вы будете продолжать в игру до тех пор пока она вам не надоест, или пока проект не закроется. Это может продолжаться несколько лет, если даже не десятков лет. Одиночные игры такими результатами похвастаться не могут, максимум на что они способны это 200-300 часов, не больше.

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

Достоинства Однопользовательской игры

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

В однопользовательских играх у игрока есть полная свобода выбора в плане установки других модификаций, читов, использовании кодов и т.д. Одиночные игры всегда были объектом мододельства, есть игры с базой модов в тысячу и больше единиц(GTA, Stalker, Skyrim и др.). С помощью них можно изменить игру до неузнаваемости, и для этого не надо ждать обновления месяцами, а то и годами.

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

Но вы можете следовать этим двум простым пунктам:

Источник

Игры с мультиплеером: Все, что нужно знать

Все про мультиплеер в играх на ПК и консолях: виды, режимы, особенности и многое другое.

История мультиплеерных игр

С момента появления первых компьютерных игр люди начали искать способы играть вместе. Уже в 1958 году, – спустя 18 лет после разработки первой игры, – был выпущен симулятор Tennis for Two, который предлагал двум пользователям ЭВМ («геймеров» тогда еще не существовало) перебрасывать виртуальный мяч через виртуальную сетку на экране осциллографа.

Что значит мультиплеер в играх. Смотреть фото Что значит мультиплеер в играх. Смотреть картинку Что значит мультиплеер в играх. Картинка про Что значит мультиплеер в играх. Фото Что значит мультиплеер в играх На таком устройстве прошел первый PvP матч

Вплоть до начала 1970-х мультиплеерные игры практически не появлялись, зато в 1973 году вышло сразу несколько проектов, позволяющих играть не на одном устройстве, а по сети. Maze War, Empire, Spasim – трехмерный соревновательный шутер, сетевой 2D-шутер с впечатляющим для своего времени мультиплеером на 50 человек, трехмерный космический симулятор. Они стали отправной точкой развития многопользовательских режимов, что в результате привело к тому, что мы видим сейчас – широкому распространению игр с мультиплеером, объединяющих геймеров всего мира.

С появлением первых консолей и распространением домашних ПК стали выходить игры, в которые можно было играть вдвоем – на одном экране и по сети. Соответственно, на консолях, часто укомплектованных двумя контроллерами, пользовался успехом локальный мультиплеер, тогда как платформа ПК стала прибежищем сетевых игр.

Взрывной рост популярности последних пришелся на 1990-е, когда «выстрелили» многопользовательские проекты в нескольких жанрах: DOOM, Quake и Unreal Tournament, послужившие толчком к развитию киберспорта; мультиплеерные стратегии WarCraft, StarCraft, Command & Conquer и Heroes of Might and Magic; Ultima Online – первая MMORPG, получившая всемирную известность.

Что значит мультиплеер в играх. Смотреть фото Что значит мультиплеер в играх. Смотреть картинку Что значит мультиплеер в играх. Картинка про Что значит мультиплеер в играх. Фото Что значит мультиплеер в играх StarCraft: Remastered

Дальнейшая история известна – с каждым годом количество игр с мультиплеером возрастало, появлялись культовые проекты, вроде World of Warcraft и Counter-Strike, зарождались новые жанры, что-то становилось модным, что-то выходило из моды. С распространением интернета объединять людей в сетевых играх стало гораздо легче, чем раньше, и сейчас можно одним щелчком мыши или клавиши геймпада пригласить друга в мультиплеерную сессию, бросить вызов сопернику с другого континента или отправиться в мир, населенный десятками тысяч игроков. Подробнее об этом мы поговорим во второй части статьи.

Виды мультиплеерных игр

По типу взаимодействия пользователей игры делятся на две категории:

Кооперативные и соревновательные режимы могут присутствовать в рамках одной игры (как пример – серия Call of Duty, в большинстве частей которой есть и одиночная кампания для одного игрока, и совместные миссии для нескольких игроков, и состязательные режимы).

Кроме того, в некоторых проектах эти режимы могут пересекаться – например, в World War Z, где есть так называемое PvPvZ, режим «игрок против игрока против зомби», в ходе которого участники матчей выполняют поставленные задачи, одновременно сражаясь и с ходячими мертвецами, и с другими выжившими, или в Hunt: Showdown, где геймеры сначала сражаются с монстрами, а затем, отбиваясь от них и других игроков, пытаются прорваться к выходу из локации.

Жанры мультиплеерных игр

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

Конечно, нельзя не упомянуть жанры видеоигр, в которых ММО-элементы часто выходят на первый план. Это и шутеры, многие из которых содержат только онлайновые активности (Crossfire, Overwatch, Counter-Strike: Global Offensive), и стратегии реального времени, где сетевая составляющая встречается очень часто (WarCraft III, StarCraft II, Halo Wars 2), и экшены во всем их многообразии, которые предлагают сессионные развлечения в кооперативных и соревновательных активностях (Warframe, For Honor, War Thunder).

Новые жанры вспыхивают и угасают: одни надолго захватывают внимание аудитории, другие скоро уходят в небытие. К примеру, на пике популярности MOBA новые игры в жанре появлялись едва ли не ежедневно. Однако разразившаяся между ними конкуренция привела к «гибели» самых слабых, в результате чего на вершине остались буквально 3-5 игр, пользующихся успехом, тогда как остальные либо довольствуются исчезающе малым количеством пользователей, либо и вовсе закрылись. Та же ситуация произошла с «королевскими битвами».

И это нормально: игровая индустрия постоянно развивается, а вкусы игроков регулярно меняются. Поэтому в будущем мы еще не единожды будем наблюдать схожие ситуации.

Режимы мультиплеерных игр

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

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

Плюсы и минусы мультиплеерных игр

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

Однако, отправляясь в дивный мир многопользовательских игр, нужно быть готовым и к некоторым их недостаткам. В первую очередь, это читерство – взлом или использование багов игры для получения нечестного преимущества перед соперниками. Читеры не только портят удовольствие другим игрокам, но могут своими действиями навлечь нечестную блокировку на пользователей, не использующих читы. Так случалось, например, в GTA Online, где игроки, попадавшие в один матч с читерами, тоже автоматически отправлялись в бан.

Что значит мультиплеер в играх. Смотреть фото Что значит мультиплеер в играх. Смотреть картинку Что значит мультиплеер в играх. Картинка про Что значит мультиплеер в играх. Фото Что значит мультиплеер в играх Dota 2 – MOBA, чье сообщество славится своей токсичностью

Еще одна проблема – токсичное сообщество. Чаще всего с ней сталкиваются новички, которые решили попытать удачи в мультиплеере, но пока еще не разобрались со всеми механиками онлайн игры. Более опытные геймеры будут либо постоянно побеждать их, не давая получить удовольствие от игрового процесса, либо оскорблять, обвиняя в «нубстве» и «криворукости». Впрочем, это относится не ко всем играм: часто происходит с точностью до наоборот – неофиты встречают отзывчивое комьюнити, которое с удовольствием поможет, подскажет и направит.

Заключение

Если вы считаете, что вам есть чем дополнить эту статью – обязательно поделитесь своим мнением в комментариях! Мы обязательно учтем ваши замечания и внесем соответствующие правки.

Что значит мультиплеер в играх. Смотреть фото Что значит мультиплеер в играх. Смотреть картинку Что значит мультиплеер в играх. Картинка про Что значит мультиплеер в играх. Фото Что значит мультиплеер в играх

Геймер со стажем (предпочитаю одиночные игры). Люблю истории, которые нам рассказывают видеоигры, но считаю, что геймплей должен быть выше сюжета, даже если это симулятор ходьбы. Также интересуюсь современной гик-культурой, музыкой и кино.

Источник

Реализация мультиплеера в игре. Сравнение возможностей Game Center, Steamworks и GameSparks

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

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

Коротко обо всем

Перечисленные варианта расположены в порядке возрастания возможностей и гибкости. Сложность реализации при этом тоже возрастает.

1. GameCenter
Самый простой и, в то же время, самый скудный вариант. Игрок нажимает кнопку, после чего появляется окно поиска противника. После того, как набралось определенное количество игроков, матч запускается. В этот момент игроки получают возможность обмениваться сообщениями. После того, как все игроки покинули матч, игра завершается.

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

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

3. GameSparks
На самом деле, GameSparks — это полноценный сервер, со всеми вытекающими отсюда плюсами. Вы можете хранить данные игрока, верифицировать все его действия. Есть встроенные механизмы матчмекинга, лидербордов, ачивок и многое другое.

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

Для меня, последний вариант оказался самым приятным в разработке, так как удалось избавиться от множества костылей.

Немножко о нашей игре

GalaxyAdmirals — это пошаговая космическая стратегия. Геймплей состоит из коротких сражений на гексогональном игровом поле. Игроки ходят по очереди, элемент рандома отсутствует. По сути, это шахматы в космосе.

Что значит мультиплеер в играх. Смотреть фото Что значит мультиплеер в играх. Смотреть картинку Что значит мультиплеер в играх. Картинка про Что значит мультиплеер в играх. Фото Что значит мультиплеер в играх

В игре есть кампания из 30 миссий. Многопользовательский режим — это бой один на один со случайным противником.

Игра сделана на Unity3D.

Game Center

Общее описание

Game Center — это такое приложение под iOS. В нем отображаются ваши достижения в других играх: ачивки, таблицы рекордов. Можно добавлять друзей, бросать вызовы, сравнивать ваши достижения. Функционал не большой, а юзабилити всего этого, на мой взгляд, довольно сомнительный. Но самое главное то, что через Game Center можно реализовать простенький мультиплеер.

Интеграция

Возможно, существуют какие-то готовые плагины, но я писал свой на Objective C. Кода не много, и он довольно простой.

Реализация

Существует три варианта реализации мультиплеера через Game Center:

Это для пошаговых игр, типа шашек, шахмат. Игроки делают ход по очереди. После каждого хода, игроку прилетает сообщение в Game Center, что теперь его очередь. При этом игра не обязательно должна быть запущена. Состояние игры хранится в Game Center. Игроки не общаются друг с другом, они общаются только с сервером чтобы обновить состояние игры.

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

Как предыдущий пример, только обмен сообщениями происходит через ретрансляционный сервер Game Center. Это то, что использовал я. О нем поподробнее ниже.

Выглядит это следующим образом. Игрок нажимает кнопку — запускается поиск противника.

Что значит мультиплеер в играх. Смотреть фото Что значит мультиплеер в играх. Смотреть картинку Что значит мультиплеер в играх. Картинка про Что значит мультиплеер в играх. Фото Что значит мультиплеер в играх

При запуске матчмейкинга, игрок передает следующие параметры:

Атрибут — это 32-битное число, которое означает роль, которую вы хотите отыграть. По сути, это битовая маска. Game Center подбирает игроков таким образом, чтобы их битовые маски, объединенные по «или», были полностью заполнены единицами.

Например, вы хотите играть в шахматы только за белых. Тогда вы передаете маску 0xFFFF0000. Игрок, желающий играть за черных, должен передать 0x0000FFFF. Если игроку все равно, за кого играть, то он передает заполненную единицами маску 0xFFFFFFFF. Тогда игроку, желающему играть за белых, подберется противник, желающий играть за черных, либо противник, которому все равно, за кого играть.

После того, как противники найдены, запускается матч. Игроку возвращается список противников, которым он может посылать сообщения. Все игроки вступают в игру на равных правах. Им нужно договориться, кто из них игрок№1, а кто игрок№2. Например, можно отсортировать игроков по айдишникам. Тогда у обоих получится один и тот же список.

Какого-то специального состояния «матч завершен» не существует. Игрокам сначала нужно между собой договориться, что игра закончена, и затем каждый из них дисконнектится.

Существует возможность послать приглашение своему другу. Это приглашение высветится у него в Game Center, даже если игра не запущена. По клику на сообщение игра запускается. Для того, чтобы приглашения работали корректно, приходится отдельно обрабатывать два варианта, когда приложение запущено и когда нет.

К сожалению, если игрок не принял приглашение, то игрок пославший его, об этом никогда не узнает. Он будет ждать его до тех пор, пока ему не надоест.

Проблемы

1. Проблема с завершением матча
Функционал работает таким образом, что ты не можешь послать сообщение «игра окончена, я пошел», а потом сразу дисконнектиться. В этом случае противник не получит твоего сообщения, а увидит только, что ты дисконнектился. Решив, что ты отвалился, он присвоит победу себе.

Поэтому приходится посылать дополнительные подтверждения, типа «я получил твое сообщение, что игра окончена, можешь уходить».

2. Проблема дисконнекта одного из игроков
Соединение между игроками устанавливается peer-to-peer. Поэтому, если у одного игрока пропадает интернет, то оба получают сообщение, что противник отвалился. По идее, мы должны присудить поражение игроку, который отвалился, и победу игроку, который остался в игре. И самое неприятное, что не существует способа спросить у Game Center, кто остался в игре, а кто дисконнектился.

Чтобы это выяснить приходится вставлять костыли. Например, проверять соединение c Game Center сразу после дисконнекта противника (например, я запрашивал состояние ачивок). Если Game Center не отвечает, то можно считать, что отвалился я, а не противник.

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

Минусы

Steamworks

Общее описание

Steamworks — это Api для интеграции вашей игры с магазином Steam. Он позволяет реализовать в вашей игре мультиплеер, ачивки, лидерборды, покупки, хранение данных пользователя в облаке.

Интеграция

Steamworks SDK написан на С++. Поэтому для интеграции в Unity3D необходим врапер. Из нескольких вариантов мною наобум был выбран Steamworks.NET. В принципе, врапер не плохой, все интегрировалось хорошо, но позже я заметил некоторое странное поведение.

Каждая функция возвращает результат через callback примерно такого вида.

Как видно, в функцию передается дополнительный булевый параметр, который должен сообщать о неудачном выполнении операции. Как оказалось, этот параметр никогда не возвращает true. Даже если сделать что-то заведомо неправильное. Не знаю, косяк ли это Steamworks SDK или Steamworks.NET. От разработчиков какого-то внятного ответа я не получил и пришлось выкручиваться с помощью костылей.

Реализация

Как я уже писал выше, Steamworks имеет более гибкие возможности матчмейкинга. Вот примерный список того, что вы можете сделать:

Что значит мультиплеер в играх. Смотреть фото Что значит мультиплеер в играх. Смотреть картинку Что значит мультиплеер в играх. Картинка про Что значит мультиплеер в играх. Фото Что значит мультиплеер в играх

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

Не все игроки равны между собой. Игрок, создавший комнату, является её владельцем (owner). Если владелец покинул комнату, то это звание перекидывается случайным образом на другого игрока в комнате. Этот игрок может выступать в роли арбитра в спорных ситуациях.

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

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

Как и в Game Center, не существует такого состояния, как «игра окончена». Т.е. игроки должны сами между собой договориться, когда игра считается оконченной.

В стиме существует еще такой интересный функционал. Допустим, вы делаете мультиплеер не через стим, а через свои сервера. Вы можете зарегистрировать свой сервер в стиме. Игрок может получить список всех зарегистрированных серверов. Таким образом стим выступает в роли каталога внешних серверов.

Проблемы

1. Проблема дисконнекта одного из игроков.
К сожалению, как и в Game Center, вы не можете так просто определить, пропало соединение с сервером у вас или у вашего противника. Приходится писать костыли.

Плюсы

Минусы

GameSparks

Общее описание

GameSparks — это сервис, который выступает в роли backend-сервера для игр. Он позволяет хранить данные, запускать скрипты, имеет встроенные механизмы матчмейкинга, ачивок, лидербордов и много другое.

Интеграция

GameSparks интегрируется в Unity3D с помощью официального плагина. Все работает отлично.

Реализация

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

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

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

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

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

Плюсы

Минусы

Cовет

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

Что значит мультиплеер в играх. Смотреть фото Что значит мультиплеер в играх. Смотреть картинку Что значит мультиплеер в играх. Картинка про Что значит мультиплеер в играх. Фото Что значит мультиплеер в играх
Слева изображен лог одного игрока, справа — лог другого. Стрелочками нарисованы сообщения, в какой момент сообщение было послано, в какой пришло.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *