Новичек. Организация мультиплеерной состовляющей (не ммо)

Сеть в Unity3D

Новичек. Организация мультиплеерной состовляющей (не ммо)

Сообщение Od1Um 21 янв 2020, 10:30

Добрый день!

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

Для обучения выбрал классический арканоид с соревновательным режимом.

Вижу два варианта реализации:
1. Простой. Просто сессионное соединение двух пользователей в комнате.
Тут более-менее все понятно. Берем photon, соединяем пользователей по ip, делаем одного из игроков хостом, передаем координаты объектов.
Я так понимаю, что для этой реализации подойдет бесплатный photon pun.

2. Приоритетный. Реализация мультиплеера в стиле hearthstone.
Т.е. условно есть таблица лидеров. У каждого игрока есть свой ранг, доступные скины (косметика), история игр.
Игроки могут участвовать в обычных боях и соревновательных. По нажатии кнопки «играть» происходит запуск поиска доступного противника и запуск матча.

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

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


Поделитесь опытом, пожалуйста.
Od1Um
UNец
 
Сообщения: 41
Зарегистрирован: 22 мар 2017, 17:54

Re: Новичек. Организация мультиплеерной состовляющей (не ммо)

Сообщение IDoNotExist 21 янв 2020, 12:23

Od1Um писал(а):Хочется попробовать на простом примере, поэтому денег вкладывать в сервера и платные хосты желания нет. Но можно ли подобное организовать бесплатно? Или нужны выделенные сервера с БД?

Если хочешь потренироваться для себя, то пожалуйста, бесплатных и тормознутых PHP хостингов с БД полно, т.к. игра карточная и пошаговая можешь прям через PHP всё и организовать. А можешь использовать pun, чтобы гонять быстрый трафик и PHP сервер для хранения статистики.

Od1Um писал(а):Неужели все простые игры с онлайн статистикой и списком лидеров свои сервера держат? А игры - фермы, где онлайн только периодический, когда к другу на огород заходишь грядки полить?

Это на твой взгляд эти игры простые, а ты попробуй сделай хоть одну такую и да они держат свои мощные выделенные сервера, особенно популярные фермы, т.к. они должны выдерживать большой единовременный онлайн.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Новичек. Организация мультиплеерной состовляющей (не ммо)

Сообщение Od1Um 21 янв 2020, 12:55

IDoNotExist писал(а):
Od1Um писал(а):Хочется попробовать на простом примере, поэтому денег вкладывать в сервера и платные хосты желания нет. Но можно ли подобное организовать бесплатно? Или нужны выделенные сервера с БД?

Если хочешь потренироваться для себя, то пожалуйста, бесплатных и тормознутых PHP хостингов с БД полно, т.к. игра карточная и пошаговая можешь прям через PHP всё и организовать. А можешь использовать pun, чтобы гонять быстрый трафик и PHP сервер для хранения статистики.



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

IDoNotExist писал(а):
Od1Um писал(а):Неужели все простые игры с онлайн статистикой и списком лидеров свои сервера держат? А игры - фермы, где онлайн только периодический, когда к другу на огород заходишь грядки полить?

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


Говоря «простые» я не имел ввиду простые в реализации. Тут подразумевалось простое взаимодействие, т.е. не ммо или батл рояль. Статистика, состояние/прогресс игрока, состояние фермы (где какая грядка). Т.е. относительно статическая информация, не занимающая много места и не требующая точной И мгновенной синхранизации нескольких клиентов.
Т.е. я вижу это как офлайн игра, где можно запросить состояние другого аккаунта и приложение его скачает и отобразит.
Od1Um
UNец
 
Сообщения: 41
Зарегистрирован: 22 мар 2017, 17:54

Re: Новичек. Организация мультиплеерной состовляющей (не ммо)

Сообщение IDoNotExist 21 янв 2020, 14:15

Od1Um писал(а):А порекомендуете какие-нибудь обучающие ролики/статьи по этому вопросу?

Где PUN используется в связке с PHP даже не знаю есть ли такие, а по отдельности по PUN и по PHP уроков должно быть полно.

Od1Um писал(а):Я правильно понимаю, что pun позволяет хранить статистику и состояние клиента? Например уровень, открытые предметы и т.д?

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

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

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

Od1Um писал(а):Т.е. относительно статическая информация, не занимающая много места и не требующая точной И мгновенной синхранизации нескольких клиентов.
Т.е. я вижу это как офлайн игра, где можно запросить состояние другого аккаунта и приложение его скачает и отобразит.

Это называется "Асинхронный мультиплеер", тут PUN не нужен, можно обойтись и PHP.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Новичек. Организация мультиплеерной состовляющей (не ммо)

Сообщение Saltant 29 янв 2020, 17:46

Od1Um писал(а):Т.е. я вижу это как офлайн игра, где можно запросить состояние другого аккаунта и приложение его скачает и отобразит.

Используй любую базу данных и с клиента пиши запросы, но т.к делать подключение к базе из клиента игры это безумие, - тебе нужен сервис который будет подключен к базе и будет принимать входящие запросы пользователя, обрабатывать логику, брать нужное из базы и отправлять обратно клиенту. Тут вариантов несколько, это или web запросы, или tcp (websocket к примеру), простой вариант - это через веб сделать, с помощью php или с помощью asp.net - тут кому что ближе (мне .net т.к язык C#).

Принцип работы прост, на сервере создаются скрипты которые смотрят в базу и принимают запросы от клиента. Клиент же отправляет какой то запрос например методом GET на определенный веб адрес, на примере .net вот так например: http://myhost.local/getuserdata/myname в качестве параметра myname передается ник игрока. Сервис принимает запрос по этому адресу, получает параметр myname и пишет запрос в базу - найти все данные из такой то таблички по пользователю myname, формирует к примеру json массив и отправляет в качестве ответа на запрос клиента. Клиент же получает этот json массив, десериализует его чтоб создать нужный экземпляр класса и использует эти данные как ему дальше нужно. Так же можно сделать авторизацию чтоб юзеры могли запросить только свои данные а не чужих игроков, вместе с запросом на сервис юзеру нужно передать будет в запросе (в заголовках) например авторизационный токен полученный при логине. С PHP скриптами пример не скажу, но там принцип один и тот же что я выше описал на примере .net
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт


Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2