Mobile Games Through the Nets: a Cross-Layer Architecture for Seamless Playing