Мастерсервер на SignalR?

Сеть в Unity3D

Мастерсервер на SignalR?

Сообщение [COAD] H00JAMBRA 02 янв 2018, 04:08

Подскажите какое решение выбрать для онлайн игры.

Концепция:
тип: шутер
к-во игроков в комнате: до 5
модель: клиент-сервер -> мастерсервер -> клиент
наличие БД: +
платформы: iOS & Android

В общем смысл такой хочу написать свой мастерсервер (т.к. планируется около 50к игроков, а юнет стоит космических денег) для общение игроков между собой и БД, но не могу определиться с решением на которое можно опереться в разработке (простота и скорость нужна). Планирую запустить 3 МС в разных регионах на VPS думаю плохого в этом ничего нету)) Сейчас изучаю SignalR вроде штука забавная судя по документации и возможностям, но посмотрел я к примеру 1 урок от ITDTV по построению чата сделал все как надо в итоге запускаю сервер все ок, а на клиенте когда дело доходит до старта коннекта к хабу юнити виснет и все(ошибок нету)..

Так вот вопросы:
1. Стоит ли юзать для таких дел SignalR?
2. Если 1 вопрос тру, то кто то сталкивался с моей проблемой?
3. Какие еще альтернативы хорошие есть?

Камнями не кидайте, я все время учусь.. правда на своих ошибках :-bd
Аватара пользователя
[COAD] H00JAMBRA
UNец
 
Сообщения: 46
Зарегистрирован: 09 июл 2017, 13:51

Re: Мастерсервер на SignalR?

Сообщение maksimov 03 янв 2018, 19:07

[COAD] H00JAMBRA писал(а):Подскажите какое решение выбрать для онлайн игры.
Концепция:
тип: шутер
к-во игроков в комнате: до 5

Ну, если шутер и 5 игроков - то тогда конечно же SignalR.
Вот если бы была стратегия и 7 игроков, или гонки и 3 игрока - то тогда наверное что-то другое.
(шутка)


Понимаете... те характеристики, которые вы на гора сообщаете, почти абсолютно никак не влияют на выбор того или иного решения. А вот то, что вы сами этого ещё не понимаете, как бы намекает, что "выбирать решение" вам ещё возможно рано.
(серьёзно)


[COAD] H00JAMBRA писал(а):наличие БД: +

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

[COAD]H00JAMBRA писал(а):платформы: iOS & Android

(в контексте SignalR) И нафига вам тогда websocket?

[COAD]H00JAMBRA писал(а):В общем смысл такой хочу написать свой мастерсервер (т.к. планируется около 50к игроков,

С блэкджеком и гуриями? =)

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

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

[COAD]H00JAMBRA писал(а):а юнет стоит космических денег

Вы полагаете, что у вас оно получится дешевле? =)

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

(отстранённо) "Эх... ну почему, почти каждую неделю на форуме появляется кто-то, кто твёрдо убеждён, что создать автомобиль Пежо у мамы на кухне, будет дешевле, чем купить его в автосалоне."


[COAD]H00JAMBRA писал(а):1. Стоит ли юзать для таких дел SignalR?

Почему бы и нет.

[COAD]H00JAMBRA писал(а):2. Если 1 вопрос тру, то кто то сталкивался с моей проблемой?

Вы не описали своей "проблемы". "юнити виснет и все(ошибок нету)" - это не баг репорт. Что вы ожидали услышать в ответ? Что вам скажут: "H00JAMBRA, у вас в 214 строчке условие всегда ложное, и из-за этого цикл становиться бесконечным."? ))))


[COAD]H00JAMBRA писал(а):3. Какие еще альтернативы хорошие есть?

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

У вас возникли "обстоятельства непреодолимой силы" на моменте простого установления коннекта. Представляете, сколько "открытий чудных" вас ожидает, когда дело дойдёт до "несколько более сложных" операций (маршрутизация пакетов, передача пользователей между серверами,...)

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

* * *
От себя, как обычно, рекомендую посмотреть Photon Server SDK.
Даже если не будете использоваться - познакомитесь с примером "грамотной реализации". В этом плане, у него на текущий момент альтернатив вроде как нет.
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

