Personal Game Services Commerce System (PGSCS)

Abstract
A Personal Game Services Commerce System is disclosed. The system allows a user to contract with another user to perform service within a virtual environment. The services may include operating in a virtual environment on behalf of another user, operating as a team member, or operating as an opponent in competition. Memory state may be copied and used by the service-providing user. The user requesting the service may confirm that the service has been satisfactorily rendered before making the copied memory state permanent and/or before paying for the service. Users may select service-providing users based on any available criteria. Funds to pay for the service may be frozen while the service is being performed and until the recipient of the service confirms successful performance of the service.
Description
COPYRIGHT NOTICE AND PERMISSION

A portion of the disclosure of this patent document may contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the patent and trademark office patent files or records, but otherwise reserves all copyright rights whatsoever. The following notice shall apply to this document: Copyright © 2007, Microsoft Corp.


BACKGROUND

With the advent of the Internet and affordable personal computers and computing systems, the number of people participating in virtual gaming environments and other virtual environments has increased greatly. Many gaming and other computer applications create environments that allow users to interact with other users throughout the world. These virtual environments may be created by software that is running on user computers and servers or other virtual environment dedicated resources located anywhere on the planet. These computers, servers, and other resources may communicate with each other over computer networks, such as the Internet or private networks, that may span the entire globe.


Users may vary within a virtual environment just as people vary in general. Users may have different levels of skill in particular aspects of a virtual environment due to factors such as time and money invested in learning the environment and natural ability.


SUMMARY

Systems and methods are provided for a personal game services commerce system. In one non-limiting example, systems, methods, and computer-readable instructions are provided for evaluating the performance of a service-providing user who has operated in a virtual environment on behalf of a requesting user. The system includes a virtual environment system configured to enable the service-providing user to participate in a game on behalf of the requesting user. The virtual environment system is further configured to enable the requesting user to view results of the participation in the virtual environment by the service-providing user on behalf of the requesting user. The system may further include an evaluation system configured to receive a notification from the requesting user. The notice may comprise an evaluation regarding the results of the participation in the virtual environment by the service-providing user on behalf of the requesting user.


In another non-limiting example, systems, methods, and computer-readable instructions are provided for facilitating the interaction within a virtual environment by a service-providing user on behalf of a requesting by creating a copied memory state from an original memory state associated with the requesting user. The copied memory state may have contents identical to data contained in the original memory state. The system may permit the service-providing user to participate in a virtual environment on behalf of the requesting user using the copied memory state. The system may also detect a first notification from the service-providing user that the service-providing user's participation in the virtual environment on behalf of the requesting user has ceased and send a second notification to the requesting user that the service-providing user's participation in the game on behalf of the requesting user has ceased.


In another non-limiting example, systems, methods, and computer-readable instructions are provided for detecting the selection of a service-providing user to advance game progress on behalf of a requesting user by providing data on at least one service-providing user. The system may detect a selection of a service-providing user by the requesting user and initiate an exchange service which enables the service-providing user to participate in a virtual environment with the requesting user or on behalf of the requesting user. Also provided are systems, methods, and computer-readable instructions for freezing an amount of funds in a requesting user's account and transferring the amount of funds from the requesting user's account to a service-providing user's account after receiving a notification from the requesting user that the service-providing user has satisfactorily advanced progress in a virtual environment on behalf of requesting user.





BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing Summary, as well as the following Detailed Description, is better understood when read in conjunction with the appended drawings. In order to illustrate the present disclosure, various aspects of the disclosure are shown. However, the disclosure is not limited to the specific aspects discussed. In the drawings:



FIG. 1 is a flow diagram of an exemplary, non-limiting method of locating and providing virtual environment service providers.



FIG. 2 is non-limiting, exemplary interface for requesting virtual environment service providers.



FIG. 3 is a flow diagram of an exemplary, non-limiting method of implementing virtual environment services.



FIG. 4 is a flow diagram of an exemplary, non-limiting method of operating an exchange service to facilitate the provision of services in a virtual environment.



FIG. 5 is a block diagram representing an exemplary network environment having a variety of computing devices in which the present disclosure or parts thereof may be implemented.



FIG. 6 is a block diagram representing an exemplary non-limiting computing device in which the present disclosure or parts thereof may be implemented.





DETAILED DESCRIPTION
Personal Game Services Commerce System

Online virtual environments created and operated via computer are becoming more common with the increasing availability and affordability of sophisticated computing systems, including personal computers and dedicated gaming computer systems, and network connectivity, such as DSL and cable modem technologies. Often these environments are created as part of a computer game. Traditionally, the producers of content for these environments have been game publishing houses and game system manufacturers. The traditional consumers of such content have been end users of the gaming environments. Similar virtual environments that do not involve games or computer gaming have also grown in popularity. These virtual environments provide a way for end users interact with each other using computing devices and computer networks.


Typically, such environments facilitate interaction in real-time or near real-time, and allow end users to operate characters or other forms of personal representations in a virtual world. As the technology has advanced, more end users of virtual environments are generating their own content which may be of value to other users. End users of such environments may also be able to provide services to other users of the environment. Such services may include operating in a virtual environment on behalf of another user, for example, by assuming the other user's identity or character and playing the game as that user. Alternatively, a user may offer or be asked to join one or more other users as part of a virtual team operating within a virtual environment. In yet another alternative, a requesting user may request that another user participate in a match or contest against the requesting user. Such services may be of particular interest to novice or less-skilled users when such services are offered by more skilled users or users who have particular areas of expertise that are of interest to other users. Any other services that may be of interest to users within a virtual environment are contemplated as within the scope of the present disclosure.


Many virtual environment users spend countless hours and resources becoming experts at operating within an environment. Other users may be particularly skilled at certain aspects of operating within a virtual environment. Some users may be skilled in general in the environment but desire assistance with accomplishing a particular task or dealing with a particular aspect within the environment. Still other users may be novices and wish to accomplish tasks or achieve progress within an environment without devoting the hours and resources that might normally be required to become expert in the environment. The present disclosure provides ways that expert or skilled users, or any other virtual environment user, may capitalize on skills already possessed by contracting with other users to use those on behalf of the other users. The present disclosure also provides ways for those desiring assistance or services in an environment to obtain such assistance from other users.



FIG. 1 is a flow diagram of an exemplary, non-limiting method 100 of locating and providing virtual environment service providers. A user of a virtual environment, referred to herein as a requesting user, may make a request to a virtual environment system for information about users who provide services to other users. Such users will be referred to herein as service-providing users.


The method begins at block 101. At block 105, the virtual environment system detects the request by a requesting user. The request may be any form of data transmission or other indication that a requesting user is in search of one or more service-providing users. For example, an interface may be provided via software and/or hardware within the virtual environment that allows requesting users to submit requests for service-providing users. A non-limiting example of such an interface is described herein in regard to FIG. 2. Alternatively, a requesting user may submit a request using more traditional forms of electronic communication, such as email, text message, voice telephony, or any other form of communication that is capable of transmitting the request. All such methods and means are contemplated as within the scope of the present disclosure.


