I'm building an Asteroids-style shooter. I have enough of everything working that I can fly around in an environment and shoot things. Now that that's the case, I'm discovering just how busy the environment is, and I'm wondering if anyone has tips to make it a bit more manageable?
Gameplay is pretty simple. You fly around a 2-D grid, rotating left/right, accelerating forward, and centering asteroids to shoot them. Asteroids move of course, and your bullets don't reach them instantly, so there's a bit of anticipation of their path of flight to make sure the bullet hits. Asteroids also make a collision alert when they're on a path to hit you so you know to get out of their way.
With 3 asteroids in the first wave, a cockpit sound, the occasional collision alert warning, and bullets flying around, there's kind of a general background drone. I've tweaked gains where it makes sense, and things don't sound bad when you're alone in the environment or there's only a single target. Sources definitely attenuate, and I have a general understanding of rolloff factors and reference distances, but I don't feel like I have a good sense for what's going on even with good headphones. I know there's no right answer, and I've been experimenting with values all afternoon. I'm interested in general advice on how to make OpenAL work well in busy audio environments, but here are a few questions:
1. I think I want the player to be very aware of things within a range of, say, 50-100 units. If a target is 20-30 units away, the player had probably better be killing it or getting out of its way. Beyond that, though, I just want the player to know that something is present and available to be chased down. Are there any distance models particularly good at this sort of looming effect? I suspect I shouldn't bother with the linear model. Inverse clamped seems to be the default, but is the exponential model any better?
2. Should I even be considering a distance model for this? I'm also contemplating highlighting only the closest target, but that could both get complicated and produce false positives. The player might be chasing down a target only to be sideswiped by a fast-moving asteroid, and I wouldn't have provided them with that information since the target that hit them wasn't the close one they were chasing.
Thanks for any tips.