Как сделать Андроид-игру сетевой?
При помощи каких методов подобные вещи осуществляются? Понятно, что тут в двух словах не объяснишь, поэтому и прошу просто указать направление для дальнейших поисков. И хотелось бы узнать, как с точки зрения алгоритма все происходит — обмен данными я имею в виду.
Отслеживать
2,252 2 2 золотых знака 10 10 серебряных знаков 37 37 бронзовых знаков
задан 20 дек 2013 в 12:12
43 1 1 серебряный знак 5 5 бронзовых знаков
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
нужен сервер с апи, на чем написан не существенно, смотреть в сторону веб сервисов, я бы подобное делал с помощью soap но я не специалист в вебе, наверняка есть более простое решение
Отслеживать
ответ дан 20 дек 2013 в 12:13
2,629 1 1 золотой знак 15 15 серебряных знаков 25 25 бронзовых знаков
- Если нужен именно веб, то свой сервер необходим. Там пишем веб-сервис свой, не особо важно на каком языке. Реализовывать или на сокетах (на обычных хостингах не получится, так как там php и время выполнения скрипта ограничено 60 секундами), или в виде обычных http запросов (передавать всё, к примеру,в json).
- Если не обязателен веб (играть по блютусу или вафле), то один из телефонов будет в роли сервака выступать, а остальные как клиенты.
Отслеживать
ответ дан 20 дек 2013 в 12:20
Suvitruf — Andrei Apanasik Suvitruf — Andrei Apanasik
32.2k 15 15 золотых знаков 60 60 серебряных знаков 93 93 бронзовых знака
Не, это точно не блютус и не вай-фай будет. Обычная веб-игра. Про сокеты уже слышал, но пока не разобрался, как их пользовать ))
21 дек 2013 в 3:38
Начните с сценария игры. Ну то есть как люди будут играть друг с другом, например:
- Два друга играют через смски или там bluetooth
- 10 друзей играют через некий игровой сервер
- Мульон человек играют через Facebook/VK
В общем вариантов масса. Как только сценарий уложится в голове станет понятен протокол обмена, как только будет ясен протокол обмена к этому можно подтянуть и сервер/не сервер, p2p или что-то там еще.
Из того что вы написали рисуется REST-alike веб сервис с обменом json данными.
Отслеживать
ответ дан 20 дек 2013 в 12:40
81.1k 7 7 золотых знаков 72 72 серебряных знака 153 153 бронзовых знака
Скорее всего, будет свой сервер. Не уверен, что стоит подвязывать социальные сети. Буду искать про REST-alike. Спасибо!
Как играть по сети на Андроид с друзьями
С увеличением мощности железа смартфонов и планшетов мобильный гейминг стремительно набирает обороты. Графика в мобильных играх из года в год становится все реалистичнее, а растущая производительность устройств даже позволяет портировать на мобильные устройства некогда бывшие хитами игры с настольных ПК. Однако, какой бы красочной ни была игра, ничто не заменит совместной игры с другом по сети. В этой статье мы расскажем о том, как играть по сети на Андроид с друзьями. Также можете почитать Как играть в Android игры на ПК.
Как играть по сети на Андроид через Интернет
На сегодняшний день значительное количество игр в Google Play требуют подключения к Интернету. Это нужно для синхронизации игровых данных с сервером и для реализации мультиплеера — игры с другими игроками.
Вот основные варианты как играть по сети на Андроид через Интернет с друзьями:
- Авторизоваться в Play Игры и играть с друзьями из кругов Google+
- Найти друга через поиск по никнейму в самой игре
- Добавить друзей через синхронизацию с социальными сетями
Чтобы найти друзей через Google Play Игры, установите само приложение из Play Market. При запуске любой игры на смартфоне вы увидите уведомление о том, что данные синхронизированы с Play Играми. Потом зайдите в приложение — вы увидите, кто из ваших кругов Google+ играет в те или иные игры, и вы сможете поиграть вместе.



Для того, чтобы найти друга в игре по никнейму, просто узнайте его игровое имя и введите в строку поиска в самой игре. После подтверждения добавления в друзья вашим товарищем вы сможете с ним играть по сети. К примеру, так это реализовано в игре Mobile Legends
Чтобы найти друзей через социальные сети, зайдите в настройки игры и синхронизируйте свои аккаунты с игрой. После этого в списке друзей в игры вы увидите друзей из социальных сетей и сможете с ними играть. Например, в игре Clash Royale можно играть с друзьями из Facebook:



Мы разобрали, как играть с другом на Андроид через интернет, но также есть возможность играть по локальной сети.
Как играть на Андроид по локальной сети
Есть игры, которые позволяют играть по сети без подключения к Интернету. Для этого нужно, чтобы оба устройства, между которыми будет установлено локальное соединение, находились рядом, в пределах одного помещения. Подключение может быть реализовано либо с помощью Bluetooth, либо более современный вариант — по сети Wi-Fi.
Для игры по Bluetoth зайдите в режим мультиплеер, выберите пункт «Играть по Bluetooth» и найдите устройство человека, с которым хотите поиграть. Пример игры с возможностью играть по Bluetooth — Морской бой 2
Теперь рассмотрим, как играть по сети на Андроид через Wi-Fi. Встречаются два варианта подключения:
- Оба устройства должны поддерживать функцию Wi-Fi Direct
- Оба устройства должны быть подключены к одному Wi-Fi
В первом случае на одном устройстве включите раздачу сети Wi-Fi и подключитесь к нему со второго. Затем в самой игре через поиск найдите подключенное устройство и играйте вместе. Пример такой игры по Wi-Fi был реализован в Minecraft: Pocket Edition. А для игры с подключением к одному Wi-Fi подключите оба устройства, на которых будете играть, к одному роутеру, зайдите в мультиплеер игры и выберите локальное соединение. В списке должно появиться второе устройство, нажмите на него — загрузится сетевая игра. Так реализован мультиплеер в игре Osmos, для игры по Wi-Fi нужно нажать «In the room».
Ответы на вопросы
Где можно скачать игры по сети на Андроид?
Для того, чтобы найти игры по сети с другом на Андроид, зайдите в Play Market и напишите в поисковой строке «Игры по сети» или «Игры по Bluetooth» — магазин приложений выдаст вам список игр с запрашиваемыми функциями. Также на просторах всемирной паутины есть множество статей и обзоров интересных игр, в которые можно поиграть по сети с друзьями на Андроид.
Сетевая игра на Android, как писать?
Здравствуйте. Я хочу написать сетевую игру на Andriod, но не понимаю, как это сделать. Я понимаю, что в игре есть три части: логическая, графическая и сетевая. Я отдалённо представляю, как написать их по отдельности, но как мне их связать воедино? Особенно, если учитывать, что на разных движках можно писать на разных языках. Объясните, пожалуйста.
- Вопрос задан более трёх лет назад
- 6474 просмотра
Комментировать
Решения вопроса 2

Сергей @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-а.