It is contemplated that service-providing users may advertise their services within and outside the virtual environment. Requesting users may submit requests at block 105 to specific service-providing users, who they may have learned of from advertisements. Alternatively, requesting users may select advertising service-providing users from the list of service-providing users provided to them in response to a request, as described below in more detail.


The received request may include preferences provided by the requesting user. For example, certain skills or ratings may be specified. Alternatively, or in addition, price ranges and/or costs of service may be specified in the request. Forms of assistance and/or configurations of users within the environment may be specified. More details about the requesting user's specified preferences are provided herein with regard to FIG. 2. Any such preferences, or any other preferences and specific information may be included in the received request. All such preferences and information are contemplated as within the scope of the present disclosure.


At block 110, the virtual environment system determines which users are capable of fulfilling the request received at block 105. This may be accomplished by searching a database of users and detecting which users possess the skills, qualifications, and/or traits that are specified in the request. Searching for database entries that match certain attributes is well known, and any method or means known to those skilled in the art may be used to make this determination. Means of collecting data on users, including collecting ratings which may be provided by other users and skill ratings based on performance in a virtual environment, are also well known, and all such ratings, ranking, and other user data are contemplated as within the scope of the present disclosure.


At block 115, the virtual environment system provides a listing of service-providing users as determined at block 110. This list may be presented by any means known to those skilled in the art, including presenting the list in a window or other means within the virtual environment system. Alternatively, service-providing user data may be presented to a requesting user through more traditional means, such as email, text messages, voice messages, voice telephony, or any other means known to those skilled in the art. The listing may include information about each service-providing user such as skill level, community rating, customer satisfaction rating, length of time the user has been operating in the environment, length of time the user has been a service-providing user, charges for the user's services, estimated time to complete one or more tasks, specific skills or qualifications, or any other information that may be helpful to a requesting user in assessing service-providing users and/or deciding which service-providing users to retain for services.


The means with which the service-providing users are provided to a requesting user may also enable the requesting user to select one or more service-providing users. Such means of selecting options from a list of available options are well known to those skilled in the art. At block 120, the virtual environment system detects the requesting user's selection of one or more service-providing users. Means of detecting user input are well known to those skilled in the art, and any such means are contemplated as within the scope of the present disclosure.


In one embodiment, service-providing users may also have the option of agreeing to perform the requested task or assistance. At block 125, the virtual environment system may notify the selected service-providing user(s) that the requesting user has selected them for a service. The notification may include preferences indicated by the requesting user, and/or other data that will allow the service-providing user to determine the service(s) being requested and decide if the service-providing user should perform the requested services. Such notifications may take the form of any effective means, including windows or messages delivered within the virtual environment or more traditional forms of notifications including email, text messages, voice messages, voice telephony, or any other means known to those skilled in the art. In other embodiments, service-providing users may be committed to perform requested services as a condition of being listed among users who provide services. In such embodiments, service-providing users may be removed from the group of available service-providing users once they are selected to provide a service by a requesting user. Such service-providing users maybe placed back into the group of available service-providing users once the requested task is complete. Other permutations, arrangements, and requirements of service-providing users may be employed by a virtual environment system, and all such variations are contemplated as within the scope of the present disclosure.


At block 130, the virtual environment system receives a response from the selected service-providing user(s). The response may be received via any means known to those skilled in the art, including detecting a click on an affirmative button (such as a button labeled “Accept”), a reply to an email or text message, or any other effective means.


At block 135, the virtual environment system determines whether the response received from the selected service-providing user(s) is affirmative. Means of making such a determination are well known to those skilled in the art and will not be recited herein. If the response is affirmative, indicating that the selected service-providing user(s) has agreed to perform the requested service, the virtual environment system notifies the requesting user at block 140. Such a notification can be accomplished using any means set forth herein or any other means known to those skilled in the art. Once confirmation is provided to the requesting user, the service-providing user(s) may begin to perform the requested service, as set forth herein. The method is terminated at block 150.


If the service-providing user(s) declines to perform the requested service, then the requesting user is notified of the denial at block 145. Once this notification is provided, the virtual environment system may then determine a group of users capable of providing the requested service at block 110, and repeat the process until one or more service-providing users agrees to perform the requested service, or until the pool of available service-providing users is exhausted. When performing the determination at block 110 after one or more service-providing users has declined to perform the requested service, the virtual environment system may eliminate the declining service-providing users from the pool of available service-providing users, thus eliminating from the list of available service-providing users provided to the requesting user those service-providing users that will not agree to perform the service.


Referring now to FIG. 2, a non-limiting, exemplary interface that allows a requesting user to request information on service-providing users according to the requesting user's preferences is illustrated. An interface for such a request may take the form of window 200. Window 200 maybe displayed within a virtual environment, or through a related system or application. Other means of presenting options allowing a requesting user to select preferences are known to those skilled in the art, and all such means are contemplated as within the scope of the present disclosure.


Window 200 may have several components, such as skill area 210. Skill area 210 may contain checkboxes, drop-down menus, radio buttons, or any other means of listing and/or allowing the selection of skills preferences. Skill subarea 211 may allow a requesting user to select preferences for general or specific skills desired in a service-providing user. For example, a requesting user who wants to locate a service-providing user who can operate a virtual character on behalf of the requesting user in order to advance the requesting user's character within the virtual environment may want to search for service-providing users that are rated at “Pro”, “Expert”, or “Proficient” skill levels. These skill ratings may reflect their general ability to operate within the virtual environment. Skill ratings may be determined by the virtual environment system, or operators of such systems, based on the service-providing users achievement within the virtual environment. Alternatively, users of the virtual environment may provide input that is used to determine service-providing users skill ratings, for example, by voting on or rating service-providing users. Other means and methods of assigning or determining a general skill rating of a user in a virtual environment are known to those skilled in the art and all such means and methods are contemplated as within the scope of the present disclosure.


Alternatively, or in addition, a requesting user may want to search for service-providing users that are proficient at a specific skill within the virtual environment. For example, requesting users may want to locate a service-providing user that is proficient in martial arts, weaponry, speed, and/or strength. A requesting user may believe that one or more of these specific skills may be valuable in accomplishing one or more tasks within the environment. Like general skill ratings, specific skill ratings may be determined by the virtual environment system, or operators of such systems, based on the service-providing users achievement within the virtual environment. Alternatively, users of the virtual environment may provide input that is used to determine service-providing users skill ratings. Other means and methods of assigning or determining a specific skill rating of a user in a virtual environment are known to those skilled in the art and all such means and methods are contemplated as within the scope of the present disclosure.


Another skill preference that may be offered as a preference option is level skill. Skill subarea 212 may provide the option for a requesting user to select a preference for a service-providing user who is proficient in one or more specific levels of a virtual environment. Many virtual environments, such as online gaming environments, are organized according to levels, with difficulty of operating within the environment increasing as the level number increases. Thus, a requesting user who has completed level 8 within a virtual environment, but is having difficulty completing level 9, may request a service-providing user who is proficient at completing level 9. Preference options for all levels may be provided, or for only certain levels. Here again, level skill ratings may be determined by the virtual environment system, or operators of such systems, based on the service-providing users achievement within the virtual environment. Alternatively, users of the virtual environment may provide input that is used to determine service-providing users level skill ratings. Other means and methods of assigning or determining a level skill rating of a user in a virtual environment are known to those skilled in the art and all such means and methods are contemplated as within the scope of the present disclosure.


