Как сделать мультиплеер на андроид

Обновлено: 19.09.2024

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

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

Лаунчер сервера - Это всего лишь утилита конкретного сервера, которая автоматически качает и устанавливает на ваш телефон модифицированный GTA:SA + Кэш, со вшитым и доработанным мультиплеером, на основе build69 исходников.

Советуем прочесть наш гайд по созданию Лаунчера SAMP/CRMP для Android (С исходниками)

Модифицированный GTA:SA .apk (Он же SAMP) - apk файл, со вшитым libsamp.so (О нём мы расскажем ниже)

Модифицированный Кэш GTA:SA (com.rockstargames.gtasa) - Это все файлы игры, плюс файлы самого SAMP (Текстуры, модели, объекты и различные настройки)

libsamp.so - Этот файл получается в результате компилирования исходников SAMP, и вшивается в модифицированный APK файл GTA:SA.

Порядок действий: (Предварительно удалите все клиенты, лаунчеры и кэши сторонних серверов с телефона).

1. Вы качаете исходники SA-MP (Билд исходных файлов мультиплеера, код написан на C++).

2. После чего вы дорабатываете исходники до необходимого функционала, меняете IP, порт, и другие параметры, куда будет подсоединяться клиент.

3. Компилируете исходники с помощью Android NDK, и получаете libsamp.so

4. Качаете готовый Кэш игры (Ссылка ниже) с необходимыми для работы SAMP файлами, и перемещаете его в Android/data/. (Чтобы получилось Android/data/com.rockstargames.gtasa/)

5. Устанавливаете apk файл игры (Ссылка ниже).

6. libsamp.so вшиваете в уже установленный apk файл игры с помощью приложения APK Editor, сохраняете Ваш новый APK, и устанавливаете поверх уже установленного (Не удаляя его, чтобы не удалить кэш вместе со старым apk).

7. Настройте Android/data/com.rockstargames.gtasa/files/SAMP/settings.ini

Ответы на вопросы

- Выдает ошибку, связанную с cheats.cpp, cheats.h, pCheats, pAdmin

Ответ: В наших исходниках данные проблемы уже исправлены

- Крашит игру после запуска мультиплеера / Ошибка keyboard.cpp или keyboard.h (Клавиатуры)

Ответ: Вы компилируете исходники с несовместимой версией Android NDK. Используйте Android NDK 14 версии, которая полностью совместима с кодом



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

Плагин

Мы использовали бесплатный плагин Play Games For Unity. В нем содержатся библиотеки для работы с сервисами Google. Плагин включает в себя авторизацию пользователя в Google+, возможность использования достижений и рейтинга для игроков, облаков Google для хранения данных и организации мультиплеера как в реальном времени, так и в пошаговом режиме. Установка плагина не вызывает никаких трудностей: в Unity нужно выбрать импорт ассета (Assets->ImportPackage->CustomPackage) и в открывшемся окне выбрать ассет, находящийся в папке «current-build».
Далее вам нужно ввести id своего приложения: откройте появившийся выпадающий список «Google Play Games» и выберете пункт «Android Setup». Id приложения вы можете узнать в Google Developer Console. Он выдается после добавления нового приложения в «Игровые сервисы», вы можете видеть его рядом с названием вашей игры. После добавления id можно переходить непосредственно к коду.

Для инициализации плагина используйте следующий код:

PlayGamesPlatform.Activate(); достаточно вызывать лишь один раз после запуска вашего приложения. После инициализации вы можете получить доступ к платформе при помощи Social.Active.

Чтобы реализовать авторизацию пользователя используйте следующий код:

Переменная success принимает значения true при удачном входе и false, соответственно, при неудачном. В нашем случае при удачном входе вызывается метод загрузки необходимых данный пользователя из облака Google. И сразу же первая проблема, встретившаяся у нас на пути: метод вызывается, но при неудачной попытке не возвращает false, а следовательно авторизация не проходит и нет возможности при (!success) вызвать метод еще раз. Пришлось написать костыль, который вызывает метод с определенным интервалом, пока авторизация не пройдет (при условии, что пользователь подтвердил запрос на авторизацию перед этим).
После авторизации пользователя мы получаем возможность использовать сервисы Google.

