Register or Login To Download This Patent As A PDF
| United States Patent Application |
20100029371
|
| Kind Code
|
A1
|
|
Medvinsky; Gennady
;   et al.
|
February 4, 2010
|
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.
| Inventors: |
Medvinsky; Gennady; (Redmond, WA)
; Hartrell; Gregory D.; (Sammamish, WA)
; O'Kelley, II; Patrick W.; (Seattle, WA)
|
| Correspondence Address:
|
WOODCOCK WASHBURN LLP (MICROSOFT CORPORATION)
CIRA CENTRE, 12TH FLOOR, 2929 ARCH STREET
PHILADELPHIA
PA
19104-2891
US
|
| Serial No.:
|
184411 |
| Series Code:
|
12
|
| Filed:
|
August 1, 2008 |
| Current U.S. Class: |
463/25 |
| Class at Publication: |
463/25 |
| International Class: |
A63F 9/24 20060101 A63F009/24 |
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.
Description
COPYRIGHT NOTICE AND PERMISSION
[0001]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 .COPYRGT. 2007, Microsoft Corp.
BACKGROUND
[0002]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.
[0003]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
[0004]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.
[0005]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.
[0006]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
[0007]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:
[0008]FIG. 1 is a flow diagram of an exemplary, non-limiting method of
locating and providing virtual environment service providers.
[0009]FIG. 2 is non-limiting, exemplary interface for requesting virtual
environment service providers.
[0010]FIG. 3 is a flow diagram of an exemplary, non-limiting method of
implementing virtual environment services.
[0011]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.
[0012]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.
[0013]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
[0014]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.
[0015]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.
[0016]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.
[0017]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.
[0018]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.
[0019]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.
[0020]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.
[0021]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.
[0022]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.
[0023]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.
[0024]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.
[0025]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.
[0026]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.
[0027]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.
[0028]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.
[0029]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.
[0030]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.
[0031]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.
[0032]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.
[0033]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.
[0034]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.
[0035]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.
[0036]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.
[0037]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.
[0038]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.
[0039]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.
[0040]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.
[0041]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.
[0042]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.
[0043]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.
[0044]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.
[0045]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.
[0046]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.
[0047]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.
[0048]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.
[0049]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.
[0050]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.
[0051]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.
[0052]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.
[0053]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.
[0054]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.
[0055]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.
[0056]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.
[0057]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.
[0058]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.
[0059]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.
[0060]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.
[0061]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.
[0062]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.
[0063]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.
[0064]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.
[0065]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.
[0066]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.
[0067]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.
[0068]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.
[0069]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.
[0070]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
[0071]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.
[0072]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.
[0073]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.
[0074]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.
[0075]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.
[0076]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 tele
phones, etc., software objects such as
interfaces, COM objects and the like.
[0077]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.
[0078]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.
[0079]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.
[0080]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.
[0081]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.
[0082]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.
[0083]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
[0084]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.
[0085]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.
[0086]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.
[0087]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.)
[0088]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 cas
settes, 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.
[0089]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.
[0090]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 cas
settes, 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.
[0091]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.
[0092]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.
[0093]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.
[0094]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.
* * * * *