U.S. patent application number 12/981069 was filed with the patent office on 2012-07-05 for suggesting game roles for different players based on a player's gaming statistics from other games.
This patent application is currently assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION. Invention is credited to NATHAN A. BAKER, JAMES D. CREASMAN, BARRY J. PELLAS, ADRIAN P. VROUWENVELDER.
Application Number | 20120172098 12/981069 |
Document ID | / |
Family ID | 46381216 |
Filed Date | 2012-07-05 |
United States Patent
Application |
20120172098 |
Kind Code |
A1 |
BAKER; NATHAN A. ; et
al. |
July 5, 2012 |
SUGGESTING GAME ROLES FOR DIFFERENT PLAYERS BASED ON A PLAYER'S
GAMING STATISTICS FROM OTHER GAMES
Abstract
In one embodiment of the invention, game specific statistics for
previously played games are obtained for each player of a game.
Weights and corresponding generic attributes are associated with
each game specific statistic. For each game specific statistics, a
generic attribute score is computed based on the corresponding
weight and generic attribute. In response to a request to play a
game, generic attributes are determined for each role of the game.
For each generic attribute of each role of the game, the generic
attribute scores of each player are compared and a specific role is
suggested for each player. If all the players accept their
respective and suggested roles, then those roles are assigned to
the players. If one or more players rejects a suggested role, that
player may request a different role and another role will be
suggested for that player.
Inventors: |
BAKER; NATHAN A.; (RALEIGH,
NC) ; CREASMAN; JAMES D.; (APEX, NC) ; PELLAS;
BARRY J.; (DURHAM, NC) ; VROUWENVELDER; ADRIAN
P.; (CHAPEL HILL, NC) |
Assignee: |
INTERNATIONAL BUSINESS MACHINES
CORPORATION
ARMONK
NY
|
Family ID: |
46381216 |
Appl. No.: |
12/981069 |
Filed: |
December 29, 2010 |
Current U.S.
Class: |
463/1 ;
463/43 |
Current CPC
Class: |
G07F 17/3234 20130101;
G07F 17/3237 20130101 |
Class at
Publication: |
463/1 ;
463/43 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Claims
1. A method, comprising: receiving a first plurality of game
specific statistics for a first player, and a second plurality of
game specific statistics for a second player; receiving a plurality
of weights, each one of the plurality of weights being associated
with one of the first plurality and the second plurality of game
specific statistics, each one of the plurality of weights
comprising an associated one of a first plurality of generic
attributes; computing a first plurality of generic attribute scores
for the first player, each one of the first plurality of generic
attribute scores being computed using one of the first plurality of
game specific statistics, and a corresponding one of the plurality
of weights and the associated one of the first plurality of generic
attributes; computing a second plurality of generic attribute
scores for the second player, each one of the second plurality of
generic attribute scores being computed using one of the second
plurality of game specific statistics, and a corresponding one of
the plurality of weights and the associated one of the first
plurality of generic attributes; receiving a request to play a
game; and suggesting a first role of the game for the first player
and a second role of the game for the second player.
2. The method of claim 1, further comprising: determining a second
plurality of generic attributes corresponding to the first and the
second roles of the game; and for each one of the second plurality
of generic attributes, comparing the corresponding one of the first
plurality of generic attribute scores for the first player to the
corresponding one of the second plurality of generic attribute
scores for the second player.
3. The method of claim 2, further comprising: multiplying one of
the first plurality of game specific statistics by a corresponding
one of the plurality of weights to compute the corresponding one of
the first plurality of generic attribute scores for the first
player.
4. The method of claim 1, further comprising: in response to the
first player not accepting the first role and the first player
requesting a third role, suggesting the third role for the first
player.
5. The method of claim 1, further comprising: in response to the
first player accepting the first role and the second player
accepting the second role, assigning the first role to the first
player and the second role to the second player.
6. The method of claim 1, further comprising: multiplying one of
the first plurality of game specific statistics by a corresponding
one of the plurality of weights to compute the corresponding one of
the first plurality of generic attribute scores for the first
player.
7. An apparatus, comprising: a storage device comprising computer
executable program code; and a processor coupled to the storage
device, where the processor executes the computer executable
program code to direct the apparatus to: receive a first plurality
of game specific statistics for a first player, and a second
plurality of game specific statistics for a second player; receive
a plurality of weights, each one of the plurality of weights being
associated with one of the first plurality and the second plurality
of game specific statistics, each one of the plurality of weights
comprising an associated one of a first plurality of generic
attributes; compute a first plurality of generic attribute scores
for the first player, each one of the first plurality of generic
attribute scores being computed using one of the first plurality of
game specific statistics, and a corresponding one of the plurality
of weights and the associated one of the first plurality of generic
attributes; compute a second plurality of generic attribute scores
for the second player, each one of the second plurality of generic
attribute scores being computed using one of the second plurality
of game specific statistics, and a corresponding one of the
plurality of weights and the associated one of the first plurality
of generic attributes; receive a request to play a game; and
suggest a first role of the game for the first player and a second
role of the game for the second player.
8. The apparatus of claim 7, where the processor further executes
the computer executable program code to direct the apparatus to:
determine a second plurality of generic attributes corresponding to
the first and the second roles of the game; and for each one of the
second plurality of generic attributes, compare the corresponding
one of the first plurality of generic attribute scores for the
first player to the corresponding one of the second plurality of
generic attribute scores for the second player.
9. The apparatus of claim 8, where the processor further executes
the computer executable program code to direct the apparatus to:
multiply one of the first plurality of game specific statistics by
a corresponding one of the plurality of weights to compute the
corresponding one of the first plurality of generic attribute
scores for the first player.
10. The apparatus of claim 7, where the processor further executes
the computer executable program code to direct the apparatus to: in
response to the first player not accepting the first role and the
first player requesting a third role, suggest the third role for
the first player.
11. The apparatus of claim 7, where the processor further executes
the computer executable program code to direct the apparatus to: in
response to the first player accepting the first role and the
second player accepting the second role, assign the first role to
the first player and the second role to the second player.
12. The apparatus of claim 7, where the processor further executes
the computer executable program code to direct the apparatus to:
multiply one of the first plurality of game specific statistics by
a corresponding one of the plurality of weights to compute the
corresponding one of the first plurality of generic attribute
scores for the first player.
13. A computer program product comprising a computer readable
storage medium having computer readable program code embodied
therewith, the computer readable program code comprising: computer
readable program code configured to receive a first plurality of
game specific statistics for a first player, and a second plurality
of game specific statistics for a second player; computer readable
program code configured to receive a plurality of weights, each one
of the plurality of weights being associated with one of the first
plurality and the second plurality of game specific statistics,
each one of the plurality of weights comprising an associated one
of a first plurality of generic attributes; computer readable
program code configured to compute a first plurality of generic
attribute scores for the first player, each one of the first
plurality of generic attribute scores being computed using one of
the first plurality of game specific statistics, and a
corresponding one of the plurality of weights and the associated
one of the first plurality of generic attributes; computer readable
program code configured to compute a second plurality of generic
attribute scores for the second player, each one of the second
plurality of generic attribute scores being computed using one of
the second plurality of game specific statistics, and a
corresponding one of the plurality of weights and the associated
one of the first plurality of generic attributes; computer readable
program code configured to receive a request to play a game; and
computer readable program code configured to suggest a first role
of the game for the first player and a second role of the game for
the second player.
14. The computer program product of claim 13, further comprising:
computer readable program code configured to determine a second
plurality of generic attributes corresponding to the first and the
second roles of the game; and computer readable program code
configured to, for each one of the second plurality of generic
attributes, compare the corresponding one of the first plurality of
generic attribute scores for the first player to the corresponding
one of the second plurality of generic attribute scores for the
second player.
15. The computer program product of claim 14, further comprising:
computer readable program code configured to multiply one of the
first plurality of game specific statistics by a corresponding one
of the plurality of weights to compute the corresponding one of the
first plurality of generic attribute scores for the first
player.
16. The computer program product of claim 13, further comprising:
computer readable program code configured to, in response to the
first player not accepting the first role and the first player
requesting a third role, suggest the third role for the first
player.
17. The computer program product of claim 13, further comprising:
computer readable program code configured to, in response to the
first player accepting the first role and the second player
accepting the second role, assign the first role to the first
player and the second role to the second player.
18. The computer program product of claim 13, further comprising:
computer readable program code configured to multiply one of the
first plurality of game specific statistics by a corresponding one
of the plurality of weights to compute the corresponding one of the
first plurality of generic attribute scores for the first player.
Description
BACKGROUND
[0001] The present invention relates to computers and other data
processing systems and software and, more specifically, to games in
which different roles may be assigned to different players.
[0002] Many electronic games maintain a profile of each player that
holds various statistics regarding each players prior performance
of the game. These statistics are usually updated as the game is
being played. For games that include a variety of roles, these
statistics are often collected and stored on a role-by-role basis.
Thus, one player may have one set of game specific statistics for
one role, and another set of statistics for the same game but a
different role. These game specific statistic can often be accessed
by other systems.
SUMMARY
[0003] According to one embodiment of the present invention, a
method includes the following steps: Receiving a first plurality of
game specific statistics for a first player, and a second plurality
of game specific statistics for a second player. Receiving a
plurality of weights, where each one of the plurality of weights is
associated with one of the first plurality and the second plurality
of game specific statistics, and each one of the plurality of
weights has an associated one of a first plurality of generic
attributes. Computing a first plurality of generic attribute scores
for the first player using one of the first plurality of game
specific statistics, and a corresponding one of the plurality of
weights and the associated one of the first plurality of generic
attributes. Computing a second plurality of generic attribute
scores for the second player using one of the second plurality of
game specific statistics, and a corresponding one of the plurality
of weights and the associated one of the first plurality of generic
attributes. Receiving a request to play a game, and suggesting a
first role of the game for the first player and a second role of
the game for the second player.
[0004] According to another embodiment of the present invention, an
apparatus includes a storage device comprising computer executable
program code and a processor coupled to the storage device. The
processor executes the computer executable program code to direct
the apparatus to do the following: Receive a first plurality of
game specific statistics for a first player, and a second plurality
of game specific statistics for a second player. Receive a
plurality of weights, where each one of the plurality of weights is
associated with one of the first plurality and the second plurality
of game specific statistics, and each one of the plurality of
weights includes an associated one of a first plurality of generic
attributes. Compute a first plurality of generic attribute scores
for the first player, where each one of the first plurality of
generic attribute scores is computed using one of the first
plurality of game specific statistics, and a corresponding one of
the plurality of weights and the associated one of the first
plurality of generic attributes. Compute a second plurality of
generic attribute scores for the second player, where each one of
the second plurality of generic attribute scores is computed using
one of the second plurality of game specific statistics, and a
corresponding one of the plurality of weights and the associated
one of the first plurality of generic attributes. Receive a request
to play a game, and suggest a first role of the game for the first
player and a second role of the game for the second player.
[0005] According to another embodiment of the present invention, a
computer program product includes a computer readable storage
medium having computer readable program code embodied therewith.
The computer readable program code is configured to: Receive a
first plurality of game specific statistics for a first player, and
a second plurality of game specific statistics for a second player.
Receive a plurality of weights, where each one of the plurality of
weights is associated with one of the first plurality and the
second plurality of game specific statistics, and each one of the
plurality of weights includes an associated one of a first
plurality of generic attributes. Compute a first plurality of
generic attribute scores for the first player using one of the
first plurality of game specific statistics, and a corresponding
one of the plurality of weights and the associated one of the first
plurality of generic attributes. Compute a second plurality of
generic attribute scores for the second player, using one of the
second plurality of game specific statistics, and a corresponding
one of the plurality of weights and the associated one of the first
plurality of generic attributes. Receive a request to play a game,
and suggest a first role of the game for the first player and a
second role of the game for the second player.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
[0006] FIG. 1 is a block diagram of an exemplary computer or other
data processing system in which various embodiments of the present
invention may be implemented;
[0007] FIG. 2 is a flowchart of one embodiment of a process for
generating generic attribute scores based on weights and generic
attributes associated with game specific statistics; and
[0008] FIG. 3 is a flowchart of one embodiment of a process for
suggesting and assigning different players to different roles of a
game to be played by two or more players.
DETAILED DESCRIPTION
[0009] As will be appreciated by one skilled in the art, aspects of
the present invention may be embodied as a system, method or
computer program product. Accordingly, aspects of the present
invention may take the form of an entirely hardware embodiment, an
entirely software embodiment (including firmware, resident
software, micro-code, etc.) or an embodiment combining software and
hardware aspects that may all generally be referred to herein as a
"circuit," "module" or "system."
[0010] Aspects of the present invention may take the form of a
computer program product embodied in one or more computer readable
medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be
utilized. The computer readable medium may be a computer readable
signal medium or a computer readable storage medium. A computer
readable storage medium may be, for example, but not limited to, an
electronic, magnetic, optical, electromagnetic, infrared, or
semiconductor system, apparatus or device, or any suitable
combination of the foregoing. More specific examples (a
non-exhaustive list) of the computer readable storage medium would
include the following: an electrical connection having one or more
wires, a portable computer diskette, a hard disk, a random access
memory (RAM), a read-only memory (ROM), an erasable programmable
read-only memory (EPROM or Flash memory), an optical fiber, a
compact disc read-only memory (CD-ROM), an optical storage device,
a magnetic storage device, or any suitable combination of the
foregoing. In the context of this document, a computer readable
storage medium may be any tangible medium that can contain, or
store a program for use by or in connection with an instruction
execution system, apparatus or device.
[0011] A computer readable signal medium may include a propagated
data signal with computer readable program code embodied therein;
for example, in baseband or as part of a carrier wave. Such a
propagated signal may take any of a variety of forms including, but
not limited to, electro-magnetic, optical or any suitable
combination thereof. A computer readable signal medium may be any
computer readable medium that is not a computer readable storage
medium and that can communicate, propagate or transport a program
for use by or in connection with an instruction execution system,
apparatus or device. Program code embodied in a computer readable
signal medium may be transmitted using any appropriate medium
including, but not limited to, wireless, wire line, optical fiber
cable, RF, etc., or any suitable combination of the foregoing.
[0012] Computer program code for carrying out operations of the
present invention may be written in any combination of one or more
programming languages, including an object oriented programming
language such as Java.TM., Smalltalk, C++ or the like, and
conventional procedural programming languages, such as the "C"
programming language or similar programming languages. (Java and
all Java-based trademarks and logos are trademarks of Sun
Microsystems, Inc., in the United States, other countries or both.)
The program code may execute entirely on the user's computer,
partly on the user's computer, as a stand-alone software package,
partly on the user's computer and partly on a remote computer, or
entirely on a remote computer or server. In the latter scenario,
the remote computer may be connected to the user's computer through
any type of network, including a local area network (LAN) or a wide
area network (WAN), or the connection may be made to an external
computer (for example, through the Internet using an Internet
Service Provider).
[0013] Aspects of the present invention are described below with
reference to flowchart illustrations and/or block diagrams of
methods, apparatus, systems and computer program products according
to various embodiments of the invention. It will be understood that
each block of the flowchart illustrations and/or block diagrams,
and combinations of blocks in the flowchart illustrations and/or
block diagrams, can be implemented by computer program
instructions. These computer program instructions may be provided
to a processor of a general purpose computer, special purpose
computer, or other programmable data processing apparatus to
produce a machine, such that the instructions, which execute via
the processor of the computer or other programmable data processing
apparatus, create means for implementing the functions/acts
specified in the flowchart and/or block diagram block or
blocks.
[0014] These computer program instructions may also be stored in a
computer readable medium that can direct a computer or other
programmable data processing apparatus to function in a particular
manner, such that the instructions stored in the computer readable
medium produce an article of manufacture including instructions
which implement the function/act specified in the flowchart and/or
block diagram block or blocks. The computer program instructions
may also be loaded onto a computer or other programmable data
processing apparatus to cause a series of operational steps to be
performed in the computer or other programmable apparatus to
produce a computer-implemented process, such that the instructions
that execute in the computer or other programmable apparatus
provide processes for implementing the functions/acts specified in
the flowchart and/or block diagram block or blocks.
[0015] FIG. 1 is a block diagram of an exemplary computer or other
data processing system in which various embodiments of the present
invention may be implemented. Referring to this figure, bus
subsystem 102 interconnects the various components of data
processing system 100, such as processor 104, memory 106,
persistent storage 108, interface subsystem 110 and video subsystem
112. Bus subsystem 102 preferably includes one or more computer
buses, and may also include one or more circuits to interconnect
the various buses and components of data processing system 100.
These circuits may include memory controllers, input/output
controllers, and bridge circuits that bridge from one bus
technology to another.
[0016] The terms "bus" and "bus subsystem" should be broadly
interpreted to include other interconnect technologies or
combinations thereof in which power, timing, data or other signals
are transferred between the various components of a data processing
system, or between two or more data processing systems. For
example, technologies commonly classified as network and
input/output, such as Ethernet and USB, and various wired,
wireless, optical and infrared communication technologies may also
be used to interconnect the various components of data processing
system 100.
[0017] Processor 104 is connected to bus subsystem 102 via bus
102a, such as a well known Front Side Bus. Processor 104 is,
preferably, a well known integrated circuit, central processing
unit (CPU), but it may be any data processing subsystem that
processes data or executes computer program instructions, which are
also known as computer executable code, computer readable program
code, and similar terms. These computer program instructions and
data are loaded into memory 106, which is coupled to processor 104
via memory bus 102b, bus subsystem 102, and bus 102a. Processor
104, in combination with a memory controller circuit in bus
subsystem 102, fetches the data and program instructions stored in
memory 106. Memory 106 may be any memory or storage device that is
capable of storing and retrieving data or program instructions, but
is preferably one or more semiconductor, random access memory (RAM)
circuits.
[0018] Persistent storage 108 is used to store data, program
instructions and other information on a more permanent or
persistent basis than that of memory 106, which typically uses a
fast but volatile memory technology wherein all information is lost
if the power to the memory is disrupted. Persistent storage 108 is
coupled to bus subsystem 102 via storage bus 102c, examples of
which include well known IDE, SATA and SCSI buses, although other
bus technologies may also be used. Data, program instructions and
other information may be stored in persistent storage 108, and
loaded into memory 106. Persistent storage 108 is coupled to memory
106 via bus 102c, an I/O controller circuit and a memory controller
circuit in bus subsystem 102, and memory bus 102b.
[0019] Persistent storage may be any memory or information storage
device that is capable of storing data, program instructions or
other information. Examples of typical persistent storage devices
include magnetic storage devices (such as a hard disk drive),
optical storage devices (such as a CD-ROM) and semiconductor
storage devices (such as EEPROMs and flash memory). Persistent
storage 108 may also include drives, connectors or other devices
that accept removable storage media, such as floppy magnetic disks,
optical disks and semiconductor flash memory. Persistent storage
108, as well as memory 106, may be internally located within data
processing system 100, or externally located and coupled to the
data processing system through Interface subsystem 110 or
otherwise.
[0020] Interface subsystem 110 is coupled to bus subsystem 102 via
bus 102d. Interface subsystem 110 may include one or more
input/output (I/O) and network ports to which devices, systems and
networks that are external to data processing system 100 can be
connected. Examples of such devices, systems and networks include
keyboards, pointing devices (such as a mouse), printers, scanners,
storage devices, local area networks (LANs), wide area networks
(WANs), and other data processing systems. Each of these I/O and
network ports may be implemented in a different I/O or network
technology, examples of which include Universal Serial Bus (USB),
Ethernet, IEEE 1394 (FireWire), Small Computer System Interface
(SCSI) and IEEE 802.11 (wireless LAN). In some data processing
systems, portions of interface subsystem 110 may be implemented in
an I/O controller circuit that is part of bus subsystem 102. FIG. 1
illustrates exemplary Ethernet, USB and IEEE 1394 ports of
interface subsystem 110, but other ports and port technologies may
be included.
[0021] Video subsystem 112, the output of which may be connected to
a video display, is coupled to bus subsystem 102 via video bus
102e. Examples of video bus technologies include Accelerated
Graphics Port (AGP) and PCI Express, although other bus
technologies may be used to implement video bus 102e.
[0022] A computer program product 120 includes computer readable
program code 122 embodied in a computer readable medium 124, which
may be a storage medium or a signal medium. Computer readable
medium 124 may include memory 106, persistent storage 108 or any
storage device, including a storage device that is external to data
processing system 100. An external storage device may be coupled to
data processing system 100 through interface subsystem 110 or
otherwise. Computer readable medium 124 may also be a removable
storage medium that is capable of being inserted into an internal
or external drive or other device that is adapted to read the
removable storage medium. Other examples, variations and details of
a computer program product, a computer readable medium and computer
program code are described above.
[0023] FIG. 2 is a flowchart of one embodiment of a process for
generating Generic Attribute Scores based on weights and Generic
Attributes associated with Game Specific Statistics. Referring to
this figure, the process starts at step 202. In step 204, the
variables X, Y and Z are set to 1. The variable "X" is used to
specify a particular Player, the variable "Y" is used to specify a
particular Game, and the variable "Z" is used to specify a
particular Game Specific Statistic ("GSS").
[0024] In step 206, Game Specific Statistics are received for each
game that Player X has previously played and for which Game
Specific Statistics have been stored. These Game Specific
Statistics may be stored on a server, uploaded to a website that
stores game statistics, or otherwise made available to this process
by any other storage and delivery device. The first time through
the loop X=1, so Game Specific Statistics will initially be
obtained for Player 1. The Game Specific Statistics are, as the
name implies, specific to each game. For example, a basketball game
may have Game Specific Statistics for various positions that a
player has previously played, such as guard, point guard, forward
and center. Each Game Specific Statistic will have an associated
numeric value ("q") to indicate the player's quantitative
proficiency relative to that particular Game Specific Statistic, as
well an identification of the particular statistic ("STAT"). Thus,
the Game Specific Statistic can be viewed as an ordered pair of a
numeric value and the associated statistic: (q, STAT). Using the
basketball game and the point guard position as an example, an
exemplary Game Specific Statistic would be: GSS=(0.75, Point
Guard). Thus, in this example, the specific statistic is "Point
Guard" and the player's cumulative quantitative proficiency for
previous games played as Point Guard is 0.75.
[0025] In step 208, weights ("w") and corresponding Generic
Attributes ("GA") are received. Each of these weights and
corresponding Generic Attributes is associated with a particular
Game Specific Statistic of a game that the player has previously
played. The weight itself may be a number, while the Generic
Attribute may be a class of attribute, such as "reaction time", or
"accuracy." Collectively, the weight, the corresponding Generic
Attribute and the associated Game Specific Statistic may be
referred to as the Weight (capital "W"), which may be expressed as
a triplet (3-tuple): W=(w, GA, GSS). Using the basketball game and
reaction time as an example, an exemplary Weight would be: (0.5,
Reaction Time, Point Guard). Thus, in this example, the Game
Specific Statistic of "Point Guard" would map to the Generic
Attribute of "Reaction Time" and the weighting factor "w" is 0.5.
In addition to mapping this particular Game Specific Statistic to
the Generic Attribute "Reaction Time", it should be understood that
the same Game Specific Statistic could also be mapped to a
different Generic Attribute by the specification of an additional
and different Weight. Weights may be subjectively assigned (both
the weight "w" and the Generic Attribute "GA" portions of a Weight)
to each Game Specific Statistic and may be stored in a database for
access by various players.
[0026] In step 210, for Game Specific Statistic Z of Game Y of
Player X, a Generic Attribute Score ("GAS") is computed based on
the weight and associated Generic Attribute that correspond to Game
Specific Statistic Z. As the process makes successive loops through
step 210, eventually all Generic Attribute Scores will be
calculated for each Game Specific Statistic, for each game and for
each player. If a particular Game Specific Statistics does not have
an associated Weight, then no corresponding Generic Attribute Score
will be calculated. Also, a particular Game Specific Statistic may
have more than one weight and associated Generic Attribute
associated with it, in which case multiple Generic Attribute Scores
may be calculated for that Game Specific Statistic and player. A
Generic Attribute Score includes both a numeric score ("s"), as
well as a Generic Attribute ("GA"), and may also be thought of as
an ordered pair: GAS=(s, GA). For example, GAS=(5.2, Accuracy).
[0027] The process of computing a Generic Attribute Score may be
accomplished by multiplying the weight ("w") by the associated
numeric value ("q") of the Game Specific Statistic to obtain the
score "s", and the Generic Attribute portion of the Generic
Attribute Score is the same as the Generic Attribute that is
associated with the weight. Stated mathematically:
GAS=(q*w,GA)
In addition to multiplication, other processes may be used to
compute a Generic Atribute Score based on the weight "w" and the
value "q."
[0028] In step 212, the Generic Attribute Score for Player X is
stored. On successive times through the loop, different Generic
Attribute Scores will be calculated and stored for various Game
Specific Statistics, for various games, and for different players.
It should be noted that it is possible and maybe likely that there
will be more than one Generic Attribute Score calculated for the
same Generic Attribute of the same player. In such a situation, the
various Generic Attribute Scores for the same Generic Attribute can
be combined by some process such as averaging, although any other
process for achieving a single score from a plurality of scores may
be suitable.
[0029] In step 214, the process checks to determine if Z is the
last Game Specific Statistic for Game Y. If it is not, then the
process branches to step 216 wherein Z is incremented to point to
the next Game Specific Statistic for Game Y and Player X. Then the
process jumps from step 216 back to step 210. However, if this is
the last Game Specific Statistic, the process branches to step
218.
[0030] In step 218, the process checks to determine if Y is the
last game for Player X. If it is, the process branches to step 222.
If it is not the last game, then the process branches to step 220
where Y is incremented to point to the next game for Player X, and
Z is set to equal 1. Returning to step 222, the process checks to
determine if X is pointing to the last player. If it is not, the
process branches to step 224, where X is incremented to point to
the next player. However, if X is pointing to the last player, then
the process branches to step 226 where the process ends.
[0031] FIG. 3 is a flowchart of one embodiment of a process for
suggesting and assigning different players to different roles of a
game to be played by two or more players. Referring to this figure,
the process starts at step 302. In step 304, a request is received
from two or more players to play a game. In step 306, a
determination is made as to the Generic Attributes that correspond
to each role of the game to be played. As with the Weights as
described above, the Generic Attributes that correspond to the
various roles of the game to be played may be subjectively assigned
and stored in a database. In step 308, each player's Generic
Attribute Scores (for example, as calculated by the process of FIG.
2) are obtained.
[0032] In step 310, for each Generic Attribute of each role of a
game, the corresponding Generic Attribute Scores of each player are
compared, and a role for each player is suggested. For example, for
a basketball game and the role of "point guard", the corresponding
Generic Attributes might be "reaction time", "accuracy" and
"leadership." So the Generic Attribute Scores corresponding to
"reaction time", "accuracy" and "leadership" for Player 1 are
obtained and accumulated, such as by adding or averaging all three
of these Generic Attribute Scores to produce an accumulated score
for Player 1 in the role point guard. This is then repeated for
each player, until each player has an accumulated score for the
role of point guard. These accumulated scores for each player are
then compared, and one player is suggested to assume the role of
point guard, which may be the player with the higher accumulated
score for a role, although other methods of suggesting a player for
a particular role may be used.
[0033] In step 312, each player has an opportunity to accept or
reject their suggested role. Players who accept their suggested
role are considered to be "assigned players", while those players
who reject their suggested role are considered to be "unassigned
players." Unassigned players who have rejected the role that was
suggested have an opportunity in step 314 to request a specific
role. The process then jumps back to step 310, where new role
suggestions are made for all unassigned players. Once all the
unassigned players have accepted a role in step 312, the process
branches to step 316 were the roles are assigned and the game may
be played. In step 318, once the game is completed, each player's
skills are saved and the process ends in step 320.
[0034] Other ways are available to map Game Specific Statistics to
Generic Attribute Scores, examples of which follow. Players may be
compared to other players of the same game, such as a player's
ranking, which may be expressed as a percentile. The number of
games played by each of the players, both the number of games
played of the same game, as well as games of a similar genre. For
the later, the number of games played can be weighted more for
certain games and less for others. Players may also be compared in
terms of game achievements for the same game or games of a similar
genre. The time to achieve a certain objective in a game may also
be used as a Generic Attribute, where the lower the time the better
the Generic Attribute Score. Head-to-head matchups, such as in a
racing game where Player 1 and Player 2 are racing against one
another. In such a situation, each player's win/loss ratio can be
used as a Generic Attribute Score.
[0035] The processes described above and illustrated in FIG. 2 and
FIG. 3 can be implemented in a data processing system, such as the
one illustrated in FIG. 1. In operation, a request is received from
two or more players to play a game that has more than one role.
Generic Attributes corresponding to each role of the game are
obtained. These Generic Attributes may be subjectively determined
and stored in a database, which may be accessed at the time the
players make the request to play the game.
[0036] Game Specific Statistics are received for each game that
each player has previously played and for which these statistics
are available. These Game Specific Statistics may include an
identification of a particular statistic, as well as a numeric
value to indicate the player's proficiency with respect to that
particular statistic. A weight and a corresponding Generic
Attribute are associated with each of these Game Specific
Statistics. The weight may be a number, while the associated
Generic Attribute may be a class of attribute. Each Game Specific
Statistic may have more than one weight and Generic Attribute
associated with it.
[0037] For each Game Specific Statistic for each game of each
player, one or more Generic Attribute Scores is calculated based on
the corresponding weight and Generic Attribute. One way to
calculate the numeric portion of the Generic Attribute Score would
be to multiple the weight by the numeric value of the Game Specific
Statistic. For each Generic Attribute of each role of the game, the
corresponding Generic Attribute Scores of each player are compared,
and a role for each player is suggested. Each player then has an
opportunity to accept or reject their suggested role. A player who
has rejected a suggested role may request a specific role, and new
roles are suggested for all players who have not accepted a role.
Once all players have accepted a role, the roles are assigned and
the game may be played.
[0038] The flowchart and block diagrams in the figures illustrate
the architecture, functionality, and operation of possible
implementations of systems, methods, and computer program products
according to various embodiments of the present invention. In this
regard, each block in the flowchart or block diagrams may represent
a module, segment, or portion of code, which comprises one or more
executable instructions for implementing a specified logical
function. It should also be noted that, in some alternative
implementations, the functions noted in the block might occur out
of the order noted in the figures. For example, two blocks shown in
succession may, in fact, be executed substantially concurrently, or
the blocks may sometimes be executed in the reverse order,
depending upon the functionality involved. It will also be noted
that each block of the block diagrams and/or flowchart
illustrations, and combinations of blocks in the block diagrams
and/or flowchart illustrations, can be implemented by special
purpose hardware-based systems that perform the specified functions
or acts, or combinations of special purpose hardware and computer
instructions.
[0039] The terminology used herein is for the purpose of describing
particular embodiments only and is not intended to be limiting of
the invention. As used herein, the singular forms "a", "an" and
"the" are intended to include the plural forms as well, unless the
context clearly indicates otherwise. It will be further understood
that the terms "comprises" and/or "comprising," when used in this
specification, specify the presence of stated features, integers,
steps, operations, elements, and/or components, but do not preclude
the presence or addition of one or more other features, integers,
steps, operations, elements, components, and/or groups thereof.
[0040] The corresponding structures, materials, acts, and
equivalents of all means or step plus function elements in the
claims below are intended to include any structure, material, or
act for performing the function in combination with other claimed
elements as specifically claimed. The description of the present
invention has been presented for purposes of illustration and
description, but is not intended to be exhaustive or limited to the
invention in the form disclosed. Many modifications and variations
will be apparent to those of ordinary skill in the art without
departing from the scope and spirit of the invention. The
embodiment was chosen and described in order to best explain the
principles of the invention and the practical application, and to
enable others of ordinary skill in the art to understand the
invention for various embodiments with various modifications as are
suited to the particular use contemplated.
* * * * *