Yet another skill preference that may be offered as a preference option is specific objective skill. Skill subarea 213 may provide the option for a requesting user to select a preference for a service-providing user who is proficient at achieving a specific objective within the virtual environment. Many virtual environments, such as gaming environments, require users to achieve specific objectives to attain rewards or achieve progress within the virtual environment. A requesting user may be having difficulty with a particular objective, and may prefer a service-providing user who is proficient at achieving that objective. For example, in a military-oriented virtual environment, a requesting user may prefer a service-providing user who is proficient at achieving objectives related to a fuel depot, an airport, enemy headquarters, or an enemy armory. Any objective that maybe present in a virtual environment may be provided as a preference option. Here also, specific objective skill ratings may be determined by the virtual environment system, or operators of such systems, based on the service-providing users achievement within the virtual environment. Alternatively, users of the virtual environment may provide input that is used to determine service-providing users specific objective skill ratings. Other means and methods of assigning or determining a specific objective skill rating of a user in a virtual environment are known to those skilled in the art. Moreover, any skill rating, ranking, level, or any other measure of specific or general skills of a user may be used as a preference option when gathering, collecting, or otherwise detecting a requesting user's preferences in regard to a service-providing user(s), and all such measures are contemplated as within the scope of the present disclosure.


Subarea 214 provides a means for a requesting user to specify the range of prices he or she is willing to pay for the service provided by a service-providing user. In some embodiments, services may be provided for a fee. Such a fee may be calculated in actual money, or it may be calculated in the currency used within a virtual environment. Environment-specific money may or may not be based on actual money. Other forms of exchange or mechanisms of incentivizing users to provide services maybe used, and all such mechanisms are contemplated as within the scope of the present disclosure.


Service-providing users may be compensated per unit of time, which may be measured in real time or a separate time unit or measure employed by the virtual environment system. Service-providing users may instead be compensated per task, or by measuring a combination of time spent and tasks accomplished. Alternatively, service-providing users and requesting user may bargain directly or indirectly with each other and agree upon terms for a service or services. As shown in subarea 214, a requesting user may select the option to deal with service-providing users who charge a certain amount for units of time used. Alternatively, a requesting user may select the option to base pricing for the service on the task to be performed. In yet another alternative, a requesting user may select a preference to negotiate a deal with a service-providing users. Any such methods and means of negotiating and/or determining an exchange or other terms for providing a service are contemplated as within the scope of the present disclosure.


Another characteristic that may be of interest to a requesting user is the reputation of service-providing users. In many virtual environments and other virtual communities, mechanisms are in place that allow users to rate other users for a variety of characteristics, such as quality of service, trustworthiness, timeliness, etc. Community rating area 230 allows a requesting user to choose a preference for a particular community rating when requesting information about service-providing users. A requesting user may prefer to only deal with the highest rated service-providing users. However, such service-providing users may charge more for their services, and so a requesting user may be willing to deal with lower rated service-providing users in the interest of economy. It may also take a greater amount of time to acquire a higher rating, and therefore a lower rated service-providing user may have the requested skills, but lack the time invested to achieve the higher rating. Any forms of community ratings and all various meanings and definitions of such ratings are contemplated as within the scope of the present disclosure.


A requesting user may also be asked to set a preference regarding the type of service that a service-providing user is being asked to provide. For example, in area 221, a requesting user may select option 221 indicating that the service-providing user is to operate a character in an environment on behalf of the requesting user. In this case, the service-providing user may take on the characteristics and memory space associated with a character operated by a requesting user, and operate the requesting user's character in the environment for the agreed-upon amount of time or until an agreed-upon task is accomplished. This process will be described herein in more detail.


Alternatively, the service-providing user may be asked to join a group of existing characters to operate in the environment as a team, as shown at option 222 in area 220. The service-providing user may operate as his or her own character, as a team-designated character, or as a character designed solely for such a configuration. The service-providing user may help the team accomplish certain tasks or achieve success on levels within the environment, or may fill in on a team with a missing player. Other teams and/or users in the virtual environment may or may not be alerted to or capable of knowing that a team member of the requesting user's team is a service-providing user. Any other variations of the role of one or more service-providing users are contemplated as within the scope of the present disclosure.


Time limits and/or start and stop times may be set or requested by the requesting user, or may be negotiated between the requesting user and the service-providing user. This may be the time allotted for the service-providing user to perform the task(s) involved in the transaction, or the amount of time the service-providing user is allotted to assume the character belonging to the requesting user or play on a team with the requesting user. In one embodiment, where a service-providing user is functioning as a member of a team, the time limit may be the start and stop times of the service-providing user's participation in the team. Alternatively, in the embodiment where a requesting user has hired a service-providing user to compete against the requesting user in competition, the time limit may be the start and optionally the end time of their competition. Other uses of time limits and start and stop times are contemplated. Requested time limits may be conveyed through the use of a drop-down menu such as, for example, time limit area 240. Other means of conveying time limits may be used and are known to those skilled in the art. All such means are contemplated as within the scope of the present disclosure.


Other information may be provided to service-providing user through other means. For example, window 200 may include text box 235 which allows a requesting user to include a message, notes, or other text communications that maybe included in a request. This additional information may make it more clear to service-providing users what tasks are being requested, and thus allow them to make an informed decision regarding whether or not to accept the request. Any information that may be useful or that a requesting user may want to include may be provided in text box 235. Any other means of getting any type or form of information or any other communication is contemplated as within the scope of the present disclosure.


Once a requesting user has completed selecting his or her preferences, a requesting user may submit the request by providing an indication to the virtual environment system, such as by clicking on submit button 250. If a requesting user decides not to proceed with the request, the requesting user may indicate this to virtual environment system, such as by clicking on cancel button 260. Many means and methods of providing means of input and detecting such input to a user of a virtual environment are known to those skilled in that art, and all such means and methods are contemplated as within the scope of the present disclosure.


Identification of the requesting user may be provided through communications that do not require active involvement of the requesting user. For example, before submitting a request, the requesting user may have had to log into a virtual environment. The virtual environment system may then determine the requesting user's identity and associated one or more characters from the requesting user's log-in credentials. Alternatively, the requesting user may access the request mechanism while in the environment functioning as a character associated with the requesting user. The virtual environment system may then determine identification for the requesting user and the character from the character state as the request is submitted. In yet another alternative, the request mechanism, such as window 200, may include an input where the requesting user can submit information that identifies the requesting user, team, and/or virtual character with which the requested service is associated. The virtual environment system may or may not provide identification information about the requesting user, team, and/or virtual character to service-providing users. Any means or methods of identifying the requesting user and criteria used to determine whether to provide such information to service-providing users are contemplated as within the scope of the present disclosure.


In FIG. 3, a non-limiting, exemplary method 300 of implementing virtual environment services is illustrated. The method starts at block 301. At block 305, a virtual environment services transaction is initiated. In one embodiment, such a transaction is initiated using a method such as method 100, illustrated in FIG. 1. In other embodiments, transactions are initiated using other means or methods.


