При хостинг поддержке Интернет-сообщества VBIOS CS-Mapping.com.ua
Вернуться   CS-Mapping.com.ua > Forum > Разработка игр > Xash3D Engine
Ник
Пароль
Регистрация Правила форума FAQ Пользователи Администрация Календарь Поиск За 24 часа Пометить все разделы прочитанными

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.01.2019, 16:25  #801
mittorn
mittorn
Полковник
Регистрация: 22.04.2010
Сообщения: 1,221


По умолчанию

2 Дядя Миша:
админы серверов войну и мир в motd пихают.
valve тоже - у них там в motd на дефолтном сервере cs 1.6 веб-страница довольно крупная.
А чего говорить о всяких amxx модулях...
mittorn вне форума Ответить с цитированием
Старый 29.01.2019, 16:30  #802
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

2 mittorn: ну так бы и сказал Motd, а то - чят.
Да ты можешь обратно фргаментацию включить в net_ws, так-то она рабочая.
Дядя Миша вне форума Ответить с цитированием
Старый 29.01.2019, 17:29  #803
mittorn
mittorn
Полковник
Регистрация: 22.04.2010
Сообщения: 1,221


По умолчанию

Я сейчас думаю, можно ли без неё обойтись
Сначала мы набираем огромный пакет из reliable и unreliable данных, (даже если знаем что больше лимита нельзя). reliable часть фрагментируется и не превышает этот лимит (ну по крайней мере можно так сделать правкой пары строк)
unreliable же всё равно приклеивается сверх лимита
unreliable имеет одно свойство - она актуальна только в текущий кадр. по идее если она потерялась - игра должна продолжаться (на деле без unreliable на клиенте не рисуется карта - не знаю, так должно быть или нет), но если терять некоторые unreliable в течение игры, всё нормально.
Если не отправлять unreliable часть при условии что она превосходит лимит (но лимит для reliable сделать меньше), оставив 100-200 байт, в хл всё работает нормально даже при пакетах в 600 байт. Можно даже делать разные лимиты в зависимости от того заспавнен ли клиент.
А можно ли отправлять unreliable отдельно если она не влезет в лимит? не лучше ли это будет, чем сплиттить пакеты? А netsplit если и делать, то только для unreliable части
Разумеется если роутер нормальный и лимит большой - там всегда будет место на обе части и оверхед такой подход не вызовет

mittorn, подумав, добавил 29.01.2019 в 17:35
ну и ещё можно сделать отправку дельты фрагментом после переполнения истории состояний. Правда это уже просто костыль чтобы восстановить подключение

mittorn, подумав, добавил 29.01.2019 в 17:43
2 Дядя Миша:
у меня тогда завис чят из-за reliable части - она упёрлась в лимит размера пакета и не проходила т.к она шлётся каждый пакет. А motd это то что потенциально может вызвать большие проблемы при подключении

Последний раз редактировалось mittorn, 29.01.2019 в 17:43.
mittorn вне форума Ответить с цитированием
Старый 29.01.2019, 17:44  #804
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

2 mittorn: ну дельта же не зря на 64 позиции. Какая-то часть вполне может потеряться в дороге, это нормально. Я удивляюсь где вы такие поганые роутеры набираете с этим лимитом в 600 байт на пакет. При том, что они не имеют даже аппаратной фргаментации. Я же когда-то подымал тестовый сервер и он преспокойно позволял по 64 килобайта за пакет протаскивать, причём через пол-страны. То есть тут очевидно проблема последней мили.
Дядя Миша вне форума Ответить с цитированием
Старый 29.01.2019, 18:02  #805
mittorn
mittorn
Полковник
Регистрация: 22.04.2010
Сообщения: 1,221


По умолчанию

2 Дядя Миша:
udp не фрагментируются. фрагментируются tcp. И то не на роутере, а на источнике (для этого посылаются от роутера tcpmss пакеты).
Для udp корректное поведение если пакет не нравится хоть кому-то из участников процесса маршрутизации - отбросить его. Такие дела. Ну и лимит 600 байт не на роутерах всё же. на роутерах 1400 или 1392 обычно, но этого лимита вполне хватает чтобы пришлось костылять вокруг него. Хл то работает, а моды в него не влазят.
Ну а исходя из RFC791 минимальный гарантированный размер пакета вообще 508 байт, но такое вряд ли можно где-то найти сейчас. в iodine (ip over dns) обычно 700-1100

mittorn, подумав, добавил 29.01.2019 в 18:19
cl_dlmax не учитывает загаловок нетчана видимо. потому реальный размер пакета при передаче списка на 22 больше. Учтено ли это в тестовых пакетах?

