1. A computer-implemented method implemented in a computer system comprising one or more processors, the method comprising: storing, to non-transitory electronic storage accessible to the one or more processors, data objects that control virtual objects in a virtual environment, the data objects including data members that represent data associated with the data objects and method members that represent processes for reading and modifying the data of the data objects in predefined ways, the data objects being characterized by unique identifiers which distinguish it from other data objects, the data objects including: (i) a non-player object controller data object that controls a non-player virtual object in the virtual environment, (ii) a first player object controller data object that controls a first player controlled virtual object in the virtual environment, and (iii) a second player object controller data object that controls a second player controlled virtual object in the virtual environment; defining, in a game play controller data object, at least one game play rule of a virtual multiplayer game that takes place in the virtual environment through interaction in the virtual environment between virtual objects including the first non-player virtual object, the first player controlled virtual object, and the second player controlled virtual object; maintaining, in the stored non-player object controller data object, at least one state of the non-player virtual object; maintaining, in the first player object controller data object, at least one state of the first player virtual object in the virtual environment, wherein the first player virtual object is a first virtual object type; maintaining, in the second player object controller data object, at least one state of the second player virtual object in the virtual environment, wherein the second player virtual object is a second virtual object type different from the first virtual object type; receiving, over a network, first user commands regarding the first player virtual object; executing on the one or more processors the game play rule based on the first user commands, the state of the first player virtual object, and the state of the non-player virtual object, wherein execution of the game play rule modifies the state of the non-player virtual object; receiving, over the network, second user commands regarding the second player virtual object; and executing one the one or more processors the game play rule based on the second user commands, the state of the second player virtual object, and the state of the non-player virtual object, wherein execution of the game play rule modifies the state of the non-player virtual object.