1. A method of providing an interactive virtual environment, the method comprising: with a computer system, receiving registration information and establishing an account for a user; the computer system associating a virtual character with the account and transmitting content over a communication network for moving the virtual character in the virtual environment in response to control commands input by a user; transmitting content over the communication network for providing a non-player character in the virtual world, where said non player character is controlled by said computer system and not by the user in the virtual world; receiving a request over the communication network to interact the virtual character with the non-player character in the virtual world; in response to an interaction between the virtual character and the non-player character, serving task information over the communication network for presenting the user controlling the virtual character with a request from the non-player character to perform a task; receiving an invitation over the communication network inviting an additional virtual character to participate in performing the task; and in response to receiving an acceptance of said task on behalf of said additional virtual character, serving task content over the communication network to allow both the virtual character and the additional virtual character to take actions to perform the task included in the request.