Blender Game Engine control material values
I've found a hack: the "Lamp data" node gives you the distance from a specified lamp to each fragment. That gives you a float to control the material, and the position of the lamp can be controlled with the game logic. 
This is a fairly terrible solution.