U.S. patent application number 16/573288 was filed with the patent office on 2020-01-09 for system and method for determining events of interest in a multi-player online game.
The applicant listed for this patent is MZ IP Holdings, LLC. Invention is credited to Matt Walsh.
Application Number | 20200009460 16/573288 |
Document ID | / |
Family ID | 61163841 |
Filed Date | 2020-01-09 |
![](/patent/app/20200009460/US20200009460A1-20200109-D00000.png)
![](/patent/app/20200009460/US20200009460A1-20200109-D00001.png)
![](/patent/app/20200009460/US20200009460A1-20200109-D00002.png)
![](/patent/app/20200009460/US20200009460A1-20200109-D00003.png)
![](/patent/app/20200009460/US20200009460A1-20200109-D00004.png)
![](/patent/app/20200009460/US20200009460A1-20200109-D00005.png)
United States Patent
Application |
20200009460 |
Kind Code |
A1 |
Walsh; Matt |
January 9, 2020 |
SYSTEM AND METHOD FOR DETERMINING EVENTS OF INTEREST IN A
MULTI-PLAYER ONLINE GAME
Abstract
Implementations of the present disclosure are directed to a
method, a system, and an article for identifying events of interest
in a multi-player online game and enabling users to witness the
events of interest. An example computer-implemented method can
include: obtaining a set of parameters for each of a plurality of
events in an online game played by a plurality of users;
calculating a score for each event based on the set of parameters,
the score providing an indication of a user interest in witnessing
the event; identifying one or more events as having a highest user
interest, based on the scores; notifying at least one user from the
plurality of users about the identified one or more events;
receiving an indication that the at least one user has selected one
of the identified one or more events; and enabling the at least one
user to witness the selected event.
Inventors: |
Walsh; Matt; (San Carlos,
CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
MZ IP Holdings, LLC |
Palo Alto |
CA |
US |
|
|
Family ID: |
61163841 |
Appl. No.: |
16/573288 |
Filed: |
September 17, 2019 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
15878894 |
Jan 24, 2018 |
10449454 |
|
|
16573288 |
|
|
|
|
62451238 |
Jan 27, 2017 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
A63F 13/5255 20140902;
H04N 21/2187 20130101; A63F 13/795 20140902; A63F 13/46 20140902;
A63F 13/67 20140902; A63F 13/85 20140902; A63F 13/79 20140902 |
International
Class: |
A63F 13/5255 20060101
A63F013/5255; H04N 21/2187 20060101 H04N021/2187; A63F 13/46
20060101 A63F013/46; A63F 13/795 20060101 A63F013/795 |
Claims
1. A method, comprising: receiving a set of parameters for each of
a plurality of events occurring in an application client as input
to a predictive model, wherein a plurality of users interact with
the application client, wherein the predictive model outputs a
score for each event based on the set of parameters, and wherein
each score indicates a predicted level of user interest in
witnessing the respective event; identifying, by one or more
computer processors, one or more of the plurality of events as
having a highest predicted user interest based on the scores;
notifying, by the one or more computer processors, at least one
user from the plurality of users about the identified events;
receiving an indication that the at least one user has selected one
of the identified events; and presenting, by the one or more
computer processors, on client devices of the at least one user a
live version of the selected event as the selected event is
occurring in the application client.
2. The method of claim 1, wherein the application client comprises
an online computer game.
3. The method of claim 1, wherein the predictive model comprises at
least one of a regression equation or a trained classifier.
4. The method of claim 1, wherein identifying the one or more of
the plurality of events as having the highest predicted user
interest based on the scores comprises: ranking the plurality of
events according to the respective scores.
5. The method of claim 1, wherein notifying the at least one user
comprises: providing a display arrangement comprising a list or a
grid in which the identified events are arranged according to the
scores.
6. The method of claim 1, comprising: receiving feedback from the
at least one user on the selected event; and updating the
predictive model based on the feedback.
7. The method of claim 1, comprising: identifying one or more users
who participated in the selected event; and notifying the
identified one or more users about a level of interest from other
users in witnessing the selected event.
8. The method of claim 1, comprising: delaying the presentation of
the selected event to one or more users.
9. The method of claim 1, comprising: tailoring the predictive
model according to user preferences to customize the output of the
predictive model to respective users.
10. The method of claim 1, comprising: modifying a graphical
display of a portion of a virtual environment of the application
client according to the predicted level of user interest in events
occurring in the portion of the virtual environment.
11. A system, comprising: one or more computer processors
programmed to perform operations to: receive a set of parameters
for each of a plurality of events occurring in an application
client as input to a predictive model, wherein a plurality of users
interact with the application client, wherein the predictive model
outputs a score for each event based on the set of parameters, and
wherein each score indicates a predicted level of user interest in
witnessing the respective event; identify one or more of the
plurality of events as having a highest predicted user interest
based on the scores; notify at least one user from the plurality of
users about the identified events; receive an indication that the
at least one user has selected one of the identified events; and
present on client devices of the at least one user a live version
of the selected event as the selected event is occurring in the
application client.
12. The system of claim 11, wherein the application client
comprises an online computer game.
13. The system of claim 11, wherein the predictive model comprises
at least one of a regression equation or a trained classifier.
14. The system of claim 11, wherein to identify the one or more of
the plurality of events as having the highest predicted user
interest based on the scores the one or more computer processors
are further to: rank the plurality of events according to the
respective scores.
15. The system of claim 11, wherein to notify the at least one user
the one or more computer processors are further to: provide a
display arrangement comprising a list or a grid in which the
identified events are arranged according to the scores.
16. The system of claim 11, wherein the operations are further to:
receive feedback from the at least one user on the selected event;
and update the predictive model based on the feedback.
17. The system of claim 11, wherein the operations are further to:
identify one or more users who participated in the selected event;
and notify the identified one or more users about a level of
interest from other users in witnessing the selected event.
18. The system of claim 11, wherein the operations are further to:
delay the presentation of the selected event to one or more
users.
19. The system of claim 11, wherein the operations are further to:
tailor the predictive model according to user preferences to
customize the output of the predictive model to respective
users.
20. A non-transitory computer-readable medium having instructions
stored thereon that, when executed by one or more computer
processors, cause the one or more computer processors to: receive a
set of parameters for each of a plurality of events occurring in an
application client as input to a predictive model, wherein a
plurality of users interact with the application client, wherein
the predictive model outputs a score for each event based on the
set of parameters, and wherein each score indicates a predicted
level of user interest in witnessing the respective event; identify
one or more of the plurality of events as having a highest
predicted user interest based on the scores; notify at least one
user from the plurality of users about the identified events;
receive an indication that the at least one user has selected one
of the identified events; and present on client devices of the at
least one user a live version of the selected event as the selected
event is occurring in the application client.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. application Ser.
No. 15/878,894, filed Jan. 24, 2018, which claims the benefit of
U.S. Provisional Patent Application No. 62/451,238, filed Jan. 27,
2017, the entire contents of each of which are incorporated by
reference herein.
BACKGROUND
[0002] The present disclosure relates to online games and, in
certain examples, to systems and methods for determining events of
interest in multi-player online games.
[0003] In general, a multi-player online game can be played by
hundreds of thousands or even millions of players who use client
devices to interact with a virtual environment for the online game.
The players are typically working to accomplish tasks, acquire
assets, or achieve a certain score or level in the online game.
Some games require or encourage players to form groups or teams
that can play against other players or groups of players.
[0004] Events that occur in multi-player online games are typically
witnessed or seen only by users who participate in the events. As a
result, interesting events involving, for example, disputes between
high-level players or difficult or unique problems, can go
unnoticed by the vast majority of users, who generally have no way
to search for or to witness such events.
SUMMARY
[0005] In general, the systems and methods described herein relate
to an approach for enabling users to witness events of interest in
a multi-player online game. The events of interest can be
determined by collecting parameters for a plurality of game events.
The parameters can be provided as input to a predictive model
(e.g., a regression equation and/or a trained classifier) that
calculates a score for each event. Based on the scores, the systems
and methods can identify events that users or players of the online
game may be interested in witnessing. A user can select one of the
identified events and be allowed to witness the identified event,
as a spectator. Advantageously, the approach allows interesting
events in the online game to be witnessed and enjoyed by any user,
in addition to the users who are participating in the event. The
approach improves user satisfaction and engagement with the online
game.
[0006] Further, the predictive model used to identify the events of
interest can be continuously or periodically updated according to
feedback obtained from users, either directly or indirectly.
Advantageously, as the model improves, interesting events can be
identified more accurately and/or efficiently, thereby enabling
users to witness events of greatest interest in the online
game.
[0007] In one aspect, the subject matter described in this
specification relates to a method. The method includes: obtaining a
set of parameters for each of a plurality of events in an online
game played by a plurality of users; calculating, by one or more
computer processors, a score for each event based on the set of
parameters, the score providing an indication of a user interest in
witnessing the event; identifying, by the one or more computer
processors, one or more events as having a highest user interest,
based on the scores; notifying, by the one or more computer
processors, at least one user from the plurality of users about the
identified one or more events; receiving an indication that the at
least one user has selected one of the identified one or more
events; and enabling, by the one or more computer processors, the
at least one user to witness the selected event.
[0008] In certain implementations, the parameters can include a
user level in the online game, a user condition in the online game,
a user connection status to the online game, a user history with
another user in the online game, a location in a virtual
environment for the online game, and any combination thereof. The
plurality of events can include a competition, an attack, a battle,
a use of virtual assets, a movement of virtual assets, and any
combination thereof. Obtaining the set of parameters can include
performing a periodic scan of a virtual environment for the online
game. Calculating the score for each event can include using a
predictive model that receives the set of parameters as input and
provides the score as output. The predictive model can be or
include, for example, a regression equation and/or a trained
classifier.
[0009] In some examples, the method can include: determining an
actual level of user interest in witnessing the identified one or
more events; and refining the predictive model based on the actual
level of user interest. Additionally or alternatively, the method
can include: identifying one or more users from the plurality of
users who participated in the selected event; and notifying the
identified one or more users about a level of user interest in
witnessing the selected event. Enabling the at least one user to
witness the selected event can include presenting on a client
device a live version of the selected event and/or a recording of
the selected event. Additionally or alternatively, enabling the at
least one user to witness the selected event can include preventing
the user from participating in the selected event.
[0010] In another aspect, the subject matter described in this
specification relates to a system. The system includes one or more
computer processors programmed to perform operations including:
obtaining a set of parameters for each of a plurality of events in
an online game played by a plurality of users; calculating a score
for each event based on the set of parameters, the score providing
an indication of a user interest in witnessing the event;
identifying one or more events as having a highest user interest,
based on the scores; notifying at least one user from the plurality
of users about the identified one or more events; receiving an
indication that the at least one user has selected one of the
identified one or more events; and enabling the at least one user
to witness the selected event.
[0011] In certain examples, the parameters can include a user level
in the online game, a user condition in the online game, a user
connection status to the online game, a user history with another
user in the online game, a location in a virtual environment for
the online game, and any combination thereof. The plurality of
events can include a competition, an attack, a battle, a use of
virtual assets, a movement of virtual assets, and any combination
thereof. Obtaining the set of parameters can include performing a
periodic scan of a virtual environment for the online game.
Calculating the score for each event can include using a predictive
model that receives the set of parameters as input and provides the
score as output. The predictive model can be or include, for
example, a regression equation and/or a trained classifier.
[0012] In some instances, the operations can include: determining
an actual level of user interest in witnessing the identified one
or more events; and refining the predictive model based on the
actual level of user interest. Additionally or alternatively, the
operations can include: identifying one or more users from the
plurality of users who participated in the selected event; and
notifying the identified one or more users about a level of user
interest in witnessing the selected event. Enabling the at least
one user to witness the selected event can include presenting on a
client device a live version of the selected event and/or a
recording of the selected event. Additionally or alternatively,
enabling the at least one user to witness the selected event can
include preventing the user from participating in the selected
event.
[0013] In another aspect, the subject matter described in this
specification relates to an article. The article includes a
non-transitory computer-readable medium having instructions stored
thereon that, when executed by one or more computer processors,
cause the computer processors to perform operations including:
obtaining a set of parameters for each of a plurality of events in
an online game played by a plurality of users; calculating a score
for each event based on the set of parameters, the score providing
an indication of a user interest in witnessing the event;
identifying one or more events as having a highest user interest,
based on the scores; notifying at least one user from the plurality
of users about the identified one or more events; receiving an
indication that the at least one user has selected one of the
identified one or more events; and enabling the at least one user
to witness the selected event.
[0014] Elements of embodiments described with respect to a given
aspect of the invention can be used in various embodiments of
another aspect of the invention. For example, it is contemplated
that features of dependent claims depending from one independent
claim can be used in apparatus, systems, and/or methods of any of
the other independent claims
DESCRIPTION OF THE DRAWINGS
[0015] FIG. 1 is a schematic diagram of an example system for
identifying events of interest in an online game and enabling users
to witness the events of interest.
[0016] FIG. 2 is a schematic map of a virtual environment having a
plurality of events of interest in an online game.
[0017] FIG. 3 is a schematic diagram of an example system for
identifying events of interest in an online game and enabling users
to witness the events of interest.
[0018] FIG. 4 is a schematic diagram of a client device displaying
a grid of events of interest for an online game.
[0019] FIG. 5 is a flowchart of an example method of identifying
events of interest in an online game and enabling users to witness
the events of interest.
DETAILED DESCRIPTION
[0020] In various implementations, the subject matter of this
disclosure relates to (i) determining events that users (also
referred to herein as "players") of a multi-player online game may
be interested in witnessing and (ii) enabling the users to witness
such events (also referred to herein as "hotspots" or "points of
interest"). While users can sometimes encounter hotspots on their
own (e.g., by exploring a virtual environment for an online game)
or with assistance from other users (e.g., by communicating with
other users), the systems and methods described herein can scan or
monitor an entire online game and identify events of potentially
greatest interest. A list of such events can be presented to users,
and the users can select one of the events to become a witness or
spectator for the event.
[0021] FIG. 1 illustrates an example system 100 for enabling users
to witness events of interest in an online game such as, for
example, a massively multi-player online game or the like. A server
system 112 provides functionality for providing the online game to
a plurality of users and for enabling users to witness events of
interest in the online game. The server system 112 includes
software components and databases that can be deployed at one or
more data centers 114 in one or more geographic locations, for
example. The server system 112 software components can include a
game module 116 and an event module 118. The software components
can include subcomponents that can execute on the same or on
different individual data processing apparatus. The server system
112 databases can include game data 120 and user data 122
databases. The databases can reside in one or more physical storage
systems. The software components and data will be further described
below.
[0022] An application, such as, for example, a web-based
application, can be provided as an end-user application to allow
users to interact with the server system 112. The end-user
application can be accessed through a network 126 (e.g., the
Internet) by users of client devices, such as a personal computer
128, a smart phone 130, a tablet computer 132, and a laptop
computer 134. Other client devices are possible. In alternative
examples, the game data 120 and/or the user data 122 or any
portions thereof can be stored on one or more client devices.
Additionally or alternatively, software components for the system
100 (e.g., the game module 116 and/or the event module 118) or any
portions thereof can reside on or be used to perform operations on
one or more client devices.
[0023] FIG. 1 depicts the game module 116 and the event module 118
as being able to communicate with the databases (e.g., the game
data 120 and the user data 122 databases). The game data 120
database generally includes information related to the multi-player
online game implemented using the system 100. The game data 120
database can include, for example, information related to a virtual
environment for the game, image, video and/or audio data for the
game, event data corresponding to previous, current or future game
events, and/or game state data defining a current state of the
game. The user data 122 database generally includes data related to
users and user interactions with the online game and/or the virtual
environment. Such information can be or include, for example, a
history of user connections to the system 100, user purchases, user
accomplishments, user levels, user tasks, user interactions with
other users (e.g., group chats), user virtual item acquisition or
usage, and/or other user conditions in the virtual environment
and/or real world. The user data 122 database can include
information related to game events that users may be interested in
witnessing. Such information can include, for example, an
indication of preferred types of game events or characteristics of
game events.
[0024] In various examples, the users or players of the online game
can have certain user capabilities in the virtual environment. The
user capabilities can be or include, for example, moving an avatar
or a virtual item or object to a different geographical location,
interacting with characters or other users, participating in user
groups or alliances, attacking other users, deploying troops,
defending against an attack from other users, deploying defenses,
building or modifying a virtual item or object (e.g., a virtual
building or other structure), developing a new skill, operating a
vehicle, acquiring a virtual item (e.g., a weapon), using or
interacting with a virtual item (e.g., a playing card or a weapon),
and performing supernatural tasks (e.g., casting a spell). Other
user capabilities are possible.
[0025] The virtual environment for the online game can be rendered
for users in the form of, for example, graphics, images, video,
audio, text, and/or haptic feedback. In an adventure game, for
example, a graphical user interface can display a virtual
environment that includes representations of characters (e.g.,
people or animals), natural features (e.g., mountains, rivers,
fields, trees, and/or weather conditions), and/or man-made features
(e.g., buildings, bridges, and/or vehicles).
[0026] In some examples, users can earn points or other assets in
the online game by performing tasks or reaching certain goals,
including, for example: winning a match or group of matches against
a computer or other user; eliminating a quantity of another user's
resources (e.g., one point per eliminated enemy troop); discovering
a quantity of a virtual resource (e.g., one point per hidden gold
coin discovered in a virtual environment); participating in a
mini-game that can support the online game (e.g., one point per
spin of a virtual slot machine); crafting or building a virtual
item (e.g., one point for building a virtual weapon); increasing
user level or user power (e.g., one point per unit increase in user
power); and/or using a new game feature (e.g., one point for using
a newly released virtual item). Other ways of earning points in the
online game are possible. In various examples, rewards earned in an
online game can be or include, for example, virtual goods, virtual
resources, new user titles (e.g., "Tournament Champion" or "Prince
of the Realm"), new graphical elements (e.g., a glow, color change,
or decorations at a user location or for user items), special
limited or early release items (e.g., permit user to be a first
user of a new game feature or item), and/or cryptocurrency
payouts.
[0027] FIG. 2 is a schematic map 200 of a virtual environment 202
for the online game. In the depicted example, the virtual
environment 202 is divided into a plurality of regions 204a-204i by
boundary lines 206a-206d, although the virtual environment 202 can
be divided into any suitable number of regions by any appropriate
number of boundary lines. Each player (or the player's character or
avatar) can belong to or reside in one of the regions 204a-204i and
can be affiliated with other players who belong to or reside in the
same region. In the context of an adventure game, each region can
be or correspond to, for example, a city, state, country, kingdom,
island, or other portion of the virtual environment 202.
[0028] At any given time in the online game, the virtual
environment 202 can include a plurality of events, such as, for
example, events 208a-208g, that users may be interested in
witnessing. To identify the events 208a-208g, the server system 112
can monitor or perform a scan of a current state of the virtual
environment 202. For example, the event module 118 can scan the
game state (e.g., as determined by the game module 116) to search
for events (e.g., events 208a-208g) and collect parameters
associated with the events. The events can be or include, for
example, a competition involving one or more players, an attack by
one or more players against one or more other players, a battle
between two or more players or between two or more kingdoms of
players, a use or movement of virtual assets (e.g., weapons,
troops, cards, and/or virtual currency), and/or a unique or
difficult problem solved by a user. Other types of user and game
events are possible and can depend on the online game. For example,
events can be or include contests or challenges that couple one or
more player activities with one or more player dispositions and/or
rewards during a specified range of time. A point system can be
used in which players can earn points for accomplishing one or more
tasks associated with an event. The parameters for the events
208a-208g can be or include, for example, a user level (e.g.,
advanced or beginner) in the online game, a user condition (e.g., a
collection of cards, weapons, defenses, or other assets) in the
online game, a user connection status (e.g., connected or
disconnected) with the online game, a user history (e.g., with
another user, such as a new relationship or an ongoing feud) in the
online game, a quantity of points or other player assets involved
in an event (e.g., an amount a player could gain or lose), and/or a
location in a virtual environment for the online game. Other types
of parameters are possible. The event module 118 can perform scans
of the game state continuously and/or periodically (e.g., every
minute, every 30 minutes, or every hour).
[0029] In certain examples, the event parameters collected by the
event module 118 are provided to a predictive model that can form a
part of or be executed by the event module 118 and can predict how
interested users may be in witnessing each event. The predictive
model can receive the event parameters as input and provide as
output a score indicating the predicted level of interest. The
predictive model can be or include, for example, a regression
equation developed by fitting a functional form through data. An
example predictive model for calculating a score S can be given
by
S=w.sub.0+w.sub.1*P.sub.1+w.sub.2*P.sub.2+ . . . +w.sub.n*P.sub.n,
(1)
where w.sub.0, w.sub.1, w.sub.2, . . . , w.sub.n are weights or
constants (e.g., determined by fitting the equation (1) to data)
and P.sub.1, P.sub.2, . . . , P.sub.n are event parameters. Example
event parameters and values for the parameters are provided in
Table 1.
TABLE-US-00001 TABLE 1 Example event parameters and possible
values. Event Parameter Possible Values User Level 1 to Max. Level
(e.g., 10, 20, or higher) User Defense Parameter 0 to 1 (e.g., 0
when defenses are minimized and 1 when defenses are maximized) User
Connection Status 1 = connected 0 = disconnected History Parameter
Number of disputes between users within a previous time period
(e.g., 0 to 10) Location Parameter 0 to 1 (e.g., 0 when event is in
region with low population density and 1 when event is in region
with high population density)
[0030] Additionally or alternatively, the predictive model can be
or include a classifier such as, for example, one or more linear
classifiers (e.g., Fisher's linear discriminant, logistic
regression, Naive Bayes classifier, and/or perceptron), support
vector machines (e.g., least squares support vector machines),
quadratic classifiers, kernel estimation models (e.g., k-nearest
neighbor), boosting (meta-algorithm) models, decision trees (e.g.,
random forests), neural networks, and/or learning vector
quantization models. Other classifiers can be used. The classifier
is preferably trained using training data that includes event
parameters collected by the event module 118 and corresponding
interest levels (e.g., determined by game developers and/or users),
for a wide range of event types. In some examples, experiments
performed with various algorithms that indicate logistic regression
classifiers can provide a best or most accurate outcome. Once
trained, the one or more classifiers can receive event parameters
as input and provide scores for events as output.
[0031] In various implementations, the event module 118 and the
predictive model can search for and identify a wide range of events
that may be of interest to users. For example, the event module 118
can search for and identify (using the predictive model) events in
which a high-power player is about to engage or attack another
player of sufficient power. When calculating the interest level
score, the predictive model can consider whether a player being
engaged is online or not. For example, users may enjoy watching a
lopsided battle in which one of the players is offline. Other users
may prefer to watch a more balanced battle in which both players
are online and able to participate. Additionally or alternatively,
the predictive model can consider other event parameters, such as a
state of player defenses, whether players participating in a
competition or battle have been involved in an ongoing feud, and/or
whether events are occurring in areas of a virtual environment
where other players are looking or currently located. In general,
events occurring in high activity areas of a virtual environment
are more likely to be of interest to users. Other suitable search
strategies and event parameters (alone or in combination) are
possible and can depend on the type of game in which the systems
and methods are implemented. The event parameters and the
predictive model are preferably tailored according to the type of
game, given that the types of events that are interesting can vary
from game to game.
[0032] In some examples, the event module 118 can consider or
ignore events according to a type of action taken by users for the
events and/or whether or not the action satisfies a threshold
criterion for user interest. For example, when an event involves
user action that satisfies the threshold criterion (e.g., an
attack, a battle, a movement of assets, a unique or difficult
problem in a strategy game, etc.), the event module 118 can
consider the event and/or determine a score for the event. On the
other hand, when an event involves user action that does not
satisfy the threshold criterion (e.g., opening a treasure chest,
acquiring a virtual item, constructing a building or defenses,
etc.), the event module 118 can ignore the event and/or not
determine a score for the event. In general, user actions can be
categorized as either satisfying or not satisfying the threshold
criterion, and the event module 118 can be configured to
investigate events when the threshold criterion is satisfied (e.g.,
when one user attacks another user) and ignore events when the
threshold criterion is not satisfied (e.g., when a user finds a
virtual gold coin). Use of the threshold criterion can result in a
more efficient use of system resources, given that certain events
can be ignored by the event module 118.
[0033] Still referring to FIG. 2, in various implementations, the
server system 112 can deploy the event module 118 on multiple
server computers. Each region 204a-204i in the virtual environment
202, for example, can be assigned to a different server computer
that can determine events of interest for the respective region.
Events of interest can be aggregated for the entire virtual
environment 202 and/or can be organized by region 204a-204i. For
example, a user can be presented with events of interest for the
entire virtual environment 202 or for only one or more of the
regions 204a-204i where the user is located or resides.
[0034] In various examples, the event module 118 can rank or order
events of interest according to the scores calculated by the
predictive model. The event module 118 can identify one or more
events having the highest scores and can inform users about such
events. For example, a listing of events having the highest scores
can be generated by the event module 118 and provided to users
through push notifications, game menus, social media, or similar
communications. The users are able to select one of the events and
become a spectator or witness for the selected event.
[0035] In general, when a user witnesses an event, the user can see
and/or hear the event (e.g., a video of recorded game play or a
display of live game play can be presented on the user's client
device), but the user is preferably unable to participate in or
influence the event. In preferred examples, users are able to
witness events live, as the events are occurring in the online
game. In some instances, however, users can view recordings of
events that occurred previously. For example, it can be desirable
to delay the presentation of events to certain spectators (e.g.,
users who are participating in the events); otherwise, some users
could use the presentation to gain an unfair advantage in the
online game (e.g., by being informed of an event and taking
immediate action to influence the event).
[0036] Referring to FIG. 3, in certain examples, the game module
116 and the event module 118 on the server system 112 are
configured to communicate with users who are playing the online
game and/or witnessing events in the online game. The game module
116 can manage the online game for a group of players 302 and
communicate the game state to the event module 118. The event
module 118 can scan or monitor the game state and determine events
that users may be interested in witnessing. The event module 118
can enable a group of spectators 304 to witness the events of
interest.
[0037] In certain examples, the group of spectators 304 can provide
feedback on events that are witnessed, and the feedback can be used
to improve the predictive model. For example, users who witness
events can be given an opportunity to provide feedback on the
events. The feedback can indicate, for example, how interesting or
entertaining the events were for the users. In some instances,
users can provide numerical ratings (e.g., on a scale from 1 to 10)
for the witnessed events and/or can provide other indications
indicating that the users liked or did not like the events.
Additionally or alternatively, the event module 118 can gauge user
interest in the events suggested by the predictive model based on,
for example, how much time users spent witnessing events (e.g., 1
second vs. 1 minute), whether or not users chose to witness events,
how many players witnessed events, and other similar criteria. Such
feedback can be used to generate actual user interest scores, which
can be compared with the scores determined by the predictive model,
for example, to determine model accuracy. Additionally or
alternatively, the feedback can be used to generate additional
training data for the predictive model. For example, a regression
equation and/or classifier used for the predictive model can be
updated or adjusted according to the additional training data. In
this way, the feedback can be used to improve the model, over time,
and this can result in more accurate model predictions for future
events.
[0038] In preferred implementations, the event parameters and/or
the predictive model can be tailored according to user preferences
so that model predictions are customized for each user's personal
tastes, interests, game situation, or the like. Such tailoring can
be achieved by, for example, adjusting coefficients or weights
(e.g., weights w.sub.0, w.sub.1, w.sub.2, . . . , w.sub.n) for a
regression equation and/or using customized training data for one
or more classifiers. Additionally or alternatively, different types
of event parameters can be used as inputs to the predictive model,
according to user preferences.
[0039] In some instances, users can be given control over how the
predictive model is tailored. For example, a user can manually
provide input regarding preferences or other criteria indicative of
the user's interests. Some users, for example, might prefer to
watch "heavyweight" battles between powerful players, while other
users might prefer larger coordinated group assaults. Other such
preferences or criteria can be specified the users.
[0040] Alternatively, rather than providing users with control over
the tailoring, the server system 112 itself (e.g., the event module
118) can auto-select user preferences and interests based on, for
example, a user's current game situation, playing habits, viewing
patterns, and other similar criteria. In the context of an
adventure game, for example, the event module 118 can discern that
a player enjoys using many weapon components in the online game
and, as a result, can tailor the predictive model to present the
user with events in which the use of weapon components is
instrumental. Additionally or alternatively, users who participate
in certain types of events (e.g., cross-kingdom battles) can
benefit from the event module 118 weighing such events more
heavily. In some instances, the event module 118 can determine
where a user spends time in the virtual environment (e.g., based on
flags, "likes," and/or "bookmarks" the user places in the virtual
environment) and can weigh events that occur in such locations more
heavily.
[0041] In certain implementations, users can identify locations in
the virtual environment as being points of interest, for example,
by selecting a location on a map or other view of the virtual
environment. When a user selects such a location, the user can be
presented with several options for taking action related to the
location. For example, the user can "like," "unlike," or "dislike"
another user associated with the location, to indicate whether the
other user is a user of interest. Once this is done, the other user
and/or the location can be presented in a different color or given
some other visual designation. The user can also "like" the
location itself, to indicate that the location is a spot of
interest (e.g., a contested area or an area with a resource) in the
virtual environment. In some instances, the user can add a bookmark
to the location, which can make it easier for the user to find the
location again later. Additionally or alternatively, when a user
selects a location, the user can be presented with a "tip jar" or
other mechanism for sending another user at that location a virtual
gift (e.g., a virtual item, a spell, or a temporary power boost) or
virtual currency as a salute or thank you. This kind of feedback
can encourage users to play the online game in a way that attracts
and/or pleases an audience, which can have a positive influence on
user engagement with the online game. In some implementations, the
user can be presented with an option of placing a resource,
treasure, a signpost, or other item of interest at a selected
location, for example, to attract action from other users.
Additionally or alternatively, the user can send a comment to
another player at the selected location. The comment can be
intended to taunt the other user and/or to improve a relationship
with the other user. Users can alternatively share locations with
other users (e.g., teammates). Any of these actions taken upon
selecting a location can be or can be used as parameters for the
predictive model to determine events of interest in the online
game.
[0042] The user event module 118 is preferably configured to
provide users with feedback regarding how interested other users
are in the users' activities. For example, users can be notified
when the users participated in events that were promoted or
identified as hotspots to other users. To encourage users to
participate in such events, in-game virtual gifts, virtual
currency, or other resources can be provided to users who
participate in hotspot events. Additionally or alternatively, users
can be notified of spectator activity during or even before an
event in a suitable manner (e.g., with on-screen notifications). In
some instances, for example, a user can receive an in-game message
indicating that the user was featured in a hotspot, such as "one of
the big battles of the day."
[0043] In preferred implementations, the user event module 118 can
determine a watchability score that provides a user with an
indication of how interested other users are in witnessing the
user's events or activities. The watchability score for the user
can be determined based on a number of factors, including, for
example, how many other users have witnessed the user's activity
(e.g., during a pre-determined time period), how many events the
user participated in that were witnessed by other users (e.g.,
during a pre-determined time period), and/or a score indicating an
interest level for the user's events (e.g., during pre-determined
time period). The user event module 118 can provide the user with
the watchability score and/or rank. For example, the user can
receive a messaging indicating that the user is among the most
watched players (e.g., in the top 5%). In general, as other users
become more or less interested in watching the user, the user's
watchability score can change over time, and the user can be kept
apprised of the current watchability score and/or any changes to
the score. Advantageously, this approach of informing a user about
the watchability score can heighten the user's experience in the
online game. For example, a significant draw for some users of the
online game can be respect and/or recognition from other users.
[0044] In certain implementations, the event module 118 can modify
regions of the virtual environment according to user interest in
the regions. For example, the event module 118 can place new
resources and/or virtual items near a hotspot, in an effort to draw
further attention to that location. Additionally or alternatively,
the event module 118 can initiate a new activity or new event near
a hotspot, such as a "capture the flag" game or some other activity
or competition for users in that region. Conversely, such
activities or events can be introduced in other regions, where
interest is currently low, to increase user interest in those
regions.
[0045] In some examples, a graphical display of the virtual
environment can be modified according to user interest. For
example, a hotspot can include a glow, a fire, a volcanic eruption,
smoke, or some other suitable visual designation or enhancement.
Additionally or alternatively, some suitable indication (e.g., a
spectator participation meter) can be provided in or around the
hotspot to represent, for example, a user interest score, a number
of users who have viewed the hotspot, and/or a number of users who
are currently viewing the hotspot. In general, such modifications
can allow users to ascertain user interest levels based on quick
visual inspections of the virtual environment.
[0046] In general, various display arrangements, such as tables,
lists, charts, links, etc., can be used to inform users about the
existence of hotspots in the online game. Referring to FIG. 4, for
example, a collection of hotspots can be presented on a client
device 402 in the form of a grid 404 of elements 406a-406x, in
which each element includes an image, video, and/or other
description or representation of one of the hotspots. In the
depicted example, the grid 404 includes 24 elements 402a-402x for
24 total hotspots, though the grid 404 can include other numbers of
hotspots (e.g., 4, 6, 12, etc.). The hotspots can be arranged in
the grid 404 according to ranking (e.g., based on the calculated
scores). For example, more interesting hotspots can be positioned
at the top of or in a middle portion of the grid 404, and less
interesting hotspots can be positioned at the bottom of or near an
outer portion of the grid 404. Additionally or alternatively, each
of the hotspots displayed in the grid 404 can be color coded to
indicate interest level. For example, more interesting hotspots can
be given a reddish color while less interesting hotspots can be
given a blueish color. In preferred examples, each element can
include a brief label or description, such as "high-level battle"
or "powerful player in big trouble," to allow users to determine a
subject matter or context for each hotspot.
[0047] In general, the grid 404 can provide a convenient way for
users to quickly scan a collection of hotspots in the online game.
When a user selects one of the elements 402a-402x, the systems and
methods can enable the user to witness a corresponding hotspot. For
example, each element in the grid 404 can include or provide a link
or portal that causes the selected hotspot to be presented on the
client device 402.
[0048] In preferred examples, the hotspots can be automatically
posted to the grid 404 or other display interface (e.g., table or
listing) for user selection. Hotspots can preferably be shared by
users, for example, by sending links through messaging services or
through social media. In some examples, users can witness events
using a software application that is different from a software
application used to play the online game. Additionally or
alternatively, the software application used to witness events can
be the same as the software application used to play the online
game.
[0049] FIG. 5 illustrates an example computer-implemented method
500 of determining events of interest in an online game and
enabling users to witness (e.g., be spectators of) the events of
interest. A set of parameters is obtained (step 502) for each of a
plurality of events in an online game played by a plurality of
users. A score is calculated (step 504) for each event based on the
set of parameters, wherein the score provides an indication of a
user interest in witnessing the event. One or more events are
identified (step 506) as having a highest user interest, based on
the scores. At least one user from the plurality of users is
notified (step 508) about the identified one or more events. An
indication is received (step 510) that the at least one user has
selected one of the identified one or more events. The at least one
user is enabled (step 512) to witness the selected event.
[0050] Implementations of the subject matter and the operations
described in this specification can be implemented in digital
electronic circuitry, or in computer software, firmware, or
hardware, including the structures disclosed in this specification
and their structural equivalents, or in combinations of one or more
of them. Implementations of the subject matter described in this
specification can be implemented as one or more computer programs,
i.e., one or more modules of computer program instructions, encoded
on computer storage medium for execution by, or to control the
operation of, data processing apparatus. Alternatively or in
addition, the program instructions can be encoded on an
artificially generated propagated signal, e.g., a machine-generated
electrical, optical, or electromagnetic signal, that is generated
to encode information for transmission to suitable receiver
apparatus for execution by a data processing apparatus. A computer
storage medium can be, or be included in, a computer-readable
storage device, a computer-readable storage substrate, a random or
serial access memory array or device, or a combination of one or
more of them. Moreover, while a computer storage medium is not a
propagated signal, a computer storage medium can be a source or
destination of computer program instructions encoded in an
artificially-generated propagated signal. The computer storage
medium can also be, or be included in, one or more separate
physical components or media (e.g., multiple CDs, disks, or other
storage devices).
[0051] The operations described in this specification can be
implemented as operations performed by a data processing apparatus
on data stored on one or more computer-readable storage devices or
received from other sources.
[0052] The term "data processing apparatus" encompasses all kinds
of apparatus, devices, and machines for processing data, including
by way of example a programmable processor, a computer, a system on
a chip, or multiple ones, or combinations, of the foregoing. The
apparatus can include special purpose logic circuitry, e.g., an
FPGA (field programmable gate array) or an ASIC
(application-specific integrated circuit). The apparatus can also
include, in addition to hardware, code that creates an execution
environment for the computer program in question, e.g., code that
constitutes processor firmware, a protocol stack, a database
management system, an operating system, a cross-platform runtime
environment, a virtual machine, or a combination of one or more of
them. The apparatus and execution environment can realize various
different computing model infrastructures, such as web services,
distributed computing and grid computing infrastructures.
[0053] A computer program (also known as a program, software,
software application, script, or code) can be written in any form
of programming language, including compiled or interpreted
languages, declarative or procedural languages, and it can be
deployed in any form, including as a stand-alone program or as a
module, component, subroutine, object, or other unit suitable for
use in a computing environment. A computer program may, but need
not, correspond to a file in a file system. A program can be stored
in a portion of a file that holds other programs or data (e.g., one
or more scripts stored in a markup language document), in a single
file dedicated to the program in question, or in multiple
coordinated files (e.g., files that store one or more modules,
sub-programs, or portions of code). A computer program can be
deployed to be executed on one computer or on multiple computers
that are located at one site or distributed across multiple sites
and interconnected by a communication network.
[0054] The processes and logic flows described in this
specification can be performed by one or more programmable
processors executing one or more computer programs to perform
actions by operating on input data and generating output. The
processes and logic flows can also be performed by, and apparatus
can also be implemented as, special purpose logic circuitry, e.g.,
an FPGA (field programmable gate array) or an ASIC
(application-specific integrated circuit).
[0055] Processors suitable for the execution of a computer program
include, by way of example, both general and special purpose
microprocessors, and any one or more processors of any kind of
digital computer. Generally, a processor will receive instructions
and data from a read-only memory or a random access memory or both.
The essential elements of a computer are a processor for performing
actions in accordance with instructions and one or more memory
devices for storing instructions and data. Generally, a computer
will also include, or be operatively coupled to receive data from
or transfer data to, or both, one or more mass storage devices for
storing data, e.g., magnetic disks, magneto-optical disks, optical
disks, or solid state drives. However, a computer need not have
such devices. Moreover, a computer can be embedded in another
device, e.g., a mobile telephone, a personal digital assistant
(PDA), a mobile audio or video player, a game console, a Global
Positioning System (GPS) receiver, or a portable storage device
(e.g., a universal serial bus (USB) flash drive), to name just a
few. Devices suitable for storing computer program instructions and
data include all forms of non-volatile memory, media and memory
devices, including, by way of example, semiconductor memory
devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic
disks, e.g., internal hard disks or removable disks;
magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor
and the memory can be supplemented by, or incorporated in, special
purpose logic circuitry.
[0056] To provide for interaction with a user, implementations of
the subject matter described in this specification can be
implemented on a computer having a display device, e.g., a CRT
(cathode ray tube) or LCD (liquid crystal display) monitor, for
displaying information to the user and a keyboard and a pointing
device, e.g., a mouse, a trackball, a touchpad, or a stylus, by
which the user can provide input to the computer. Other kinds of
devices can be used to provide for interaction with a user as well;
for example, feedback provided to the user can be any form of
sensory feedback, e.g., visual feedback, auditory feedback, or
tactile feedback; and input from the user can be received in any
form, including acoustic, speech, or tactile input. In addition, a
computer can interact with a user by sending documents to and
receiving documents from a device that is used by the user; for
example, by sending web pages to a web browser on a user's client
device in response to requests received from the web browser.
[0057] Implementations of the subject matter described in this
specification can be implemented in a computing system that
includes a back-end component, e.g., as a data server, or that
includes a middleware component, e.g., an application server, or
that includes a front-end component, e.g., a client computer having
a graphical user interface or a Web browser through which a user
can interact with an implementation of the subject matter described
in this specification, or any combination of one or more such
back-end, middleware, or front-end components. The components of
the system can be interconnected by any form or medium of digital
data communication, e.g., a communication network. Examples of
communication networks include a local area network ("LAN") and a
wide area network ("WAN"), an inter-network (e.g., the Internet),
and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
[0058] The computing system can include clients and servers. A
client and server are generally remote from each other and
typically interact through a communication network. The
relationship of client and server arises by virtue of computer
programs running on the respective computers and having a
client-server relationship to each other. In some implementations,
a server transmits data (e.g., an HTML page) to a client device
(e.g., for purposes of displaying data to and receiving user input
from a user interacting with the client device). Data generated at
the client device (e.g., a result of the user interaction) can be
received from the client device at the server.
[0059] While this specification contains many specific
implementation details, these should not be construed as
limitations on the scope of any inventions or of what can be
claimed, but rather as descriptions of features specific to
particular implementations of particular inventions. Certain
features that are described in this specification in the context of
separate implementations can also be implemented in combination in
a single implementation. Conversely, various features that are
described in the context of a single implementation can also be
implemented in multiple implementations separately or in any
suitable subcombination. Moreover, although features can be
described above as acting in certain combinations and even
initially claimed as such, one or more features from a claimed
combination can in some cases be excised from the combination, and
the claimed combination can be directed to a subcombination or
variation of a subcombination.
[0060] Similarly, while operations are depicted in the drawings in
a particular order, this should not be understood as requiring that
such operations be performed in the particular order shown or in
sequential order, or that all illustrated operations be performed,
to achieve desirable results. In certain circumstances,
multitasking and parallel processing can be advantageous. Moreover,
the separation of various system components in the implementations
described above should not be understood as requiring such
separation in all implementations, and it should be understood that
the described program components and systems can generally be
integrated together in a single software product or packaged into
multiple software products.
[0061] Thus, particular implementations of the subject matter have
been described. Other implementations are within the scope of the
following claims. In some cases, the actions recited in the claims
can be performed in a different order and still achieve desirable
results. In addition, the processes depicted in the accompanying
figures do not necessarily require the particular order shown, or
sequential order, to achieve desirable results. In certain
implementations, multitasking and parallel processing can be
advantageous.
* * * * *