11 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как работает сервер онлайн игры

Содержание

Для чего нужен игровой хостинг

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

Что такое игровой хостинг

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

Игровые хостинги отличаются тем, что адаптированы под онлайн-игры в духе Minecraft, Counter-Strike, GTA Online или World of Warcraft. На их серверах хранятся данные об игроках и в реальном времени выполняется логика, описывающая местоположение и действия персонажей в виртуальном мире.

К таком хостингу предъявляется ряд требований, причем как к аппаратной, так и программной составляющей.

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

Можно ли организовать игровой хостинг на домашнем компьютере?

И да, и нет. Зависит от конкретной задачи. Чисто технически можно установить на личном ПК серверное программное обеспечение игры или создать виртуальную локальную сеть в духе Garena. Или же создать «сервер» прямо в клиенте игры, если в нем есть такая функция.

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

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

Кому необходимо приобретать выделенный игровой сервер?

Сразу трем категориям людей:

  1. Тем, кто хочет играть на собственном сервере в игры наподобие World of Warcraft. Для них нужны гораздо более мощные процессоры и увеличенный объем памяти.
  2. Тем, кто хочет, чтобы их игровое пространство находилось всегда онлайн, независимо от состояния их личного ПК или ПК друзей.
  3. И тем, кто планирует зарабатывать на собственном игровом сервере.

С первой и второй категориями все понятно. Арендуете VDS/VPS под свои нужды и размещаете на нем виртуальный мир любой игры по желанию. Правда, стоить такое удовольствие будет дорого.

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

VDS с бесплатным администрированием и поддержкой 24/7. Дарим 200 рублей на тест

Протестируй VDS Timeweb бесплатно: закажи сервер, сообщи поддержке промокод community200 и получи 200 рублей на баланс.

Как выбрать игровой хостинг?

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

Статья в тему:  Как создать лобби в доте 2 в автономном режиме

Примером служит сайт с говорящим названием Game Hosting. На нем предлагают выбирать не набор опций для выделенного сервера, а «машину» с предустановленной игрой, куда можно сразу после аренды приглашать людей.

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

Высокая производительность

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

Зачастую провайдеры не делятся конкретной информацией о «железе, установленном на их серверах. Ограничиваются брендом установленных чипов, например, Intel Xeon. Некоторые указывают частоту и количество ядер, но не всегда.

К тому же производительность игры зависит от того, сколько серверов используется. Например, компания Blizzard размещала оригинальную World of Warcraft сразу на четырех:

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

Стабильность

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

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

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

И не забывайте про резервные копии. Обиднее не просто «вылететь» из игры, а потерять там своего паладина с редким маунтом. Так что регулярно делайте копию базы данных, чтобы не лишить пользователей их достижений. Без них им вряд ли будет интересно играть именно у вас.

Статья в тему:  Как сделать разные ники в доте 2

Дата-центры по всему миру

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

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

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

Техническая поддержка высокого уровня

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

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

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

Актуальное программное обеспечение

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

Кроме того, гейммастерам необходимо позаботиться о безопасности игрового пространства:

  • Обеспечить удаленный ПК защитой от DDoS-атак (обычно эту задачу на себя берет провайдер, но не всегда).
  • Защиту от читов, то есть от инструментов для взлома игрового кода и получения преимуществ над другими игроками. В противном случае появятся люди, не следующие правилам и портящие процесс для остальных.
Статья в тему:  Как продать вещи из доты в стиме

Удобная панель управления

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

Среди геймастеров пользуются спросом:

  • GameAP — бесплатная ПУ, покрывает практически все потребности администраторов игровых площадок. Работает под Linux и Windows.
  • TCadmin — платная, но более функциональная. Часто используется игровыми хостингами по умолчанию. Доступна в версии для мобильных устройств.
  • Google Control Plane — для тех, кто решил разместиться на серверных мощностях компании Google. Визуально и функционально мало чем отличается от стандартной ПУ в Google Cloud.

Ориентируйтесь на эти три, если нет каких-то существующих предпочтений.

Акцент на околоигровых функциях

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

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

Как заработать на игровом хостинге?

Базовый алгоритм такой (представим, что вы уже арендовали сервер или хотя бы выбрали хостинг):

  • Находим популярную игру, в которую получится привлечь побольше людей за короткие сроки (Minecraft и Ark — беспроигрышные варианты).
  • Создаем Discord-чат.
  • Вводим систему транзакций, подключив к чату специального бота.

А за что будут платить деньги? Зависит от вас. Можно размещать рекламу прямо в игре (в чате, к примеру, если это позволено) или создать сайт, посвященный серверу, и разместить баннеры там. Если считаете, что ваш сервер уникален, или хотите ограничить его аудиторию своего рода «элитой», сделайте вход платным. Можно продавать игровые предметы за реальные деньги, если это реализуемо технически. А еще не стесняйтесь просить пожертвования от игроков.

