Tuesday, 1 May 2007

The Virtual Barbershop is quite an interesting experiment on how we perceive sound. David Heron has managed to create a real-sounding environment for headphones. I'm just left wondering why this couldn't be used more. Games tend to have poor 3D sounds if you don't have multiple speakers, especially feeling of distance seems hard to create. Yet many game types would benefit immensly from better sounds. First person shooters come to mind first. Just listening to that demonstration is enough to make you wonder what could be achieved. I can't think of many games that have anything resembling a believable sound environment. It feels like that part of gaming is lagging ten years behind the rest.

Processing power might of course be a stumbling block. The games should consider echoes and obstacles, for instance. My main gripe in Deus Ex - my all-time favourite game - is how you can hear sounds coming from behind walls just like if the wall wasn't there. You can hear footsteps through ten feet of concrete which is completely ridiculous.

Game developers are heading down the road of physics and improving the graphics more and more. Both are nice things, but trying to create a realistic experience requires a realistic sound system. As a matter of fact, it should be quite high in the priorities list because one would think it's much easier to create a good 3D sound environment than to create 3D images on a flat screen.

Of course the demonstration is much easier to make since the head doesn't move and the sounds have been made static - you can't do anything to change how the sounds play. Just the ability to be able to shake your virtual head would make the demonstration a lot harder to pull off. But surely it must be possible, maybe by trying to simulate a human's hearing, i.e. calculating the sounds created in the environment twice with that small difference in location. Echoes etc are a different things altogether, though but maybe a similar system to how lightning is calculated could be used. It could be a lot simpler.

I'm thinking of splitting the sound spectrum into parts. Say 20-80Hz, 80-200Hz etc depending on what a meaningful split is. Then you would have to define how much each part dampens when it hits each material in the gaming world. This is something similar to how lightning is calculated already. The general rule is, of course, that the higher the sound, the more it dampens, but if this was based on material, the sounds would sound very different in a jungle than in inside a subway station.

But I'm no expert on this so I can't possibly calculate how much processing power even a simple system would require. It could be an interesting experiment in itself, though.