ПрограммированиеФорумОбщее

UDP

Страницы: 1 2 Следующая »
#0
(Правка: 14:43) 14:34, 3 апр 2026

Насколько сложно прилепить UDP к примитивному движку? Как вариант - использовать какую-то из опенсорсных библиотек.
Короче советы, предложения.  Можете разгуляться.  Но есть нюанс, как без него. 32 клиента как минимум, предпочтительно больше. И это не ММО в том смысле в котором привыкли.

#1
14:55, 3 апр 2026

В смысле, "прилепить"? UDP - очень низкий уровень работы с сетью, над ним должна быть надстройка, весьма объемная. Она уже какая-то есть? Или надо сеть с нуля делать, про которую движок до сих пор ни сном, ни духом?
Если совсем с нуля и раньше ничего подобного не делал - есть шанс за год-полтора разобраться. Там дофига всевозможных особенностей, которые учитывать надо. И нигде в одном месте они даже не перечислены.

#2
15:36, 3 апр 2026

ergorush
> Насколько сложно прилепить UDP к примитивному движку?
Легко, можно запросто во все разобраться, будет сложнее сделать шифрование и защиту, но и тут использовать готовые библиотеки.

Но лично я буду использовать свой самописный код.

#3
(Правка: 15:39) 15:37, 3 апр 2026

Zab
Есть же открытые библиотеки типа TNL, немножечко я  уж погуглил. В том числе на форуме.   
https://gamedev.ru/code/forum/?id=151456

Суть такова чтобы что-то прилепить пригодное для шутерной динамики с нормальным предикшеном, с малым трафиком типа как было в кваках или нидфорспид, трекмании. Собственно для машинок оно и надо, только не надо  предлагать юньку и анрил. А в урхе и РБФХ вроде как с сетью бяда. У старого огра вроде тоже беда. Отсюда и такие странные вопросы, ага.

#4
15:39, 3 апр 2026

ergorush
> юньку и анрил
Особенно для гонок с низким фпс, вот кайф.

#5
(Правка: 15:45) 15:43, 3 апр 2026

ergorush
Если ты цепляешь какую-то библиотеку, то при чем тут "прикрутить UDP"? UDP может внутри библиотеки и есть, но тебе нет до него никакого дела, ты не им пользуешься, а библиотекой, исключительно через ее высокоуровневые функции.

Но учитывай, что большинство библиотек весьма некачественные. Они не решают проблемы низкоуровневых апи, а только добавляют к ним собственные заморочки. Все равно придется разбираться во всем стеке сетевых инструментов.

#6
(Правка: 16:01) 15:49, 3 апр 2026

Zab
Вполне что я неверно выразил мысль, вот в этом я ничерта не смыслю, зато знаю что для шутеров UDP протокол, на этом всё. Но после комментариев наверное стало чуть понятнее, потому и советуюсь. Суть в том как прилепить сеть к наколенному движку, в котором её нет. Как вариант - использовать что-то легковесное, предельно простое без излишеств и новомодностей, это важно. Даже не исключаю что у кого-то есть заброшенные наработки.

Прям вот надо колхозный-расколхозный под ОГЛ2.1\Д3Д9 с сетью пригодной если таковой имеется.

#7
15:59, 3 апр 2026

ergorush
Рискую тебя огорчить, но если игра разрабатывалась без ориентации на сеть, сделать ее сетевой - означает заново все переделать.
В локальной сети еще можно как-то выкрутиться, там задержки незначительные и можно работать в синхронном режиме. Но через интернет так не выйдет.
Автогонки особенно чувствительны в этом плане, гораздо чувствительнее чем шутеры. Простой линейной экстраполяцией не отделаешься, а у тебя наверняка даже линейная не предусмотрена. В сингл играх об этом не думают.
И это проблемы чисто игровой логики, а не инструментов сети, у которых тоже многие десятки и сотни особенностей, которые надо учитывать.

#8
(Правка: 16:08) 16:04, 3 апр 2026

Zab
> В локальной сети еще можно как-то выкрутиться, там задержки незначительные и можно работать в синхронном режиме. Но через интернет так не выйдет.
Ну тут всё чуточку попроще. Локалка - да, плюс скажем так если охват коннектов в пределе города скорее всего тоже будет же нормально. Если уж я на своем беспроводном мог до блокировок гонять в Q3 с пингом менее 100 мс на европейских серваках без каких либо страданий, CSGO тоже - то более близкие коннекты точно ничего не будут портить.

