willow
570 постов
Карма: 56
#11 25 июня 2009 в 13:42
Хитро. Имеет право на жизнь, но этого явно недостаточно. Мне от сервера целый букет примочек нужен - направление звука, ускорение объекта (да-да, для звука это тоже нужно), и полный набор EAX параметров. Сейчас я пытаюсь подобное всякими криворукими метОдами слепить из того, что знает клиент, но предел применений топорных решений всё-таки есть. И к прочему это чудовищно ухудшает читабельность кода, он становится нелогичен.<br /><br />Кроме этого, обработку статических звуков должен полностью взять на себя клиент, т.е. определённый набор звуков должен отсылаться всего лишь раз при коннекте к серверу. По части звука это на порядки снизит нагрузку на сеть т.к. это большая часть звуков. Сейчас сервер в том числе шлёт пакеты со статическими звуками. На текущий момент имеется нездоровая ситуация, когда сервер решает способен ли клиент проиграть звук или нет. Откуда старичку серверу знать, насколько навороченный клиент подсоединится? Некоторые вещи может знать только клиент, сервер лишь должен по-максимуму ставить клиента в известность т.е. генерить событие, а рендерить событие или нет - это должно зависеть только от клиента.<br /><br />Вот задачи требующие решения:<br />- Полноценный EAX обязательно потребует передачу неких новых параметров посредством некоего протокола или некоих специфических команд, пакетов, для каждого звука. Вопрос совместимости решается очень просто - EAX будет выключаться либо полностью, либо использоваться крайне примитивно (как он работает на данный момент в Q2XP, Q2E).<br />- Потребуется вводить условную звуковую геометрию уровня для описания так называемых звуковых зон. Как это сделать в рамках Q2? Очевидно, сервер должен, как минимум, уметь сообщать клиенту EAX информацию по зонам. А затем сервер должен научиться её откуда-то считывать подобно тому, как читается релайт.<br />- Требуется оградить клиента (во всяком случае, звуковую подсистему) от решения гендерных проблем полностью, это требование даже не обсуждается, даже если и использовать извращения, то пойдут пенальти из-за неэффективной, искуственно нагромождённой организации кода.