Реализация серверной части в MMO играх.

Ответить
Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Реализация серверной части в MMO играх.

Сообщение KamiSempai » 08 дек 2012, 18:47

Задумался о том как организована работа серверов онлайновых игр, таких как WoW, Lineage 2 или WoT. Сейчас более интересно знать как организован обмен данными с клиентом и сервером.
Логично предположить использование VPN соединения. Для каждого пользователя создается отдельное соединение и через него принимаются все команды. Но вот как работает передача данных от сервера клиенту? Передавать каждому отдельные данные по тому же соединению потребуют больших затрат. Есть еще WAN и в этом случае не нужно передавать информацию каждому отдельно, но есть шанс потри данных. А это может оказаться критичным, например, в том случае когда клиент пропустит информацию о том, что противник убит и будет продолжать лупить негодяя и удивляться, что же он не дохнет.
Может быть есть еще какой-то альтернативный способ передачи данных?

Хотелось бы узнать ваше мнение по этому вопросу. Может кто то уже знает как все это работает.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Реализация серверной части в MMO играх.

Сообщение neoksi » 08 дек 2012, 18:59

К примеру мой знакомый написал сервер по Lineage 2 на чистой Java, чему я был искренне удивлен ;).
Никаких VPN не нужно тут, все реализуется на уровне сокетов. Есть сервер, к которому подключаются все клиенты и постоянно его беднягу бомбардируют пакетами, на которые он отправляет ответы. Детальная реализация зависит от конкретных задач. http://ru.wikipedia.org/wiki/%D0%A1%D0% ... 9%D1%81%29

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Реализация серверной части в MMO играх.

Сообщение rezak90 » 08 дек 2012, 19:08

Думаю стоит копать в сторону синхронизации, меж процессорного взаимодействия.
Вот кстати неплохой материалчик http://pdf.aminer.org/000/512/826/a_dis ... mmorpg.pdf
R.id.team
Политика на форуме запрещена

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Реализация серверной части в MMO играх.

Сообщение KamiSempai » 08 дек 2012, 19:52

neoksi писал(а):К примеру мой знакомый написал сервер по Lineage 2 на чистой Java, чему я был искренне удивлен ;).
Никаких VPN не нужно тут, все реализуется на уровне сокетов. Есть сервер, к которому подключаются все клиенты и постоянно его беднягу бомбардируют пакетами, на которые он отправляет ответы. Детальная реализация зависит от конкретных задач. http://ru.wikipedia.org/wiki/%D0%A1%D0% ... 9%D1%81%29
Я как раз собирался начать с изучения сервера для Lineage 2, но понял, что моих знаний Java не достаточно. А как он именно отвечает? Неужели сервер в подробностях передает информацию каждому клиенту, что вокруг него творится? Не должно ли это сказаться на производительности при онлайне за несколько тысяч?
rezak90 писал(а):Думаю стоит копать в сторону синхронизации, меж процессорного взаимодействия.
Вот кстати неплохой материалчик http://pdf.aminer.org/000/512/826/a_dis ... mmorpg.pdf
Об этом нужно будет думать потом. Мне бы для начала одну комнату создать, без взаимодействия с другими. Может быть даже и не буду так далеко уходить и все ограничится игровой моделью как в танках, когда для каждой боевки создается отдельная комната.
Но за ссылку спасибо, нужно будет почитать как-нибудь.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Реализация серверной части в MMO играх.

Сообщение neoksi » 09 дек 2012, 00:21

KamiSempai писал(а):
neoksi писал(а):К примеру мой знакомый написал сервер по Lineage 2 на чистой Java, чему я был искренне удивлен ;).
Никаких VPN не нужно тут, все реализуется на уровне сокетов. Есть сервер, к которому подключаются все клиенты и постоянно его беднягу бомбардируют пакетами, на которые он отправляет ответы. Детальная реализация зависит от конкретных задач. http://ru.wikipedia.org/wiki/%D0%A1%D0% ... 9%D1%81%29
Я как раз собирался начать с изучения сервера для Lineage 2, но понял, что моих знаний Java не достаточно. А как он именно отвечает? Неужели сервер в подробностях передает информацию каждому клиенту, что вокруг него творится? Не должно ли это сказаться на производительности при онлайне за несколько тысяч?
Что творится, воспроизводит клиент игры, а сервер выполняет функцию агрегации чисел и данных. В основном выполняет математические функции и их результат отдает клиентам.

Клиент передает координаты игрока, а сервер отдает массив данных относительно видимости матрицы игрока в пространстве или массив данных происходящего на конкретной локации. Все зависит от реализации, но это не так страшно как кажется.
Последний раз редактировалось neoksi 10 дек 2012, 00:38, всего редактировалось 1 раз.

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Реализация серверной части в MMO играх.

Сообщение KamiSempai » 09 дек 2012, 21:49

neoksi писал(а):Что твориться, воспроизводит клиент игры, а сервер выполняет функцию агрегации чисел и данных. В основном выполняет математические функции и их результат отдает клиентам.

Клиент передает координаты игрока, а сервер отдает массив данных относительно видимости матрицы игрока в пространстве или массив данных происходящего на конкретной локации. Все зависит от реализации, но это не так страшно как кажется.
Это я уже понял. Под словами "все вокруг" я подразумевал действия других игроков и неписей.
В общем, мне сейчас нужно более углубленно изучить Java, и потом браться за чтение исходников Lineage.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Ответить