Задумался о том как организована работа серверов онлайновых игр, таких как WoW, Lineage 2 или WoT. Сейчас более интересно знать как организован обмен данными с клиентом и сервером.
Логично предположить использование VPN соединения. Для каждого пользователя создается отдельное соединение и через него принимаются все команды. Но вот как работает передача данных от сервера клиенту? Передавать каждому отдельные данные по тому же соединению потребуют больших затрат. Есть еще WAN и в этом случае не нужно передавать информацию каждому отдельно, но есть шанс потри данных. А это может оказаться критичным, например, в том случае когда клиент пропустит информацию о том, что противник убит и будет продолжать лупить негодяя и удивляться, что же он не дохнет.
Может быть есть еще какой-то альтернативный способ передачи данных?
Хотелось бы узнать ваше мнение по этому вопросу. Может кто то уже знает как все это работает.
Реализация серверной части в MMO играх.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Реализация серверной части в MMO играх.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Реализация серверной части в MMO играх.
К примеру мой знакомый написал сервер по Lineage 2 на чистой Java, чему я был искренне удивлен .
Никаких VPN не нужно тут, все реализуется на уровне сокетов. Есть сервер, к которому подключаются все клиенты и постоянно его беднягу бомбардируют пакетами, на которые он отправляет ответы. Детальная реализация зависит от конкретных задач. http://ru.wikipedia.org/wiki/%D0%A1%D0% ... 9%D1%81%29
Никаких VPN не нужно тут, все реализуется на уровне сокетов. Есть сервер, к которому подключаются все клиенты и постоянно его беднягу бомбардируют пакетами, на которые он отправляет ответы. Детальная реализация зависит от конкретных задач. http://ru.wikipedia.org/wiki/%D0%A1%D0% ... 9%D1%81%29
Re: Реализация серверной части в MMO играх.
Думаю стоит копать в сторону синхронизации, меж процессорного взаимодействия.
Вот кстати неплохой материалчик http://pdf.aminer.org/000/512/826/a_dis ... mmorpg.pdf
Вот кстати неплохой материалчик http://pdf.aminer.org/000/512/826/a_dis ... mmorpg.pdf
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Реализация серверной части в MMO играх.
Я как раз собирался начать с изучения сервера для Lineage 2, но понял, что моих знаний Java не достаточно. А как он именно отвечает? Неужели сервер в подробностях передает информацию каждому клиенту, что вокруг него творится? Не должно ли это сказаться на производительности при онлайне за несколько тысяч?neoksi писал(а):К примеру мой знакомый написал сервер по Lineage 2 на чистой Java, чему я был искренне удивлен .
Никаких VPN не нужно тут, все реализуется на уровне сокетов. Есть сервер, к которому подключаются все клиенты и постоянно его беднягу бомбардируют пакетами, на которые он отправляет ответы. Детальная реализация зависит от конкретных задач. http://ru.wikipedia.org/wiki/%D0%A1%D0% ... 9%D1%81%29
Об этом нужно будет думать потом. Мне бы для начала одну комнату создать, без взаимодействия с другими. Может быть даже и не буду так далеко уходить и все ограничится игровой моделью как в танках, когда для каждой боевки создается отдельная комната.rezak90 писал(а):Думаю стоит копать в сторону синхронизации, меж процессорного взаимодействия.
Вот кстати неплохой материалчик http://pdf.aminer.org/000/512/826/a_dis ... mmorpg.pdf
Но за ссылку спасибо, нужно будет почитать как-нибудь.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Реализация серверной части в MMO играх.
Что творится, воспроизводит клиент игры, а сервер выполняет функцию агрегации чисел и данных. В основном выполняет математические функции и их результат отдает клиентам.KamiSempai писал(а):Я как раз собирался начать с изучения сервера для Lineage 2, но понял, что моих знаний Java не достаточно. А как он именно отвечает? Неужели сервер в подробностях передает информацию каждому клиенту, что вокруг него творится? Не должно ли это сказаться на производительности при онлайне за несколько тысяч?neoksi писал(а):К примеру мой знакомый написал сервер по Lineage 2 на чистой Java, чему я был искренне удивлен .
Никаких VPN не нужно тут, все реализуется на уровне сокетов. Есть сервер, к которому подключаются все клиенты и постоянно его беднягу бомбардируют пакетами, на которые он отправляет ответы. Детальная реализация зависит от конкретных задач. http://ru.wikipedia.org/wiki/%D0%A1%D0% ... 9%D1%81%29
Клиент передает координаты игрока, а сервер отдает массив данных относительно видимости матрицы игрока в пространстве или массив данных происходящего на конкретной локации. Все зависит от реализации, но это не так страшно как кажется.
Последний раз редактировалось neoksi 10 дек 2012, 00:38, всего редактировалось 1 раз.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Реализация серверной части в MMO играх.
Это я уже понял. Под словами "все вокруг" я подразумевал действия других игроков и неписей.neoksi писал(а):Что твориться, воспроизводит клиент игры, а сервер выполняет функцию агрегации чисел и данных. В основном выполняет математические функции и их результат отдает клиентам.
Клиент передает координаты игрока, а сервер отдает массив данных относительно видимости матрицы игрока в пространстве или массив данных происходящего на конкретной локации. Все зависит от реализации, но это не так страшно как кажется.
В общем, мне сейчас нужно более углубленно изучить Java, и потом браться за чтение исходников Lineage.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.