Re: Мастерсервер на SignalR?

Сообщение Woolf 03 янв 2018, 19:44

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


У меня 3к в пике было один раз )
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Мастерсервер на SignalR?

Сообщение maksimov 04 янв 2018, 08:21

Woolf писал(а):У меня 3к в пике было один раз )

Ой ли? А когда это атомные рыбки успели покинуть акваторию Exit Games'а? :)


Кстати, пользуясь случаем (давно хотел спросить, но стеснялся): Я так понимаю, вы взяли за основу MMO-application. Но там (в отличии от Loadbalancing-application) нет многосерверного масштабирования.
Отсюда вопрос: у вас все тусят на одном физическом сервере, или вы серьёзно допиливали application?
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

Re: Мастерсервер на SignalR?

Сообщение Woolf 04 янв 2018, 14:28

maksimov писал(а):
Woolf писал(а):У меня 3к в пике было один раз )

Ой ли? А когда это атомные рыбки успели покинуть акваторию Exit Games'а? :)


В АФ-1, очевидно. Там у меня полностью самописный сервак на джаве с использованием библиотеки java nio

maksimov писал(а):Кстати, пользуясь случаем (давно хотел спросить, но стеснялся): Я так понимаю, вы взяли за основу MMO-application. Но там (в отличии от Loadbalancing-application) нет многосерверного масштабирования. Отсюда вопрос: у вас все тусят на одном физическом сервере, или вы серьёзно допиливали application?


Нет, я не брал за основу MMO-application. Я, вообще, примеры за основу не брал. Писал свою реализацию комнат, ибо мне мало просто комнат, мне надо, чтобы они еще были и управляемыми со своей структурой и с переходами между ними.

Синтаксис:
Используется csharp
у вас все тусят на одном физическом сервере

Все на одной физической железке. После выхода в стим было 1000+ онлайна, железка была нагружена процентов на 5, это с учетом плотной работы с БД, которая тоже на этой же машине. Почему так мало? Потому, что кэширую, пишу в базу только то, что действительно нужно писать именно сейчас. Например, игрок поймал рыбу - это надо записать. А вот ежесекундные изменения жизни/выносливости не пишу сразу, а только по выходу игрока из игры и еще каждые 5 минут отсчитываемые от входа. Кроме того, БД работает сразу на 32 коннекта параллельно в пуле, если занят один коннект, берется другой, незанятый, поэтому игроки не ждут, когда освободится база.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Мастерсервер на SignalR?

Сообщение maksimov 04 янв 2018, 19:50

Woolf писал(а):В АФ-1, очевидно. Там у меня полностью самописный сервак на джаве с использованием библиотеки java nio

Ничего себе... Я, как-то, даже и не предполагал, что в АФ-1 уже было сетевое взаимодействие через сокет-соединения.
Реально круто!

(Хотя, по сравнению с планами топикастера - всё равно, хило. 50к! И при этом, не рыбалки на мобов, а охоты на друг-дружку (онлайн-шутер, жеж). :D )

Woolf писал(а):Нет, я не брал за основу MMO-application.

Меня ввёл в заблуждение этот лог (там значится MMO sample library):
https://steamcommunity.com/app/557780/d ... 721708916/

Я ещё подумал: а зачем AF-2 - grid-концепт? Там же вроде чисто покомнатная архитектура...


Woolf писал(а):Я, вообще, примеры за основу не брал. Писал свою реализацию комнат, ибо мне мало просто комнат, мне надо, чтобы они еще были и управляемыми со своей структурой и с переходами между ними.

Дык они ж там в исходниках. Примеры двух единственно возможных паттернов: распределять игроков по комнатам (Load Balancing), или динамически распределять их по "зонам интересов" (ММО).
А уж серверную логику (в том числе управления и переходов) - каждый может писать себе сам, какая ему нужна.

Woolf писал(а):каждые 5 минут отсчитываемые от входа

Ну, при достаточном уровне стабильности работы (отсутствии крашей серверного приложения), этоn срок можно увеличивать хоть до "бесконечности" (сохранять данные в БД, только по случаю выхода пользователя в оффлайн). =)

