LINUX.ORG.RU
ФорумTalks

Вопрос сетевым спецам. UDP vs TCP в MMORPG/MMOFPS.


0

0

Продолжение темы про 3D-мир :)

Упрощённо задача стоит такая. Есть тысяча соединений, взаимодействующих с большим игровым миром.

Нужно минимизировать время отклика, не повышая загрузку сервера.

Классическое решение, применяемое всюду - это TCP.

geek говорит о более эффективной реализации задачи через UDP.

По скорости - согласен.

Проблема в том, что в моём представлении основная часть игровых команд требует подтверждения о передаче. С TCP это гарантируется. С UDP придётся отсылать подтверждение о получении. Т.е. с одной стороны клиент (при отсутствии ошибок) быстрее получит пакет и начнёт действовать, с другой - серверу придётся помнить об этом пакете (в то время, как TCP-пакет просто тупо будет отправлен и забыт), при отсутствии подтверждения через заданное время перепосылать его или предпринимать какие-то действия и т.п.

Плюс к этому за счёт пакетов подтверждения возрастает трафик.

Ваши соображения? Кто-то на практике с этим вопросом сталкивался?

★★★★★
Ответ на: комментарий от geek

Что мне делать, если у меня _клиент_ с серым IP? Вот в моём конкретном случае. Пример кода смотри выше.

>Для клиента секс с пробросом портов не нужен.

Пример - выше. Сервер получает данные от клиента, клиент от сервера не получает ничего.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

>Что мне делать, если у меня _клиент_ с серым IP? Вот в моём конкретном случае. Пример кода смотри выше.

ничего. Я же вывод кинул - работает. Если специально на роутере где-нить не запретить.

может схемку нарисуешь? А то может я неправильно понимаю что

geek ★★★
()
Ответ на: комментарий от geek

>ничего. Я же вывод кинул - работает. [...] А то может я неправильно понимаю что

Да, ИМХО не понимаешь.

Ты у себя UDP завернул снаружи свою машину или нет?

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

>Ты у себя UDP завернул снаружи свою машину или нет?

нет

geek ★★★
()

а ещё с UDP геморно через проксю играть, особенно если клиент сам проксю не держит... TCP проксификаторов полно, а вот чтобы с UDP работали начинается гемор....

DemonZLa
()
Ответ на: комментарий от DemonZLa

>а ещё с UDP геморно через проксю играть, особенно если клиент сам проксю не держит... TCP проксификаторов полно, а вот чтобы с UDP работали начинается гемор....

соксификаторы умеют и udp и tcp. Ы? И вообще, можно себе яйца дверью прищемить а потом орать что двери - суксь

geek ★★★
()

Хмм.. мне как-то боязно за будущее проекта стало после таких вопросов от разработчиков.. =/

ничего личного.

anonymous
()
Ответ на: комментарий от anonymous

>Хмм.. мне как-то боязно за будущее проекта стало после таких вопросов от разработчиков.. =/

геймдизайнер и не обязан разбираться в таких тонкостях :)

geek ★★★
()
Ответ на: комментарий от KRoN73

> Потому что, если я правильно понял отзывы людей в этом топике, для успешного функционирования UDP требуется тоннель для него с внешнего сервера на внутренний.

Ты правильно понял отзывы, но эти люди гонят.

mutronix ★★★★
()
Ответ на: комментарий от geek

>геймдизайнер и не обязан разбираться в таких тонкостях :)

1. А как тогда называть _настоящие_ тонкости. Это боян.

2. В команде, видимо, нет человека, который смог бы ответить на вопрос автора.

3. Автор, на сколько мне известно, является одним из разработчиков какого-то линеечного сервера (если я ничего не путаю). Незнание таких простых вещей говорит о многом.

4. Я убежден, что он намеревается принимать непосредственное участие в разработке, в т.ч. и в этой части. %)

5. Как же "они" собираются решать _настоящие_ вопросы, которые обязательно возникнут в проекте такого масштаба.

6. Имхо не очень серьезно.

7. Дискуссию, по традиции не читал. Начал с последнего поста.

8. Всяческих добрых пожеланий проекту и автору в частности. Ничего личного.

9. Главное чтобы силенок хватило.

10. мморпг (и прочее ммо) - зло. Кончаю.

anonymous
()
Ответ на: комментарий от DemonZLa

> у меня соображения что с UDP читерствовать проще....

Абсолютно беспочвенное соображение.

mutronix ★★★★
()
Ответ на: комментарий от geek

>вообще-то он в предыдущем топике написал, что собирает команду и советы по делу.

Ну немного, конечно, смегчает вину.. Но все же такие вопросы не позволительны для практикующего разработчика серверной части мморпг. %)

anonymous
()
Ответ на: комментарий от KRoN73

> Значит, сеть у него своя. Ибо L2 - на TCP :)

AFAIK, там тайм-аут для соединения составляет 5-6 секунд.

mutronix ★★★★
()
Ответ на: комментарий от anonymous

>Но все же такие вопросы не позволительны для практикующего разработчика серверной части мморпг. %)

оснований бросить проект сразу недостаточно =)

geek ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.