U.S. patent application number 12/032042 was filed with the patent office on 2009-08-20 for user-powered always available contextual game help.
This patent application is currently assigned to Microsoft Corporation. Invention is credited to Robert E. Gruhl, Andre Vrignaud.
Application Number | 20090209337 12/032042 |
Document ID | / |
Family ID | 40955633 |
Filed Date | 2009-08-20 |
United States Patent
Application |
20090209337 |
Kind Code |
A1 |
Vrignaud; Andre ; et
al. |
August 20, 2009 |
User-Powered Always Available Contextual Game Help
Abstract
A player encounters a challenge present in a video game without
succeeding thereat and requests contextual help from a service by
way of a guide. The guide gathers a current context of the game
including the encountered challenge and calls to the service with
the gathered current context for such contextual help. The service
compiles a list of entries based on the gathered current context
and returns the compiled list of entries to the guide. Each entry
in the list has been authored by a player of the game and includes
information purportedly relevant to succeeding at the encountered
challenge as represented by the current context. The player
receives the compiled list of entries from the service by way of
the guide, reviews same, and resumes playing the game and in doing
so employs the gathered information in an effort to succeed at the
challenge.
Inventors: |
Vrignaud; Andre; (Seattle,
WA) ; Gruhl; Robert E.; (Seattle, WA) |
Correspondence
Address: |
WOODCOCK WASHBURN LLP (MICROSOFT CORPORATION)
CIRA CENTRE, 12TH FLOOR, 2929 ARCH STREET
PHILADELPHIA
PA
19104-2891
US
|
Assignee: |
Microsoft Corporation
Redmond
WA
|
Family ID: |
40955633 |
Appl. No.: |
12/032042 |
Filed: |
February 15, 2008 |
Current U.S.
Class: |
463/31 |
Current CPC
Class: |
A63F 2300/57 20130101;
A63F 13/85 20140902; A63F 13/12 20130101; A63F 13/5375 20140902;
A63F 13/493 20140902 |
Class at
Publication: |
463/31 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Claims
1. A method of playing a video game on a computing device,
comprising: encountering a challenge present in the game without
succeeding thereat; accessing a service access guide instantiated
on the computing device, the guide being in communications with a
game service and including a user interface to facilitate
interaction with the service; requesting contextual help from the
service by way of the guide, the guide in response to the request
gathering a current context of the game including the encountered
challenge and calling to the service for such contextual help, the
call including the gathered current context of the game, the
service receiving the call from the guide including the gathered
current context of the game and based thereon compiling a list of
entries and returning the compiled list of entries to the guide,
each entry in the list of entries having been authored by a player
of the game and including information purportedly relevant to
succeeding at the encountered challenge as represented by the
received current context of the game; receiving from the service by
way of the guide the compiled list of entries; reviewing the
received list of entries to gather information regarding how to
succeed at the encountered challenge; and resuming playing the game
and in doing so employing the gathered information in an effort to
succeed at the challenge.
2. The method of claim 1 wherein the challenge is a situation in
the game situation where the player has to determine how to take an
action.
3. The method of claim 1 wherein the video game is played on a
video game console and wherein the guide is instantiated on the
console.
4. The method of claim 1 comprising selecting filtering parameters,
wherein the guide filters the received list of entries based on the
selected filtering parameters, and reviewing the received and
filtered list of entries to gather information regarding how to
succeed at the encountered challenge.
5. The method of claim 1 wherein an entry in the list includes
content copied from the game by the authoring player of such entry,
the content being selected from at least one of a screen shot from
the game as captured by a guide of a console, a video clip from the
game as captured by a guide of a console, and an annotation thereof
as created by a guide of a console, the method comprising rendering
the content upon reviewing the entry.
6. The method of claim 1 wherein an entry in the list includes
identifying indicia representing that the entry deserves attention,
the identifying indicia being selected from at least one of an
indicia identifying that a friend has recommended the entry and an
indicia identifying that the authoring player has experienced a
challenge to which the entry relates, the method comprising
reviewing the entry upon discerning the identifying indicia.
7. The method of claim 1 further comprising, upon reviewing an
entry, contribute a rating thereto.
8. The method of claim 1 further comprising, upon succeeding at the
challenge, authoring an entry relating thereto.
9. The method of claim 1 wherein each object in the game is
supplied with a tag having a unique ID, wherein each time an object
in the game is encountered the corresponding tag thereof is pushed
onto a stack, and wherein the guide gathering the current context
of the game includes copying a number of the tags on top of the
stack.
10. The method of claim 9 wherein the service receives the call
from the guide including the copied tags and employs the received
tags to search for appropriate entries to be compiled into the list
of entries.
11. A method of operating a video game on a computing device for a
player, wherein the player encounters a challenge present in the
game without succeeding thereat, the method comprising: receiving
from the player a request for contextual help from the service;
gathering in response to the request a current context of the game
including the encountered challenge; calling to the service for
such contextual help, the call including the gathered current
context of the game, the service receiving the call including the
gathered current context of the game and based thereon compiling a
list of entries and returning the compiled list of entries to the
guide, each entry in the list of entries having been authored by a
player of the game and including information purportedly relevant
to succeeding at the encountered challenge as represented by the
received current context of the game; receiving from the service
the compiled list of entries; displaying the received list of
entries to the player to allow such player to gather information
regarding how to succeed at the encountered challenge; and allowing
the player to resume playing the game and in doing so employing the
gathered information in an effort to succeed at the challenge.
12. The method of claim 11 wherein the challenge is a situation in
the game situation where the player has to determine how to take an
action.
13. The method of claim 11 wherein the video game is played on a
video game console.
14. The method of claim 11 comprising allowing the player to select
filtering parameters, filtering the received list of entries based
on the selected filtering parameters, and allowing the player to
review the received and filtered list of entries to gather
information regarding how to succeed at the encountered
challenge.
15. The method of claim 11 wherein an entry in the list includes
content copied from the game by the authoring player of such entry,
the content being selected from at least one of a screen shot from
the game as captured by a guide of a console, a video clip from the
game as captured by a guide of a console, and an annotation thereof
as created by a guide of a console, the method comprising rendering
the content upon allowing the player to review the entry.
16. The method of claim 11 wherein an entry in the list includes
identifying indicia representing that the entry deserves attention,
the identifying indicia being selected from at least one of an
indicia identifying that a friend has recommended the entry and an
indicia identifying that the authoring player has experienced a
challenge to which the entry relates, the method comprising
displaying the entry in the received list of entries to the player
with the identifying indicia.
17. The method of claim 11 further comprising, upon reviewing an
entry, allowing the player to contribute a rating thereto.
18. The method of claim 11 further comprising, upon succeeding at
the challenge, allowing the player to author an entry relating
thereto.
19. The method of claim 11 wherein each object in the game is
supplied with a tag having a unique ID, wherein each time an object
in the game is encountered the corresponding tag thereof is pushed
onto a stack, and gathering the current context of the game
includes copying a number of the tags on top of the stack.
20. The method of claim 19 wherein the service receives the call
including the copied tags and employs the received tags to search
for appropriate entries to be compiled into the list of entries.
Description
BACKGROUND
[0001] The present invention relates to video games, and
particularly relatively complex video games such as video games
played from consoles or the like. As may be appreciated, such
complex video games are not necessarily intended to be completed so
much as experienced. Accordingly, each such relatively complex
video game includes multiple challenges, characters, objects that
can be acquired, scenes, and the like that collectively form a
universe that is hopefully of interest to a player of the game. As
a result, a player of the game experiences high play value in
connection with such a video game by exploring the universe of such
game, by encountering new challenges within such universe, and by
triumphing or otherwise overcoming such challenges. Notably,
although such a video game may offer points for overcoming such
challenges, the points may actually be of little actual value to
the player as compared with the experience.
[0002] The perceived value of the points may increase measurably,
however, when the player of the game participates with other
players in playing the game in a multi-player context, or when
comparing the player wishes to compare oneself with other players,
among other things. Accordingly, it is known that the video game
may be communicatively coupled to a service or the like to which
multiple copies of the game are also communicatively coupled. By so
doing, the player of the game may compare the points obtained
thereby with the points obtained by other players at other copies
of the game. Additionally, communities of such players may be
established, where players may communicate with each other
regarding the game as well as other games and other matters. As
should be understood, one topic of particular interest to such
players may be overcoming challenges within the context of the
game, and accordingly such players may create discussions on the
service about the game, including the challenges therein.
[0003] One particular instance of such a service is the XBOX LIVE
service as provided by MICROSOFT Corporation of Redmond, Washington
with regard to the XBOX game-playing console. As may be understood,
each player having such an XBOX console may subscribe to the LIVE
service and may communicatively couple the console thereof to such
LIVE service, typically by way of an Ethernet condition to a
high-speed Internet connection. As coupled, the player may play any
of several XBOX video games and while doing so communicate with the
LIVE service regarding the game being played, or regarding other
games, or even regarding non-game issues. Thus, the player may set
up a group of on-line friends and be informed when any such friend
is coupled to the service, may exchange mail and other
communications with such friends, and may perform many other
functions. In addition, a developer of a particular XBOX game may
establish a site or the like at the LIVE service that is dedicated
to the particular game, where the site includes promotional
materials, tips, background, and other game-related materials.
[0004] Inasmuch as a complex video game is typically very
challenging to play, it would seem appropriate that a developer of
the game that has a corresponding site at a service such as the
Live service would have help information at such site. Thus, if a
player playing the game was unable to overcome a particular
problem, obstacle, challenge or the like (hereinafter,
`challenge`), the player could access the service by way of the
console and in particular the site for the game at the service, and
obtain such help information as needed. However, providing such
help could represent a significant burden to the developer, both in
the time and effort needed to develop help information relating to
all possible challenges, and in allowing the user to search for
such help information based on the challenge at issue. As a result,
such help information is not often provided by way of the service,
or if provided is not provided in a satisfactory manner.
[0005] Accordingly, a need exists for a method and mechanism for
providing help information regarding a challenge in a complex video
game by way of a service communicatively coupled to the console on
which the game is being played. In particular, a need exists for
such help information that is provided as entries in a directory or
database associated with the service by way of players of the game,
and that is searchable. Moreover, a need exists for such help
information that is searched at the direction of a player at a
console on which the game is being played based on a present
context of the game at the console.
SUMMARY
[0006] The present invention leverages a service related to and
accessible from a game playing console and a community of players
that create player-generated game help entries. The service
receives a help request from a player playing the game at a
console, where the help request includes a present context of the
game, identifies entries believed to be relevant based on such
context, and returns such search results including the identified
entries in an ordered manner. The player reviews at least some of
the identified entries and in doing so information relating to
popularity and/or satisfaction with such entries is gleaned and
returned to the service. Thus, entries at the service can be
scored, and the scores can be used during future searches to order
search results.
[0007] An entry as newly provided to the service by a player can at
least preliminarily be scored based on a rating of the providing
player with regard to the game. Such rating may be based on points
accumulated by the providing player, an amount of time spent by the
providing player playing the game, scores of other entries from the
providing player, whether the providing player has personally
experienced the challenge to which the provided entry relates, and
the like. Additionally, a providing player can include within an
entry captured content from the game, including screenshots, video
clips, annotations thereof, and the like.
[0008] In the present invention, then, a player encounters a
challenge present in a video game without succeeding thereat,
accesses a service access guide that is in communications with a
game service, and requests contextual help from the service by way
of the guide. In response, the guide gathers a current context of
the game including the encountered challenge and calls to the
service for such contextual help. The call includes the gathered
current context of the game, and the service receives the call from
the guide including the gathered current context of the game and
based thereon compiles a list of entries and returns the compiled
list of entries to the guide. Each entry in the list has been
authored by a player of the game and includes information
purportedly relevant to succeeding at the encountered challenge as
represented by the received current context of the game. The player
receives the compiled list of entries from the service by way of
the guide, reviews same, and resumes playing the game and in doing
so employs the gathered information in an effort to succeed at the
challenge.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] FIG. 1 is a block diagram of an example computing
environment in which example embodiments and aspects may be
implemented.
[0010] FIG. 2 is a block diagram showing a system for providing
player-authored contextual help in accordance with various
embodiments of the present invention.
[0011] FIG. 3 is a flow diagram showing key steps performed in
connection with the system of FIG. 2 in accordance with various
embodiments of the present invention.
DETAILED DESCRIPTION
[0012] Turning now to FIGS. 2 and 3, in a typical user scenario, a
player 10 is playing a video game 12 on a corresponding console 14
to which the game 12 is loaded (301). Player 10 in doing so
encounters a particular challenge but thus far has not succeeded at
the challenge (i.e., has not been able to get past the challenge)
(303). Note here that the game 12 and console 14 may be any
appropriate game and console as long as such game and console are
appropriately provisioned with the functionality necessary as set
forth herein. Note too that the challenge may also be any
appropriate challenge, and can include most any situation where the
player has to figure out how to take some action. Thus, the
challenge may be epic, such as a fight or battle with a character,
may be mundane, such as how to acquire an object or maneuver a
certain way, or may be somewhere in between, such as how to make a
character go to sleep, among other things.
[0013] After trying to solve the challenge multiple times, player
10 selects a service access guide 16 at the console 14 (305). As
may be appreciated, such a guide 16 may be hardware and/or software
at the console that allows the user to access a service 18 such as
that which was set forth above. Thus, the guide 16 may include
appropriate communications functionality necessary to communicate
with the service 18, as well as a user interface to facilitate
interaction between the player 10 and the service 18. Such a guide
16 and service 18 are generally known and therefore need not be set
forth herein in any detail other than that which is provided.
Accordingly, such guide 16 and service 18 may be any appropriate
guide and service. In the context of an XBOX console 14, then, the
guide 16 is accessed by actuating a button on a game controller
(not shown), after which a video representation of the guide 16 is
displayed alongside the game 12, which may or may not be
automatically paused. The user then employs the guide 16 as
necessary and/or desired to access information from the service 18
regarding the game 12, as will be set forth in more detail
below.
[0014] Note here that the service 18 in the context of the XBOX
console 14 is the XBOX LIVE service 18, which as was set forth
above is appropriately communicatively coupled to such console 14
by way of a network connection such as the Internet. Inasmuch as
multiple player 10 at multiple consoles 14 are also coupled to such
a service 18, players 10 may communicate with each other by mail or
messaging by way of the service 18, and may establish communities
or the like regarding particular games 12 and other matters. As
should be understood, one topic of particular interest to such
players 10 may be overcoming challenges in a game 12, and
accordingly such players may create discussions on the service
about the game 12, including the challenges therein.
[0015] Upon selecting the guide 16 at the console 14, such guide 16
establishes a connection with the service 18 if not already present
and then opens a viewer in the display upon which the game 12 is
being viewed. The player 10 then selects contextual help from the
viewer (307), after which the guide 16 requests such contextual
help from the service 18 (309) and in response thereto the service
18 returns a list 20 of relevant help entries 22 which the guide 16
presents in the viewer or in another viewer in the display (311).
Inasmuch as the help is contextual, the guide 16 as part of the
request for contextual help as at 307 includes information
regarding a current context of the game 12 and the player 10
thereof. As will be set forth in more detail below, such current
context is based at least in part on tags associated with objects
in connection with the game 12, and whether each tag is active such
that the player 10 is currently associated with such object.
[0016] The entries 22 in the returned list 20 may include entries
22 relating to items possessed by the player 10 in the context of
the game 12, recently and/or currently encountered challenges in
the context of the game 12, recently and/or currently visited
locations in the context of the game 12, and the like. As may be
appreciated, each entry 22 is from a database or the like within
which all entries 22 relating to the game 12 are stored, where such
database maybe resident at the service 18 or at least accessible
and searchable by the service 18. Generally, each entry 22 may be
about most any topic relating to the game 12, although it is
expected that most entries 22 would relate to overcoming or
succeeding at challenges that can be encountered in the game 12.
Accordingly, such entries 22 might include some level of
information necessary to overcome a particular challenge, or
perhaps information on how to find a particular challenge.
Significantly, each entry 22 in the list 20 is ordered by the
service 18 based on a pre-determined weight assigned to the entry
22 based at least in part on perceived relevance to the current
context of the game 12 so that entries 22 in the list 20 are
ordered in descending perceived relevance.
[0017] Thus, the player 10 with the returned list 20 of entries 22
selects the first entry 22 in the list 20, upon which the guide 16
obtains the selected entry 22 from the service 18 and presents same
in the viewer or in another viewer in the display. Significantly,
each entry 22 is written by an authoring player 10 and not by the
developer of the game 12, thus freeing the developer from having to
do so, and also allowing each entry 22 to contain as much or as
little information as the authoring player 10 cares to provide, and
further allowing multiple entries 22 to be written regarding the
same subject.
[0018] Note here that each entry 22 may be categorized based on any
factor, such as a relevant amount of information provided (i.e.,
hints only, detailed information, etc.), and the selecting player
10 may select corresponding categories to filter the entries 22.
For example, if the selecting player 10 only wants hints, only the
entries 22 categorized as hints only are presented. The selecting
player 10 may modify such filtering as necessary or desired, such
as for example if none of the presented entries 22 seem to be of
help.
[0019] Note too that each entry 22 as written by an authoring
player 10 may include screen shots and/or video clips of the game
12 and annotations thereto as provided by such authoring player 10.
As may be appreciated, such authoring player 10 may employ the
guide 16 thereof to capture such screen shots and/or video clips
from the game 12, and also to annotate same such as for example
with an electronic grease pencil. Additionally, the authoring
player 10 may employ the guide 16 thereof to add audio commentary
and/or video to the entry 22 authored thereby.
[0020] Note further that each entry 22 as provided by the service
18 may be marked with special indicia as necessary or appropriate.
For example, one indicia may be employed when a friend of the
selecting player 10 has recommended the entry 22 or found the entry
to be useful, helpful, or the like. Another indicia may be employed
to signify that the authoring player 12 has experienced the
challenge to which the entry 22 relates. Thus, the selecting player
10 can view such indicia as a seal of approval, or at least as an
indication that the entry 22 deserves special attention.
[0021] Upon reviewing a number of the entries 22 in the returned
list 20, then (313), the selecting player 10 hopefully has gathered
enough information regarding how to succeed at the challenge which
prompted the request contextual help request from such selecting
player 10. Such selecting player 10 may then resume playing the
game 12 and in fact employ such gathered information to succeed at
the challenge, hopefully (315).
[0022] At some point, and perhaps upon reflection, the selecting
player 10 may decide that a particular selected entry 22 was not
helpful. In such a case, the selecting player 10 may employ the
guide 16 to connect to the service 18, access the particular entry
22, and contribute a rating thereto (317). Such rating could be a
simple positive or negative, could be scaled from 0 to 10, or the
like. As may be appreciated, the service 18 employs such rating
when calculating the aforementioned pre-determined weight for the
entry 22 in response to a future request. Thus, such weight is also
based at least in part on ratings as provided by other players
12.
[0023] The selecting player 10 may also decided that he or she
would like to author his or her own entry 22 regarding a challenge
(319). Such an authored entry 22 may be based on a previous entry
22 or may be entirely new. In any case, the now-authoring player 10
may either access the service 18 by way of the guide 16 of the
console 14, or may employ an appropriately networked personal
computer or the like, especially if the guide 16 is not amenable to
authoring. Such an authored entry 22 will itself be provided with a
weight to order same in lists 20 that include such authored entry
22. If especially good, the authoring player 10 may in fact receive
an award in connection with the game 12, such as extra game points,
extra expert points, or the like.
[0024] As was alluded to above, various objects in the game 12,
such as challenges, creatures, items, etc., may be tagged with a
unique ID or the like. Accordingly, each time such an object is
encountered or experienced by a player 10 playing the game 12, the
corresponding tag thereof may be pushed onto a stack or the like.
Additionally, each such tag may have a corresponding counter and
such counter may be incremented when the tag is pushed. As should
be understood, then, the counters identify a relative popularity of
each object, and such information may be provided to the service 18
by way of the guide as necessary and/or appropriate.
[0025] More significantly, a certain number of tags on the top of
the stack or the like may be employed to represent the current
context of the game 12 when the guide 16 requests contextual help
from the service 18, as was set forth above. Thus, the guide 16 can
send the tags to the service 18 along with the request for help as
at 309, and the service 18 may employ the sent tags when compiling
the list 20 of entries 22 to be returned. For example, the service
18 may employ the corresponding ID of each sent tag to locate
entries 22, assuming that such entries 22 at the service 18 are
appropriately locatable based on such IDs. Alternately, each ID may
correspond to a text string that is employed when the service 18
performs a text search of entries 22.
[0026] In response to a request for contextual help from a guide
16, the service 18 may not immediately return a list 20 of entries
22. Instead, the service may compile a contextual table of contents
(TOC) 24 based on the tags included with the request. Thus, the TOC
24 identifies subjects of possible interest to the player 10, who
in response can select a particular subject from the TOC 24. The
guide 16 then notifies the service 18 regarding the selected
subject, and the returned list 20 of entries is complied to be
relevant to such subject.
[0027] When developing the game 12, a developer should provide the
service 18 with a base TOC 26 for the game 12. Such base TOC 26 may
provide links to base entries 22, each of which corresponds to a
tag. Accordingly, the developer can at least highlight areas he or
she believes is important or will require help. Thus, an authoring
player 10 that authors an entry 22 can specify that the authored
entry 22 is to be linked to one or more particular base entries 22,
and in so doing at least implicitly allows the authored entry 22 to
be located based on the ID of the tag.
[0028] At least initially, an authored entry 22 has little if any
information associated therewith that can be employed to provide a
weight therefor. Accordingly, such an initial weight may be derived
based on the authoring player 10. In particular, such an initial
weight may be based at least in part on a number of points
accumulated by the authoring player 10, be they game points, expert
points, or the like, whether the authoring player 10 has
experienced the challenge to which the authored entry 22 relates,
an average weight value of other entries 22 authored by the
authoring player 10, and the like.
Exemplary Computing Arrangement
[0029] FIG. 1 shows an exemplary computing environment in which
example embodiments and aspects may be implemented. The computing
system environment 100 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. Neither should the computing
environment 100 be interpreted as having any dependency or
requirement relating to any one or combination of components
illustrated in the exemplary operating environment 100.
[0030] Numerous other general purpose or special purpose computing
system environments or configurations may be used. Examples of well
known computing systems, environments, and/or configurations that
may be suitable for use include, but are not limited to, personal
computers, server computers, hand-held or laptop devices,
multiprocessor systems, microprocessor-based systems, set top
boxes, programmable consumer electronics, network PCs,
minicomputers, mainframe computers, embedded systems, distributed
computing environments that include any of the above systems or
devices, and the like.
[0031] Computer-executable instructions, such as program modules,
being executed by a computer may be used. Generally, program
modules include routines, programs, objects, components, data
structures, etc. that perform particular tasks or implement
particular abstract data types. Distributed computing environments
may be used where tasks are performed by remote processing devices
that are linked through a communications network or other data
transmission medium. In a distributed computing environment,
program modules and other data may be located in both local and
remote computer storage media including memory storage devices.
[0032] With reference to FIG. 1, an exemplary system includes a
general purpose computing device in the form of a computer 110.
Components of computer 110 may include, but are not limited to, a
processing unit 120, a system memory 130, and a system bus 121 that
couples various system components including the system memory to
the processing unit 120. The processing unit 120 may represent
multiple logical processing units such as those supported on a
multi-threaded processor. The system bus 121 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). The system bus 121 may also be
implemented as a point-to-point connection, switching fabric, or
the like, among the communicating devices.
[0033] Computer 110 typically includes a variety of computer
readable media. Computer readable media can be any available media
that can be accessed by computer 110 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, RAM, ROM, EEPROM, flash memory or
other memory technology, 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 which can be used to store the desired information and
which can accessed by computer 110. 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.
[0034] The system memory 130 includes computer storage media in the
form of volatile and/or nonvolatile memory such as read only memory
(ROM) 131 and random access memory (RAM) 132. A basic input/output
system 133 (BIOS), containing the basic routines that help to
transfer information between elements within computer 110, such as
during start-up, is typically stored in ROM 131. RAM 132 typically
contains data and/or program modules that are immediately
accessible to and/or presently being operated on by processing unit
120. By way of example, and not limitation, FIG. 1 illustrates
operating system 134, application programs 135, other program
modules 136, and program data 137.
[0035] The computer 110 may also include other
removable/non-removable, volatile/nonvolatile computer storage
media. By way of example only, FIG. 1 illustrates a hard disk drive
140 that reads from or writes to non-removable, nonvolatile
magnetic media, a magnetic disk drive 151 that reads from or writes
to a removable, nonvolatile magnetic disk 152, and an optical disk
drive 155 that reads from or writes to a removable, nonvolatile
optical disk 156, 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. The hard disk drive 141
is typically connected to the system bus 121 through a
non-removable memory interface such as interface 140, and magnetic
disk drive 151 and optical disk drive 155 are typically connected
to the system bus 121 by a removable memory interface, such as
interface 150.
[0036] The drives and their associated computer storage media
discussed above and illustrated in FIG. 1, provide storage of
computer readable instructions, data structures, program modules
and other data for the computer 110. In FIG. 1, for example, hard
disk drive 141 is illustrated as storing operating system 144,
application programs 145, other program modules 146, and program
data 147. Note that these components can either be the same as or
different from operating system 134, application programs 135,
other program modules 136, and program data 137. Operating system
144, application programs 145, other program modules 146, and
program data 147 are given different numbers here to illustrate
that, at a minimum, they are different copies. A user may enter
commands and information into the computer 20 through input devices
such as a keyboard 162 and pointing device 161, commonly referred
to as a mouse, trackball or touch pad. 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 the processing unit 120 through a user input interface
160 that is coupled to the system bus, but may be connected by
other interface and bus structures, such as a parallel port, game
port or a universal serial bus (USB). A monitor 191 or other type
of display device is also connected to the system bus 121 via an
interface, such as a video interface 190. In addition to the
monitor, computers may also include other peripheral output devices
such as speakers 197 and printer 196, which may be connected
through an output peripheral interface 195.
[0037] The computer 110 may operate in a networked environment
using logical connections to one or more remote computers, such as
a remote computer 180. The remote computer 180 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 the computer 110, although
only a memory storage device 181 has been illustrated in FIG. 1.
The logical connections depicted in FIG. 1 include a local area
network (LAN) 171 and a wide area network (WAN) 173, but may also
include other networks. Such networking environments are
commonplace in offices, enterprise-wide computer networks,
intranets and the Internet.
[0038] When used in a LAN networking environment, the computer 110
is connected to the LAN 171 through a network interface or adapter
170. When used in a WAN networking environment, the computer 110
typically includes a modem 172 or other means for establishing
communications over the WAN 173, such as the Internet. The modem
172, which may be internal or external, may be connected to the
system bus 121 via the user input interface 160, or other
appropriate mechanism. In a networked environment, program modules
depicted relative to the computer 110, or portions thereof, may be
stored in the remote memory storage device. By way of example, and
not limitation, FIG. 1 illustrates remote application programs 185
as residing on memory device 181. 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.
[0039] 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.
* * * * *