Перейти к содержимому

Как создать сетевую игру на андроид

  • автор:

Сетевая игра на Android, как писать?

Здравствуйте. Я хочу написать сетевую игру на Andriod, но не понимаю, как это сделать. Я понимаю, что в игре есть три части: логическая, графическая и сетевая. Я отдалённо представляю, как написать их по отдельности, но как мне их связать воедино? Особенно, если учитывать, что на разных движках можно писать на разных языках. Объясните, пожалуйста.

  • Вопрос задан более трёх лет назад
  • 6493 просмотра

Комментировать
Решения вопроса 2

begemot_sun

Сергей @begemot_sun
Программист в душе.

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

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

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

В целом вот так. Если будет нужна помощью в Erlang, или написании такого сервера могу помочь. В том числе и ответами на данном ресурсе.

Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать
StrangeAttractor @StrangeAttractor

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

Потом изучать работу с соответствующими технологиями: в первом случае это будет HTTP/HTTPS или TCP/UDP, во втором тоже (хотя скорее вторая пара), в третьем — собственно BlueTooth-стэк.

HTTP/HTTPS-клиенты программируются через стандартные библиотеки элементарно, TCP/UDP — чуточку сложнее, про BlueTooth ничего не могу сказать.

По части «частей» — мне кажется это было бы очевидно если бы Вы имели малейший опыт написания приложений для Android вообще и реализации паттерна MVC в частности, так что сначала потренеруйтесь немножко, напишите что-нибуть простенькое не сетевое для начада (сначада «Hello World», потом хотябы банальные крестики-нолики какие-нибудь), а потом пробуйте прикручивать к тем же крестикам-ноликам сеть, задавайте конкретные вопросы по мере возникновения, и двигайтесь дальше.

Если я прав и Вы действительно ничего ещё не писали — рекомендую поставить IntelliJ Idea Community Edition и начать с тамошнего quick start-а.

Как играть по сети в Майнкрафт ПЕ на телефоне

Как играть по сети

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

Новые способы как играть вдвоем на 2020 год

1. Если у вас нет Xbox Live (Пиратка):
Все игроки должны выйти из Xbox Live. Просто подключитесь вдвоем к одной wi-fi сети и один из игроков должен создать Новый мир, в настройках Сетевой игры которого поставить галочку на Многопользовательскую игра по сети и Видят локальные игроки. Второй игрок сразу увидит созданный мир в разделе `Друзья`, который доступен при создании нового мира.

2. Если у вас есть Xbox Live (Игра на расстоянии):
Способ немного сложнее, вы сначала должны добавить друг друга в друзья, через Игра — Друзья — Добавить друга и указать ТЕГ игрока, который выдал xbox live.
Затем повторите пункт номер 1 если играете через одну Wi-Fi сеть. Если вы находитесь далеко друг от друга, то сервер созданного друга через xbox live тоже будет виден вам.

Старые способы

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

Wi-Fi Роутер. Способ номер 1

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

Как играть по сети

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

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

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

Телефон как Wi-Fi роутер. Способ номер 2

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

Для начала нам надо зайти в настройки телефона на базе Androdi и найти там пункт меню `Модем и точка доступа`, на разных версиях OS Андроид, он может называться несколько иначе.

После того, нажмите на него и вы попадёте в меню где увидите пункт `Мобильная точка доступа`

Нажимаем на эту надпись и перед нами откроется описание данного способа создания Wi-Fi роутера к которому в последствии могут подключиться до 10 других устройств.

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

Перейдя к настройкам мобильной точки, вам будет предложено выбрать название точки доступа, я назвал её `Minecraft PE` что бы потом её было легче найти. После ввода имени, вы должны ввести пароль, который должен быть не короче 8 символов, после ввода этих параметров нажмите `Сохранить`.

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

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

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

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

Единственное ограничение, которое накладывает такая игра, это то что на всех устройствах (телефонах, планшетах) должна быть установлена одинаковая версия игры, так как если вы создадите игру в версии 0.13.1 люди с более ранними (0.13.0 или 0.12.3) или поздними (0.14.1 или 0.14.0) версиями подключиться к вам не смогут, учтите это!

Играть через Bluetooth. Способ номер 3

В этом способе пойдёт речь об игре по локальной сети в MCPE без использования Wi-Fi вообще, данный способ имеет несколько преимуществ перед остальными, но в тоже время имеет значительные недостатки, но давайте обо всём по порядку. В этом способе вы узнаете, как играть по Bluetooth в Minecraft PE (Майнкрафт ПЕ). Для этого вам надо будет создать блютуз модем из своего устройства, что бы остальные устройства могли подключиться к нему.

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

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

После перехода в меню `Модем и точка доступа`, найдите пункт `Bluetooth-модем` и включите его, это требуется для того, что бы к вашему устройству могли подключаться сразу несколько телефонов или планшетов, по сети блютуз.

Теперь вам надо зайти в игру Minecraft PE и просто создать мир, после чего все остальные могут спокойно включать на своих устройствах Bluetooth, найти в списке ваше устройство и спокойно подключиться к вам.

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

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

Разработка игр для Android

Создавайте качественные игры с Unity, ведущей платформой разработки, которой доверяют разработчики 75% игр на мобильном рынке Android.

72% из 1000 самых популярных мобильных игр были созданы на движке Unity

Более 50% всех мобильных игр разработаны на Unity

Unity работает в основе более 75% самых успешных игр Google Play

Охватите более 1 миллиарда игроков с помощью Unity Distribution Portal

Разработайте новую мобильную игру для Android