At block 310, a copy is made of the requesting user's relevant memory state. In a virtual environment, information about a character, construct, or other virtual entity that is operated by a user may be stored in a memory state. As used herein, such a memory state may be stored in random access memory (“RAM”), disk drives, flash drives, floppy disks, magnetic or digital tape, compact discs, or any other form of storage capable of containing data. Such storage may be located in any device accessible by the virtual environment system, including servers and centrally located computers as well as user computers. This memory state may be altered as a user interacts with the virtual environment. For example, if a user playing a military-related online computer game uses his or her virtual character to obtain a weapon, the possession of that weapon may be recorded in the memory state associated with that character. This memory state may also be altered by the virtual environment system for reasons other than interaction within the virtual environment. For example, the first time a user creates a new character in an environment, a new memory state may be created and associated with that character. As another example, a user may have the memory state associated with a character locked due to behavior within the virtual environment. As yet another example, a user may purchase outside of the environment attributes or virtual objects that affect the user's character, and which result in the character's memory state being altered to reflect the purchase. Many other uses and means of modifying a memory state are known to those skilled in the art, and all such uses and means are contemplated as within the scope of the present disclosure.


Once a memory state exists, then a copy may be made which may be used by a service-providing user to provide a service. Such a copy may be stored in the same or a different location and/or storage device as the original memory state. The original memory state may be locked so that the character or other virtual entity associated with it cannot operate as two identical characters at the same time in the virtual environment. The copied memory state may be an exact copy of the entire original memory state associated with a virtual character, or it may be a subset of the original memory state. The copied memory state may also contain data that is not present in the original memory state, such as tracking programs, administrative data, and other data which may be useful. Such data may be included in the copied memory state when it is created. In another embodiment, instead of generating a separate, copied memory state, the virtual environment system may use the original memory state and store data that can be used to later roll back the original memory state, placing it in a condition identical or similar to the condition it was in before a virtual environment services transaction was initiated. All such forms, and any other form, of original and copied memory states are contemplated as within the scope of the present disclosure.


The amount and type of memory state copied into a copied memory state may vary depending on the type of service requested. In one embodiment, where a requesting user is requesting that a service-providing user operate in a virtual environment on the requesting user's behalf, essentially playing a character or virtual entity for the requesting user, the majority or the entirety of an original memory state may be copied into the copied memory state. In another embodiment, where a requesting user is requesting a service-providing user operate in a virtual environment as part of a team, which may include the requesting user's character or virtual entity, the memory state copied may be only portions of memory state relevant to team membership, the current state of the particular area of the virtual environment in which the team is operating, and/or other information needed to function as part of a team. In yet another embodiment, where a requesting user is requesting a service-providing user play against the requesting user in a match, contest, or other form of competition, the memory state copied may be only that relevant to the competition and/or other competition related information, or may be no memory state at all. Any variation and type of memory state that may be useful if copied from an original memory state, or useful due to not copying, and all permutations thereof, are contemplated as within the scope of the present disclosure.


At block 315, the service-providing user is permitted to operate in the virtual environment as using the copied memory state. The service-providing user may operate as a character or virtual entity associated with the requesting, as a member of a team, as a competitor, or in any other capacity that may be requested. This may be accomplished through any means known to those skilled in the art. For example, the service-providing user may be provided with log-in credentials by the that allow the service-providing user to enter the virtual environment and access the copied memory state to operate in the environment as a character or virtual entity associated with the requesting user, a team member, or in another capacity. Alternatively, the service-providing user may be sent a link via known means of electronic communication that allows the service-providing user to click into a virtual location in the environment and operate using the copied memory state. Other means and methods of allowing a user to operate using a specific memory state are known to those skilled in the art, and all such means and methods are contemplated as within the scope of the present disclosure.


At block 315, the service-providing user operates using the copied memory state and attempts to accomplish the requested service. The actions, operation, and/or results of the performance of the service-providing user in the environment while operating using the copied memory state may be recorded and/or stored in the copied memory state. The amount of time the service-providing user operates using the memory state may be limited or unlimited, and may be bounded by the accomplishment of one or more certain tasks or objectives. Any arrangement that may be agreed upon by a requesting user and a service-providing user is contemplated. The requesting user may observe the service-providing user as the service-providing user operates using the copied memory state. This may allow the requesting user to evaluate the performance of the service-providing user as it progresses. Means and methods of allowing a user to observe the operation of another user in a virtual environment are well known to those skilled in the art. All such means and methods are contemplated as within the scope of the present disclosure.


At block 320, a virtual environment system may detect the cessation of service-providing user's operation using the copied memory state. This may be detected due to the service-providing user logging out of the environment or the service-providing user notifying the virtual environment system of the end of the service-providing user's operation using the copied memory state using means known to those skilled in the art. Alternatively, a virtual environment system may detect that the service-providing user has accomplished the goals or objectives that have been agreed upon in the service transaction, and automatically terminate the service-providing user's access to the copied memory state. In yet another alternative, a virtual environment system may receive a notification from a requesting user that the requesting user no longer wishes to have the service-providing user operating in the environment using the copied memory state. This may be due to requesting user dissatisfaction with the service-providing user and/or the service-providing user's performance. Any other method or means of detecting or initiating a cessation of the use of copied memory state is contemplated as within the scope of the present disclosure.


At block 325, the requesting user is notified that the service-providing user has ceased using the copied memory state. This notification may be provided using any method known to those skilled in the art. The notification may include a request to the requesting user to provide feedback on the service-providing user's performance. This may be simply an option of accepting or rejecting the service-providing user's performance, or indicating that the performance was satisfactory or unsatisfactory. Alternatively, the notification may allow the requesting user to evaluate the service-providing user's performance in a more thorough manner, including options for levels of satisfaction and means for entering comments and criticism. In yet another alternative, the notification may ask the requesting user whether the requesting user would like to integrate the copied memory state, and therefore the progress, accomplishment, and/or completion of objectives by the service-providing user, into the original memory state. In this way, the operation within the virtual environment by the service-providing user may be associated with the character or virtual entity associated with the requesting user. All such methods of obtaining feedback, and any other method of obtaining feedback, are contemplated as within the scope of the present disclosure.


At block 330, a response to the notification may be received, in one embodiment, at the virtual environment system. This may be accomplished through any of the effective communication means known to those skilled in the art. The requesting user may have a limited time in which to respond to the notification. In one embodiment, if the requesting user does not respond to the notification within a predetermined amount of time, the copied memory state is automatically deleted or otherwise not integrated into the original memory state, thus preventing the requesting user from gaining the benefit of the service-providing user's services.


At block 335, the response is evaluated to determine whether it is positive or negative. For example, a negative response may be a response from the requesting user indicating that the performance of the service-providing user was not satisfactory, and a positive response may indicate that the requesting user found the performance satisfactory. Alternatively, the response may indicate, directly or indirectly, that the requesting user would like to integrate the copied memory state into the original memory state and therefore accept the operation of the service-providing user in the environment on behalf of the requesting user. Methods and means of determining the content of a response are well known to those skilled in the art and will not be recited herein. All such methods and means are contemplated as within the scope of the present disclosure.