Выбираем игровой хостинг

На что ориентироваться при выборе, я уже сказал. Теперь расскажу о нескольких достойных кандидатах.

  • Host Havoc — специализируется на Ark Survival, Minecraft, Arma III и Counter-Strike. Все «машины» оснащены последним поколением чипов AMD Ryzen и Intel Xeon. В качестве хранилища данных используются NVMe. Настройка производится автоматически после аренды сервера под игру. Есть три дата-центра в Европе, один в Японии и несколько в США. Гарантирует аптайм 99.9% (почти всегда в рабочем состоянии).
  • GAME HOSTING.CO — альтернатива предыдущему сервису с таким же «железом», поддержкой модов и панелью управления TCAdmin, но с менее гибкой системой оплаты (высокая базовая ставка) и более скромной географией дата-центров.
  • Google Cloud — альтернатива для тех, кто не доверяет специализированным сервисам и хочет использовать что-то привычное. Правда, придется пожертвовать большим количеством функций и программных особенностей, доступных у конкурентов.
  • BeastNode — популярный хостинг, созданный исключительно для гейммастеров, которые работают с Minecraft-серверами. Поддерживает плагины в духе Spigot и CraftBukkit, предоставляет бесплатный доступ к MySQL и работает с различными модами для игры.
  • Timeweb — хостинг-провайдер предлагает очень мощные VDS и выделенные серверы по весьма привлекательной цене. Запустить на таком железе можно даже самый неповоротливый проект. Настраивать игровой сервер, конечно, придется самостоятельно, но оно того стоит.
Статья в тему:  Что такое дивизион в доте

На этом все. Можно выбирать игровой хостинг, арендовать выделенный сервер и идти играть. Или зарабатывать.

Как работают игровые сервера?

К примеру я разработчик Unity или UE4 или Frostbite и т.д. в среде разработки можно создавать целые миры, вот у меня несколько вопросов:

Как работают MMO игры?
— а точнее как реализуются у них игровые сервера?
какая ОС у сервера? какой софт? что там запущенно? какая база данных?
находится ли вся карта на сервере или на клиенте? К примеру как прогружается мир когда я бегу по карте (разным локациям)?
откуда такая мощность? за счет чего? как это все обрабатывается?

и еще тот же тип вопроса, если это мобильная игра на Android или iOS как хранятся данные на сервере?
как происходит обмен данных между игрой и сервером в real-tim’e?
что если серверов несколько? как они работают?
как работает мультиплеер? он использует один внешний сервер?

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

Буду очень благодарен получить ответ хоть на пару из этих вопросов, может направит кто-то где можно про это почитать подробнее!

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Статья в тему:  Drakensang online как прокачать мага

как работают игровые p2p сервера?
как работают игровые p2p сервера? как в гта онлайн например или в колде

Некорректно работают игровые приложения на Win 7
Доброго времени суток, господа. У меня проблема вот в чем — абсолютно все игры, что я.

Как работают почтовые сервера, вернее правильность запроса к DNS
Я написал свой почтовый сервер..решил сделать его самодостаточным, чтобы он отсылал письма на.

Не работают стили при смене сервера
Делал отладку на сервере с такими данными Apache version: 2.4.178 PHP version: 5.6.23 MySQL.

Решение

Я сейчас плотно начал работать над созданием простой ММО игры. MMO — это когда кликнул по земле и ГГ бежит в точку клика. Этот тип игр один из самых нетребовательных с сетевым задержкам. Значит, можно пока не тратить время на изучение множества техник и алгоритмов по компенсации сетевых задержек. Я на практике активно изучаю написание authoritative сервера с клиентом на Unity по этому туториалу для начинающих: Unity Multiplayer Game Development with Node. Туториал хотя и на английском, но там всё показывают, поэтому если плохо с английским, то ничего страшного. Туториал отличный. Очень рекомендую. Я во всём туториале разобрался, можете мне задавать любые вопросы по нему. Показаны общие базовые принципы написания authoritative сервера. Эти принципы можно будет перенести в будущем на другие языки и технологии: C#, Java, C++ и т.д. Если заинтересовало, то смотрите, спрашивайте. Если нет, то проигнорируйте.

Чтобы сразу пробовать знания на практике, я свои наработки забрасываю на бесплатный хостинг Heroku.

Клиент-серверное взаимодействие в современных онлайн-играх

Gudaus

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

