Как создать лобби
Система однорангового (p2p) подбора игр построена на понятии лобби. Лобби — это сущность, которая образуется на внутренних серверах Steam, и подобна чатам. Пользователи могут создавать новые лобби, отмечать лобби с помощью разного рода данных, искать лобби на основании этих данных, заходить в лобби и делиться информацией с другими пользователями в лобби. В одном лобби могут находиться до 250 игроков, однако для большинства игр это значение варьируется в диапазоне от 2 до 16. Подбор игр, который исходит из опыта игроков, построен поверх этой системы.
API подбора игр представляет собой набор функций, которые позволяют пользователям находить друг друга для игры. Все функции подбора игр находятся в ISteamMatchmaking, где описаны подробности для каждой из них. У каждого лобби есть свой номер SteamID, как у пользователей и у серверов. Образец приложения Steamworks полностью поддерживает лобби.
Процесс подбора игр
- В игре пользователь указывает, что хочет играть в многопользовательском режиме, а также тип многопользовательского режима (правила, сценарий и т. д.)
- Игра находит лобби, для которых установлены схожие правила, используя API поиска лобби.
- Если лобби найдено, игра присоединяется к нему, если нет — создает новое.
- Пользователи остаются в лобби, пока не найдется необходимое для начала игры число игроков. Между участниками лобби идет обмен данными о том, каких персонажей они выбирают, или о других настройках, уникальных для каждого игрока. Если в лобби необходимо обеспечить исполнение какого-либо правила (к примеру, определенного персонажа может выбрать только один игрок), для вынесения решения используется владелец лобби.
- Для лобби необязателен пользовательский интерфейс. Если он есть, функции обмена данными можно использовать для отправки сообщений в чате. Можно отправлять и голосовые данные, но для этого придется использовать API, описанный здесь: Сетевые функции Steam.
- Как только игра готова к запуску, пользователи присоединяются к игровому серверу или пользователю, который назначен хостом игры, и затем покидают лобби. Как только все пользователи покинули лобби, оно уничтожается.
Поиск лобби
- ISteamMatchmaking::AddRequestLobbyListStringFilter устанавливает фильтр сравнения строк.
- ISteamMatchmaking::AddRequestLobbyListNumericalFilter устанавливает числовой фильтр сравнения.
- ISteamMatchmaking::AddRequestLobbyListNearValueFilter сортирует результаты по степени удаленности от указанного значения.
- ISteamMatchmaking::AddRequestLobbyListFilterSlotsAvailable позволяет показывать в результатах поиска только те лобби, где доступно определенное число мест для игроков.
- ISteamMatchmaking::AddRequestLobbyListDistanceFilter задаёт расстояние, в пределах которого нужно искать лобби (исходя из данных о IP пользователей и карты IP на сервере Steam).
- ISteamMatchmaking::AddRequestLobbyListResultCountFilter устанавливает лимит на число возвращаемых лобби. Чем ниже число, тем быстрее загрузить результаты и информацию о лобби в клиент.
Создание лобби
Если найти лобби не удается, в этот момент обычно создается новое. Просто вызовите
ISteamMatchmaking::CreateLobby и подождите завершения вызова. Результат вызова показывает, был ли он успешен, и если да, записывает Steam ID лобби в структуру LobbyCreated_t, который можно использовать для создания метаданных о лобби. Сразу после создания лобби следует задать метаданные, которые другие игровые клиенты могут использовать для поиска (см. ниже).
Присоединение к лобби
Если найдено подходящее лобби, от друга или в результате поиска, используйте ISteamMatchmaking::JoinLobby и подождите результата LobbyEnter_t. После присоединения к лобби вызовите данные о лобби и используйте их, чтобы определить, что показать на экране пользователя (если вообще что-то показывается).
Когда пользователь присоединяется к лобби или покидает его, обратный вызов LobbyChatUpdate_t отправляется всем участникам лобби, включая владельца.
- ISteamMatchmaking::GetNumLobbyMembers
- ISteamMatchmaking::GetLobbyMemberByIndex
Метаданные лобби
Метаданные лобби позволяют задать произвольное состояние лобби, включая название лобби, текущую карту, игровой режим, текущее состояние игры и т. д.
Пользователь автоматически получит последние данные о лобби для всех лобби, в которых он состоит. Для лобби, которые были возвращены в результатах поиска, пользователь получит данные о лобби, актуальные на момент поиска. Если это лобби друга, данные о лобби будут недоступны, пока не будет вызван и завершён ISteamMatchmaking::RequestLobbyData.
Если данные лобби изменились, все участники лобби получат обратный вызов LobbyDataUpdate_t (с помощью этого обратного вызова также можно узнать о том, что ISteamMatchmaking::RequestLobbyData завершён).
- ISteamMatchmaking::SetLobbyData
- ISteamMatchmaking::GetLobbyData
- ISteamMatchmaking::DeleteLobbyData
- ISteamMatchmaking::GetLobbyDataCount
- ISteamMatchmaking::GetLobbyDataByIndex
- ISteamMatchmaking::GetLobbyMemberData
- ISteamMatchmaking::SetLobbyMemberData
Общение в лобби
Чтобы отправлять информацию в лобби (сообщения чата, сигнала начала игры и т. п.), вызовите ISteamMatchmaking::SendLobbyChatMsg, который отправляет простое двоичное сообщение всем пользователям в лобби. Участникам лобби нужно ожидать обратный вызов ISteamMatchmaking::LobbyChatMsg_t. После его получения необходимо использовать ISteamMatchmaking::GetLobbyChatEntry для получения содержимого сообщения.
Друзья, приглашения и лобби
С помощью API можно получить список всех лобби, в которых находятся друзья пользователя:
Друга можно пригласить в лобби, используя ISteamMatchmaking::InviteUserToLobby
Пользователь увидит диалоговое окно чата со ссылкой на присоединение к игре. Если пользователь нажмет ссылку (и пока не играет в эту игру), игра будет запущена при помощи командной строки:
+connect_lobby . Убедитесь, что ваше приложение использует ISteamApps::GetLaunchCommandLine, чтобы вы могли отключить всплывающее предупреждение при запуске с помощью командной строки.
Если пользователь уже в игре, будет отправлен обратный вызов ISteamFriends::GameLobbyJoinRequested_t, в котором будет содержаться Steam ID лобби, к которому хочет присоединиться пользователь. Вам решать, подчинится ли ему игра.
Для того чтобы пользователь мог выбрать, кого из списка друзей пригласить в лобби, можно вызвать функцию ISteamFriends::ActivateGameOverlayInviteDialog.
Она активирует оверлей Steam, в котором будет показано диалоговое окно с возможностью приглашения друзей в текущее лобби.
Аутентификация
Любой пользователь в лобби Steam уже полностью аутентифицирован на серверах Steam. Необходимости в дополнительной аутентификации нет, кроме случаев, когда игра проверяет, нет ли у пользователя блокировки VAC (см. статью про античит Valve). Если пользователь попробует войти в тот же аккаунт из другого места, его предыдущий вход будет убран из всех существующих лобби.
Очистка
Как только игра началась, каждый пользователь может покинуть лобби с помощью:
ISteamMatchmaking::LeaveLobby
Как только все пользователи вышли, лобби уничтожается на серверах Steam.
Советы о лобби
- В целом, создавайте лобби только тогда, когда это необходимо. К примеру, тогда, когда пользователь приглашает в игру друга, либо тогда, когда действие пользователя требует создания лобби.
- Не обновляйте метаданные лобби слишком часто. В метаданные добавляйте только данные, которые используются для поиска (к примеру, тип игры или состояние игры). Вам не требуется указывать число игроков, поскольку поиск лобби и так ищет лобби с доступными местами.
- Не присоединяйтесь к лобби только для того, чтобы узнать их метаданные. Метаданные лобби могут быть скачаны отдельно для всех лобби, и затем ваша игра может либо показать пользователю список лобби, где он может выбрать одно из них, либо игра может автоматически решить, к какому лобби присоединиться.
Остались вопросы?
Задавайте их в обсуждениях подбора игр и лобби.
Steamworks — это набор инструментов и служб от Valve, позволяющих настроить и поддерживать игру в Steam.
- Документация
- Главная
- Подготовка к работе
- Облик в магазине
- Возможности
- Финансы
- Продажи и продвижение
- SDK Steamworks
- Лицензирование интернет-кафе
- SteamVR
- Материалы
- SteamVR
- Программа интернет-кафе Steam
- Обсуждения Steamworks
- Видеоруководства по Steamworks
- Связаться с поддержкой
- Новости и обновления
- Блог Steamworks
- Блог Steam
- Блог SteamVR
- Блог Steam Deck
Карта лобби в PUBG Mobile: что это и как создать?
Тем, кто хочет сыграть в захватывающую экшн-игру «PUBG Mobile» со своими друзьями без посторонних, стоит знать, что такое лобби в «PUBG Mobile» и как его создать.
Раньше создавать собственные матчи могли только популярные стримеры и известные Ютуб-блогеры. Разработчики предоставляли им такую возможность, так как они тем самым продвигают игру. Сегодня многие игроки уже могут сами создавать собственные серверы, благодаря непрерывному пополнению копилки. Теперь это можно сделать с помощью специальной награды.
Карта лобби – это внутриигровой предмет, который доступен игрокам, достигшим 11 уровня и купившим «Royal Pass». Другого пути нет. Чтобы создать свой сервер, нужно вложить деньги и прокачать свой аккаунт.
Чтобы создать лобби, нужно:
- Купить «Royal Pass».
- Достичь 11 уровня.
- Найти в инвентаре карту лобби и активировать её.
- Перейти в главное меню, нажать кнопку «Room».
- Нажать на жёлтую кнопку «Создать лобби».
После этого появится окно настройки, в котором нужно выбрать карту и режим. Здесь же можно поменять название своего лобби и при необходимости установить пароль.
Когда все настройки выполнены, следует нажать на жёлтую кнопку «Создать лобби». После этого в вашем распоряжении будет целый остров или небольшой кусок суши.
Лобби в «PUBG Mobile» можно создать с помощью специальной карты. Процесс создания простой, но затратный. Для этого нужно потратить немного времени и определённую сумму реальных денег.
Как поиграть с друзьями: создание лобби, группы и запуск сервера
Counter-Strike: Global Offensive — командный шутер и лучшего всего играть в него вместе с товарищами, а не случайными игроками из матчмейкинга.
Есть несколько вариантов, как поиграть в Counter-Strike: Global Offensive вместе. CS.MONEY рассказывает о них.
Лобби и группа
Самый простой вариант — создать лобби, пригласить в него до 4 друзей и начать поиск игры. Система лобби сейчас является общепринятой, поэтому так можно делать не только в клиенте Counter-Strike: Global Offensive, но и на сторонних платформах вроде FACEIT.
Для создания лобби в Counter-Strike: Global Offensive достаточно открыть список друзей и нажать на значок конвертика в выпадающем окне. Друзья, принявшие приглашение, попадут в лобби. В верхней части экрана появится чат, а на правой панеле будет выделен перечень всех игроков.
Если в лобби до пяти или пять игроков, можно будет начать поиск в обычном матчмейкинге. В противном случае этот режим недоступен. Также можно начать игру на картах мастерской или с ботами. Так будет создан локальный сервер, на котором можно менять параметры. Например, подключить конфиг с турнирными настройками.
На FACEIT, например, работает похожая система. Достаточно разослать предложение друзьям и после сбора начать поиск матча.
Личный сервер
Для регулярных тренировок с турнирными правилам можно арендовать свой сервер. Стоит такая услуга дешево, но зато позволяет полностью контролировать настройки. Абсолютное большинство таких серверов работает на тикрейте 128.
Для повышения комфорта игры желательно арендовать сервер, который физически находится не очень далеко. Тогда к нему будет быстрое подключение и низкий пинг. Также следует заранее обдумать количество слотов на сервере. Обычно сервер с местом для 11 игроков арендовать дешевле, чем сервер для 22 игроков.
Игроки рядом
Если же собрать пятерых друзей прямо сейчас не получится, стоит обратить внимание на функцию «Поиск команды». Ее можно найти в правом меню на главном экране. При нажатии откроется список игроков рядом, которых можно пригласить поиграть вместе.
В этом списке, помимо ранга и никнейма также отображается страна игрока. Благодаря этому легко можно найти товарищей по команде примерно равного уровня игры, которые к тому же будут понимать родной язык. Очень удобно.
Перед новыми товарищами по команде можно блеснуть не только высоким KDA или крутым процентом выстрелов в голову, но и яркими скинами. Найти самые крутые скины можно у нас, на CS.MONEY.
Как создать лобби в PUBG Mobile с помощью карты лобби и захотеть сыграть в игру с друзьями
Раньше возможность создавать кастомные матчи выдавалась разработчиками только популярным стримерам и ютуберам — в целях раскрутки игры. Теперь же регулярные денежные потоки в копилку позволили создателям дать возможность делать своим сервера множеству игроков. И делается это с помощью специальной награды.
Эта карточка — внутриигровой предмет, который получают владельцы Royal Pass, достигнувшие 11 уровня. Иначе никак: хотите свой сервак — выкладывайте деньги и прокачивайтесь. Только не забудьте войти в PUBG Mobile через ВК, чтобы потом не потерять все нажитое добро.
Процесс создания
- Купите Royale Pass и прокачайтесь до одиннадцатого уровня.
- Найдите в инвентаре карту лобби и активируйте.
- В главном меню нажмите на кнопку «Room» в левом нижнем углу экрана.
- Внизу справа будет желтая кнопка. Жмите.
- Вылезет окно настройки. Выберите желаемую карту и режим, поставьте пароль, если он нужен. Не забудьте сменить название на какое-нибудь крутое, звучное, чтобы не затеряться с толпе. Когда дело сделано, тапайте по желтой кнопке и наслаждайтесь — теперь вы владелец целого острова (или же куска суши, коим является Мирамар).
Теперь вы знаете, как создать лобби в PUBG Mobile через карту лобби. Сам процесс достаточно простой: он требует вложения реальных денег, а не времени. Если готовы, то вперед — раскошеливаться! И не забудьте включить наклоны — это позволит побеждать всех, кто решит сорвать вашу корону.