If the response from the requesting user is determined to be negative, then at block 340, the contents of the copied memory state maybe discarded. Alternatively, the contents maybe stored or copied elsewhere for future reference. In one embodiment, the contents of the copied memory state are not integrated into the original memory state if the requesting user is not satisfied with the performance of the service-providing user, or otherwise provides an indication that such contents are not to be integrated into the original memory state. In another embodiment, the virtual environment system detects that a predetermined amount of time has elapsed, and that the service-providing user has not achieved a specific objective, and automatically discards the copied memory state.


If the response from the requesting user is determined to be positive, then at block 345 the contents of the copied memory state may be integrated or copied into the original memory state. The entire contents of the copied memory state may replace the contents of the original memory state in the embodiment where a service-providing user is operating as a character or virtual entity of a requesting user. Alternatively, a subset of the contents of the copied memory state may be integrated into the original memory state. In yet another alternative, contents from the copied memory state may not be integrated into the original memory state at all, but instead some changes may be made to the original memory state to reflect the performance of the service-providing user.


Regardless of whether the response is positive or negative, the response may contain feedback from the requesting user regarding the service-providing user's performance, behavior, skills, or any other characteristic or opinion. Such data may be collected by the virtual environment system and used to create ratings, rankings, scores, or other data that may in turn be used to provide information to other users who are interested in selecting a service-providing user. The response may also include feedback relating to other aspects of the virtual environment and/or the services exchange and related processes. This information may be gathered and used by the virtual environment system for any purpose. All such feedback is contemplated as within the scope of the present disclosure.


Additional information or data may be written to or removed from the original memory state as a result of the performance of the service-providing user. For example, the changes resulting from the performance or operation of the service-providing user may be recorded while the original memory state is maintained, allowing the requesting user or the virtual environment system to roll back the changes made. This may occur if the requesting user requests it due to later-discovered dissatisfaction with the service provided, or for any other reason. Any permutation of modifying the original memory state based on the operation of a service-providing user is contemplated as within the scope of the present disclosure.


Global or system-wide data may or may not also be altered at block 345. For example, rankings and scores that are obtained by a service-providing user for a character or virtual entity associated with a requesting user may not be recorded in global or system-wide statistics if the virtual environment system does not allow such data to be used in character or entity rankings, ratings, or scores. Alternatively, everything that a service-providing user does on behalf of a requesting user may be credited to the requesting user. Any variation between these two ways of applying data resulting from a service performed by a service-providing user are contemplated as within the scope of the present disclosure.


Whether or not the requesting user accepts the performance or operation of the service-providing user, a notification may be sent to both parties at block 350. The notification sent to the requesting user and the service-providing user may be identical, or separate and different notifications may be transmitted. This notification may indicate whether the service-providing user's performance was satisfactory and/or accepted, whether any of the copied memory state was integrated into the original memory state, whether any other modifications of the copied memory state, original memory state, and/or the virtual environment system resulted from the transaction between the requesting user and the service-providing user, and/or any comments or feedback from one of the users for the other. Also included may be charges or other financial results of the transaction. Such aspects are described in more detail herein. Any information or data that may be found useful or informative to a requesting user and/or a service-providing user may be included in the notification provided at block 350. All such information and data, as well as any effective means of communicating a notification as known to those skilled in the art, are contemplated as within the scope of the present disclosure. The method is terminated at block 355.


To compensate or otherwise exchange value for the services provided by a service-providing user, an exchange service may be employed. Exchange service are common on the Internet and in virtual environments, and types and methods of exchanging goods, services, money, and other items are well known to those skilled in the art. The exchange service described herein may be part of the virtual environment system, or may be a separate entity communicatively connected to the virtual environment system. A non-limiting, exemplary method 400 of employing an exchange service to facilitate the provision of services in a virtual environment is illustrated in FIG. 4.


The method is started at block 401. At block 405, a transaction is entered into for services to be provided by a service-providing user to a requesting user in a virtual environment. The service to be provided may be any service as described herein, or any other service that may be performed within or related to a virtual environment. Terms of the agreement may have been established, such as a price or fee schedule, the service to be performed, a time limit or lack thereof, etc.


At block 410, funds may be frozen in a requesting user's account. The amount of funds frozen may be an amount of funds to be paid to the service-providing user by the requesting user for performing the service. Alternatively, a predetermined amount of funds may be frozen that is not necessarily equal to the price of the service. For example, if the terms of the transaction dictate that a service-providing user will perform a service of a set amount of funds per hour, for up to a set number of hours, an amount of funds equal to half or all of the eligible funds may be frozen. Alternatively, a set amount of funds as determined by policies of the virtual environment system or the exchange service may be frozen regardless of the price of the service. In another alternative, no funds may be frozen at all. In yet another alternative, the amount of funds frozen may depend on characteristics of the requesting user, such as credit rating, amount of time operating in the environment, community or credibility rating, or any other characteristic. In still another alternative, a predetermined amount of funds may be frozen or may be transferred as a cost of participating in the virtual environment's service exchange marketplace. Such an amount of fund may not be refundable, and may go to the virtual environment system or a related account. This amount of funds may or may not be included in the fee or price set for the service-providing user to provide the service. Any other methods or means of determining what amount of funds, if any, should be frozen when a transaction for a service commences are contemplated as within the scope of the present disclosure.


As used herein, funds may refer to actual money which is transferred into and out of financial accounts in commonly accepted currencies (dollars, Euros, etc.) Alternatively, funds may refer to a currency used within the virtual environment, that may or may not be exchangeable for actual currency used in the real world. In other embodiments, users may exchanges goods or services instead of funds of any type, and may participate in a barter system to determine the exchange to be made. Any form of exchange or payment is contemplated.


At block 415, the service is rendered. This may be any service provided by any service-providing user or multiple service-providing users as described herein. As described herein, the rendering of the service and/or the performance of the service-providing user may be observed by the requesting user or other users. Means and methods of enabling a user to view other users in a virtual environments are known to those skilled in the art, and all such means and methods are contemplated as within the scope of the present disclosure.


At block 420, the completion of the service or cessation of activity by the service-providing user for the requesting user is detected. This may happen automatically, such as when agreed-upon objectives are met, or when a time limit set for providing the service has expired. Detection of completion of cessation of the service may be by any of the ways described herein for detecting the cessation of activity, such as those described in regard to FIG. 3, or by any other means known to those skilled in the art for detecting an activity or cessation of an activity.


At block 425, the requesting user is notified that the service is complete, or activity by the service-providing user for the requesting user has ended. Any notification as described herein, or any other form of communication is contemplated as within the scope of the present disclosure. As described in regard to FIG. 3, activity of the service-providing user may be stopped due to the requesting user indicating that it should be stopped, for example, if the requesting user is dissatisfied with the performance of the service-providing user. Also as described in FIG. 3, the notification may request that the requesting user respond in some way which will indicate whether the exchange service should transfer the frozen and/or other funds from an account of the requesting user to an account of the service-providing user. Such a notification may allow a requesting user to provide feedback, satisfaction ratings, comments, or any other form of information that may be of use or interest to users and administrators of a virtual environment system that facilitates the exchange of service, goods, and other items real or virtual.


At block 430, a response to the notification may be received, in one embodiment, at the virtual environment system. This may be accomplished through any of the effective communication means known to those skilled in the art.