В целом использование авторитарного сервера предотвращает ряд читов. Например, нельзя доверить клиенту количество жизней или уровень здоровья. Взломанный клиент отправит ложные данные что у него 10000% здоровья, однако сервер знает, что в реальности у игрока только 10%. Так что при следующем попадании игрок умрёт вне зависимости от того, что рисует клиент.
Нельзя доверить клиенту позицию игрока в мире.
Предположим, игрок находится в точке с координатами (10;10). Взломанный клиент говорит «Сейчас я на (10;10), а через секунду буду на (20;10)». Если сервер поверит, то игрок сможет переместиться сквозь стену или передвигаться быстрее остальных.
Правильным решением является высчитывание на стороне сервера. Клиент говорит «Я на (10;10), хочу переместиться вправо на 1 клетку». Сервер проверяет возможность перемещения, обновляет позицию игрока до (11;10) и отсылает сообщение «Вы на (11;10)».

Статья в тему:  Как создать wap онлайн игру


рис.1 Простое взаимодействие

Подводим первые итоги: игра полностью управляется сервером. Клиент посылает свои действия на сервер, тот периодически обновляет игровой мир в соответствии с полученной информацией и отсылает изменения обратно.

Gudaus

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


Рис.3 Задержка сети + анимация​

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

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

Рис.5 Несовпадение ответа от авторитарного сервера и предсказанного состояния.

Ключом к пониманию проблемы является тот факт, что клиент видит мир в настоящем времени, но из-за лага обновления от сервера актуальны для прошлого времени. Сервер отправил на клиент информацию о состоянии игрового мира, но не успел получить ряд отправленных ему клиентских команд.
Пофиксить подобное вполне можно. Давайте к каждому запросу клиента добавлять порядковый номер. Нажал кнопку 1 раз — запрос №1. Нажал кнопку ещё раз — запрос №2. Ответ от сервера будет включать в себя номер последнего запроса.

Статья в тему:  Игры онлайн для мальчиков 4 лет развивающие кто лишний

В момент времени t = 250 , сервер говорит “Отвечаю на запрос №1, вы в (11;10)”. Позиция становится (11;10).
Клиент хранит копии запросов, отправленных на сервер. Он знает, что сервер обработал и прислал ответ на запрос №1, поэтому удаляет копию запроса №1. Копия запроса №2 остаётся на клиенте, так как ответ ещё не получен. Также клиент знает, что должен прийти ответ на запрос №2.
Игрок переместился с (10;10) на (11;10). Таким образом, клиент может высчитать «более-менее настоящее» состояние игрового мира, основываясь на последних ответах от авторитарного сервера и собственном предсказании.
На t = 250 клиент получил “вы в (11;10), последний запрос №1”, удалил копию запроса №1, однако всё ещё хранит копию запроса №2, на который не было ответа.
Клиент сперва перемещает игрока на (11;10), а уже потом делает новое предсказание о движении на 1 клетку вправо.

Продолжим, в t = 350 от сервера пришло новое состояние мира: “ Вы в (12;10), последний запрос №2”. Клиент удаляет копию запроса №2 и обновляет позицию игрока до (12;10). Необработанных команд нет, процесс завершился корректно.

Gudaus

До сего момента работа сервера была проста: читаем запрос от клиента, обновляем игровой мир и отправляем ответ.
Усложним сценарий: есть несколько игроков, очень быстро посылающих запросы на сервер. Зашли в игру и просто жмут все кнопки подряд. Обновлять игровой мир на каждое нажатие и отсылать клиенту результат непродуктивно, мы перегрузим процессор и забьём сеть.
Лучшим решением будет накапливать клиентские запросы по мере получения без исполнения. Игровой мир будем обновлять периодично с определённой частотой. Например, 10 раз в секунду. Задержка между обновлениями составляет 100мс, её называют временной шаг. Во время каждого обновления все накопленные команды применяются и новое состояние игры рассылается по клиентам.
Игровой мир обновляется с определённой частотой, не зависящей от количества клиентских запросов.

С точки зрения клиента всё работает также как и раньше — клиент предсказывает состояние игрового мира и ждёт обновление. Однако теперь эти обновления слишком редки(раз в 100мс), клиент имеет весьма отрывочную информацию о состоянии других игроков.
На практике это приводит к движению соперников не плавно, а рывками, так как частота обновления игрового мира всего 10 раз в секунду.
Себя клиент отрисует плавно на основе клиентского предсказания, а вот других игроков уже нет.

Статья в тему:  Свинка пеппа игры онлайн игры в которые можно играть

Точный предрасчет. Экстраполяция

