LoginServer,GameServer - структура и связь

Сеть в Unity3D

LoginServer,GameServer - структура и связь

Сообщение afrokick 21 дек 2010, 23:20

Здраствуйте.

Раньше, мой друг, показывал мне свой сервер. Он состоял из логин сервера(далее ls), chat server(далее cs) и game server(далее gs). Я раньше не знаком был с программированием, но умел ставить сервера, поэтому примерно понимал зачем это.

Однако, сейчас начал разрабатывать собственный сервер и тут возникают вопросы.

По идеи, Ls служит для проверки данных клиента(Версия игры, логин,пароль, бан и т.п.), отправки клиенту списка серверов и все. Если игрок ввел корректно данные, то олнайл аккаунта = 1,если нет =0. Т.е. ls снижает нагрузку на гс?

Далее переходим к gs. Гс - эта основа. Я примерно понимаю что сюда включается(менеджер клиентов,Менеджер мобов,нпс, проверка карты и прочее)

Ch - можно и без него... ради удобства наверное..

Если я нетак что-то понял, разъясните пожалуйста.

PS Вопросик, проверка ГЕО это проверка позиций объектов?
Аватара пользователя
afrokick
UNIт
 
Сообщения: 83
Зарегистрирован: 05 дек 2010, 23:36
Skype: alexandersosnovskiy
  • Сайт

Re: LoginServer,GameServer - структура и связь

Сообщение debuger1 20 янв 2011, 02:48

Смотри разберем Ls и Gs.
Login server - как ты уже сказал для проверки логина, пароля, бана IP и аккуанта, снижения нагрузки на гейм сервер и разделение 1 акуанта на несколько GS.
Если проходишь верификацию на LS - LS передает тебе и серверу ключь на подключение составленный из времени и отдельных компонентов.
То есть после верификации клиент получает ключь для доступа к GS и отключается от логин сервера.
Game server - да это основа игрового мира, реализация много образна и расписывать ее здесь нет смысла.
Когда клиент подключается к GS отправляет ключ данный LSом. GS просматривает базу данных и ищет ключ.Находит аккуант у которого ключ совпадает с тем который прислал клиент, проверяет время в ключе(если прошло допустим 10 минут после того как LS сформировал ключ, GS дисконектит клиента) , если верификация ключа прошла успешно Клиент и GS начинают обмениваться данными.
По крайней мере у меня такая реализация подключения.


ПС GeoData -это данные внутреннего мира для проверки: поверхности по которой передвигается игрок, припядствий, и разнях ограничений и разрешений вируального мира. чтобы игрок не проходил через стены(не факт что пользователь использует саму игру).

если ты реализуешь ММО игру то должен четко уеснить что пользователю нет доверия и все данные максимально должны быть закрыты на стороне сервера.
Аватара пользователя
debuger1
UNец
 
Сообщения: 48
Зарегистрирован: 08 мар 2010, 19:05

Re: LoginServer,GameServer - структура и связь

Сообщение BlackMamba 21 янв 2011, 17:11

debuger1 писал(а):Если проходишь верификацию на LS - LS передает тебе и серверу ключь на подключение составленный из времени и отдельных компонентов.
То есть после верификации клиент получает ключь для доступа к GS и отключается от логин сервера.
Game server - да это основа игрового мира, реализация много образна и расписывать ее здесь нет смысла.
Когда клиент подключается к GS отправляет ключ данный LSом. GS просматривает базу данных и ищет ключ.Находит аккуант у которого ключ совпадает с тем который прислал клиент, проверяет время в ключе(если прошло допустим 10 минут после того как LS сформировал ключ, GS дисконектит клиента)

вопрос для прояснения: если проверка нужна только для принудительного дисконнекта, OnPlayerDisconnected - не менее ресурсозатратно ли?
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва

Re: LoginServer,GameServer - структура и связь

Сообщение debuger1 23 янв 2011, 00:39

Не понял вопроса, но все равно отвечу.
Что ресурсоемко?
Ключ нужен не только для дисконекта по тайм ауту игрока, но и для идентефикации игрока и мире.
или для подключения к гейм серверу вы будите повторно посылать пароль? или просто запустите пользователя не идентифицированного на сервер?
Аватара пользователя
debuger1
UNец
 
Сообщения: 48
Зарегистрирован: 08 мар 2010, 19:05

Re: LoginServer,GameServer - структура и связь

Сообщение Guyver 24 янв 2011, 08:40

ой ... а вот если например логин сервер такой говорит - сейчас жди клиента с таким то айпи ... а гейм сервер такой ждёт ... например теже 10 минут. не вариант ?

лишние ключи от лукавого мне кажется.

п.с. максимум что можно, это делать некий ID коннекта ... который высылается клиенту и гейм серверу ... чтобы избежать косяков когда на 1м комне 2 окна запускается и логинится одновременно. а ваапще у учётки плеера в любом случае есть свой айди ... вот его и можно ждать.
Xcombat: 3D шутер на летающих тарелках!
Аватара пользователя
Guyver
UNIверсал
 
Сообщения: 392
Зарегистрирован: 21 июл 2010, 08:04
Откуда: Челябинск

Re: LoginServer,GameServer - структура и связь

Сообщение debuger1 24 янв 2011, 09:13

ну ты сам ответил на свой вопрос допустим 2 окна конектишь вместе как ты по IP определишь на каком окне какой аккуант.
Аватара пользователя
debuger1
UNец
 
Сообщения: 48
Зарегистрирован: 08 мар 2010, 19:05

Re: LoginServer,GameServer - структура и связь

Сообщение debuger1 24 янв 2011, 09:14

и как сервер определит какой аккуант к нему конектится ведь он будет ждать определенный айпи .
Аватара пользователя
debuger1
UNец
 
Сообщения: 48
Зарегистрирован: 08 мар 2010, 19:05

Re: LoginServer,GameServer - структура и связь

Сообщение Guyver 24 янв 2011, 19:24

ты типа из абзаца мыслей пол предложения прочитал и всё ?
Xcombat: 3D шутер на летающих тарелках!
Аватара пользователя
Guyver
UNIверсал
 
Сообщения: 392
Зарегистрирован: 21 июл 2010, 08:04
Откуда: Челябинск


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

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

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