| 
	
		
		
			| Сетевая библиотека вместе! |  |  |  | 
| drcrack | Дата: Вторник, 06 Ноября 2018, 21:50 | Сообщение # 21 |  | старожил Сейчас нет на сайте | Цитата  Так я и говорю, используйте udp для передачи данных (файлы, видео, аудио), для игр подойдет и tcp. У нормально написанной игры, на одного пользователя приходится мало трафика). И это аргумент. Давай проще так - ты сервер на UDP скинь, я замерию против своего TCP на работе нагружу их по несколько тысяч пользователей, будут просто передавать несколько строк друг другу, и посмотрим какая производительность будет и сравним так сказать... Кстати, ребят кому грамотная проверка на нагрузку нужна - обращайтесь. Загружу ваш сервак 10+к пользователями, отчеты заскриню))))причем здесь загрузка вообще?
  речь о задержке и лагах вызванных потерями во всех современных сетевых играх используется udp (за исключением разве что пошаговых и браузерных), ты либо тролль, либо тебе стоит немного матчасть подучить.
 
 
 Сообщение отредактировал drcrack - Вторник, 06 Ноября 2018, 21:50 |  |  |  |  |  | 
| programMain | Дата: Вторник, 06 Ноября 2018, 22:17 | Сообщение # 22 |  |   частый гость Сейчас нет на сайте | Цитата drcrack (  )  причем здесь загрузка вообще? речь о задержке и лагах вызванных потерямиво всех современных сетевых играх используется udp (за исключением разве что пошаговых и браузерных), ты либо тролль, либо тебе стоит немного матчасть подучить.
 
Слушай, ты по-моему думаешь что много знаешь... Посмотрим на WOW и порты и протоколы по которому он общается и для чего:
 TCP 1119 – Соединение с серверами battle.net и серверами World of Warcraft
 
 TCP 3724 – Соединение серверами World of Warcraft, а также Blizzard Downloader
 
 TCP 6881–6999 — Blizzard Downloader
 
 UDP 3724 – голосовой чат игры World of Warcraft
 
 TCP 1120 – Соединение с серверами battle.net и серверами World of Warcraft
 
 И как мы видим, UDP только для голосовых чатов, даже качают через TCP файлы... Умник...
 |  |  |  |  |  | 
| drcrack | Дата: Вторник, 06 Ноября 2018, 22:37 | Сообщение # 23 |  | старожил Сейчас нет на сайте | wow во-первых tab-targeted и достаточно медленный, во-вторых все негативные последствия этого tcp очень сильно ощущаются на плохом соединении и никого не радуют, в-третьих он начал разрабатываться на движке warcraft 3 в 1998 году и относить его к современным играм несколько странно 
 возьми лучше любой популярный шутер типо csgo/pubg/fortnite или даже мобу lol/dota2/hots и удивись
 |  |  |  |  |  | 
| programMain | Дата: Вторник, 06 Ноября 2018, 23:40 | Сообщение # 24 |  |   частый гость Сейчас нет на сайте | Ты думаешь о чем ты говоришь? Смотри, я сказал что UDP это хорошо, но использовать правильно TCP начинающим разработчикам - его полностью хватит. Самые крутые игры от того же близард используют и TCP и UDP. И я не знаю откуда ты берешь свои источники... Но вот тебе список используемых портов TCP и UDP для всех игр близард, взято с их официального сайта. А ты за место того что бы умничать, и тыкать мне на понижение репутации признал бы, что по протоколу TCP тоже работают игры, причем все, причем непосредственно в игровом процессе.... 
 приложение Battle.net от Blizzard	TCP - 80, 443, 1119 UDP -	80, 443, 1119
 Голосовой чат Blizzard	TCP - 80, 443, 1119	UDP - 3478-3479, 5060, 5062, 6250, 12000-64000
 Blizzard Downloader	TCP - 1119, 1120, 3724, 4000, 6112, 6113, 6114	UDP - 1119, 1120, 3724, 4000, 6112, 6113, 6114
 Diablo	TCP -6112-6119	UDP - 6112-6119
 Diablo II	TCP - 6112 и 4000	UDP - отсутствует
 Diablo III	TCP - 80, 1119	UDP - 1119, 6120
 Hearthstone	TCP - 1119, 3724	UDP - 1119, 3724
 Heroes of the Storm	TCP - 80, 443, 1119-1120, 3724, 6113	UDP - 80, 1119-1120, 3478-3479, 3724, 5060, 5062, 6113, 6250, 12000-64000
 Overwatch	TCP - 1119, 3724, 6113, 80	UDP - 3478-3479, 5060, 5062, 6250, 12000-64000
 StarCraft	TCP -6112	UDP - 6112
 StarCraft II 	TCP - 1119, 6113, 1120, 80, 3724	UDP - 1119, 6113, 1120, 80, 3724
 Warcraft II Battle.net Edition	TCP -6112-6119	UDP-6112-6119
 Warcraft III	TCP-6112 (по умолчанию) и 6113-6119	UDP-отсутствует
 World of Warcraft	уже писал
 Call of Duty - Black Ops 4	TCP - 443, 3074	UDP - 443, 3074
 
 Так что хватит говорить ерунду, что TCP в играх не используется... Используется, причем везде....
 Добавлено (07 Ноября 2018, 00:00)---------------------------------------------
 Хочу заметить, что в некоторых играх они вообще от UDP отказались...
 |  |  |  |  |  | 