Допустим, вы разрабатываете гонки. Быстро едущие автомобили предсказуемы. Если машинка едет со скоростью 100 метров в секунду, то через секунду она будет примерно за 100 метров от точки старта.
Почему примерно? Потому что за 1 секунду машина может замедляться/ускоряться, поворачивать в разные стороны. Однако её манёвренность всё же ограничена высокой скоростью и направлением движения независимо от действий игрока. Например, нельзя мгновенно развернуться на 180 градусов.
Как вышесказанное работает на сервере, отправляющем обновления каждые 100мс? Клиент получает скорость и направление движения каждой машины. Следующее обновление придёт через 100мс, но что-то же надо показать игроку. Простейший метод — предположить, что направление движения машинки и скорость сохранятся неизменными, затем на основе предположения сделать предсказание и отрисовать игроку. Позже позиция автомобиля будет скорректирована в соответствии с очередным обновлением.
Величина коррекция зависит от многих факторов, может быть как весьма большой, так и незначительной. Если игрок едет по прямой и не меняет скорость, то предсказанная клиентом позиция совпадёт с истинной. С другой стороны, если игрок врежется в препятствие, предсказание окажется крайне неточным.
Экстраполяция применима к медленно меняющимся ситуациям — например, к движению грузового корабля.

Экстраполяция неприменима в динамичных играх с постоянно меняющимся направлением движения — например, в 3D-шутерах. Игрок может резко остановиться, завернуть за угол, делая рассчёты на основе прошлой скорости и направления бессмысленными. + Вы не можете обновлять позицию игрока когда авторитарный сервер пришлёт данные. Игроки на экране будут просто телепортироваться каждые 100 мс .
У сервера есть информация о позиции игроков каждые 100мс. Трюк заключается в том, чтобы показать игроку то, что происходило между обновлениями в прошлом.
Допустим, сервер получил позицию в момент времени t=1000. У него также хранятся данные от t=900. Сервер точно знает, что реально происходило между t=900 и t=1000. Поэтому в отрезке времени с t=1000 до t=1100 следует показать то, что другие игроки делали между t=900 и t=1000.
Сервер показывает настоящее движение других игроков, но на 100мс раньше. Иными словами, на клиенте себя ты видишь в настоящем, а оппонентов — в прошлом. Таким образом, все игроки видят немного разные состояния игрового мира. Задержка незаметна глазу из-за частых обновлений от сервера.

Статья в тему:  Что такое дота 2 тулс

Рис.8 Клиент 2 отрисовывает Клиента 1 “в прошлом”, интерполируя последнюю известную позицию

Как именно работает клиент и сервер игры (для новичков)

Статьи о Rising Force

Форумные разделы
Х А Л Я В А
Общение читеров
Хакерство и взлом
Бесплатный хостинг изображений
Создание читов на заказ
Обмен электронных денег
Услуги гаранта при онлайн сделках
Чёрный рынок
Чёрный список кидал в MMORPG играх
Заработок в интернете
Наши читы для разных MMORPG
Total Injector 2.0 — инжектор DLL файлов
Обход nProtect GameGuard
Archeage телепорт хак
Archeage спидхак, удаление растительности
Karos: чит на скорость и дальность атак
Karos: Начало — волхак
Многооконнка для R2 Online
Black Desert Online спидхак + джампхак
Elder Scrolls Online мультихак
Ссылки сообщества
Мы ВКонтакте
Социальные группы
Изображения и альбомы
Пользователи
Поиск по форуму
Поиск по метке
Расширенный поиск
К странице.

Как именно работает клиент и сервер игры (для новичков)

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

Все действия в игре происходят в 99% на сервере и только на нем, а клиент просто является графическим интерфейсом между сервером и игроком.

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

Вот, как пример, грубо приближенный ‘диалог’ сервера с клиентом:

(‘сервер клиенту:’ — это посылается пакет клиенту от сервера)
(‘клиент серверу:’ — это посылается пакет серверу от клиента)

сервер клиенту: в координатах x,z,y появился моб
сервер клиенту: это моб имеющий ID флема
(тут игрок увидел появившегося вдалеке флема и тычет на него мышой)
клиент серверу: я хочу его выделить (это последствие попытки игрока выделить моба)
сервер клиенту: да, моб достаточно близко и он выделябельный. вам разрешается его выделить.
(игрок видит, что цель выделилась и нажимает атаку)
клиент серверу: я хочу атаковать выделенного моба (реакция на попытку игрока атаковать)
сервер клиенту: атаковать запрещаю, так как ты далеко от моба, для этого типа атаки.
клиент серверу: ок, бегу к мобу
сервер клиенту: разрешаю.
(игрок видит что его чар побежал к мобу)
сервер клиенту: ты передвинулся. Теперь ты в координатах рядом с мобом.
(игрок видит, что он прибежал к мобу)
.
.
клиент серверу: я хочу атаковать выделенного моба
сервер клиенту: разрешаю, вы нанесли ему 100 урона.
(здесь и далее игрок видит присланные от сервера цифры урона)
клиент серверу: я опять атакую моба
сервер клиенту: разрешаю, вы нанесли ему еще 120 урона
сервер клиенту: а вот он вам ответил на 50 урона
сервер клиенту: у вас теперь здоровья меньше на 50
(здесь игрок видит как его здоровье уменьшилось)
клиент серверу: и опять я атакую моба
сервер клиенту: а вот фиг тебе, атаку запрещаю.
(здесь игрок увидел, что атака не прошла, урона не было)
сервер клиенту: так как моб умер.
(здесь игрок увидел, что моб упал и сдох)
сервер клиенту: ой, из него выпала шняга
(здесь повяляется дроп)
сервер клиенту: и еще одна шняга
(здесь повяляется еще дроп)
клиент серверу: я хочу поднять шнягу
сервер клиенту: разрешаю. Вы подняли шнягу.
(шняга упала к нам в инвентарь и изчезла с земли)
.
.
..
Дальше все в таком же духе.
Я привел пример очень грубо, без указания аргументов пакетов и какой либо конкретики вообще. (да и логику протокола немного покоробил)

