How do I receive bitcoins for a game server? I want to sell digital goods for BTC.

AFAIK, I have to associate the purchaser + BTC amount + address received + digital good.

I could set up multiple addresses for each client. If I kept a consistent address I would have to vary the fee to distinguish between purchasers.

How do I monitor the blockchain to process transactions - any known tools for this?
I've fiddled a bit with the plain vanilla reference bitcoin client, with the JSON-RPC server enabled, and it's all there. You can create accounts, so you can pass an address per user they can wire BTC to, query if any funds are there already (with a minimum number of confirmations), even pass the money on, to other local accounts, to remote addresses (other users or your cold wallet)

https://en.bitcoin.it/wiki/API_reference_%28JSON-RPC%29
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list