U.S. patent application number 14/297664 was filed with the patent office on 2014-09-25 for method and apparatus for interactive gameplay across multiple computing platforms.
The applicant listed for this patent is KING.COM LIMITED. Invention is credited to Jonas OLOFSSON, Lars SJODIN, Patrik STYMNE.
Application Number | 20140287839 14/297664 |
Document ID | / |
Family ID | 48444992 |
Filed Date | 2014-09-25 |
United States Patent
Application |
20140287839 |
Kind Code |
A1 |
OLOFSSON; Jonas ; et
al. |
September 25, 2014 |
METHOD AND APPARATUS FOR INTERACTIVE GAMEPLAY ACROSS MULTIPLE
COMPUTING PLATFORMS
Abstract
A method and apparatus is disclosed for enabling interactive
gameplay.
Inventors: |
OLOFSSON; Jonas; (Stockholm,
SE) ; STYMNE; Patrik; (Stockholm, SE) ;
SJODIN; Lars; (Stockholm, SE) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
KING.COM LIMITED |
St. Julians |
|
MT |
|
|
Family ID: |
48444992 |
Appl. No.: |
14/297664 |
Filed: |
June 6, 2014 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13479107 |
May 23, 2012 |
|
|
|
14297664 |
|
|
|
|
Current U.S.
Class: |
463/42 |
Current CPC
Class: |
G07F 17/3204 20130101;
G07F 17/3276 20130101; A63F 13/12 20130101; G07F 17/3223
20130101 |
Class at
Publication: |
463/42 |
International
Class: |
A63F 13/30 20060101
A63F013/30 |
Claims
1. A computer implemented method of interactive gameplay
comprising: receiving at a server game information from each
computing device of a plurality of computing devices; storing said
received game information in a respective field of a respective
data structure, each data structure being associated with a
respective user and stored in a data store of said server; and
sending game information of a user to a computing device associated
with at least one other user, wherein each data structure
comprises: a user ID field; a status of game progress field; and a
list of at least one other user.
2. The method of claim 1 wherein at least one data structure
further comprises a status of in-game virtual currency field.
3. The method of claim 1 wherein said storing of said received game
information from each computing device comprises comparing said
game progress information of said game information with previously
stored game progress information associated with a user of said
each computing device and determining based on the outcome of said
comparing whether to replace the stored game progress information
with said received game progress information.
4. The method of claim 3 wherein said game information comprises
one or more of: level; points; and items obtained.
5. The method of claim 1 wherein said list of at least one other
user is created from a list of contacts from a social networking
site.
6. The method of claim 1 comprising: receiving at the server an
interaction request from a first computing device of said plurality
of computing devices; and sending said interaction request to a
second computing device of said plurality of computing devices.
7. The method of claim 6 wherein said interaction request is an
invitation to play a game.
8. The method of claim 6 wherein said interaction request is a
request for an in-game item.
9. The method of claim 6 wherein said interaction request is sent
via a social networking site.
10. A computer implemented method of interactive gameplay
comprising: sending from a computing device game information to a
server; receiving at said computing device game information of at
least one other user; storing said game information of at least one
other user in a at least one field of a data structure of a data
store of said computing device, wherein said data structure
comprises: a user ID field; a status of game progress field; and a
list of at least one other user.
11. The method of claim 10 wherein said data structure further
comprises a status of in-game virtual currency field.
12. The method of claim 10 wherein said storing of said received
game information comprises comparing game progress information of
said game information with previously stored game progress
information associated with a said other user and determining based
on the outcome of said comparing whether to replace the stored game
progress information with said received game progress
information.
13. The method of claim 10 wherein said received game information
comprises one or more of: level; points; and items obtained.
14. The method of claim 10 wherein the list of at least one other
user is created from a list of contacts from a social networking
site.
15. The method of claim 10 comprising sending with said computing
device an interaction request to the server.
16. The method of claim 10 comprising receiving at said computing
device an interaction request from the server.
17. The method of claim 23 wherein said interaction request is an
invitation to play a game.
18. The method of claim 23 wherein said interaction request is a
request for an in-game item.
19. The method of claim 23 wherein said interaction request is sent
via a social networking site.
20. The method of claim 10 wherein the computing device is a mobile
device.
21. The method of claim 10 wherein the computing device is a
computer running a web browser.
22. A server comprising a data store comprising a plurality of data
structures, each data structure being associated with a respective
user and wherein each data structure comprises: a user ID field; a
status of game progress field; and a list of at least one other
user wherein the server is configured to: receive game information
from each computing device of a plurality of computing devices;
store said received game information in a respective field of a
respective one of said plurality of data structures; and send game
information of a user to a computing device associated with at
least one other user.
23. A computing device comprising a data store comprising a data
structure comprising: a user ID field; a status of game progress
field; and a list of at least one other user wherein the computing
device is configured to: send game information to a server; receive
at said computing device game information of at least one other
user; store said game information of at least one other user in a
at least one field of said data structure.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This is a continuation of pending U.S. application Ser. No.
13/479,107, filed on May 23, 2012, the entire contents of which is
fully incorporated herein by reference.
FIELD OF THE INVENTION
[0002] The embodiments relate generally to an interactive game
system that enables players to engage in a common interactive game
using different computing platforms.
BACKGROUND OF THE INVENTION
[0003] Interactive video games among multiple players within a
social network have become increasingly popular. For example, the
assignee of this application is the creator of Bubble Witch
Saga.TM., a popular game that can be played on facebook.RTM.. In
Bubble Witch Saga, a particular player is faced with challenges of
increasing difficulty. A player can engage in an interactive game
with other users within his or her social network such that they
can play the same Bubble Witch Saga game. When each player logs in
to facebook and initiates the Bubble Witch Saga game, he or she
will be provided with current information about the other players
in the game, such as the status of each player (score, level,
etc.), the names of players who are playing at the current time,
and the names of players who have recently joined the game. The
platform in this situation would be the facebook environment, where
each player accesses the game using a web browser through face book
and the game is enabled by a server that communicates with each
player's web browser using API's in the facebook environment.
[0004] One limitation of the prior art systems is that players can
only engage in a common interactive video game if they are using
the same platform. At present, it is not possible to engage in a
common interactive game from different platforms, such as the
facebook environment and an `iOS` environment (an operating system
created and operated by Apple Inc. and used by mobile devices
including iPhone.RTM. and iPad.RTM.) and Android.RTM. based
environments used by other mobile devices. It also is not possible
to engage in a common interactive game when a user does not have
network connectivity. What is needed is a gameplay system that can
be accessed by users of different platforms. What is further needed
is a gameplay system that allows play to continue even when a user
has lost network connectivity and to synchronize once the user has
regained network connectivity.
[0005] According to a first embodiment there is provided a computer
implemented method of interactive gameplay comprising: receiving at
a server game information from each computing device of a plurality
of computing devices; storing said received game information in a
respective field of a respective data structure, each data
structure being associated with a respective user and stored in a
data store of said server; and sending game information of a user
to a computing device associated with at least one other user,
wherein each data structure comprises: a user ID field; a status of
game progress field; and a list of at least one other user.
[0006] At least one data structure may further comprise a status of
in-game virtual currency field.
[0007] Said storing of said received game information from each
computing device may comprise comparing said game progress
information of said game information with previously stored game
progress information associated with a user of said each computing
device and determining based on the outcome of said comparing
whether to replace the stored game progress information with said
received game progress information.
[0008] Said game information may comprise one or more of: level;
points; and items obtained.
[0009] Said list of at least one other user may be created from a
list of contacts from a social networking site.
[0010] The method may comprise: receiving at the server an
interaction request from a first computing device of said plurality
of computing devices; and sending said interaction request to a
second computing device of said plurality of computing devices.
[0011] Said interaction request may be an invitation to play a
game.
[0012] Said interaction request may be a request for an in-game
item.
[0013] Said interaction request may be sent via a social networking
site.
[0014] According to a second aspect of the present invention there
is provided a computer implemented method of interactive gameplay
comprising: sending from a computing device game information to a
server; receiving at said computing device game information of at
least one other user; storing said game information of at least one
other user in a at least one field of a data structure of a data
store of said computing device, wherein said data structure
comprises: a user ID field; a status of game progress field; and a
list of at least one other user.
[0015] Said data structure further may comprise a status of in-game
virtual currency field.
[0016] Said storing of said received game information may comprise
comparing game progress information of said game information with
previously stored game progress information associated with a said
other user and determining based on the outcome of said comparing
whether to replace the stored game progress information with said
received game progress information.
[0017] Said received game information comprises one or more of:
level; points; and items obtained.
[0018] The list of at least one other user may be created from a
list of contacts from a social networking site.
[0019] The method may comprise sending with said computing device
an interaction request to the server.
[0020] The method may comprise receiving at said computing device
an interaction request from the server.
[0021] Said interaction request may be an invitation to play a
game.
[0022] Said interaction request may be request for an in-game
item.
[0023] Said interaction request may be sent via a social networking
site.
[0024] The computing device may be a mobile device.
[0025] The computing device may be a computer running a web
browser.
[0026] According to a third aspect of the present invention there
is provided server comprising a data store comprising a plurality
of data structures, each data structure being associated with a
respective user and wherein each data structure comprises: a user
ID field; a status of game progress field; and a list of at least
one other user wherein the server is configured to: receive game
information from each computing device of a plurality of computing
devices; store said received game information in a respective field
of a respective one of said plurality of data structures; and send
game information of a user to a computing device associated with at
least one other user.
[0027] According to a fourth aspect of the present invention there
is provided a computing device comprising a data store comprising a
data structure comprising: a user ID field; a status of game
progress field; and a list of at least one other user wherein the
computing device is configured to: send game information to a
server; receive at said computing device game information of at
least one other user; store said game information of at least one
other user in a at least one field of said data structure.
BRIEF DESCRIPTION OF THE DRAWINGS
[0028] FIG. 1 is a block diagram of a prior art interactive game
system.
[0029] FIG. 2 illustrates an embodiment of a system that enables an
interactive game by computing devices of different platforms.
[0030] FIG. 3 illustrates the embodiment for FIG. 2 with various
data structures.
[0031] FIG. 4 illustrates an embodiment for creating a new
interactive game session.
[0032] FIGS. 5A and 5B illustrate an embodiment for adding a new
player to an interactive game.
DETAILED DESCRIPTION OF THE INVENTION
[0033] FIG. 1 depicts a prior art system in which exemplary
computing devices 30 and 40 are coupled to server 20 across network
10. Computing devices 30 and 40 each can be a desktop, notebook,
server, mobile device, or any other type of device with network
connectivity. Network 10 can be a LAN, WAN, the Internet, or any
other type of network. Computing devices 30 and 40 and server 20
each are coupled to network 10 using wired connections (such as
Ethernet, DSL, cable modems, or other known wired connections) or
wireless connections (such as 802.11, CDMA, EDGE, EV-DO, or other
known wireless connections). Notably, in this prior art system, all
communication between computing device 30, computing device 40, and
server 20 occur using a common protocol, such as HTTP or an
API.
[0034] FIG. 2 depicts an embodiment of the present invention.
Computing device 130 is coupled to server 122 over network 100.
Computing device 140 is coupled to server 124 over network 100.
[0035] In this example, computing device 130 is a PC running a
first platform, such as the facebook environment. Server 122 is
configured to communicate with computing devices running the first
platform, such as computing device 130. For example, server 122 can
be configured to communicate using facebook APIs with computing
devices running the first platform.
[0036] Computing device 140 is a mobile device running a second
platform, such as an iPhone application or Android.RTM.
application. Server 124 is configured to communicate with computing
devices running the second platform, such as computing device 140.
For example, server 124 can be configured to communicate using a
proprietary API with computing devices using the second platform.
Server 122 and server 124 are coupled to server 120.
[0037] In this embodiment, User A (the user of computing device
130) and User B (the user of computing device 140) are able to play
an interactive game together. With reference now to FIG. 3, the
same structures from FIG. 2 are shown. Computing device 130 creates
and stores data structure 201 for User A, and computing device 140
creates and stores data structure 301 for User B. Server 122
creates and stores data structure 202 for User A, and server 124
creates and stores data structure 302 for User B. Server 120
creates and stores data structure 203 for User A and data structure
303 for User B. Each of these data structures comprise common
fields and sub-fields, such as the fields and sub-fields shown in
Table 1:
TABLE-US-00001 TABLE 1 FIELDS SUB-FIELDS Data structure ID User ID
Name, Email address, Photo Game ID Timestamp of last data structure
update Status of Game Progress Level, Points, Items Obtained
In-Game Purchases Amount of purchase, timestamp of purchase, item
purchase, status of use of purchase within game In-Game Virtual
Currency Amount, time line of use of currency Other Players For
each other player: User ID, Data Structure ID, Status of Game
Progress (and sub-fields)
[0038] Optionally, data structures 202, 203, 302, and 303 can be
tables in a database, such as a MySQL database, wherein the key is
the Data Structure ID, Game ID, or User ID. The database storing
data structure 202 can run on server 122, the database storing data
structure 302 can run on server 124, and the database or databases
storing data structures 203 and 303 can run on server 120.
Optionally, data structures 201 and 301 can be tables in databases
running on computing device 130 and computing device 140,
respectively.
[0039] Referring now to FIG. 4, the initiation of an interactive
game in an embodiment will now be discussed. In this example,
computing device 130, at User A's instruction, requests a new game
to be created by sending a message to server 122, and computing
device 130 creates data structure 201 (step 400). Server 122 then
creates a new Game ID and data structure 202 (step 405). Server 122
sends a message to server 120 that the new Game ID has been created
and that data structure 202 has been created (step 410). Server 120
then creates data structure 203 and populates the fields and
sub-fields (step 415). Server 120 and server 122 then synchronize
data structure 203 and data structure 202 using the synchronization
process described below (step 420). Server 122 and computing device
130 then synchronize data structure 202 and data structure 201
using the synchronization process described below (step 425).
[0040] With reference now to FIGS. 5A and 5B, adding an additional
player to the interactive game described previously with reference
to FIG. 4 will now be discussed. In this example, computing device
130, at User A's instruction, submits a request to server 122 to
invite User B to the interactive game (step 450). Server 122
submits the request to server 120 to invite User B (step 455).
Server 120 then sends a request to User B to join the game (step
460). This request can be by email, SMS or MMS text message, an API
sent directly to an application running on a computing device
associated with User B.about. or another communication mechanism.
User B then accepts the request using computing device 140 (step
465). The acceptance can be made by selecting a web link,
responding by email, responding by SMS or MMS text message,
selecting a button within an application, or any other
communication mechanism. Computing device 140 transmits the
acceptance to server 124 (step 470). Server 124 transmits the
acceptance to server 120 (step 475). Server 120 creates data
structure 303 and updates data structure 203 (step 480). Server 120
and server 122 synchronize data structures 203 and 202 (step 485).
Server 122 and computing device 130 synchronize data structures 202
and 201 (step 490). Server 124 creates data structure 302 based on
data structure 303, and computing device 140 creates data structure
301 based on data structure 302 (step 495).
[0041] In this example, server 122 communicates with computing
device 130 using a first API (such as the facebook API), and server
124 communicates with computing device 140 using a second API (such
as a proprietary API designed for use with an iPhone or Android
device as the case may be). Server 122 and server 124 can
communicate with server 120 using the first and second APIs,
respectively, or using a third API or protocol (such as an API for
inter-server communications).
[0042] An embodiment of a synchronization process will now be
discussed. In the embodiments described thus far, data structures
201, 202, and 203 correspond to user A, and data structures 301,
302, and 303 correspond to User B. Optionally, server 120 can
create and store a master game data structure 400 for the game that
User A and User B have joined. Master game data structure 400 can
contain the same fields and sub-fields describe previously for data
structures 201, 202, 203, 301, 302, and 303.
[0043] During game play, User A will interact with computing device
130 and User B will interact with computing device 140. Computing
device 130 runs local application 135 (not shown), and computing
device 140 runs local application 145 (not shown). Local
application 135 will update data structure 201 as User A progresses
through the game. Local application 145 will update data structure
301 as User B progresses through the game. User A and User B need
not necessarily be playing at the same time.
[0044] In the situation where User A is playing the game,
periodically (such as every 100 ms) computing device 130 will send
a synchronization request to server 122. The request will contain a
timestamp. If that timestamp indicates a later time than the
timestamp in data structure 202, then data structure 202 will be
written over with the data from data structure 201 as to fields and
sub-fields that have changed and the timestamp field of data
structure 202 will be updated with the timestamp in the initial
request from computing device 130. However, if the "Other Players"
field and sub-field of data structures 201 and 202 do not match,
then the "Other Players" field and sub-fields of data structure 201
will be overwritten with the data from data structure 202, because
this mismatch would only occur if the status of other players had
changed since the last synchronization event, in which case data
structure 202 would contain the more recent data for the "Other
Players."
[0045] Periodically, server 122 will send a synchronization request
to server 120. If the timestamp of data structure 202 indicates a
later time than the timestamp in data structure 203, then data
structure 203 will be written over with the data from data
structure 202 as to fields and sub-fields that have changed and the
timestamp field of data structure 203 will be updated with the
timestamp of data structure 202. However, if the "Other Players"
field and sub-field of data structures 202 and 203 do not match,
then the "Other Players" field and sub-fields of data structure 202
will be overwritten with the data from data structure 203, because
this mismatch would only occur if the status of other players had
changed since the last synchronization event, in which case data
structure 203 would contain the more recent data for the "Other
Players."
[0046] If the timestamp of data structure 203 indicates a later
time than the timestamp in master game data structure 400, then
master game data structure 400 will be written over with the data
from data structure 203 as to fields and sub-fields that have
changed and its timestamp field will be updated with the timestamp
of data structure 203. However, if the "Other Players" field and
sub-field of master game data structure 400 and data structure 203
do not match, then the "Other Players" field and sub-fields of data
structure 203 will be overwritten with the data from master game
data structure 400, because this mismatch would only occur if the
status of other players had changed since the last synchronization
event, in which case master game data structure 400 would contain
the more recent data for the "Other Players."
[0047] This synchronization process between computing device 130,
server 122, and server 120 has been described thus far with
reference to changes in the status of User A. It will be understood
by one of ordinary skill in the art that the same changes could
occur in data structures 301, 302, and 303 and master game data
structure 400 with reference to changes in the status of User
B.
[0048] The changes in data structures as to User A will now
propagate to the data structures associated with User B.
Periodically, server 120 will compare the timestamp fields of
master game data structure 400 and data structure 303. If the
timestamp of master game data structure 400 is a later time than
that of data structure 303, then data structure 303 will be written
over with the data from master game data structure 400 as to "Other
Players" field and sub-fields that have changed and the time stamp
of data structure 303 will be updated with the time stamp of data
structure 400.
[0049] Periodically, server 120 will send a synchronization request
to server 124. The request will contain the timestamp from data
structure 303. If that timestamp indicates a later time than the
timestamp in data structure 302, then data structure 302 will be
written over with the data from data structure 303 as to the "Other
Players" field and sub-fields that have changed.
[0050] Periodically, server 124 will send a synchronization request
to computing device 140. The request will contain the timestamp
from data structure 303. If that timestamp indicates a later time
than the timestamp in data structure 302, then data structure 302
will be written over with the data from data structure 303 as to
"Other Players" field and sub-fields that have changed.
[0051] Thus, it will be appreciated that User A and User B can
engage in an interactive game through this synchronization
process.
[0052] An embodiment enabling "airplane mode" will now be
described. If User B loses connectivity to network 100 on computing
device 140 (as might occur, for example, if computing device 140 is
on an airplane or has lost WiFi or cellphone connectivity), then
User B can continue to play the game on computing device 140 using
local application 145. Local application 145 will continue to
update data structure 301. When computing device 140 regains
connectivity to network 100; computing device 140 will initiate the
synchronization process described above. In this manner, User A
will learn of the changes in User B's status even though the
changes had occurred while User B was not connected to network
100.
[0053] The embodiments have been described as to two users, User A
and User B, but it will be appreciated by one of ordinary skill in
the art that the embodiments can accommodate any number of players.
Similarly, the embodiments have been described as to two computing
devices using two different platforms, computing device 130 and
140, but it will be appreciated by one of ordinary skill in the art
that the embodiments can accommodate any number of computing
devices utilizing any number of different platforms.
[0054] In addition, while the foregoing has been with reference to
particular embodiments of the invention, it will be appreciated by
those skilled in the art that changes in these embodiments may be
made without departing from the principles and spirit of the
invention, the scope of which is defined by the appended
claims.
* * * * *