Статья в тему:  Как играть в онлайн игры на xbox

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

Надеюсь, что теперь флуда и глупостей на форуме будет меньше. 😉

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

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

Злой и Жестокий критик и баголов. Вижу очень далеко, насквозь.

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

На любой R0 драйвер найдется свой R0 драйвер.

Создаем многопользовательскую браузерную игру. Часть первая. Клиент-серверная архитектура

Рассказывает Алвин Лин, разработчик программного обеспечения из Нью-Йорка

В 2014 году я впервые побывал на CodeDay в Нью-Йорке. И хотя CodeDay не совсем хакатон, это было моё первое знакомство с подобными мероприятиями. Там мы с моим другом Кеннетом Ли написали многопользовательскую игру в танчики. Так как несколько моих друзей спрашивали меня о том, как я её написал, я решил описать процесс её создания.

В этом посте я вкратце опишу ход своих рассуждений и покажу, как воссоздать архитектуру, а также дам некоторые советы, если вы захотите сделать игру сами. Этот пост рассчитан на тех, кто владеет основами JavaScript и Node.js. Если вы с ними не знакомы, то есть много замечательных онлайн-ресурсов, где можно их изучить.

Статья в тему:  Как посмотреть фпс в доте 2 7.00

Прим. перев. На нашем сайте есть много познавательных материалов как по JavaScript, так и по Node.js — обязательно найдёте что-нибудь подходящее.

Бэкенд игры написан на Node.js с использованием веб-сокетов, которые позволяют серверу и клиенту общаться в режиме реального времени. Со стороны клиента игра отображается в HTML5-элементе Canvas . Для начала нам, конечно же, понадобится Node.js. В этой статье описана работа с версией 6.3.1, но вы можете использовать любую версию выше 0.12.

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

Создание проекта

Для начала установите зависимости. Создайте папку проекта, перейдите в неё и запустите следующий код:

Для быстрой настройки сервера целесообразно использовать фреймворк Express, а для обработки веб-сокетов на сервере — пакет socket.io. В файл server.js поместите следующий код:

Это довольно типичный код для сервера на связке Node.js + Express. Он устанавливает зависимости и основные маршруты сервера. Для этого демонстрационного приложения используется только один файл index.html и папка static . Создайте их в корневой папке проекта. Файл index.html довольно простой:

Ваш пользовательский интерфейс может содержать куда больше элементов, поэтому для более крупных проектов CSS-стили лучше помещать в отдельный файл. Для простоты я оставлю CSS в коде HTML. Обратите внимание, что я включил в код скрипт socket.io.js . Он автоматически заработает в рамках пакета socket.io при запуске сервера.

Статья в тему:  В какую папку скачиваются обновления доты 2

Теперь нужно настроить веб-сокеты на сервере. В конец файла server.js добавьте:

Пока что в игре нет никаких функций, поэтому в обработчик веб-сокетов ничего добавлять не нужно. Для тестирования допишите следующие строки в конец файла server.js :

Эта функция будет отправлять сообщение с именем message и содержимым hi всем подключенным веб-сокетам. Позже не забудьте удалить эту часть кода, так как она предназначена только для тестирования.

9–10 октября, Москва и онлайн, Беcплатно

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

Запустите сервер командой node server.js и в любом браузере перейдите по ссылке http://localhost:5000. Если вы откроете окно разработчика (нажать правую кнопку мыши → Проверить (Inspect)), то увидите, как каждую секунду приходит новое сообщение:

Как правило, socket.emit(name, data) отправляет сообщение с заданным именем и данными серверу, если запрос идет от клиента, и наоборот, если запрос идет от сервера. Для получения сообщений по конкретному имени используется следующая команда:

С помощью socket.emit() вы можете отправить любое сообщение. Можно также передавать объекты JSON, что для нас очень удобно. Это позволяет мгновенно передавать информацию в игре от сервера к клиенту и обратно, что является основой многопользовательской игры.

Теперь пусть клиент отправляет некоторые состояния клавиатуры. Поместите следующий код в конец файла static/game.js :