At block 435, the response is evaluated to determine whether it is positive or negative. A negative response may be a response from the requesting user indicating that the performance of the service-providing user was not satisfactory, and that funds should not be transferred to the service-providing user. A positive response may indicate that the requesting user found the performance satisfactory and that funds should be transferred to the service-providing user. In one embodiment, the response received at block 435 may also indicate whether the requesting user would like to integrate the copied memory state into the original memory state and therefore accept the operation of the service-providing user in the environment on behalf of the requesting user, as described with regard to FIG. 3. Methods and means of determining the content of a response are well known to those skilled in the art and will not be recited herein. All such methods and means are contemplated as within the scope of the present disclosure.


If the response from the requesting user is determined to be negative, then at block 440, the frozen funds may be unfrozen, and no funds may be transferred to the service-providing user's account. Alternatively, only a preset amount of funds may be transferred, and not the entire amount agreed upon for a satisfactory performance by the service-providing user. In one embodiment, negative response also indicates that the contents of the copied memory state are not to be integrated into the original memory state, as described in regard to FIG. 3. In another embodiment, because the requesting player responds negatively, and therefore does not permit funds to be transferred for the service, the virtual environment system and/or the exchange system do not permit the copied memory state to be integrated into the original memory state. This may prevent a requesting user from getting the benefit of a service-providing user's services without paying for them.


If the response from the requesting user is determined to be positive, then at block 445 the frozen funds and/or other funds may be transferred from an account of the requesting user to an account of the service-providing user. The amount of funds may be dictated by the transaction or agreement entered into by the two parties. In one embodiment, the contents of the copied memory state may be integrated or copied into the original memory state, as described in regard to FIG. 3. Any permutations of transferring funds and/or modifying memory states based on the operation of a service-providing user is contemplated as within the scope of the present disclosure.


Here again, and regardless of whether the response is positive or negative, the response may contain feedback from the requesting user regarding the service-providing user's performance, behavior, skills, trustworthiness or any other characteristic or opinion. Such data may be collected by the virtual environment system and used to create ratings, rankings, scores, or other data that may in turn be used to provide information to other users who are interested in selecting a service-providing user. The response may also include feedback relating to other aspects of the virtual environment and/or the services exchange and related processes. This information may be gathered and used by the virtual environment system for any purpose. All such feedback is contemplated as within the scope of the present disclosure.


Whether or not the requesting user accepts the performance or operation of the service-providing user, a notification may be sent to both parties at block 450. The notification sent to the requesting user and the service-providing user may be identical, or separate and different notifications may be transmitted. This notification may indicate whether the service-providing user's performance was satisfactory and/or accepted, whether any funds were transferred, whether any modifications of memory state occurred, and/or any comments or feedback from one of the users for the other. Any information or data that may be found useful or informative to a requesting user and/or a service-providing user may be included in the notification provided at block 450. All such information and data, as well as any effective means of communicating a notification as known to those skilled in the art, are contemplated as within the scope of the present disclosure. The method is terminated at block 455.


Exemplary Networked and Distributed Environments

One of ordinary skill in the art can appreciate that a computer or gaming console, such as a computer or gaming console used by a requesting user or a service-providing user to access and operate within a virtual environment, or other client or server device can be deployed as part of a computer network, or in a distributed computing environment. In this regard, the present disclosure pertains to any computer system or virtual environment system as described above, having any number of memory or storage units, and any number of applications and processes occurring across any number of storage units or volumes, which may be used in connection with an electronic messaging system. The present disclosure may apply to an environment with server computers and client computers deployed in a network environment or distributed computing environment, having remote or local storage. The present disclosure may also be applied to standalone computing devices, having programming language functionality, interpretation and execution capabilities for generating, receiving and transmitting information in connection with remote or local electronic messaging services.


Distributed computing facilitates may share computer resources and services by direct exchange between computing devices and systems, such as the exchange described above between a requesting user and a service-providing user in the process of completing a services transaction. These resources and services include the exchange of information, cache storage, and disk storage for files. Distributed computing takes advantage of network connectivity, allowing clients to leverage their collective power to create and participate in sophisticated virtual environments. In this regard, a variety of devices may have applications, objects or resources that may implicate a virtual environment system that may utilize the techniques of the present subject matter.



FIG. 5 provides a schematic diagram of an exemplary networked or distributed virtual environment system. The distributed virtual environment comprises server computing objects 50a, 50b, etc. and computing objects or devices 520a, 520b, 520c, etc. These objects may be personal computers, gaming consoles, portable devices, mobile communications devices, or any other computing device. These objects may comprise programs, methods, data stores, programmable logic, etc. The objects may comprise portions of the same or different devices such as personal digital assistants (PDAs), televisions, Moving Picture Experts Group (MPEG-1) Audio Layer-3 (MP3) players, televisions, personal computers, etc. Each object can communicate with another object by way of the communications network 54. This network may itself comprise other computing objects and computing devices that provide services to the system of FIG. 5. This network may include wired and/or wireless components. In accordance with an aspect of the present disclosure, each object 50a, 50b, etc. or 520a, 520b, 520c, etc. may contain an application that might function as a component or element of a virtual environment system.


In a distributed computing architecture, computers, which may have traditionally been used solely as clients, communicate directly among themselves and can act as both clients and servers, assuming whatever role is most efficient for the network or the virtual environment system. This reduces the load on servers and allows all of the clients to access resources available on other clients, thereby increasing the capability and efficiency of the entire network. A virtual environment system in accordance with the present disclosure may thus be distributed among servers and clients, acting in a way that is efficient for the entire system.


Distributed computing can help users of virtual environment systems interact and participate in a virtual environment across diverse geographic boundaries. Moreover, distributed computing can move data closer to the point where data is consumed acting as a network caching mechanism. Distributed computing also allows computing networks to dynamically work together using intelligent agents. Agents reside on peer computers and communicate various kinds of information back and forth. Agents may also initiate tasks on behalf of other peer systems. For instance, intelligent agents can be used to prioritize tasks on a network, change traffic flow, search for files locally or determine anomalous behavior such as a virus and stop it before it affects the network. All sorts of other services may be contemplated as well. Since a virtual environment system may in practice be physically located in one or more locations, the ability to distribute information and data associated with a virtual environment system is of great utility in such a system.


It can also be appreciated that an object, such as 520c, may be hosted on another computing device 50a, 50b, etc. or 520a, 520b, etc. Thus, although the physical environment depicted may show the connected devices as computers, such illustration is merely exemplary and the physical environment may alternatively be depicted or described comprising various digital devices such as gaming consoles, PDAs, televisions, mobile telephones, etc., software objects such as interfaces, COM objects and the like.


There are a variety of systems, components, and network configurations that support distributed virtual environments. For example, computing systems may be connected together by wired or wireless systems, by local networks or widely distributed networks. Currently, many of the networks are coupled to the Internet, which provides the infrastructure for widely distributed computing and encompasses many different networks.