Мужчина играет в компьютерную игру

Воплощайте творческие замыслы

РАЗРАБОТКА

Unity Pro Создайте игру мечты и сделайте ее успешной.

Unity Asset Store Ускоряйте разработку игр благодаря инструментам, ассетам и шаблонам.

Plastic SCM Обеспечьте эффективную командную работу программистов и художников.

Multiplayer Размещайте и поддерживайте игровые серверы.

Game Backend (бета-версия) Храните данные игры в управляемой облачной инфраструктуре.

Мужчина использует телефон и ноутбук

Подробная аналитика и быстрые исправления

ОПТИМИЗАЦИЯ

Backtrace Выявляйте, сортируйте и устраняйте ошибки с помощью кроссплатформенной системы управления ошибками и исключениями.

Unity Gaming Services Analytics Анализируйте показатели игры и поведение игроков.

Ребенок с мобильным устройством

Создавайте увлекательные игры

Cloud Content Delivery Управляйте ассетами и доставляйте контент через облако.

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

Развивайте успешный бизнес

Развивайте успешный бизнес

МОНЕТИЗАЦИЯ

Unity Ads Увеличивайте доход и привлекайте новых пользователей, используя внутриигровую рекламу.

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

Игра Android для Chrome OS

Издайте лучшую игру для Android на Chrome OS

Охватите больше игроков, перенося Android-игры на устройства Chromebook, самый быстрорастущий на сегодняшний день сегмент ПК, с помощью Google и Unity.

Истории успеха

Ludo King

Ludo King от Gametion

Узнайте, как студия Gametion, которая только недавно освоила Unity, с помощью простой и знакомой игровой концепции завоевала более 1 миллиона установок на мобильном рынке менее чем за 25 дней после выпуска на Google Play.

Chaos Lords

Chaos Lords от Digital Pill

Узнайте, как студия Digital Pill выпустила игру и охватила более 1 миллиарда игроков с помощью Unity Distribution Portal.

Last Day on Earth

Last Day on Earth от Kefir

С помощью технологий и магазинов приложений студия Kefir добилась невероятных 83 миллионов загрузок, 1 миллион активных пользователей ежедневно (DAU), и более 125 млн $ валового дохода с игрой Last Day on Earth — и это не предел.

Ресурсы

Человек играет на мобильном устройстве

Освойте Samsung Adaptive Performance

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

Промоарт ARM

Оптимизировано для миллиардов мобильных устройств

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

Внедрите технологии AR в вашу мобильную игру

Unity AR Foundation упрощает разработку мультиплатформенных игр с дополненной реальностью. Наше партнерство с Google ARCore позволяет разработчикам игр для Android использовать новые функции ARCore в день их выхода.

Двое людей разрабатывают мобильное приложение на ПК

Осваивайте возможности мобильной разработки

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

От идеи до успешной реализации

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

Социальная
Copyright © 2024 Unity Technologies

  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell or Share My Personal Information
  • Настройки файлов cookie

Unity, логотипы Unity и другие торговые знаки Unity являются зарегистрированными торговыми знаками компании Unity Technologies или ее партнеров в США и других странах (подробнее здесь). Остальные наименования и бренды являются торговыми знаками соответствующих владельцев.

Мы используем cookie-файлы, чтобы вам было удобнее работать с нашим веб-сайтом. Подробнее об этом можно узнать на странице, посвященной политике использования cookie-файлов.

Как сделать Андроид-игру сетевой?

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

Отслеживать
2,326 2 2 золотых знака 11 11 серебряных знаков 38 38 бронзовых знаков
задан 20 дек 2013 в 12:12
43 1 1 серебряный знак 5 5 бронзовых знаков

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

нужен сервер с апи, на чем написан не существенно, смотреть в сторону веб сервисов, я бы подобное делал с помощью soap но я не специалист в вебе, наверняка есть более простое решение

Отслеживать
ответ дан 20 дек 2013 в 12:13
2,629 1 1 золотой знак 15 15 серебряных знаков 25 25 бронзовых знаков

  1. Если нужен именно веб, то свой сервер необходим. Там пишем веб-сервис свой, не особо важно на каком языке. Реализовывать или на сокетах (на обычных хостингах не получится, так как там php и время выполнения скрипта ограничено 60 секундами), или в виде обычных http запросов (передавать всё, к примеру,в json).
  2. Если не обязателен веб (играть по блютусу или вафле), то один из телефонов будет в роли сервака выступать, а остальные как клиенты.

Отслеживать
ответ дан 20 дек 2013 в 12:20
Suvitruf — Andrei Apanasik Suvitruf — Andrei Apanasik
32.2k 15 15 золотых знаков 61 61 серебряный знак 93 93 бронзовых знака

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

21 дек 2013 в 3:38

Начните с сценария игры. Ну то есть как люди будут играть друг с другом, например:

  1. Два друга играют через смски или там bluetooth
  2. 10 друзей играют через некий игровой сервер
  3. Мульон человек играют через Facebook/VK

В общем вариантов масса. Как только сценарий уложится в голове станет понятен протокол обмена, как только будет ясен протокол обмена к этому можно подтянуть и сервер/не сервер, p2p или что-то там еще.

Из того что вы написали рисуется REST-alike веб сервис с обменом json данными.

Отслеживать
ответ дан 20 дек 2013 в 12:40
81.2k 7 7 золотых знаков 72 72 серебряных знака 153 153 бронзовых знака

Скорее всего, будет свой сервер. Не уверен, что стоит подвязывать социальные сети. Буду искать про REST-alike. Спасибо!

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

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