SMASH: A distributed game engine architecture