Можно ли использовать DDS через Интернет в онлайн-играх?
Мне было интересно, можно ли использовать DDS через Интернет и будет ли это хорошим выбором для онлайн-игр.
На веб-сайте RTI я видел, что они поддерживают WAN, но означает ли это, что я могу подписаться на тему от другого участника, находящегося на другом конце света?
Что случилось бы с гарантиями QoS, если бы это было так?
Спасибо.
2 ответа
Отказ от ответственности: я работаю над OpenDDS на постоянной основе, но не имею опыта программирования сетевых игр.
DDS с подключением к Интернету может использоваться для подключения игровых клиентов. Я не могу ответить на данный момент без конкретной информации, хорошая ли это идея, но часть QoS - хороший вопрос. В OpenDDS, насколько мне известно, мы стараемся придерживаться QoS, определенного пользователем, как если бы это было обычное соединение RTPS. Это означает, что использование его через Интернет может потребовать некоторой настройки QoS в зависимости от того, какое QoS вы хотите использовать. Например, если предельный срок QoS использовался в локальной сети, период времени, возможно, придется уменьшить, учитывая большую задержку в Интернете.
Для OpenDDS RTPS с подключением к Интернету описан в главе 15 Руководства разработчика OpenDDS: http://download.objectcomputing.com/OpenDDS/OpenDDS-latest.pdf. В дополнение к использованию ICE для преодоления NAT у нас также есть функция, называемая RTPS Relay, для включения соединений, когда клиент не может использовать ICE.
Я не знаком с конкретными возможностями RTI Connext, но, насколько мне известно, они похожи в том, что они также используют ICE. Также следует отметить, что RTPS с подключением к Интернету не стандартизирован, поэтому Connext и OpenDDS не смогут общаться через WAN.
OpenDDS подходит только для игр в очень ограниченных средах из-за требований к пропускной способности. Если все пользователи находятся в одной локальной сети, то подход многоадресной рассылки UDP, который использует RTPS, будет эффективен для архитектуры одноранговой игры. Однако, если добавляются удаленные пользователи, то требование того, чтобы каждый одноранговый узел отправлял каждое обновление напрямую каждому другому одноранговому узлу, очень быстро увеличил требования к пропускной способности.
Учитывая, что ретранслятор RTPS уже является другим приложением, которое необходимо запустить, игровой сервер, который сопоставляет обновления от одноранговых узлов и отправляет состояние мира, будет гораздо более эффективным в случаях, когда не все пользователи находятся в одном сегменте локальной сети.