Это стандартный код, который позволяет отслеживать нажатие клавиш W , A , S , D . После этого добавьте сообщение, которое оповестит сервер о том, что в игре появился новый участник, и создайте цикл, который будет сообщать серверу о нажатии клавиш.

Эта часть кода позволит отправлять на сервер информацию о состоянии клавиатуры клиента 60 раз в секунду. Теперь необходимо прописать эту ситуацию со стороны сервера. В конец файла server.js добавьте следующие строки:

Давайте разберёмся с этим кодом. Вы будете хранить информацию о всех подключенных пользователях в виде объектов JSON. Так как у каждого подключённого к серверу сокета есть уникальный id, клавиша будет представлять собой id сокета подключённого игрока. Значение же будет другим объектом JSON, содержащим координаты x и y .

Статья в тему:  Что такое артиллерия в world of tanks

Когда сервер получит сообщение о том, что присоединился новый игрок, он добавит новый вход в объект игроков при помощи id сокета, который будет в этом сообщении. Когда сервер получит сообщение о движении, то обновит информацию об игроке, который связан с этим сокетом, если он существует.

io.sockets.emit() — это запрос, который будет отправлять сообщение и данные ВСЕМ подключённым сокетам. Сервер будет отправлять это состояние всем подключённым клиентам 60 раз в секунду.

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