The Internet commonly refers to the collection of networks and gateways that utilize the Transport Control Protocol/Interface Program (TCP/IP) suite of protocols, which are well-known in the art of computer networking. The Internet can be described as a system of geographically distributed remote computer networks interconnected by computers executing networking protocols that allow users to interact and share information over the networks. Because of such wide-spread information sharing, remote networks such as the Internet have thus far generally evolved into an open system for which developers can design software applications for performing specialized operations or services, essentially without restriction.


Thus, the network infrastructure enables a host of network topologies such as client/server, peer-to-peer, or hybrid architectures. The “client” is a member of a class or group that uses the services of another class or group to which it is not related. Thus, in computing, a client is a process, i.e., roughly a set of instructions or tasks, that requests a service provided by another program. The client process utilizes the requested service without having to “know” any working details about the other program or the service itself. In a client/server architecture, particularly a networked system, a client is usually a computer that accesses shared network resources provided by another computer, e.g., a server. In the example of FIG. 5, computers 520a, 520b, etc. can be thought of as clients and computers 50a, 50b, etc. can be thought of as the server where server 50a, 50b, etc. maintains the data that is then replicated in the client computers 520a, 520b, etc.


A server is typically a remote computer system accessible over a local network such as a LAN or a remote network such as the Internet. The client process may be active in a first computer system, and the server process may be active in a second computer system, communicating with one another over a communications medium, thus providing distributed functionality and allowing multiple clients to take advantage of the information-gathering capabilities of the server.


Client and server communicate with one another utilizing the functionality provided by a protocol layer. For example, Hypertext-Transfer Protocol (HTTP) is a common protocol that is used in conjunction with the World Wide Web (WWW). Typically, a computer network address such as a Universal Resource Locator (URL) or an Internet Protocol (IP) address is used to identify the server or client computers to each other. The network address can be referred to as a URL address. For example, communication can be provided over a communications medium. In particular, the client and server may be coupled to one another via TCP/IP connections for high-capacity communication.


Thus, FIG. 5 illustrates an exemplary networked or distributed environment, with a server in communication with client computers via a network/bus, in which the present disclosure may be employed. In more detail, a number of servers 50a, 50b, etc., are interconnected via a communications network/bus 54, which may be a LAN, WAN, intranet, the Internet, etc., with a number of client or remote computing devices 520a, 520b, 520c, 520d, 520e, etc., such as a portable computer, handheld computer, thin client, networked appliance, mobile telephone, personal computer, gaming console, or other device, in accordance with the present disclosure. It is thus contemplated that the present disclosure may apply to any computing device that may communicate, interact, and/or operate in a virtual environment controlled by a virtual environment system.


In a network environment in which the communications network/bus 54 is the Internet, for example, the servers 50a, 50b, etc. can be Web servers with which the clients 520a, 520b, 520c, 520d, 520e, etc. communicate via any of a number of known protocols such as HTTP. Servers 50a, 50b, etc. may also serve as clients 520a, 520b, 520c, 520d, 520e, etc., as may be characteristic of a distributed virtual environment. Communications may be wired or wireless, where appropriate. Client devices 520a, 520b, 520c, 520d, 520e, etc. may or may not communicate via communications network/bus 54, and may have independent communications associated therewith. Each client computer 520a, 520b, 520c, 520d, 520e, etc. and server computer 50a, 50b, etc. may be equipped with various application program modules or objects 535 and with connections or access to various types of storage elements or objects, across which files may be stored or to which portion(s) of files may be downloaded or migrated. Any computers 50a, 50b, 520a, 520b, 520c, 520d, 520e, etc. may be responsible for the maintenance and updating of a database 500 or other storage element in accordance with the present subject matter, such as a database or memory 500 for storing virtual environment services data, such as information on service-providing users. Database 500 and one or more of computers 50a, 50b, 520a, 520b, 520c, 520d, 520e, etc. may form an exchange service as described herein which may interact or be a component of a virtual environment system according to the present disclosure. Thus, the present disclosure can be utilized in a computer network environment having client computers 520a, 520b, 520c, 520d, 520e, etc. that can access and interact with a computer network/bus 54 and server computers 50a, 50b, etc. that may interact with client computers 520a, 520b, 520c, 520d, 520e, etc. and other like devices, and databases 500.


Exemplary Computing Environment


FIG. 6 and the following discussion are intended to provide a brief general description of a suitable computing environment in which the present disclosure or parts thereof may be implemented. It should be understood, however, that handheld, portable and other computing devices and computing objects of all kinds are contemplated for use in connection with the present disclosure, as described above. Thus, while a general purpose computer is described below, this is but one example, and the present disclosure may be implemented with other computing devices, such as a thin client having network/bus interoperability and interaction. The present disclosure may be implemented in an environment of networked hosted services in which very little or minimal client resources are implicated, e.g., a networked environment in which the client device serves merely as an interface to the network/bus, such as an object placed in an appliance, or other computing devices and objects as well. In essence, anywhere that an virtual environment system may be employed is a desirable, or suitable, environment for the virtual environment services exchange of the disclosure.


Although not required, the present disclosure can be implemented via an operating system, for use by a developer of services for a device or object, and/or included within application software that operates in connection with the virtual environment system. Software may be described in the general context of computer-executable instructions, such as program modules, being executed by one or more computers, such as client workstations, servers, gaming consoles, or other devices. Generally, program modules include routines, programs, objects, components, data structures and the like that perform particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments. Moreover, those skilled in the art will appreciate that the present disclosure may be practiced with other computer system configurations. Other well known computing systems, environments, and/or configurations that may be suitable for use with the present subject matter include, but are not limited to, personal computers (PCs), gaming consoles, automated teller machines, server computers, hand-held or laptop devices, multi-processor systems, microprocessor-based systems, programmable consumer electronics, network PCs, appliances, environmental control elements, minicomputers, mainframe computers and the like. The disclosure may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network/bus or other data transmission medium, as described herein in regard to FIG. 5. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices, and client nodes may in turn behave as server nodes.



FIG. 6 thus illustrates an example of a suitable computing system environment 600 in which the present subject matter or parts thereof may be implemented, although as made clear above, computing system environment 600 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the disclosure. Devices functioning as components or parts of a virtual environment system may be implemented using a system such as computing system environment 600, but those skilled in the art will recognize that there are other appropriate systems in which to implement the present disclosure. Computing environment 600 should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 600.


With reference to FIG. 6, an exemplary system for implementing the disclosure includes a general purpose computing device in the form of a computer 610. Components of computer 610 may include, but are not limited to, a processing unit 620, a system memory 630, and a system bus 621 that couples various system components including the system memory to the processing unit 620. The system bus 621 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus (also known as Mezzanine bus.)


Computer 610 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 610 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, Compact Disk Read Only Memory (CDROM), digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can accessed by computer 610. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.


System memory 630 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 631 and random access memory (RAM) 632. A basic input/output system 633 (BIOS), containing the basic routines that help to transfer information between elements within computer 610, such as during start-up, is typically stored in ROM 631. RAM 632 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 620. By way of example, and not limitation, FIG. 6 illustrates operating system 634, application programs 635, other program modules 636, and program data 637.


