The most important thing that you're missing is that pickle.load() needs to assign what is loaded to something. My advice is to put everything you want to save into one dictionary, pickle that dictionary and then unpickle it:
saveData = {'map': mapData,
'objects': objectData}
pickle.dump(saveData, f, -1)
then in load_game():
f = open...
saveData = pickle.load(f)
f.close()
mapData = saveData['map']
objectData = saveData['objects']
btw -- I'd suggest not calling cPickle directly, especially when you're debugging -- it's much easier to see any errors with pickle and then only switch to cPickle when everything is working. You could also do something like this:
try:
import cPickle as pickleMod
except ImportError:
import pickle as pickleMod
then your program will work (albeit more slowly) no matter what flavor of python you're working with, and it makes it easier to switch from pickle to cPickle or back when you're done programming. Good luck with the game!