Best way to save game for my game

Alright so I’ve been working on a game for quite some time, Apocalypse Not is the name of it. I’ll post a link to the IndieDB page below since I think you really have to see what I’m doing to figure out what I need to do. The game is basically an FPS/RTS/RPG hybrid, and the levels are generated randomly at each start. So there are a lot of variables that need to be saved, and my guess is that XML serialization would be the best way. Unfortunately I have no idea where to even begin with this task as far as how to write the code.

The maps are set-up like a grid and each grid has a controller that knows what type of building goes in that block and what its status is. The player has several variables that need to be saved, and there are several scripts running on objects that need to be saved as well. I suppose I just need to find what is actually neccessary to keep track of and pass that data into the level being loaded so that is randomly generates how I want it. And then the player variables should be the easy part. I wish there was a way I could just save the level at run time and load it up the exact same way. Anyway, can someone give me an idea of where to start that isn’t a link to a MSDN page about serialization?

http://www.indiedb.com/games/apocalypse-not

There are a few scripts on the unify wiki:
http://wiki.unity3d.com/index.php?title=Saving_and_Loading_Data:_XmlSerializer

Thanks that was what I needed.