Я думаю, что вы на правильном пути. Предлагаемая вами система затухания на основе расстояния должна работать, если вы
всегда используйте игровое расстояние до объекта от игрока, которое остается неизменным независимо от уровня масштабирования (не используйте расстояние «на экране», которое изменяется при масштабировании) и
настройте свою систему ослабления, чтобы начать воспроизводить звуки объекта, как только его расстояние до игрока в мире станет таким, что объект будет почти виден игроку при максимальном уровне масштабирования.
Таким образом, игроки могут услышать вещи, прежде чем они увидят их, что придает чувство реализма и открытий. Это также предотвращает большинство сценариев воспроизведения слишком большого количества окружающих звуков.
Конечно, у вас все еще есть возможность перегрузить окружающий звуковой канал, если у вас будет много звукоизлучающих объектов в одном месте в мире. Это может быть решено
разработка уровней, чтобы этого не делать, или, если это не жизнеспособно,
придание объектам звукового приоритета и выбор объектов с самым n
высоким приоритетом, или
уменьшая громкость всех окружающих звуков путем (более или менее) «деления на количество звуков в сцене», следя за тем, чтобы звуки по-прежнему плавно затухали, когда их объекты становятся дальше, чтобы избежать «выскочения» по мере того, как вы дискретно прыгать с пяти объектов на четыре, например.
предварительно рассчитать для данного уровня или всей игры максимальное количество объектов, которые могут находиться в пределах досягаемости и воспроизводить звуки одновременно (сделайте это как часть процесса создания уровня или игровых данных). Исходя из этого, вы можете определить, насколько громко играть на каком-либо одном объекте, чтобы в худшем случае никогда не превышать определенную громкость.
Однако последние два варианта решают проблему исключительно с точки зрения громкости - они не учитывают тот факт, что даже если вы играете 500 фоновых звуков достаточно тихо, чтобы не перегружать барабанные перепонки игрока, вы все равно играете 500 звуков, что может быть шумным не в смысле громкости, а в запутанном смысле.
Чтобы справиться с этой проблемой, я думаю, что вам лучше всего попытаться уменьшить общее количество эмбиентов окружающей среды или использовать только самые n
приоритетные звуки (для справки, выбор вершины n
- это более или менее то, на чем мы остановились в Guild Wars 2).