Computer 610 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only, FIG. 6 illustrates a hard disk drive 641 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 651 that reads from or writes to a removable, nonvolatile magnetic disk 652, and an optical disk drive 655 that reads from or writes to a removable, nonvolatile optical disk 656, such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. Hard disk drive 641 is typically connected to the system bus 621 through an non-removable memory interface such as interface 640, and magnetic disk drive 651 and optical disk drive 655 are typically connected to system bus 621 by a removable memory interface, such as interface 650.


The drives and their associated computer storage media discussed above and illustrated in FIG. 6 provide storage of computer readable instructions, data structures, program modules and other data for computer 610. In FIG. 6, for example, hard disk drive 641 is illustrated as storing operating system 644, application programs 645, other program modules 646, and program data 647. Note that these components can either be the same as or different from operating system 634, application programs 635, other program modules 636, and program data 637. Operating system 644, application programs 645, other program modules 646, and program data 647 are given different numbers here to illustrate that, at a minimum, they are different copies. A user may enter commands and information into computer 610 through input devices such as a keyboard 662 and pointing device 661, commonly referred to as a mouse, trackball or touch pad. Alternatively, pointing device 661 may be a controller used with a gaming console. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to processing unit 620 through a user input interface 660 that is coupled to system bus 621, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A graphics interface 682 may also be connected to system bus 621. One or more graphics processing units (GPUs) 684 may communicate with graphics interface 682. In this regard, GPUs 684 generally include on-chip memory storage, such as register storage and GPUs 684 communicate with a video memory 686. GPUs 684, however, are but one example of a coprocessor and thus a variety of coprocessing devices may be included in computer 610. A monitor 691 or other type of display device may also connect to system bus 621 via an interface, such as a video interface 690, which may in turn communicate with video memory 686. In addition to monitor 691, computers may also include other peripheral output devices such as speakers 697 and printer 696, which may be connected through an output peripheral interface 695.


Computer 610 may operate in a networked or distributed environment using logical connections to one or more remote computers, such as a remote computer 680. Remote computer 680 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer 610, although only a memory storage device 681 has been illustrated in FIG. 6. The logical connections depicted in FIG. 6 include a local area network (LAN) 671 and a wide area network (WAN) 673, but may also include other networks/buses, including wireless networks. Such networking environments are commonplace in homes, offices, enterprise-wide computer networks, intranets and the Internet.


When used in a LAN networking environment, computer 610 is connected to LAN 671 through a network interface or adapter 670. When used in a WAN networking environment, computer 610 typically includes a modem 672 or other means for establishing communications over WAN 673, such as the Internet. Modem 672, which may be internal or external, may be connected to system bus 621 via user input interface 660, or other appropriate mechanism. In a networked environment, program modules depicted relative to computer 610, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation, FIG. 6 illustrates remote application programs 685 as residing on memory device 681. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.


Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims
  • 1. A method of detecting the selection of a first service-providing user to advance progress within a virtual environment on behalf of a requesting user, the method comprising: providing data on at least one service-providing user, the data comprising information about the first service-providing user;detecting a selection of the first service-providing user by requesting user;initiating an exchange service; andenabling the first service-providing user to participate in the virtual environment with the requesting user or on behalf of the requesting user.
  • 2. The method of claim 1, wherein the data on at least one service-providing user comprises service-providing user ratings for each of at least one service-providing users.
  • 3. The method of claim 1, wherein initiating an exchange service comprises: freezing an amount of funds in a requesting user's account; andtransferring the amount of funds from the requesting user's account to a first service-providing user's account after receiving a notification from the requesting user that the first service-providing user has satisfactorily advanced progress within the virtual environment on behalf of the requesting user.
  • 4. The method of claim 1, wherein enabling the first service-providing user to participate in the game on behalf of the requesting user comprises enabling the first service-providing user to participate in the virtual environment on behalf of the requesting user for a predetermined amount of time.
  • 5. The method of claim 1, further comprising receiving a request from the requesting user for the data on at least one service-providing user, the request comprising a specific service desired by the requesting user.
  • 6. The method of claim 5, wherein the data on at least one service-providing user comprises time estimates for completing the specified service for each of at least one service-providing users.
  • 7. A computer-readable storage medium including computer-executable instructions for facilitating the operation within a virtual environment by a service-providing user on behalf of a requesting user, the computer-executable instructions performing the steps of: creating a copied memory state from an original memory state associated with the requesting user, the copied memory state comprising contents identical to data contained in the original memory state;permitting the service-providing user to operation within the virtual environment on behalf of the requesting user using the copied memory state;detecting a first notification from the service-providing user that the service-providing user's operation within the virtual environment on behalf of the requesting user has ceased; andsending a second notification to the requesting user that the service-providing user's operation within the virtual environment on behalf of the requesting user has ceased.
  • 8. The computer-readable storage medium of claim 7, further comprising computer-executable instructions performing the step of updating the copied memory state based on the service-providing user's operation within the virtual environment on behalf of the requesting user.
  • 9. The computer-readable storage medium of claim 7, further comprising computer-executable instructions performing the step of receiving from the requesting user a third notification comprising a confirmation that the service-providing user has satisfactorily completed a task within the virtual environment.
  • 10. The computer-readable storage medium of claim 9, further comprising computer-executable instructions performing the step of, upon receiving the third notification, writing the contents of the copied memory state to the original memory state.
  • 11. The computer-readable storage medium of claim 9, further comprising computer-executable instructions performing the step of transferring an amount of funds from an account of the requesting user to an account of the service-providing user.
  • 12. The computer-readable storage medium of claim 7, further comprising computer-executable instructions performing the step of receiving from the requesting user a third notification comprising a notification that the service-providing user has not satisfactorily completed a task.
  • 13. The computer-readable storage medium of claim 12, further comprising computer-executable instructions performing the step of sending a fourth notification to the service-providing user comprising a notification that the requesting user provided the third notification comprising a notification that the service-providing user has not satisfactorily completed the task.
  • 14. A system for evaluating the performance of a service-providing user who has operated within a virtual environment on behalf of a requesting user, the system comprising: a virtual environment system configured to enable the service-providing user to operate in the virtual environment on behalf of the requesting user, the virtual environment system further configured to enable the requesting user to view results of the operation in the virtual environment by the service-providing user on behalf of the requesting user; andan evaluation system configured to receive a notification from the requesting user comprising an evaluation regarding the results of the operation in the virtual environment by the service-providing user on behalf of the requesting user.
  • 15. The system of claim 14, wherein the virtual environment system is further configured to enable the requesting user to observe the service-providing user operating in the virtual environment on behalf of the requesting user.
  • 16. The system of claim 14, wherein the virtual environment system is further configured to enable the service-providing user to operate in the virtual environment on behalf of the requesting user for a predetermined amount of time.
  • 17. The system of claim 14, wherein the game system is further configured to transfer an amount of funds from an account of the requesting user to an account of the service-providing user.
  • 18. The system of claim 17, wherein the amount of funds is based on a quantity of units of time during which the service-providing user operated in the virtual environment on behalf of the requesting user.
  • 19. The system of claim 17, wherein the amount of funds is determined by whether the service-providing user has completed a specific task while operating in the virtual environment on behalf of the requesting user.
  • 20. The system of claim 14, wherein the evaluation system is further configured to determine a rating for the service-providing user based at least in part on the evaluation received from the requesting user.