mittorn, подумав, добавил 29.01.2019 в 18:26
если unreliable не отправлять на переполненном пакете, получится, что reliable придёт с неактуальной дельтой. то есть велик шанс получить сломанные лучи, звуки и темпентити, отправленные как reliable. Насколько это серьёзно? в таком случае split оправдан или в модах все зависящие от ентитей эффекты всё же как unreliable шлются?

Последний раз редактировалось mittorn, 29.01.2019 в 18:26.
mittorn вне форума Ответить с цитированием
Старый 29.01.2019, 20:57  #806
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

[ Цитата ] udp не фрагментируются.
Фргаментироваются. Вот эта хрень в net_ws с хидером секвенции - это одна из программных реализаций аппаратной фргаментации. Она полностью прозрачная, но её походу щас редко используют.
[ Цитата ] reliable придёт с неактуальной дельтой
Насколько неактуальной? Ну включи фейклаг и посмотри насколько это критично. До 5-8 потерянных пакетов поидее почти не ощущаются.
Дядя Миша вне форума Ответить с цитированием
Старый 29.01.2019, 21:31  #807
mittorn
mittorn
Полковник
Регистрация: 22.04.2010
Сообщения: 1,221


По умолчанию

2 Дядя Миша:
неактуальной на 1-2 кадра.
пример: спавним ентитю и тут же лепим луч к ней. в случае со сплитом всё нормально - луч появится на клиенте в том же кадре что и ентитя. В случае если отделить, луч может прийти с reliable, а дельта задержаться, в итоге пока дельта не дойдёт будет невалидное состояние.

mittorn, подумав, добавил 29.01.2019 в 21:44
думал, откуда же берётся 22
А тут HEADER_BYTES неправильный, надо так:
Код:
// Packet header is:
//  4 bytes of outgoing seq
//  4 bytes of incoming seq
//  and for each stream
// {
//  byte (on/off)
//  int (fragment id)
//  int (startpos)
//  int (length)
// }
#define HEADER_BYTES		( 8 + MAX_STREAMS * 13 )
22 выдавало в случае 8 + 13 + 1 т.к файловый поток пустой и там просто 0

Последний раз редактировалось mittorn, 29.01.2019 в 21:44.
mittorn вне форума Ответить с цитированием
Старый 29.01.2019, 22:12  #808
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

2 mittorn: да, я совсем про это забыл.

Дядя Миша, подумав, добавил 29.01.2019 в 22:15
А за лучи смысл беспокоится? Они же к оригину эдикта цепляются.

Последний раз редактировалось Дядя Миша, 29.01.2019 в 22:15.
Дядя Миша вне форума Ответить с цитированием
Старый 30.01.2019, 08:20  #809
mittorn
mittorn
Полковник
Регистрация: 22.04.2010
Сообщения: 1,221


По умолчанию

2 Дядя Миша:
ну, тогда есть смысл сделать сейчас опционально вынос unreliable в отдельный пакет. каким-нибудь userinfo флагом. А когда игроки наберутся посмотреть что будет, если включить/выключить его. Я сейчас добавляю подобные опции для тюнинга сети
Пока что привязал размер сплита к cl_dlmax (предполагается, что если он ставится в некоторое значение, значит больше сеть не пропустит) и сделал параметр для задания лимита, после которого отбрасывается unreliable. А в игре уменьшил размер фрагментации в 2 раза, чтобы всегда оставалась часть под unreliable (однако можно указать размер фрагмента в игре через cl_frmax).
Фрагментирование reliable включается если reliable + unreliable превышает размер сплита
Думаю, такое будет корректнее

Последний раз редактировалось mittorn, 30.01.2019 в 08:29.
mittorn вне форума Ответить с цитированием
Старый 02.02.2019, 00:20  #810
mittorn
mittorn
Полковник
Регистрация: 22.04.2010
Сообщения: 1,221


По умолчанию

прикрутил http клиент, немного порефакторив его. Теперь код меньше похож на кашу и можно качать хоть все файлы одновременно. сделал по дефолту лимит в 4 параллельных скачивания.
mittorn вне форума Ответить с цитированием
Старый 02.02.2019, 13:29  #811
mittorn
mittorn
Полковник
Регистрация: 22.04.2010
Сообщения: 1,221


По умолчанию