А термин "локалка" в его прямой трактовке уже наверное отсутствует практически везде.

Цель вовсе не World Conquer&Domination)))

#9
(Правка: 16:12) 16:09, 3 апр 2026

ergorush
Ты не прав. Q3 работает асинхронно и только потому в него можно играть не в локальной сети. А вот первый-второй doom был синхронным, к интернету не приспособленным. Впрочем, тогда никакого интернета еще и не было.

"Локалка" - означает пинг 4. Не любая физически локальная сеть обеспечивает настолько низкие задержки. Если все подключено к одному роутеру - задержки будут низкими, если сегментов много - может быть всякое, особенно под управлением ms-сервера.

#10
(Правка: 16:39) 16:20, 3 апр 2026

Zab
> Ты не прав. Q3 работает асинхронн
Я не буду спорить о том в чем не понимаю. Вопрос при этом остался. Прилепить либу к вот такому [file=190225] или взять любое готовое решение из Zakroma of Rodina работающее на старых технологиях, в идеале хоть с каким-то тулсетом или пайплайном, это всё что нужно.
Кстати, зип это демка древняя одного из форумчан, securitron ей лет 20. Увы и ах, последнее его посещение 2 года назад.

#11
16:45, 3 апр 2026

Обрисую основные проблемы архитектуры движка: У тебя разные объекты моделируются на разных компах, с весьма небыстрой связью между ними. Ты не можешь знать истинное состояние объектов, моделируемых не у тебя локально, знаешь только их состояния на какое-то время назад. Скорее всего, это время будет разным для разных объектов. Надо как-то догадаться где все эти объекты сейчас, хотя бы не точно, хоть как-нибудь, чтобы глаза не резали дефекты.
Если попытаешься такую работу провернуть модификаций сингл-игры, ничего не выйдет, переделки очень серьезные нужны, может оказаться проще все выкинуть и сделать заново.
Спасти может разве что если ты делал сингл игру на каком-то чужом движке, который сеть предусматривает. Ты ее мог не использовать, но у движка в потрохах она есть и все игровые объекты строятся с ее учетом.

#12
17:24, 3 апр 2026

Zab
> Обрисую основные проблемы архитектуры движка:
Тебя уже заносит. Лекция это хорошо, но суть в другом. Можно\сложно присобачить к простенькому что приложил как пример, или может есть что-то из старого, вменяемого? Это всё что мне нужно понять. По определённым причинам даже Годот, даже старый (3.0 например) - использовать крайне нежелательно, не всё так просто. Разве что совсем древний 1.1, если там  вообще есть сеть.. полез смотреть. Хотя и он избыточен.

#13
17:45, 3 апр 2026

ergorush
> Лекция это хорошо
Я не готов прочитать полноценную лекцию по всему, что тебе потребуется. Потому как это будет где-то на тысячу печатных страниц, если не больше.
Отдельные фрагменты и замечания в целом не помогут.
Может кто-то знает хороший учебник, но мне такой не известен.

#14
(Правка: 18:18) 18:10, 3 апр 2026

Zab
> Я не готов прочитать полноценную лекцию
Я не собираюсь сам писать, бозимой. Суть вопроса в другом. Вроде русским по-белому, но ты куда0то не туда едешь. Ну давай переиначу, в буквальную буквальность. Может ли программист средней руки прицепить либу\написать своё к простенькому движку, как в примере? Или вдруг есть что-то уже готовое. Из того что нашёл (в т.ч. движки типо заточенные под такое) - избыточно до безобразия, просто 90 процентов заложенного никогда не понадобится. Вот в чём дело. Да, странный я иногда (всегда).

С синглой я уже (надеюсь) скоро закончу. Там своих рук и головы достаточно. Сейчас прощупываю почву под другую затейливую затею. Но надо понять в какую сторону копать или что-то пересматривать в заложенной концепции (не хотелось бы). Оно и первое порвет шаблон много кому, кто скрины видел из девелоперов - сказали "непривычно").

Страницы: 1 2 Следующая »
ПрограммированиеФорумОбщее