#11
24 сентября 2008 в 12:44
Не помню сейчас подробностей, но мой паровоз технического гения въехал в следующий тупик: Сервер передаёт клиенту не сам звук, а некий условный "*звук" т.н. sexed, который ассоциируется на этапе загрузки приложения, и во всех случаях перезагрузки звуковой подсистемы. Это чёткая команда на воспроизведение звука, клиент способен воспроизвести только то, что было подгружено ранее. В Q2XP этого sexed маразма поправлено довольно много, но он остался из-за сервера. Сервер поправить реально, но тогда и клиент станет зависим от сервера. Не должен, не должен сервер долбить звуковой движок звуками типа "*звук", звуковому движку должно быть фиолетово что там за пол у того или иного игрока, это явно задача самого сервера а не клиента. А то как в поговорке, дурная голова рукам покоя не даёт.<br /><br />Есть ещё один серьёзный пункт для оптимизации. Сервер не должен заниматься статическими звуками, даже ориентированными в пространстве т.к. не имеет никакого смысла загружать сеть тем, что подразумевается само собой. Статические звуки не меняются, не прерываются, клиенту вполне по силам самостоятельно запустить их вначале уровня и погасить их по выходу из уровня. Не говоря уже о том, что так клиенту проще регулировать равномерную загрузку каналов звукового микшера. Иначе выходит, что сервер решает сколько звуков одновременно способен воспроизвести клиент. Ну да, именно об этом и должен думать сервер-благодеятель >:(, а я при этом беспомощно развожу руками, мол и рад бы чего поиграть, и каналы простаивают половина, но нету звуков >:(. Сервер обеспечивает загрузку 5-12 каналов, в то время как у X-Fi их 128. В Q2XP есть хак сервера на статику, что повышает загрузку до каналов этак 30, но это всё притянуто за уши, вызывает проблему с переполнением какого-то сетевого ресурса при загрузке пары карт и решать проблему нужно кардинально - вынесением статики из сервера в клиент, и вообще, перестать резать звуки по портальной системе - что хорошо для изображения, то не работает для звука.<br /><br />>>Да забить на эти сексед и все... какая разница<br />Не получается пока :-<br />Не получается пока :-[. Слишком уж они.. Sexed.<br /><br />В Q2XP всё готово чтобы полностью отказаться от имён файлов и работать со звуками на уровне дескрипторов. Т.е. сетевая команда на воспроизведение звука с таким-то дескриптором, нет проблем. Если бы не вопросы совместимости, повырезал бы всю квейковскую ересь нахрен >:(, 1/5 звуковой подсистемы решает именно квейковские болячки, трансляторы, конверторы туда-сюда. Это основа основ всех современных звуковых API, загрузил в начале уровня все звуки, назначил всем дескрипторы и далее звонишь API исключительно дескрипторами (DirectSound3D уже старый API и сама M$ от него отказалась). Кстати, в Q2XP звуковой микшер уже идёт асинхронным к основному движку и поэтому устойчив к лагам и имеет минимально возможные задержки. Звук воспроизводится сразу же, как только какая-либо подсистема о нём упомянула. На аудиге или X-Fi действительно кайфово, изображение и звук идут как монолит. В софте звук чуть-чуть запаздывает, тоже хорошо, но уже без консольного драйва.
#12
24 сентября 2008 в 17:38
Берс сказал, Берс сделал 8)<br />В данном вопросе поставлена точка.<br />См. обновление 1.04