возможно, ztmp не совсем корректно для сжатых lzss файлов. Если в сорсе ztmp используется под lzss, то в голдсорсе там bz2 (видимо, сжатие к голдсорсу прикостыляли уже потом)
при этом в сорсе bz2 имеет расширение bz2
Ну и схема именования с заменой расширений как я понимаю приведёт к невозможности скачивания 2 файлов с разными расширениями (а некоторые вместе с картами распространяют какой-нибудь nav файл для ботов).
Может сделать расширение .lzss чтобы не было коллизий?
Я правда не знаю точно, действительно ли ztmp не использовался в GS под lzss, может и было в каких-то версиях. К сожалению я в те времена не админил сервера, а только играл, но вообще я не помню, чтобы в старой халфе года 2005 где-либо были ztmp, потому мне кажется, что они появились либо с 48 протоколом, либо с портом на linux.
mittorn вне форума Ответить с цитированием
Старый 02.02.2019, 15:14  #812
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

2 mittorn: добавляй новое расширение вслед за старым.
Дядя Миша вне форума Ответить с цитированием
Старый 02.02.2019, 18:12  #813
Ku2zoff
Ku2zoff
Старший сержант
Регистрация: 12.08.2010
Возраст: 29
Сообщения: 312


По умолчанию

[ Цитата ] Сообщение от mittorn: К сожалению я в те времена не админил сервера, а только играл, но вообще я не помню, чтобы в старой халфе года 2005 где-либо были ztmp, потому мне кажется, что они появились либо с 48 протоколом, либо с портом на linux.
Файлы с расширением ztmp уже точно были в билде 2603 от октября 2003 года. Так что ни порт, ни новый протокол тут ни при чём. А вот как они сжимались тогда, и сжимаются сейчас, я хз.

Ku2zoff, подумав, добавил 02.02.2019 в 18:15
Ап: поглядел севензипом, в 2603 формат сжатия bzip2. И у новых билдов тоже самое. Похоже, lzss только в сорсе.

Последний раз редактировалось Ku2zoff, 02.02.2019 в 18:15.
Ku2zoff вне форума Ответить с цитированием
Старый 03.02.2019, 00:04  #814
mittorn
mittorn
Полковник
Регистрация: 22.04.2010
Сообщения: 1,221


По умолчанию

2 Ku2zoff:
ну да. потому корректнее будет назвать по типу crossfire.bsp.lzss (по аналогии с crossfire.bsp.ztmp и чтоб форматы не путать)
mittorn вне форума Ответить с цитированием
Старый 05.02.2019, 18:58  #815
Qwertyus
Qwertyus
Генерал-Майор
Регистрация: 13.08.2009
Сообщения: 1,343


По умолчанию

У меня до сих пор нормально не запустилась ни одна версия newengine с тем menu.dll, который идёт в комплекте у автобилдов. Интерфейс просто не грузится, только консоль.
Qwertyus вне форума Ответить с цитированием
Старый 05.02.2019, 19:08  #816
mittorn
mittorn
Полковник
Регистрация: 22.04.2010
Сообщения: 1,221


По умолчанию

2 Qwertyus:
Ещё ничего не делали с меню. Скорее всего под винду оно собираеься нерабочее
mittorn вне форума Ответить с цитированием
Старый 05.02.2019, 20:00  #817
a1batross
a1batross
Umu~!
Регистрация: 06.01.2015
Адрес: Москва
Возраст: 22
Сообщения: 669


По умолчанию

2 mittorn:
оно собирается рабочее, только хотет несколько MinGW-шных дллок.
a1batross вне форума Ответить с цитированием
Старый 05.02.2019, 20:18  #818
mittorn
mittorn
Полковник
Регистрация: 22.04.2010
Сообщения: 1,221


По умолчанию

2 a1batross:
хочет mingwшных дллок - значит нерабочее, их нет в системе. тут резонно всё статиком линковать - линковщик возьмёт только нужное.
mittorn вне форума Ответить с цитированием
Старый 05.02.2019, 20:24  #819
Дядя Миша
Дядя Миша
Регистрация: 28.03.2010
Адрес: Кубань
Сообщения: 15,383


По умолчанию

2 a1batross: так што там с протоколом-то?
Дядя Миша вне форума Ответить с цитированием
Старый 05.02.2019, 20:26  #820
mittorn
mittorn
Полковник
Регистрация: 22.04.2010
Сообщения: 1,221


По умолчанию

2 Дядя Миша:
да сказали же, что всё нормально, просто в старой версии был баг из-за которого сравнивали протоколы криво
mittorn вне форума Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 00:25.


Designed by FT-502, [email protected] Originally by Ulric Spaak
Hosted by: VBIOS.COM, Powered by: vBulletin
copyright © 2002 - 2020 by CS-Mapping.com.ua Community