I have spent the last several days making a Zombie Pigman Grinder/Gold Farm. this is on Minecraft SMP, and so this took a while. Now it is built, and I cannot get any Zombie pigmen to spawn for the life of me. I have waited at the base/ collection area of the trap for 10 minutes - and none spawned. Here are some screenshots of the trap:
This is the base of the trap, where the Zombie pigmen fall, and I can collect the gold nuggets here.
Looking up at the top of the trap. Basic working principle is that the pigmen spawn up there in the spawning area and walk onto the open gates as if they were solid blocks, then fall 30 blocks to their death.
Spawning Area, from the right side.
Spawning area, from the left side.
I know that they are spawning because there are a lot outside. I'm playing on Normal difficulty.
The answer you are looking for is hidden inside you own question: "there are a lot outside". The game randomly checks places to put mobs and since the outside is much larger than your trap, most of the zombie pigmen spawn there. The mob limit is exhausted pretty much instantly and the game doesn't spawn any more, unless some of the existing mobs de-spawn or get killed.
You will get zombie pigmen to spawn in your trap eventually, but you may have to wait hours for just a few spawns. You need to prevent spawning outside your trap to improve rates of your trap. This is very difficult to do in the nether, since you can't use light or water to prevent spawning. That is why you don't see zombie pigmen traps, building one is a monumental project. Notice for example here a huge area is covered with half-slabs to prevent spawning.
The spawnable area is +/- 8 chunks from each chunk where there is a player (minus the chunks on the edges of that area). If a single player is online, mobs spawn in 240x240 blocks area centered on the player chunk, that is roughly +/- 120 blocks from the player.
I cant comment (or at least am too new to this site to find a comment link) so i suppose i will have to post this as an answer. Kcats is correct, I just wanted to note that mods wont spawn particularly close to you (24 blocks).
Also, if you need to prevent spawning in a large area and you dont mind preventing your own travel, lava is more efficiant than half-slabs. It is abundant in the nether and flows further. It will not harm nether mobs but all land mobs need a dry place to spawn (on the overworld, and my own tests seemed to suggest this applies in the nether).
However, if their really are large numbers of pigmen outside then makeing a platform and attacking them with a bow is the easier solution of all, provided you have the arrows.
Automated mob farming in the nether is very difficult, but if you are dead set on it, use lava-falls where you dont plan to walk and half-slabs where you do to make at least a 100 block area around the bottom of your trap unfriendly for other mobs.
To add to the other two comments, the other option is to build your trap close to the bedrock in the sky(sky rock?) and then dig out your trap from there and dig 120 blocks from where you plan on standing and you will get excellent spawn rates!
When I look for information on mob spawning and mob grinders I find a lot of links to these two items:
The problem is, they seem to have contradictory information in them.
The first one espouses the much-credited idea that to improve your mob spawning area you must light up all the caves around it. This is built on the assumption that when the game goes to spawn a monster, it looks for an appropriate place to put one, so eliminating anywhere but your mob machine would increase the rate of mobs spawning within it.
The "Mob Spawning Science" post claims an algorithm that goes chunk by chunk, and within each chunk it picks a random block and sees if that block is a legit spawning location (standing on something, correct light level, etc.). If so, it puts a mob there. (I'm simplifying, but this is the idea.) This would imply that for any given block in a chunk, there is a 1/32768 chance of it being selected. So given a block X that is a nice, dark, mob-spawnable place, it has a 1/32768 chance each time the chunk is processed of spawning a monster regardless of any lit or unlit caves anywhere around it.
So which one is correct?
Technically, placing torches will decrease your overall mob spawns; the game does pick a single random point within the eligible chunks to spawn a monster, and if that point is not suitable, the monster doesn't spawn. Therefore filling other caves with torches will reduce the number of spawn-friendly points, reducing your overall monster count. This does technically help your mob grinder because you don't have mobs lurking in neighboring caves counting against the mob cap (and ultimately taking it all up, preventing anything from spawning in your grinder).
The best solution would probably be to use a vast water network to drag all the mobs from all nearby caves into your grinder, so you maximize spawn area, but bring any mobs from all the viable spawn points into a single area.
I don't see anything contradictory between the two. First you eliminate the possibility of any of the chunks in the nearby zone spawning monsters because it is a solid block or too bright. When the scanning occurs even though there is only a 1/32768 chance of selecting a particular block in your mob spawner, you have to remember that it is doing it extremely fast, a few million iterations of the chunk block selection can easily be performed within the span of 1 second.
@Matt - Updated answer
Because once the total number of mob spawns is reached, no more monsters will be spawned. Your mob spawner will stop spawning at one point if all the monsters are spawning somewhere else, such as a hidden underground cave.
There's no contradiction, here. Based on your recaps, the first is in layman's terms, and the second is a technical explanation of the exact same thing.
What's not clear is what you're trying to accomplish with your "block x". If x is in your spawner, you want to eliminate valid, unlit spawnable blocks outside of your spawner. If x is outside of your spawner, you want to light it up or fill it in so it will not be a valid spawning point.
If you want "block x" to be eliminated from the spawning scans, in order to save time... It's not possible, and the scan iterations go by so quickly that it's not a level of optimization that's necessary.
The chunk method no longer works. It used to prioritize spawning in the 0,0 chunk, but that is no longer the case. The alternative now, is to fill torches into caves and the surface within a radius of where you'd stand.
Mobs only spawn outside of, I think 30 blocks, and within 70 or so (exact numbers on the Wiki), and since there is a maximum amount of mobs at once, you want to make sure that middle ground is filled with torches to force mobs to spawn in your trap.
I believe the Mob Spawning Science thread may be somewhat out of date now, though I don't know how much the code has changed. I have heard mention that the "bailout clause" mentioned in the science thread no longer exists, and the spawnable area is larger than it once was. There have been no real updates, however.
I'm still trying to work out if having layers in a mob spawner is more effective than having just a tall, empty space of the same height.