Multiplayer Game Programming: Architecting Networked Games