БД - MS SQL?
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

Re: Мастерсервер на SignalR?

Сообщение Woolf 04 янв 2018, 20:31

Синтаксис:
Используется csharp
ввёл в заблуждение этот лог

да тягаю с собой дллину, даже у ж не помню, зачем. Что-то в клиенте все-таки использует оттуда, какие-то утилиты.
Синтаксис:
Используется csharp
БД - MS SQL?

Да. Были попытки на Postgre перейти, но как-то подзабил. В принципе, мускуль нормально тянет.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Мастерсервер на SignalR?

Сообщение ikhtd 04 янв 2018, 20:51

ну все- теперь максимыч сделает платный чит.
Скрытый текст:
Объективная реальность это - что в жизни не может быть более одного пути, который в свою очередь обусловлен максимальным существующим давлением. (второй _ttp://habrahabr.ru/post/202654/)
ikhtd
Адепт
 
Сообщения: 1124
Зарегистрирован: 24 мар 2014, 12:20

Re: Мастерсервер на SignalR?

Сообщение [COAD] H00JAMBRA 05 янв 2018, 01:31

Смейтесь-смейтесь вот напишу и будете завидовать :D ;)

А если серьезно, Unet предлагает 100к платить в месяц(такими бабками не располагаю), да и самому разбираться интересней, особенно если заработает.
Аватара пользователя
[COAD] H00JAMBRA
UNец
 
Сообщения: 46
Зарегистрирован: 09 июл 2017, 13:51

Re: Мастерсервер на SignalR?

Сообщение maksimov 06 янв 2018, 09:20

[COAD] H00JAMBRA писал(а):А если серьезно, Unet предлагает 100к платить в месяц(такими бабками не располагаю), да и самому разбираться интересней, особенно если заработает.

Если серьёзно, то Unet предлагает НИЧЕГО не платить. :ymsmug: Он со старта даёт вам 20 CCU совершенно бесплатно (50 - если у вас Unity Plus, и 200 - если Unity Pro).