Поднимаем мультиплеер

  1. Создание комнаты со случайными игроками (быстрая игра)
  2. Создание комнаты с экраном приглашения (позволяет приглашать в игру друзей из кругов Google+)
  3. Обзор приглашений (позволяет видеть, кто из друзей в Google+ хочет пригласить вас в игру)
  4. Приглашения по id (его рассматривать не будем, т.к. не использовали данный режим в нашем приложении; интересующиеся могут прочитать о нем по ссылке на Github)
Создать «быструю игру»/соединиться

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

Очевидно, что минимальное и максимальное количество игроков определяется переменными MinOpponents, MaxOpponents. В нашей игре MaxOpponents = 1, это означает, что в мультиплеере у вас будет только один противник.
Если ваш класс наследуется от RealTimeMultiplayerListener, то вместо listener вам нужно написать this.

Создание комнаты с экраном приглашения

Почти идентично предыдущему. Игрок может пригласить друзей из Google+ или добавить случайных оппонентов.

Обзор приглашений

Откроется меню, в котором игрок может видеть свои приглашения из Google+.

Соединение с комнатой

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

В нашем случае мы просто выводим переменную progress.

Когда соединение с комнатой произошло удачно (или нет) вызывается следующий метод:

id участников

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

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


Наконец-то после десятков билдов и тестов все начало работать:

События соединения

Если пользователь отключается от комнаты, вызывается следующий метод:

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

Если кто-то подсоединяется или отсоединяется от комнаты, будут вызваны следующие методы.

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

В Google Play таких игр немало, и неважно, потребуют ли они от вас доступа к общей Wi-Fi сети или использования Bluetooth, или просто позволят сыграть на экране одного устройства – главное, что вы сделаете это в весёлой компании и оторвётесь по полной.

Badland

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

Minecraft PE

Если вам надоест в одиночестве заниматься крафтингом или выживать в этой мегапопулярной игре-песочнице, то исследовать её невероятные миры вы сможете и совместно с друзьями в режиме локального мультиплеера. Для создания локального сервера вам всем необходимо находиться в зоне действия одной Wi-Fi-сети, и тогда один из миров станет вашим совместным приключением, где вас ждут удивительные ландшафты, странные создания и полная свобода действий.

Terraria

Ещё одна песочница с открытым миром в нашем списке - с разнообразными биомами, огромным ассортиментом врагов и их боссов, с возможностью не только заниматься крафтингом, строить и выживать, но и сражаться, заводить питомцев и конечно, общаться с друзьями. Локальный мультиплеер в этой игре требует от вас общей Wi-Fi-сети – и только. Соберите до четверых друзей, и выживайте вместе в кроссплатформенном режиме.

Sky Gamblers: Storm Raiders

Здесь вас ждут воздушные сражения, зрелищные и реалистичные, а также великолепные пейзажи и погодные спецэффекты. Окунитесь в атмосферу Второй мировой войны, участвуйте в боях над Перл-Харбором и Па-де-Кале, бомбите вражеские позиции, управляйте реально существовавшими самолётами и сражайтесь бок о бок с друзьями. Для этой цели в игре предусмотрен локальный мультиплеер - как совместный, так и состязательный, реализовать который можно в одной зоне Wi-Fi. Он предусматривает 6 режимов: Свободная игра, Командная игра, Выживание, Остаться в живых, Штурм и Захват флага.

Angry Birds Go!

Вы готовы к головокружительным гонкам, когда за рулём будут хорошо знакомые персонажи франшизы Angry Birds - как злые птицы, так и их вечные соперники, зелёные свинки? Эта игра предлагает разнообразные скоростные трассы, сюрпризы и ежедневные события, трюки и хитрости, апгрейды тачек и развитие способностей персонажей. И, самое главное, то, почему эта игра оказалась в нашей подборке – локальный мультиплеер по сети Wi-Fi, в ходе которого вы сможете погонять на трассах этой игру вместе с друзьями, чтобы выяснить, кто же из вас самый крутой гонщик.

Farming Simulator 16

