Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Холивар TCP vs UDP для MMO Добавлено: 02.01.13 16:17  

Автор вопроса:  Programmer
Для игр советуют использовать UDP.
Например, здесь можно почитать
http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/

Но у меня есть серьезные сомнения по поводу необходимости UDP в MMO.

То, что написано по ссылке выше, верно только в том случае, если удаленная сторона "спамит" пакетами. Тогда потеря одного пакета действительно не является проблемой. Это подойдет для небольших игр по локальной сети.

Но для MMO в любом случае:
1. Пакеты будут складироваться в очередь, так же как и в TCP, иначе один клиент может так нагрузить сервер, что больше 100 игроков он не потянет.
2. Используются оптимизация трафика, например, при перемещении объекта его координаты ни в коем случае не будут "спамиться". Отправка происходит только в случае, когда траектория отличается от предсказываемой.
Из этого происходит следующий пункт.
3. Важен каждый пакет, а также их порядок.
Результат: использование нагромождений вроде rUDP (reliable udp) теоретически должны работать хуже TCP, так как реализуют ту же функциональность, но работают на уровне приложения, а не драйвера.

Т.е. получается, что UDP подойдет только для мелких игр в локальной сети, но не для чего-то масштабного.

С другой стороны, если потеряется "важный" пакет с информацией от одного игрового объекта, то все остальные объекту будут ожидать получения данных для этого первого объекта.

С третьей стороны, на MMO сервере в любом случае используется буферизация отправляемых данных для уменьшения нагрузки. Следовательно, пакеты объединяются в один большой "суперпакет", так что если он потеряется по дороге, то не придет информация для всех объектов, а не только одного, так что полное ожидание будет правомерным.

MMO сервер должен держать 2к+ игроков без особых проблем. И если все они будут спамить UDP...

А что думаете вы?

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #1
Добавлено: 03.01.13 03:12
Писал вот: http://vbnet.ru/forum/show.aspx?id=218091
использовал TCP и только. точность передачи, на мой взгляд, важнее сомнительного выигрыша в скорости.

Ответить

Номер ответа: 2
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #2
Добавлено: 03.01.13 18:53
Помнится uTorrent не так давно ругали за протокол utp, в котором они по сути реализовали tcp поверх udp:)

Ответить

Номер ответа: 3
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #3
Добавлено: 04.01.13 02:39
За что ругали? Трафик поднимает?

Ответить

Номер ответа: 4
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #4
Добавлено: 04.01.13 02:57
DNS на UDP по-моему, да и вся телефония должна бы быть..
это ж школьный ABC - что в каком случае юзать =)

Ответить

Номер ответа: 5
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #5
Добавлено: 04.01.13 17:49
AWP, кажется на хабре читал. некоторым пришлось блочить протокол из-за внезапно возросшей нагрузки на канал.

Ответить

Номер ответа: 6
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #6
Добавлено: 06.01.13 00:32
Winand
Мне кажется, что такое может быть если у тебя сеть - г. Я недавно тестил у своего провайдера с IP на IP пересылал - ни одной потери пакета не было. А вот у друга на другом про-ре дофига.
Может есть смысл какой-нить гибрид сделать, чтобы протокол менялся в зависимости от потерь?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам