Страница 1 из 1
Реализация серверной части в MMO играх.
Добавлено: 08 дек 2012, 18:47
KamiSempai
Задумался о том как организована работа серверов онлайновых игр, таких как WoW, Lineage 2 или WoT. Сейчас более интересно знать как организован обмен данными с клиентом и сервером.
Логично предположить использование VPN соединения. Для каждого пользователя создается отдельное соединение и через него принимаются все команды. Но вот как работает передача данных от сервера клиенту? Передавать каждому отдельные данные по тому же соединению потребуют больших затрат. Есть еще WAN и в этом случае не нужно передавать информацию каждому отдельно, но есть шанс потри данных. А это может оказаться критичным, например, в том случае когда клиент пропустит информацию о том, что противник убит и будет продолжать лупить негодяя и удивляться, что же он не дохнет.
Может быть есть еще какой-то альтернативный способ передачи данных?
Хотелось бы узнать ваше мнение по этому вопросу. Может кто то уже знает как все это работает.
Re: Реализация серверной части в MMO играх.
Добавлено: 08 дек 2012, 18:59
neoksi
К примеру мой знакомый написал сервер по Lineage 2 на чистой Java, чему я был искренне удивлен

.
Никаких VPN не нужно тут, все реализуется на уровне сокетов. Есть сервер, к которому подключаются все клиенты и постоянно его беднягу бомбардируют пакетами, на которые он отправляет ответы. Детальная реализация зависит от конкретных задач.
http://ru.wikipedia.org/wiki/%D0%A1%D0% ... 9%D1%81%29
Re: Реализация серверной части в MMO играх.
Добавлено: 08 дек 2012, 19:08
rezak90
Думаю стоит копать в сторону синхронизации, меж процессорного взаимодействия.
Вот кстати неплохой материалчик
http://pdf.aminer.org/000/512/826/a_dis ... mmorpg.pdf
Re: Реализация серверной части в MMO играх.
Добавлено: 08 дек 2012, 19:52
KamiSempai
neoksi писал(а):К примеру мой знакомый написал сервер по Lineage 2 на чистой Java, чему я был искренне удивлен

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

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