Хотите попробовать себя в роли фермера? Тогда садитесь за руль трактора или комбайна, выращивайте урожай, разводите животных, торгуйте и развивайте свой бизнес. Вас ждут реалистичная графика, широкий выбор техники от известных производителей, динамически меняющаяся экономика и возможность посостязаться на звание лучшего фермера с друзьями - для этого в игре предусмотрен локальный мультиплеер, реализуемый как с помощью сети Wi-Fi, так и по Bluetooth.

Морской бой 2

Кто не знаком с этой игрой? Практически каждый из нас расчерчивал тетрадные листы на квадраты, расставляя корабли и мины на игровом поле. Теперь этот же листок в клетку с кораблями на нём вы увидите на экранах своих мобильных устройств. Кроме морских сражений с соперниками по всему миру здесь вы сможете вызвать на бой своих друзей - либо играя с другом на одном устройстве, либо бросив ему вызов по Bluetooth.

Riptide GP®2

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

Friut Ninja

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

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

Virtual Table Tennis™

Эта 3D-игра, основанная на физике, предлагает матчи по настольному теннису, действительно близкие к реальным. Движения шарика и ракеток продуманы и прорисованы великолепно, так что лучшего симулятора вам не найти. А сыграть с друзьями вы можете как онлайн, так и локально – сидя рядом и напряжённо сражаясь через Bluetooth.


Видео-обзор

Как установить Мультиплеер Геометрии Даш

  1. Запустите Geometry Dash на ПК. Если у вас нет ГД на ПК, то можете скачать последнюю версию перейдя по этой ссылке. Работает как на 2.113, так и на 2.112 обновлениях.
  2. Войдите в свой аккаунт (Options -> Account). Если у вас его нет, то зарегистрируйте.
  3. Скачайте архив ГД Мультиплеер и распакуйте в любом месте.
  4. Запустите Мультиплеер Геометрии Даш.
  5. На данную программу могут ругаться как браузеры, так и антивирус. Добавьте исполняемый файл Multiplayer.exe в исключения. Он полностью чистый и без каких-либо вирусов.

Как начать играть

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

Выбор сервера в Geometry Dash Multiplayer

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

Поиск ID уровня в Мультиплеер Геометрии Даш

Далее зайдите окошко для поиска уровней в Geometry Dash и вставьте скопированный номер уровня. Нажмите на кнопку поиска (Search).

Поиск уровня в Геометрии Даш

После просто выберите найденный уровень и начните в него играть.

Скрин из Мультиплеера Геометри Даш.

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

Настройка дополнения

Настройка Мультиплеера Геометрии Даш.

Vip аккаунт

  • пользовательские анимированные и не анимированные иконки;
  • до 144 кадров в секунду для других игроков;
  • создание частных лобби (приватных серверов);
  • специальные каналы: 🎨 цвет-роли, 💬 специальный чат, 📁прямая ссылка, 🎨 пользовательские иконки;
  • настройка цвета имени.

Часто задаваемые вопросы

GDM не запускается / не работает (очистка кэша)

Перейдите папку Пользователи (Users). Зайдите в папку своего профиля. В разделе AppData удалите папки Alizer и Geometry Dash. Если вы не видите папку AppData, то вам нужно открыть видимость системных файлов Windows.

Почему я не могу просматривать значки?

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

Как мне присоединиться к общественному лобби?

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

Каковы минимальные требования для запуска GDM?

Около 2 ГБ оперативной памяти и приличный процессор с частотой 1,0 ГГц, Windows Vista или выше.

Поддерживает ли GDM Android, iOS и Mac?

Я изменил свой пользовательский значок, но люди все еще видят мой старый значок.

Значки сбрасываются только каждый раз, когда игрок закрывает Geometry Dash и GDM.

( 1 оценка, среднее 5 из 5 )

возникла такая проблема, у меня 64 бита а требует 86 битов и поэтому я не могу открыть архив

Почитайте в интернете, как открыть режим совместимости для вашей версии Windows.

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

у меня не хочет скачивать 4 програмы которые нужно что делать?

иа очин критаааааи

а если пишет: запуск программы невозможне так как на компьютере остсутсвует vcruntime140.dll.? впорос где можно скачать или как

Читайте также: