One thing we found with Outpost:Haven ( I've got to start using its new full name so I get used to it ) that having the players footsteps generated a lot of atmosphere.
Early in the game we thought it was key that there was only really sound effects as it helps create tension, you know something bad is coming, but there's no real indication of when. By stressing every little noise, including the player themselves, it helps draw that suspense out.
How we did it was really straight forward and really not costly in terms of CPU time.
So that's the actual map as it's laid out in Flash ( Minus the more ugly things you don't need to see, like collision maps and objects ).
We also have another footmap movieclip which looks like this,
Just simple colour coded floors ( The walls are just there for illustration ). When creating a level that mc is copied into a scaled down bitmap, where 32 pixels in real life equals 1 pixel in our new footmap bitmap.
Then as the player takes a certain number of steps ( From memory it's the equivalent of a tile, so every time you walk 32px ) the game uses a getPixel(playerXpos,playerYPos) to read the pixel colour of the footmap beneath him. From there we pass that to the SoundHandler class which plays one of the different foot step sounds we have ( The green is a normal step, the blue is a metal grill type step etc. ).
To flesh the illusion out we actually have four types of footstep sample for each floor surface type.
Give it a try in your own game, it adds so much and is as simple to do as this.