| qazer | Дата: Среда, 07 Ноября 2018, 11:41 | Сообщение # 25 |  |   Borey Games Сейчас нет на сайте | programMain, https://gafferongames.com/post/udp_vs_tcp/
 Вот тебе аргументы, почему не стоит использовать TCP при отправке критичных ко времени данных.
 
 Никто не говорит, что использовать TCP - плохая идея. Тебе пытаются объяснить, что все подходит для своих задач.
 
 Все что касается соединения с веб-сервисами - всякие загрузчики, приложение Battle.net и т.д. - понятно почему используется TCP. Понятно, что в лобби игр может использоваться TCP. В медленных играх используют TCP как основной транспортный протокол. В самом геймплее TCP может использоваться для отправки незначительных данных о состоянии игрока на внешние сервисы, статистики и т.д.
 
 НО! Стоит смотреть не на порты которые открыты, а на траффик который через них идет. Положение персонажа в играх с быстрым темпом игры(шутерах например) не будет идти по TCP. Куча других данных, для которых важно, чтобы они были доставлены максимально быстро не будут идти по TCP в реалтайм играх.
 
 p.s.Что касается WoW - она действительно достаточно медленная. Если в игре нормально будет ощущаться задержка в 3-5 RTT, значит тебе подходит TCP. В Wow при пинге 100 из-за TCP и переотправки данных могут происходит задержки до 300-500ms, тогда все забавно подвисает, каст заклинания останавливается. Особенно заметно это бывает по вечерам и со стремным провайдером, когда толпа народу смотрит видосики на ютубе. Но как не странно, даже с такими пиками жить в Wow можно, даже в PvP. В Overwatch такой трюк не пройдет. Такие задержки, даже кратковременные - вызывают неистовое жжение нижней точки, когда из-за них тебя убивают в самый неподходящий момент.
 
 Добавлено (07 Ноября 2018, 12:21)
 ---------------------------------------------
 Кстати, прекрасная статья, об анализе траффика в WoW.
 http://citeseerx.ist.psu.edu/viewdoc....ype=pdf
 Это не бездумное использование протокола, там есть оптимизации: они в большинство пакетов ставят флаги PSH, ACK, собирают маленькие чанки данных в один большой перед отправкой, чтобы избежать оверхеда, подтверждают доставку пакета не сразу, а позже для большой пачки пакетов.
 И не факт, что если для них это подошло, это подойдет и для твоей игры. А даже если подойдет, то не факт, что сможешь так все подогнать, чтобы хорошо игралось и ощущалось - т.е. брать TCP Только потому что "все реализовано" и "проще" - путь в никуда.
 
 Но, если ты начинающий разработчик и не собираешься писать убийцу овервотч, то да, тебе, возможно, хватит TCP. Да даже для шутера, если в него будут играть только по локальной сети, TCP может хватить. Но если ты разрабатываешь полноценную мультиплеерную игру на большое количество игроков, то тут далеко уже не факт по причинам выше.
 
 
 Сообщение отредактировал qazer - Среда, 07 Ноября 2018, 12:47 |  |  |  |  |  | 
| Эргалон | Дата: Среда, 07 Ноября 2018, 13:00 | Сообщение # 26 |  |   Вездесущий Сейчас нет на сайте | programMain, в лс написал 
 Кубариум
 Rise of the dark lords
 |  |  |  |  |  | 
| programMain | Дата: Среда, 07 Ноября 2018, 15:42 | Сообщение # 27 |  |   частый гость Сейчас нет на сайте | Цитата qazer (  )  programMain,https://gafferongames.com/post/udp_vs_tcp/
 Вот тебе аргументы, почему не стоит использовать TCP при отправке критичных ко времени данных.
 
 Никто не говорит, что использовать TCP - плохая идея. Тебе пытаются объяснить, что все подходит для своих задач.
 
 Все что касается соединения с веб-сервисами - всякие загрузчики, приложение Battle.net и т.д. - понятно почему используется TCP. Понятно, что в лобби игр может использоваться TCP. В медленных играх используют TCP как основной транспортный протокол. В самом геймплее TCP может использоваться для отправки незначительных данных о состоянии игрока на внешние сервисы, статистики и т.д.
 
 НО! Стоит смотреть не на порты которые открыты, а на траффик который через них идет. Положение персонажа в играх с быстрым темпом игры(шутерах например) не будет идти по TCP. Куча других данных, для которых важно, чтобы они были доставлены максимально быстро не будут идти по TCP в реалтайм играх.
 
 p.s.Что касается WoW - она действительно достаточно медленная. Если в игре нормально будет ощущаться задержка в 3-5 RTT, значит тебе подходит TCP. В Wow при пинге 100 из-за TCP и переотправки данных могут происходит задержки до 300-500ms, тогда все забавно подвисает, каст заклинания останавливается. Особенно заметно это бывает по вечерам и со стремным провайдером, когда толпа народу смотрит видосики на ютубе. Но как не странно, даже с такими пиками жить в Wow можно, даже в PvP. В Overwatch такой трюк не пройдет. Такие задержки, даже кратковременные - вызывают неистовое жжение нижней точки, когда из-за них тебя убивают в самый неподходящий момент.
Я это и пытаюсь сказать уже чертову тучу времени... Я писал пиратский сервак для WOW, я знаю что там и как идет). Скажу так, я советую начинающим использовать TCP, в реальных (больших) проектах используют два протокола, хочешь передать данные которые надо защитить, используй TCP, надо просто пульнуть информацией, используй UDP. Но если ты только начинаешь собирать игру, начни с TCP. В процессе если ты видишь, что необходимо ускорить процесс (часто это отпадает при рефакторинге кода), то поставь в той части UDP. Но не нужно использовать везде UDP - потому что "я думаю, что так нужно".
 Добавлено (07 Ноября 2018, 15:50)---------------------------------------------
 Ребят, предложение на тест сервака до сих пор актуальна, если кому то нужно по-боевому нагрузить свои серваки - пишите в лс)))
 |  |  |  |  |  
 |