Этот код обращается к id Canvas ( #canvas ) и рисует там. Каждый раз, когда от сервера будет поступать сообщение о состоянии, данные в Canvas будут обнуляться, и на нём в виде зеленых кружков будут заново отображаться все игроки.

Теперь каждый новый игрок сможет видеть состояние всех подключенных игроков на Canvas . Запустите сервер командой node server.js и откройте в браузере два окна. При переходе по ссылке http://localhost:5000 вы должны будете увидеть нечто похожее:

Вот и всё! Если у вас возникли проблемы, посмотрите архив с исходным кодом.

Некоторые тонкости

Когда будете разрабатывать более функциональную игру, целесообразно разделить код на несколько файлов.

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

Однако в этом демо-проекте есть несколько недостатков. Обновление игры связано со слушателем сокета. Если бы я хотел повлиять на ход игры, то мог бы написать в консоли браузера следующее:

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

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

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

Статья в тему:  От чего зависит фпс в онлайн играх

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

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

Кроме того, старайтесь избегать такого кода:

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

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

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

Также попытайтесь создать собственный физический движок. Это сложно, но весело. Если захотите попробовать, то рекомендую прочитать книгу «The Nature of Code», в которой есть много полезных идей.

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

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

Перейти к регистрации

Облачный гейминг. Что это такое и зачем нужен

Содержание

Содержание

Google Stadia хотела похоронить привычный консольный и PC-гейминг — за полтора года ей это не удалось. Но интерес к «играм в облаке» у инвесторов и крупных компаний не угас. Как и у простых игроков, ведь «железо» в дефиците и дорожает. Рассказываем, какие облачные сервисы актуальны сейчас — с ценами, доступными играми, системными требованиями.

Статья в тему:  Дб дота 2 что это

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

GFN.ru (GeForce Now)

NVIDIA развивает GeForce Now с 2013 года. В РФ он пришел в октябре 2019-го под вывеской GFN.ru. Аудиторию о новой платформе известили на «ИгроМире». За год российская версия GeForce Now привлекла 555 тыс. пользователей и обзавелась поддержкой свыше 700 игр.

Чтобы начать пользоваться сервисом, создайте учетную запись GFN.ru, скачайте приложение. Войдите в него и вбейте в поисковую строку название интересующей игры. Важный момент — вы должны ее заранее купить в Steam, Epic Store, GOG, Origin, Ubisoft Store.

В GFN.ru постоянно появляются новинки вроде Cyberpunk 2077, Assassin’s Creed: Valhalla, Watch Dogs: Legion. В некоторые можно поиграть с RTX и DLSS — взять ту же Control. Однако многих важных проектов тут нет, к примеру, GTA 5 и Minecraft.

Серверы GFN.ru на базе GeForce RTX расположены в Москве и Екатеринбурге. Сервис обещает комфортную игру в радиусе 500 км от Москвы и от Перми до Иркутска. С ростом аудитории владельцы сервиса планируют расширять серверную инфраструктуру.

Играть в GFN.ru можно не заплатив ни копейки, но при этом придется ждать в очередях, а игровая сессия ограничена 1 часом, затем нужно снова вставать в очередь. Подписка за 999 руб/мес избавляет от очередей (но не на выходных), продлевает сессию до 4 часов, позволяет играть с эффектами RTX и балует подарками от издателей в отдельных проектах, скажем, в Hyper Scape.

  • Скорость интернета: от 15 Мбит/с (720p/60 fps); от 25 Мбит/с (1080p/60 fps).
  • PC: Windows 7 (64-битная) и новее, CPU 2 ГГц, ОЗУ 4 ГБ, GPU с поддержкой DirectX 11.
  • Mac: macOS 10.10 и выше.
  • GNU/Linux и Chrome OS: возможен запуск через браузер, нужен Chrome 77.x и выше.
  • Android: Android 5.0, ОЗУ 2 ГБ, OpenGL ES 3.2.
  • iOS/iPad: возможен запуск через браузер Safari на устройствах с iOS 14.2/iPadOS 14.2 и выше.
Статья в тему:  Как заново откалибровать ммр в доте

My.Games Cloud

Компания Mail.Ru запустила публичную «бету» My.Games Cloud в прошлом ноябре. Сервис продвигается на PC под Windows. Со временем My.Games Cloud придет на macOS, iOS, Android и в соцсеть «ВКонтакте».

Ограничений по длине сессии, в отличие от GFN.ru, нет. На бесплатном тарифе Basic вы будете лишены приоритетного доступа к серверам и сможете играть не больше 23 ч в месяц. Mail.Ru обещает в таком случае 1080p/30 fps при средних настройках. Плюс готовьтесь к рекламным вставкам. С тарифом же Ultimate (899 руб/мес) ограничения по часам и настройкам графики снимаются.

Серверы My.Games Cloud находятся в Москве и Петербурге. Поиграть без заметных проблем удастся тем, кто живет в радиусе 1500–2000 км. В течение года серверы появятся и в других городах.

My.Games Cloud пока поддерживает мало игр. Вы можете купить их в My.Games Store и добавить из Steam. За первые две недели ОБТ сервис опробовали свыше 200 тыс. человек.

Поскольку речь о тестировании, системные требования не приводим — они наверняка поменяются.

Playkey

Playkey функционирует с 2014 года. Это один из наиболее узнаваемых сервисов облачного гейминга в РФ. Доступен он и для геймеров из-за рубежа.

В числе особенностей Playkey — поддержка популярных магазинов и выход новинок в день премьеры. Серверы раскиданы по РФ (Москва, Пермь и другие города) и за границей. Есть децентрализованная сеть, где мощности предлагают компьютерные клубы и простые пользователи. Заранее выяснить на какой сервер вы попадете нельзя.

Приложение Playkey заточено под Windows и macOS. Разработка клиента для Linux, Android и iOS отложена на неопределенный срок. В скором времени сервис представит собственную рекомендательную систему, чего у конкурентов нет.

Оплата в Playkey почасовая. За 1 ч вы отдадите 80 руб. (продолжительность бесплатной демо-сессии — 20 минут). Безлимитный тариф на месяц с подпиской EA Play Pro с кучей AAA-игр стоит 2490 руб.

  • Скорость интернета: от 10 Мбит/с (720p/30 fps); от 20 Мбит/с (1080p/60 fps).
  • PC: Windows XP (CPU 2,6 ГГц, ОЗУ 1 ГБ, DirectX 9.0c), Windows Vista, 7, 8, 10 (CPU 1,5 ГГц, ОЗУ 1 ГБ, DirectX 9.0c).
  • Mac: macOS 10.8 (CPU 1,5 ГГц, ОЗУ 1 ГБ, OpenGL).
Статья в тему:  Что такое антидот в гомеопатии

Google Stadia

Stadia представлена в 22 странах, но не в РФ. Google полагается на обширную сеть дата-центров и гарантирует 720p/60 fps при скорости интернета от 10 Мбит/с.

От других сервисов Stadia отличается тем, что имеет встроенный магазин, в котором порядка 140 игр. Экосистема напоминает ту, что на PC и консолях. Раньше Google планировала делать свои игры, однако недавно отказалась от рискованной затеи и закрыла подразделение Stadia Games and Entertainment.

Играть можно через браузер Chrome на PC и ноутбуке, на планшете с Chrome OS, телефоне с Android 6 и выше, на iOS-устройствах через Safari, на ТВ с Chromecast Ultra. Платить не нужно, однако качество ограничено 1080p. Если оформите подписку Stadia Pro за 9,99 $/мес, то получите разрешение до 4K, звук 5.1, скидки в магазине и игры в подарок.

PlayStation Now

Еще один сервис-долгожитель, под стать Playkey и GeForce Now. Увы, по-прежнему недоступен в России.

PlayStation Now позволяет через «облако» проходить игры с PS2, PS3 и PS4 (их количество превышает 700 шт) на PC и PS5. Скорость соединения — от 5 Мбит/с, стоимость подписки — 9,99 $/мес, есть бесплатная пробная неделя, отдельно платить за мультиплеер не требуется.

Drova.io

У Drova.io нет собственных серверов. Компьютеры сдают в аренду обычные геймеры со всей страны — не только из Москвы и Петербурга, но и из сибирских городов: Омска, Новосибирска и других.

Выбирайте сами, к какой станции подключиться. С владельцем PC легко связаться через Discord. 1 ч стоит 48 руб. (сейчас 35 руб. по акции), иногда присутствуют бесплатные минуты для пробы. 80 % от оплаты получает владелец «железа». Если опасаетесь, что аккаунт «уведут», заранее активируйте двухфакторную аутентификацию.

  • Скорость интернета: от 30 Мбит/с.
  • PC: Windows 7 (32-битная) и выше, любая видеокарта с поддержкой H.264.

Loudplay

Снова российский сервис. В аренду вы получаете виртуальный PC с доступом к рабочему столу, браузеру, файловой системе и так далее.

1 час обойдется в 49 руб. Первый час — бесплатный.

  • Скорость интернета: от 20 Мбит/с.
  • Любой компьютер с Windows 7 (и выше) или macOS 10.10 (и выше), способный запустить видео на YouTube.
Статья в тему:  Drakensang online как прокачать мага

Xbox Cloud Gaming

Xbox Cloud Gaming, он же xCloud. Облачный сервис от Microsoft для Android-смартфонов. Подписка на него не продается отдельно, она включена в Xbox Game Pass Ultimate. До России xCloud пока не добрел. На компьютерах под Windows 10 он появится весной.

Amazon Luna

Сервис ориентирован на PC, Mac, Android, iOS, Fire TV. Фишка в том, что игры рассортированы по тематическим «каналам», причем за каждый необходимо доплачивать. К примеру, есть Ubisoft+ за 14,99 $/мес и Luna+ за 5,99 $/мес.

Эксперименты с играми у Amazon складываются неудачно. Ей пришлось закрыть сетевой шутер Crucible и MOBA Breakaway, а релиз MMORPG New World постоянно сдвигается. Пожелаем Luna удачи — закрытая «бета» платформы в США (на PC) стартовала в октябре 2020 года.

Итак, GFN.ru привлекает большим выбором устройств и поддержкой «железного» гиганта NVIDIA, в активе My.Games Cloud — бесплатный тариф без ограничений по длине сессии, у Playkey — поддержка старых Windows, хорошее покрытие, почасовая оплата, у Stadia — собственный магазин, PlayStation Now открывает доступ к консольным играм на PC, козырь Drova.io — охват всей страны, Loudplay вручает в ваше полное распоряжение виртуальный компьютер, преимущество xCloud — в огромном количестве дата-центров, ну а Amazon Luna предлагает оригинальную модель дистрибуции игр. Выбор, как всегда, за вами.

За скобками обзора остались менее известные российские (MegaDrom, PlayCloud, PowerCloudGame) и зарубежные сервисы (Shadow, Vortex). Если вам интересно — напишем и об их особенностях.

Как работает сервер онлайн игры

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

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

Что такое игровой сервер?

А теперь более подробно разберёмся с термином «Игровой сервер» (ИС). По сути, речь идёт о программном компоненте вычислительной системы, который призван связывать различных клиентов, чтобы они могли коммуницировать друг с другом в формате программной оболочки той или иной КИ.

Статья в тему:  Что такое дивизион в доте

Какие функции выполняют игровые серверы?

Кстати, многие заядлые геймеры весьма туманно представляют себе, какие функции призваны выполнять ИС, а потому об этом мы сейчас и поговорим. Итак, функции ИС сопряжены:

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

Отдельно следует упомянуть о наличии на ИС так называемых административных панелей, которыми «заправляют» администраторы. Главные «админы», обладая доступом ко всему игровому миру, а потому они могут заниматься изменением параметров игры. Впрочем, кое-какими правами обладают и обычные «админы», так, к примеру, они могут:

  • принудительно «выбросить» геймера с ИС;
  • предупредить геймера о том, что тот нарушает правила поведения на ИС;
  • запретить геймеру в течение опредёленного времени принимать участие в игре на ИС;
  • запретить вход на ИС «на веки вечные»;
  • отметить «бан»;
  • «заморозить» и «разморозить» геймера и пр..

ИС mu online

Ну что, хотите поиграть с другими игроками в режиме онлайн? Тогда, не теряя времени, отправляйтесь на сайт игрового сервиса mu online. Между прочим, в своё время КИ онлайн, выделившись в отдельный жанр, получили вполне определённое название — MMO RPG, объединивши большое число игр.

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

О преимуществах игрового сервер mu online

Следует отметить, что обозначенный игровой сервер пользуется, надо признать, вполне заслуженной популярностью у огромного числа пользователей. Чем это обусловлено? Конечно же, его неоспоримыми преимуществами:

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

Словом, отправляйтесь на сайт игрового сервера mu online и получайте удовольствие!

Ссылка на основную публикацию
Статьи c упоминанием слов:

Adblock
detector