Для получения того же самого, самостоятельно, вам понадобиться потратится на: домен, SSL-сертификат, хостинг и собственно само серверное приложение (в случае, если оно будет уровня Unet'а - то его разработка как раз примерно в 100к и обойдётся :)) ).

А "100к в месяц" - это вы насчитали для уже состоявшейся, популярной игры, приносящей соответственно доход (предполагаемо такой, при котором эти "100к в месяц" - лишь незначительная статья в расходах).

Как вы вообще себе представляете механику ценообразования в b2b? Вы всерьёз полагаете, что компании, пользующиеся SaaS networking'ом, делают это для того, что бы "заплатить деньги", а не для того, что бы "их сэкономить"?

Разбираться самому - прекрасный повод (даже если не заработает). Вот с него и надо было начинать (и им же, и ограничиться). А не городить про то, что "вы не располагаете бабками, требующимися на поддержку проекта, которым вы тоже не располагаете".

* * *
Вобщем - делайте.

https://github.com/jenyayel/SignalR.Cli ... .Client.20
https://www.youtube.com/watch?v=9uaFW2S22BM
https://blogs.msdn.microsoft.com/codefe ... die-games/
Красота — не прихоть полубога, а хищный глазомер простого столяра.
Аватара пользователя
maksimov
UNITрон
 
Сообщения: 154
Зарегистрирован: 19 фев 2013, 11:48
  • Сайт

Re: Мастерсервер на SignalR?

Сообщение [COAD] H00JAMBRA 06 янв 2018, 21:27

Спасибо большое за информацию!
Я просто прикинул вот у меня игра сейчас 100к активных, если половина с них будет играть по сети это 50к CCU, откинем еще половину от этих так и получилось у меня 100тыщ зелени. Сейчас располагаю лишь 200 CCU которые у меня от про версии остались, можно было бы стартовать и на этом, но здесь уже нужно монетизацию хорошую делать для игры ведь платить чем то нужно.
По поводу своих решений - я думал писать не сам сервак а лишь мастерсервер который бы следил за правильным распределением игроков вот и выбор пал на SignalR, который потом планирую ставить на VPS(должно хватить для подобного).

Еще хотел бы поинтересоваться Вы сами не пользовались SignalR? У меня проблема взял с офф. сайта пример чата и пробовал его реализовать, все скомпилировал без ошибок, но почему то юнити зависает при старте подключения (т.е. идет конект, прокси и далее виснет на вызове метода _connection.Start();), пробовал уже и по уроку от IDTV такая же фигня.

В любом случае спасибо, для меня это будет первый опыт т.ч. самое интересное впереди \:D/
Аватара пользователя
[COAD] H00JAMBRA
UNец
 
Сообщения: 46
Зарегистрирован: 09 июл 2017, 13:51

Re: Мастерсервер на SignalR?

Сообщение Woolf 06 янв 2018, 22:07

вот у меня игра сейчас 100к активных, если половина с них будет играть по сети это 50к CCU, откинем еще половину от этих так и получилось у меня 100тыщ зелени

Хых.. Если у вас будет 50к CCU, то 100 тыс зелени в месяц - это копейки. Технически, при правильной монетизации 1 CCU среднедневного онлайна даёт 1$ прибыли в день. Плохая монетизация даёт чуть меньше доллара, анальная, как часто у наших локализаторов, даже и 2 доллара. Во время акций и праздников - доходит до $5 с одного CCU. Сами посчитать сможете дебет с кредитом?
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Мастерсервер на SignalR?

Сообщение ikhtd 06 янв 2018, 23:49

Ну а где вы опубликуете свою игрулю - на стиме? и откуда получите такой онлайн. к примеру на стиме, и что без рекламы расчитываете получить столько игроков? ведь ничего кроме стима в мире нет. хотя сори может онлайн планируется не с планеты земля. вы знаете какой онлайн на игре анноун батлграунд или сколько продаж последней гта на стиме.ну или хотя бы к примеру сколько человек на земле. 50 к ссу это 50 млн игрокорв в день. без старых игроков за месяц через игру пройдет полтора милиарда игроков. то есть я должен буду поиграть в эту игру полюбас. потому что старушки и младенцы не смогут играть определению.
Скрытый текст:
Объективная реальность это - что в жизни не может быть более одного пути, который в свою очередь обусловлен максимальным существующим давлением. (второй _ttp://habrahabr.ru/post/202654/)
ikhtd
Адепт
 
Сообщения: 1124
Зарегистрирован: 24 мар 2014, 12:20

Re: Мастерсервер на SignalR?

Сообщение [COAD] H00JAMBRA 07 янв 2018, 16:02

50k в моем понимании это 50 000)) если не прав то простите.
Игра на google play и itunes суммарно сейчас около 100к активных игроков и это число растет.
Аватара пользователя
[COAD] H00JAMBRA
UNец
 
Сообщения: 46
Зарегистрирован: 09 июл 2017, 13:51

Re: Мастерсервер на SignalR?

Сообщение ikhtd 07 янв 2018, 19:16

Проблема в том, что все кто писал в этой ветке подумали, что речь идет о 50 000 онлайна (оно же CCU), то есть 50 000 одновременно играющих игроков. Поэтому Вольф сказал что у него максимально было 3 000 онлайна
А 50 000 установок (всего игроков) это совсем другой параметр, довольно реалистичный и хороший для гугл плей. Думаю вам сервака на 100 онлайна (ССU) хватит. А вы говорите у вас есть на 200 ССU unet. Так проблемы нет. вам хватит и фотона на 100 ccu, а он стоит 100 баксов не в месяц, а пожизненно. один раз плаптиш 100 баксов и имееш рабочий сервак на 100 в течении 5 лет.
Для инфы анноун батлграунд имеют 3 млн CCU. это больше чем последний гта.
Скрытый текст:
Объективная реальность это - что в жизни не может быть более одного пути, который в свою очередь обусловлен максимальным существующим давлением. (второй _ttp://habrahabr.ru/post/202654/)
ikhtd
Адепт
 
Сообщения: 1124
Зарегистрирован: 24 мар 2014, 12:20

След.

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

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

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