U.S. patent application number 12/407745 was filed with the patent office on 2010-01-21 for game server.
This patent application is currently assigned to GDI Game Domain International PLC. Invention is credited to Uwe PROCHNOW.
Application Number | 20100016081 12/407745 |
Document ID | / |
Family ID | 40751083 |
Filed Date | 2010-01-21 |
United States Patent
Application |
20100016081 |
Kind Code |
A1 |
PROCHNOW; Uwe |
January 21, 2010 |
GAME SERVER
Abstract
A game distribution server configured to separately distribute
game data comprising active game data and passive game data to a
plurality of remote computers each provided with a client
application, comprising: storage for active game data and passive
game data configured to be distributed separately and recombined at
a remote computer by a client application, wherein passive game
data comprise files having a larger average file size than the
average file size of active game data; an active data controller
configured to control supply of active game data to said remote
computer responsive to events occurring during game play; a passive
data controller operable to control supply of passive game data
separately from said active game data; and a communications
interface.
Inventors: |
PROCHNOW; Uwe; (Essen,
DE) |
Correspondence
Address: |
MCDERMOTT WILL & EMERY LLP
18191 VON KARMAN AVE., SUITE 500
IRVINE
CA
92612-7108
US
|
Assignee: |
GDI Game Domain International
PLC
Southhall
GB
|
Family ID: |
40751083 |
Appl. No.: |
12/407745 |
Filed: |
March 19, 2009 |
Current U.S.
Class: |
463/42 ;
463/43 |
Current CPC
Class: |
A63F 2300/552 20130101;
A63F 2300/207 20130101; A63F 13/352 20140902; A63F 13/57 20140902;
G07F 17/32 20130101; A63F 2300/5593 20130101; G07F 17/3223
20130101; A63F 13/77 20140902 |
Class at
Publication: |
463/42 ;
463/43 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Foreign Application Data
Date |
Code |
Application Number |
Mar 20, 2008 |
GB |
0805201.1 |
Dec 19, 2008 |
GB |
0823226.6 |
Claims
1. A game distribution server configured to separately distribute
game data comprising active game data and passive game data to a
plurality of remote computers each provided with a client
application, comprising: storage for active game data and passive
game data configured to be distributed separately and recombined at
a remote computer by a client application, wherein passive game
data comprise files having a larger average file size than the
average file size of active game data; an active data controller
configured to control supply of active game data to said remote
computer responsive to events occurring during game play; a passive
data controller operable to control supply of passive game data
separately from said active-game data; and a communications
interface.
2. The game distribution server according to claim 1, wherein each
passive game data files is associated with a unique reference.
3. The game distribution server according to claim 1 or 2, wherein
the active data controller is configured to receive game event
indicators indicating events occurring during game play and to
determine active game data likely to be required by the client
application for use in said game.
4. The game distribution server according to any one of claims 1 to
3, further comprising: a passive data checking module configured to
receive game event indicators indicating events occurring during
game play and to determine passive game data likely to be required
by the client application for use in said game.
5. The game distribution server according to claim 4, wherein the
passive data checking module is configured to determine whether the
passive game data likely to be required already exists on said
remote computer; and to supply passive game data determined not to
exist on said remote computer.
6. The game distribution server according to claim 4 or 5, wherein
the passive data checking module is configured to transmit a first
list of references associated with the passive game data likely to
be required to the said remote computer, and to receive a second
list of references associated with the passive game data likely to
be required that does not exist on said remote computer.
7. The game distribution server according to any one of claims 1 to
6, further comprising: a buffer controller operable to set an
amount of active game data and an amount of passive game data
required to be buffered at said remote computer.
8. The game distribution server according to claim 7, wherein said
amount of passive data transferred for buffering exceeds the amount
of active data transferred for buffering.
9. The game distribution server according to any one of claims 1 to
10, further comprising: an administration module operable to
determine, in respect of said remote computer, connection bandwidth
and response time parameters.
10. The game distribution server according to claim 9 when
dependent on claims 7 or 8, wherein the amount of active game data
and the amount of passive game data required to be buffered at said
remote computer is determined in dependence on one or more of the
connection bandwidth and the response time parameters.
11. The game distribution server according to any one of claims 1
to 10, further comprising: an essential minimum module operable to
determine what essential minimum data is required in order to begin
game play at said remote computer.
12. The game distribution server according to claim 11, wherein the
essential minimum data comprises only passive data.
13. The game distribution server according to claim 11 or 12 when
dependent on claims 9 or 10, wherein the amount of essential
minimum data required at said remote computer is determined in
dependence on one or more of: the connection bandwidth and the
response time parameters.
14. The game distribution server according to any one of claims 1
to 13, wherein the storage for active game data and passive game
data comprise an active game data storage device and a separate
passive game data storage device.
15. A game distribution server configured to distribute games to a
plurality of remote computers each provided with a client
application, comprising: an administration module operable to
determine, in respect of a remote computer, connection bandwidth
and response time parameters; and a further module operable to
determine what essential minimum data is required in order to begin
game play.
16. The game distribution server according to claim 15, wherein the
essential minimum data required at said remote computer is
determined in dependence on one or more of: the connection
bandwidth and the response time parameters.
17. A game distribution server configured to separately distribute
game data comprising active data objects and passive data to a
plurality of remote computers each provided with a client
application, comprising: a store for active data objects connected
to an active data objects controller configured to control supply
of active data objects to said remote computer responsive to events
occurring during game play at said remote computer; a store for
passive data connected to a passive data controller operable to
control the supply of passive data separately from said active data
objects; and at least one communications interface for connecting
to remote computers.
18. The game distribution server according to claim 17, wherein
each passive data file is associated with a unique reference.
19. The game distribution server according to claim 17 or 18,
wherein the active data objects controller is configured to receive
game event indicators indicating events occurring during game play
and to determine active data objects likely to be required by the
client application for use in said game.
20. The game distribution server according to any one of claims 17
to 19, further comprising: a passive data checking module
configured to receive game event indicators indicating events
occurring during game play and to determine passive data likely to
be required by the client application for use in said game.
21. The game distribution server according to claim 20, wherein the
passive data checking module is configured to determine whether the
passive data likely to be required already exists on said remote
computer; and to supply passive data determined not to exist on
said remote computer.
22. The game distribution server according to claim 20 or 21,
wherein the passive data checking module is configured to transmit
a first list of references associated with the passive data likely
to be required to the said remote computer, and to receive a second
list of references associated with the passive data likely to be
required that does not exist on said remote computer.
23. The game distribution server according to any one of claims 17
to 22, further comprising: a buffer controller operable to set an
amount of active game data and an amount of passive game data
required to be buffered at said remote computer.
24. The game distribution server according to claim 23, wherein
said amount of passive data transferred for buffering exceeds the
amount of active data transferred for buffering.
25. The game distribution server according to any one of claims 17
to 24, further comprising: an administration module operable to
determine, in respect of said remote computer, connection bandwidth
and response time parameters.
26. The game distribution server according to claim 25 when
dependent on claims 24 or 23, wherein the amount of active game
data and the amount of passive game data required to be buffered at
said remote computer is determined in dependence on one or more of
the connection bandwidth and the response time parameters.
27. The game distribution server according to any one of claims 17
to 26, further comprising: an essential minimum module operable to
determine what essential minimum data is required in order to begin
game play at said remote computer.
28. The game distribution server according to claim 27, wherein the
essential minimum data comprises only passive data.
29. The game distribution server according to claim 27 or 28 when
dependent on claim 25, wherein the amount of essential minimum data
required at said remote computer is determined in dependence on one
or more of: the connection bandwidth and the response time
parameters.
30. The game distribution server according to any one of claims 17
to 29, wherein the active data objects comprise data having a file
size below a predetermined size threshold.
31. The game distribution server according to any one of claims 17
to 30, wherein the stores for active and passive data comprise
separate storage devices.
32. A game distribution server configured to distribute game data
comprising active data objects to a plurality of remote computers
each provided with a client application, wherein active data
objects comprise data objects supplied responsive to events
occurring during the game and which are automatically deleted by
the client application after use, comprising: a game content
processing module configured to receive game event indicators
during game play and to determine active data objects likely to be
required by the client application for use in said game; at least
one controller for supplying active data objects to said client
application responsive to said determination.
33. The game distribution server according to claim 32, further
comprising: an administration module operable to determine, in
respect of said remote computer, connection bandwidth and response
time parameters.
34. The game distribution server according to claim 33, wherein the
amount of active data objects required to be supplied at said
remote computer is determined in dependence on one or more of the
connection bandwidth and the response time parameters.
35. The game distribution server according to any one of claims 32
to 34, wherein the active data objects comprise data having a file
size below a predetermined size threshold.
36. The game distribution server according to any one of claims 32
to 35, wherein deleted after use comprises one or more of: deleted
after an active data objects buffer capacity is exceeded; deleted
after a predetermined period of time; deleted after implementation
in game play.
37. A game distribution server configured to distribute game data
comprising passive data to a plurality of remote computers each
provided with a client application, wherein passive data comprises
game data which after game play resides on a remote computer and is
identifiable as available passive data by the client application,
comprising: a processing module configured to identify during game
play passive data likely to be required by said client application
in future; a content checking module operable to determine whether
the passive data likely to be required already exists on said
remote computer; and a data controller operable to transmit passive
data determined not to exist on said remote computer.
38. The game distribution server according to claim 37, further
comprising: an administration module operable to determine, in
respect of said remote computer, connection bandwidth and response
time parameters; and an essential minimum module operable to
determine what essential minimum data is required in order to begin
game play at said remote computer.
39. The game distribution server according to claim 38, wherein the
essential minimum data comprises only passive data.
40. The game distribution server according to claim 38, wherein the
amount of essential minimum data required at said remote computer
is determined in dependence on one or more of: the connection
bandwidth and the response time parameters.
41. The game distribution server according to claim 38 or 39,
wherein the amount of passive data required to be transmitted to
said remote computer is determined in dependence on one or more of
the connection bandwidth and the response time parameters.
42. A game distribution server configured to separately distribute
game data comprising active data objects and passive data objects
to a remote computer provided with a client application,
comprising: at least one controller operable to set an amount of
active data objects and an amount of passive data objects required
to be buffered at said remote computer in dependence on one or more
of bandwidth and response times, wherein said amount of passive
data objects transferred for buffering exceeds the amount of active
data objects.
43. The game distribution server according to claim 42, wherein the
active data objects comprise data objects supplied responsive to
events occurring during the game and which are automatically
deleted by the client application after use.
44. The game distribution server according to claim 43, wherein
deleted after use comprises one or more of: deleted after an active
data objects buffer capacity is exceeded; deleted after a
predetermined period of time; deleted after implementation in game
play.
45. The game distribution server according to any one of claims 42
to 44, wherein the active data objects comprise objects having a
file size below a predetermined size threshold.
46. A method of operating a computer to distribute game data
comprising active data and passive data to a plurality of remote
computers each provided with a client application, wherein passive
data comprises game data which after game play resides on a remote
computer and is identifiable as available passive data by the
client application, comprising: identifying during game play
passive data likely to be required by said client application in
future; determining whether the passive data likely to be required
already exists on said remote computer; and transmitting passive
data determined not to exist on said remote computer to said remote
computer.
47. The method according to claim 46, wherein the step of
determining whether the passive data likely to be required already
exists on said remote computer further comprises: transmitting a
first list of references of the passive data likely to be required
by said client application in future to said remote computer;
receiving from said remote computer a second list of references of
the passive data likely to be required by said client application
in future which is not stored at the remote computer; and
retrieving the passive data associated with said second list of
references.
48. A computer readable medium recorded with computer readable code
arranged to cause a computer to perform the method of claims 46 or
47.
49. A computer program product comprising programme code means for
performing the method of claims 46 or 47.
50. Computer programme code means for performing the method of
claims 46 or 47.
Description
FIELD
[0001] The invention relates to the field of gaming. More
specifically, an embodiment of this invention relates to a gaming
server for enabling a user to play games, and methods and apparatus
for electronically deploying games.
BACKGROUND
[0002] Digital distribution is the principle of providing digital
content over the Internet, and other networks, in the form of
products or services. With broadband internet becoming evermore
ubiquitous, the digital distribution of all types of media content
is becoming increasingly desirable. Content delivery networks
consisting of systems of servers and desktop computers have been
deployed to deliver digital content to end users operating for
example desktop PCs or consoles across the Internet.
[0003] One existing platform of this type for example is Valve
Corporation's "Steam" product, which is a digital distribution,
multiplayer and communications suite. It is primarily used to
digitally distribute and manage various kinds of computer games,
ranging from first-person shooters and RPGs (role playing games) to
racing games.
[0004] Systems such as this allow users to purchase and acquire
games access through a digital distribution network. In this
regard, instead of receiving a box with a CD/DVD, purchased
software is distributed by a server to the user, for example, via a
pre-registered user account through which the software can be
accessed and downloaded to a local client application running on
the user's computer.
[0005] Known digital distribution platforms have operated with a
distributed file system. The distributed file system allows a game
to launch before it has been completely downloaded locally on to
the player's computer. Most typically, this has been done by
creating lists of essential game files and having a pre-loader
request them from the distribution server only when they are needed
or are about to be needed. According to these systems, it has been
possible for a linear game to begin playing with only the
executable code and a buffer of the first few areas downloaded.
Such systems have been problematic up to now for various reasons.
One major problem is that the game play will generally hang whilst
data downloads in the background because modern games are many
hundreds or even thousands of megabytes in size. Another problem is
that downloads are vastly slowed down on slower connections or when
the service providers get busy and are less able to cope with
providing high bandwidth downloads. This problem is increased
further for non-linear games, where the possibilities for game play
are vast and the data required is always changing. For these
reasons, this kind of content delivery has not been used
extensively to date, since it has been impractical and frustrating
for the end user.
[0006] The present invention aims to provide an improved content
delivery system for computer games. More specifically, the present
invention provides a server which allows a user to receive game
data to their computer quickly and securely over a network such as
the internet.
SUMMARY
[0007] According to one embodiment of the invention, there is
provided a game distribution server configured to separately
distribute game data comprising active game data and passive game
data to a plurality of remote computers each provided with a client
application. The game distribution server comprising: storage for
active game data and passive game data configured to be distributed
separately and recombined at a remote computer by a client
application, wherein passive game data comprise files having a
larger average file size than the average file size of active game
data; an active data controller configured to control supply oil
active game data to said remote computer responsive to events
occurring during game play; a passive data controller operable to
control supply of passive game data separately from said active
game data; and a communications interface.
[0008] According to another embodiment of the invention, each
passive game data flies is associated with a unique reference.
[0009] According to another embodiment of the invention, the active
data controller is configured to receive game event indicators
indicating events occurring during game play and to determine
active game data likely to be required by the client application
for use in said game.
[0010] According to another embodiment of the invention, the game
distribution server further comprises: a passive data checking
module configured to receive game event indicators indicating
events occurring during game play and to determine passive game
data likely to be required by the client application for use in
said game.
[0011] According to another embodiment of the invention, the
passive data checking module is configured to determine whether the
passive game data likely to be required already exists on said
remote computer; and to supply passive game data determined not to
exist on said remote computer.
[0012] According to another embodiment of the invention, the
passive data checking module is configured to transmit a first list
of references associated with the passive game data likely to be
required to the said remote computer, and to receive a second list
of references associated with the passive game data likely to be
required that does not exist on said remote computer.
[0013] According to another embodiment of the invention, the game
distribution server further comprises: a buffer controller operable
to set an amount of active game data and an amount of passive game
data required to be buffered at said remote computer.
[0014] According to another embodiment of the invention, the amount
of passive data transferred for buffering exceeds the amount of
active data transferred for buffering.
[0015] According to another embodiment of the invention, the game
distribution server further comprises: an administration module
operable to determine, in respect of said remote computer,
connection bandwidth and response time parameters.
[0016] According to another embodiment of the invention, the amount
of active game data and the amount of passive game data required to
be buffered at said remote computer is determined in dependence on
one or more of the connection bandwidth and the response time
parameters.
[0017] According to another embodiment of the invention, the game
distribution server further comprises: an essential minimum module
operable to determine what essential minimum data is required in
order to begin game play at said remote computer.
[0018] According to another embodiment of the invention, the
essential minimum data comprises only passive data.
[0019] According to another embodiment of the invention, the amount
of essential minimum data required at said remote computer is
determined in dependence on one or more of: the connection
bandwidth and the response time parameters.
[0020] According to another embodiment of the invention, the
storage for active game data and passive game data comprise an
active game data storage device and a separate passive game data
storage device.
[0021] According to one embodiment of the invention, there is
provided a game distribution server configured to distribute games
to a plurality of remote computers each provided with a client
application. The game distribution server comprising: an
administration module operable to determine, in respect of a remote
computer, connection bandwidth and response time parameters; and a
further module operable to determine what essential minimum data is
required in order to begin game play.
[0022] According to another embodiment of the invention, the
essential minimum data required at said remote computer is
determined in dependence on one or more of: the connection
bandwidth and the response time parameters.
[0023] According to one embodiment of the invention, there is
provided a game distribution server configured to separately
distribute game data comprising active data objects and passive
data to a plurality of remote computers each provided with a client
application, comprising: a store for active data objects connected
to an active data objects controller configured to control supply
of active data objects to said remote computer responsive to events
occurring during game play at said remote computer; a store for
passive data connected to a passive data controller operable to
control the supply of passive data separately from said active data
objects; and at least one communications interface for connecting
to remote computers.
[0024] According to another embodiment of the invention, each
passive data file is associated with a unique reference.
[0025] According to another embodiment of the invention, the active
data objects controller is configured to receive game event
indicators indicating events occurring during game play and to
determine active data objects likely to be required by the client
application for use in said game.
[0026] According to another embodiment of the invention, the game
distribution server further comprises: a passive data checking
module configured to receive game event indicators indicating
events occurring during game play and to determine passive data
likely to be required by the client application for use in said
game.
[0027] According to another embodiment of the invention, the
passive data checking module is configured to determine whether the
passive data likely to be required already exists on said remote
computer; and to supply passive data determined not to exist on
said remote computer.
[0028] According to another embodiment of the invention, the
passive data checking module is configured to transmit a first list
of references associated with the passive data likely to be
required to the said remote computer, and to receive a second list
of references associated with the passive data likely to be
required that does not exist on said remote computer.
[0029] According to another embodiment of the invention, the game
distribution server further comprises: a buffer controller operable
to set an amount of active game data and an amount of passive game
data required to be buffered at said remote computer.
[0030] According to another embodiment of the invention, the amount
of passive data transferred for buffering exceeds the amount of
active data transferred for buffering.
[0031] According to another embodiment of the invention, the game
distribution server further comprises: an administration module
operable to determine, in respect of said remote computer,
connection bandwidth and response time parameters.
[0032] According to another embodiment of the invention, the amount
of active game data and the amount of passive game data required to
be buffered at said remote computer is determined in dependence on
one or more of the connection bandwidth and the response time
parameters.
[0033] According to another embodiment of the invention, the game
distribution server further comprises: an essential minimum module
operable to determine what essential minimum data is required in
order to begin game play at said remote computer.
[0034] According to another embodiment of the invention, the
essential minimum data comprises only passive data.
[0035] According to another embodiment of the invention, the amount
of essential minimum data required at said remote computer is
determined in dependence on one or more of: the connection
bandwidth and the response time parameters.
[0036] According to another embodiment of the invention, the active
data objects comprise data having a file size below a predetermined
size threshold.
[0037] According to another embodiment of the invention, the stores
for active and passive data comprise separate storage devices.
[0038] According to one embodiment of the invention, there is
provided a game distribution server configured to distribute game
data comprising active data objects to a plurality of remote
computers each provided with a client application, wherein active
data objects comprise data objects supplied responsive to events
occurring during the game and which are automatically deleted by
the client application after use. The game distribution server
comprising: a game content processing module configured to receive
game event indicators during game play and to determine active data
objects likely to be required by the client application for use in
said game; at least one controller for supplying active data
objects to said client application responsive to said
determination.
[0039] According to another embodiment of the invention, the game
distribution server further comprises: an administration module
operable to determine, in respect of said remote computer,
connection bandwidth and response time parameters.
[0040] According to another embodiment of the invention, the amount
of active data objects required to be supplied at said remote
computer is determined in dependence on one or more of the
connection bandwidth and the response time parameters.
[0041] According to another embodiment of the invention, the active
data objects comprise data having a file size below a predetermined
size threshold.
[0042] According to another embodiment of the invention, deleted
after use comprises one or more of: deleted after an active data
objects buffer capacity is exceeded; deleted after a predetermined
period of time; deleted after implementation in game play.
[0043] According to one embodiment of the invention, there is
provided a game distribution server configured to distribute game
data comprising passive data to a plurality of remote computers
each provided with a client application, wherein passive data
comprises game data which after game play resides on a remote
computer and is identifiable as available passive data by the
client application. The game distribution server comprising: a
processing module configured to identify during game play passive
data likely to be required by said client application in future; a
content checking module operable to determine whether the passive
data likely to be required already exists on said remote computer;
and a data controller operable to transmit passive data determined
not to exist on said remote computer.
[0044] According to another embodiment of the invention, the game
distribution server further comprises: an administration module
operable to determine, in respect of said remote computer,
connection bandwidth and response time parameters; and an essential
minimum module operable to determine what essential minimum data is
required in order to begin game play at said remote computer.
[0045] According to another embodiment of the invention, the
essential minimum data comprises only passive data.
[0046] According to another embodiment of the invention, the amount
of essential minimum data required at said remote computer is
determined in dependence on one or more of: the connection
bandwidth and the response time parameters.
[0047] According to another embodiment of the invention, the amount
of passive data required to be transmitted to said remote computer
is determined in dependence on one or more of the connection
bandwidth and the response time parameters.
[0048] According to one embodiment of the invention, there is
provided a game distribution server configured to separately
distribute game data comprising active data objects and passive
data objects to a remote computer provided with a client
application, comprising: at least one controller operable to set an
amount of active data objects and an amount of passive data objects
required to be buffered at said remote computer in dependence on
one or more of bandwidth and response times, wherein said amount of
passive data objects transferred for buffering exceeds the amount
of active data objects.
[0049] According to another embodiment of the invention, the active
data objects comprise data objects supplied responsive to events
occurring during the game and which are automatically deleted by
the client application after use.
[0050] According to another embodiment of the invention, deleted
after use comprises one or more of: deleted after an active data
objects buffer capacity is exceeded; deleted after a predetermined
period of time; deleted after implementation in game play.
[0051] According to another embodiment of the invention, the active
data objects comprise objects having a file size below a
predetermined size threshold.
[0052] According to one embodiment of the invention, there is
provided a method of operating a computer to distribute game data
comprising active data and passive data to a plurality of remote
computers each provided with a client application, wherein passive
data comprises game data which after game play resides on a remote
computer and is identifiable as available passive data by the
client application. The method comprising: identifying during game
play passive data likely to be required by said client application
in future; determining whether the passive data likely to be
required already exists on said remote computer; and transmitting
passive data determined not to exist on said remote computer to
said remote computer.
[0053] According to another embodiment of the invention, the step
of determining whether the passive data likely to be required
already exists on said remote computer further comprises:
transmitting a first list of references of the passive data likely
to be required by said client application in future to said remote
computer; receiving from said remote computer a second list of
references of the passive data likely to be required by said client
application in future which is not stored at the remote computer;
and retrieving the passive data associated with said second list of
references.
[0054] According to one embodiment of the invention, there is
provided a computer readable medium recorded with computer readable
code arranged to cause a computer to perform the method described
above.
[0055] According to one embodiment of the invention, there is
provided a computer program product comprising programme code means
for performing the method described above.
[0056] According to one embodiment of the invention, there is
provided computer programme code means for performing the method
described above.
DESCRIPTION OF THE DRAWINGS
[0057] For a better understanding of the invention and to show how
the same may be carried into effect, reference will now be made by
way of example to the accompanying drawings:
[0058] FIG. 1 illustrates a gaming system;
[0059] FIG. 2 illustrates a game server for use in the gaming
system of FIG. 1;
[0060] FIG. 3 illustrates a process flow diagram;
[0061] FIG. 4 illustrates schematically the potential position of a
user in a game within a predetermined period; and
[0062] FIG. 5 illustrates another process flow diagram.
DETAILED DESCRIPTION
[0063] Embodiments of the invention will now be described, by way
of example only, with reference to the accompanying drawings.
[0064] FIG. 1 illustrates the main components of a gaming system 1.
The gaming system 1 comprises game conversion module 10, game
server 20 and user devices 30. The user devices 30 are connected to
the game server 20 over a network such as the internet 40.
[0065] The game conversion module 10 converts a game of known
format into a format suitable for use in the gaming system 1. The
game conversion module 10 then transfers the converted game (in one
embodiment a copy of the converted game) to the game server 20.
[0066] The game conversion module 10 may not have a permanent
connection to the game server 20. Therefore, following conversion
of a game, the game conversion module 10 establishes a connection
with the game server 20, transfers the converted game to the game
server 20 and then terminates the connection. This is illustrated
by the dotted line in FIG. 1. Alternatively, the game conversion
module 10 may have a permanent connection to the game server 20. In
either example the connection may be a wired or wireless
connection. In another embodiment, the game conversion module 10
may not have a connection to the game server 20. In this instance,
following conversion of a game, the game is provided to the game
server 20 via a storage medium such as a CD, DVD or memory stick
etc. In another embodiment, the game server 20 may request a game
or update from the game conversion module 10.
[0067] Further details of the game conversion module 10 can be
found in co-pending patent application entitled: "Apparatus and
Methods for Game Conversion" filed by the same applicant as this
application, although this is not required to understand and
implement the present invention.
[0068] In brief, in order to convert a game of known format into a
format suitable for use with the gaming system 1, the game
conversion module 10 converts the game into active data elements
and passive data elements, such that the whole game can be
transferred to the game server 20 as a combination of active data
or passive data.
[0069] Typical examples of passive data are the elements of
textures, mp3 files, wave files, text files and such like. However,
broadly speaking, passive data is any data which can be downloaded
to and stored locally on a user's device 30, and can potentially be
replaced by a reference identifier. The game engine (for example:
Unreal engine, Torque engine, Quake engine, Half Life engine) can
also be classed as passive data because it is possible to use a
version of the game engine stored locally on a user's device
30.
[0070] Active data is supplied to the user's device 30 running the
game from the game server 20 in substantially real time or close to
it. Active data is usually data which is required in order to give
the passive data behaviour during game play. Potentially, any type
of data can be classified as active data. However, according to one
example, it is the game object data (for example parameter data)
which is classified as active data. To this effect, in order for
there to be a composition of all the basic data components in the
game to create the sophisticated, interactive virtual object (or
game token) as seen by the player during game play, the passive
data (e.g. the textures, the game engine, etc.) is combined with
the active data (parameters describing its behaviour). Without the
active data, therefore, the game cannot be played because the
passive data will not compile/render/behave properly on the user's
device 30 due to the fact that there is no data describing how the
game elements are combined and how they interact with each other in
the game environment. The active data is downloaded, from the game
server 20, separately from the passive data to the user's device
30, and combined with the download passive data stored at the
user's device 30 in order to create the playable game at the user's
device 30. According to one example, the active data and passive
data may be combined on-the-fly upon separate arrival at the user's
device 30.
[0071] Certain types of game object data are relatively small when
compared with other data elements such as textures, audio files and
the game engine, which can all have very large file sizes. It is
therefore advantageous to have the object data as active data for
two reasons. Firstly, having the object data as active data
operates as a form of digital rights management in that the game
cannot be played by a user without the necessary active data to
compose the game play. Therefore active data is only stored
momentarily on a user's device 30 and must be downloaded from the
server 20 separate from the passive data. Secondly, the object data
(generally active data) being so small means that games can be
distributed using only a limited amount of network bandwidth, with
all (or at least a large majority) of the large data (generally
passive data) files being stored locally on the user's device
30.
[0072] According to one example, a site threshold is used to define
data suitable for categorisation as active data. For example, any
data file smaller than 256 kB is selected as potentially active
data. Then a predetermined percentage of that selection, e.g. 40%,
is classified as active data (the other 60% being classified as
passive data).
[0073] As stated above, the passive data can be replaced by a
reference. In conventional games an element of data, for example
the texture grass may appear numerous times throughout the game. In
order to convert a conventional game into a format of the gaming
system 1, the game conversion module 10, identifies all the
instances where an element of passive data appears more than once
(either identical or similar), by checking the data content of each
file, associates an unique reference with one of the elements of
data files and replaces all further instances of the element of
data file with the unique associated reference (and deleting all
the further instances of the element of data file). For example the
determination may be made pixel by pixel in the case of a texture,
however, any suitable technique well known in the art may be used
to assess similarity of the file contents as required. This greatly
reduces the size of the game (for example a game of known format
may be 1.2 GB but following conversion is reduced to 190 MB).
[0074] For example, the texture grass may appear 100 times in a
game, in numerous levels, each texture grass file looking the same
in a game but having different file names. The game conversion
module 10 identifies each instance when the texture grass appears,
associates an unique reference with one instance of the texture
grass, and replaces the remaining 99 instances with the associated
unique reference. Therefore, the game conversion module 10 reduces
the size of the game by deleting repeated (and thus redundant)
data. This results in a converted game which is of the same quality
as a non-converted game, since all necessary source code of the
game is not changed, but is of a reduced size. Consequently, the
look, feel and game play is not altered by the game conversion
module 10.
[0075] The game conversion module 10 also determines a game
essential minimum. The essential minimum identifies the minimum
amount of data required in order for a user to begin playing the
game, for example, the minimum amount of data to enable the game to
start up, or to start up and load the first level, or a portion of
the first level or an otherwise fully playable portion of the game.
The essential minimum is comprised entirely of passive data.
Therefore, any data which may have been classified active data, due
to its content or size is classified passive data if it is part of
the essential minimum. Following download of the essential minimum
to a user's device 30, the user can begin playing the game (for a
limited period of time). In another embodiment, the user may need a
supply of active data in real time or substantially real time in
order to play the game at all. In either case, in order to
continue/start playing the game, further active and passive data
will be required and, accordingly, the user's device 30 requires a
connection to the game server 20.
[0076] Each converted game which is output from the game conversion
module 10 may be identifiable by a ContainerID. The ContainerID
comprises a GameID with an additional suffix describing game
packets. The GameID is a unique code to identify the game
throughout the entire gaming system 1. According to one embodiment,
the unique code is an alpha-numeric code, e.g. two letters and five
digits in length, optionally with a regional suffix (e.g. "DE" for
Germany, "UK" for United Kingdom etc.) indicating the language
version of the game. Note that each language version of the game
will generally undergo a separate conversion process, although in
some circumstances, this may not be necessary. The additional
suffix describing game packets may be a four digit code. For
instance, the GameID "TR000001DE" plus the ContainerID suffix
"0109" may represent the first packet (01) of the German language
version of Tomb Raider 1, which has a total of 9 packets (09). In
this context, the first packet "01" is the essential minimum as
described above.
[0077] These Containers may contain both active and passive data
for a game. Alternatively, there may be corresponding containers
and packets for each of the active and passive data. In any case,
the passive data and associated references of the converted game
and the active data of the converted game are stored and/or
labelled separately so they can be deployed to the client
separately.
[0078] In one embodiment the passive data is divided into
categories for storage. For example, all textures are stored in one
table, all mp3 files are stored in another table, all wave files
are stored in another table etc. Therefore, the passive data is
stored in one storage device but the storage device is divided into
separate tables based on the category of passive data.
[0079] A passive data storage device and an active data storage
device at the game conversion module 10 stores all the converted
games which have been converted by the game conversion module
10.
[0080] The same element of passive data may appear in numerous
games. For example, the texture grass may appear in five different
games. Therefore, in order to avoid the duplication of passive data
within the game conversion passive data storage device, the game
conversion module 10 also identifies all the instances where an
element of passive data within the game being converted appears
(either identical or similar) in the passive data storage device
(i.e. the passive data appears in another game already converted by
the game conversion module 10). Therefore, if an element of passive
data which appears in a game being converted is already in the
passive data storage device, then the unique reference associated
with the element of passive data in the passive data storage device
is used to replace all instance of that element of passive data
within the game.
[0081] Taking the example above of the texture grass appearing in
numerous different games, when a new game is to be converted, the
game conversion module 10 identifies all instance of the texture
grass within the new game, compares the texture grass with the data
stored in the game conversion passive data storage device,
determines that the texture grass is already stored in the game
conversion passive data storage device, identifies the unique
reference which is associated with the texture grass in the game
conversion passive data storage device, and replaces all instances
of the texture grass within the new game with the unique
reference.
[0082] Each passive and active data element may comprise metadata
provided by the game conversion module 10. The metadata may
comprise: [0083] FileID--a unique code to identify the file
throughout the entire gaming system 1. According to one embodiment,
the unique code is an alpha-numeric code, e.g. two letters and ten
digits in length. [0084] FileName--a record containing the given
name of the file including its extension e.g. "tree1.jpg",
"bang2.wav" etc. [0085] FileTypeID--a record indicating the file
extension, e.g. "bmp", "jpg", "mp3", "wav" and such like. According
to one embodiment, proprietary file extensions are standardised
during the conversion process. For instance, a standard "*.jpg"
file may be renamed as "*.abc" by a given game developer for a
number of reasons. This process may be reversed so that all
standard files have the correct, accepted file extension format.
According to one embodiment, file extensions are standardised
according to a labelling system representing each individual file
types. For instance, the following numbering system may be
employed: 00100 representing the general category of "graphics
files" with 00101=jpeg files, 00102=bmp files, 00103=png files etc;
and 00400 representing "sound files" with 00401=wav files,
00402=ogg files, 00403=mp3 files etc. [0086] FileLink--is a marker
indicating the position of the file within the file structure of
the installed game. In other words, it is a route indicator. [0087]
GameID--a unique code to identify the game throughout the entire
gaming system 1. According to one embodiment, the unique code is an
alpha-numeric code, e.g. two letters and five digits in length,
optionally with a regional suffix (e.g. "DE" for Germany, "UK" for
United Kingdom etc.) indicating the language version of the game.
Note that each language version of the game will generally undergo
a separate conversion process, although in some circumstances, this
may not be necessary. [0088] FileSize--the size of the file, for
example in kilobytes [0089] ReferenceStatusID--made up of three
sub-metadata flags: "No" (0), "Yes" (1) and "Not Tested Yet" (2),
each indicating whether or not the file is replaceable by a file
already present in the game conversion database. [0090]
ReplacementFileID--if the ReferenceStatusID=1, then the
ReplacementFileIDs comprises a list of all other IDs which the file
is a reference file to. In other words, it comprises a list of all
equivalent files that can be replaced by the present file. [0091]
ClassID--is made up of two sub-metadata flags: an indicator of
whether the file is classified as active (0) or passive (1). [0092]
SubClassID--is a locking flag which prevents an active file being
replaced by another file. Accordingly, a file may be marked
"locked" (0) or "replaceable" (1). This feature enables the
prevention, for example, of a certain file being replaced based on
performance considerations, and prevents collision between
ClassIDs.
[0093] The game conversion passive data storage device comprise all
the passive data required for all the games which have been
converted by the game conversion module 10 and the game conversion
active data storage device comprise all the active data required
for all the games which have been converted by the game conversion
module 10. The passive data storage device is essentially a shared
library of passive data.
[0094] As illustrated in FIG. 1, the game server 20 is connected to
the user devices 30 over a network, such as the internet 40. The
connection may be a wired or wireless connection. The user devices
30 may be, for example (but not limited to), desktop computers,
laptop computers, game consoles, portable game consoles etc.
[0095] Further details of the game server 20 will now be given with
reference to FIG. 2. The game server 20 comprises an active data
storage device 100 and a passive data storage device 110. These
storage devices 100, 110 are populated with converted games,
converted by the game conversion module 10, and are updated
whenever a converted game is transferred to the game server 20. The
storage devices 100, 110 can store the active data and passive data
for a plurality of converted games converted by the game conversion
module 10.
[0096] Essentially, the game server active data storage device 100
contains a copy of the active data stored in the game conversion
active data storage device and the game server passive data storage
device 110 contains a copy of the passive data stored in the game
conversion passive data storage device for all the games which have
been converted by the game conversion module 10 and transferred to
the game server 20.
[0097] When a new game has been converted by the game conversion
module 10 and is to be transferred to the game server 20, the game
conversion module 10 identifies the passive data elements of the
new game which have been replaced by a unique reference to passive
data already stored in the passive data storage device (a copy of
which is stored in the passive data storage device 110 at the
server 20). Indicators (for example, the FileID's) of the
identified passive data elements are then transferred to the server
20 and the metadata of the identified passive data elements in the
storage device 110 at the server 20, is updated. For example, the
ReplacementFileID of an identified passive data element may be
amended to include the GameID of the new game for which the
identified passive data element is a reference file. In addition
all new data which is not already stored at the game server 20,
i.e. all the new game active data and any new game passive data
which is not already stored in the storage device 110 is
transferred (in the case of passive data, together with its
associated unique reference) to the server 20 and stored in the
appropriate storage device 100, 110.
[0098] In one embodiment, as with the game conversion module 10,
the passive data storage device 110 of the game server 20 stores
the passive data based on categories, such that, for example, all
textures are stored in one table, all mp3 files are stored in
another table, all wave files are stored in another table etc.
Therefore, the passive data storage device 110 of the game server
20 is one storage device 110 storing all the passive data but is
divided into separate tables based on the category of passive data.
In another embodiment, a plurality of passive data storage devices
110 could be used.
[0099] The game conversion module 10 also transfers all the active
data of the new game to the active data storage device 100 of the
game server 20. The active data is unique to each game. Therefore,
it is not necessary to perform a comparison of the active data
already stored in the active data storage device 100 and the new
active data.
[0100] It is possible to remove specific game data from the storage
devices 100, 110 if required, for example, when a game is no longer
popular. Moreover, updates of the active and/or passive data stored
at the storage devices 100, 110 of the game server 20 can be
performed if required. For example, if an updated version of the
texture grass becomes available it can be saved over the current
version of the texture grass stored in the passive data storage
device 110 and associated with the unique reference which indicates
the texture grass.
[0101] The quality of the updated files may be better (for example
in terms of resolution etc.) than the original files, yet the
overall game may still be smaller due to the amount of redundant
data deleted from the game. In this regard, the visual and audio
quality of a computer game may be improved, enhancing the user's
experience whilst still reducing the overall size of the game.
[0102] A user can access the game server 20 over the internet 40
from a user device 30, via the web interface 140. Upon first use
the user may optionally be required to set-up a user account with
the gaming server 20, for example, the user may be required to
enter data such as, their name, address, date of birth, financial
account details etc. A user account is then created for each user
by the administration and user set-up module 170, such that the
user can then access the game server 20 and play any of the
converted games which are stored in the active and passive data
storage devices 100, 110. The user account data is stored in the
user database 160.
[0103] Upon first use of the gaming server 20, the administration
and user set-up module 170 determines whether the user's device 30
comprises the game processing application (game user software)
required in order to play games converted by the game conversion
module 10. If it is determined that the user's device 30 does not
comprises the game user software, then the user is prompted to
download a copy of the game user software from the storage device
180 at the server 20, via the web interface 140.
[0104] Although not required to understand and implement the
present invention, further details of the game user software can be
found in co-pending patent application entitled: "Game User
Software" filed by the same applicant as this application.
[0105] In addition upon first use of the gaming server 20, the
administration and user set-up module 170 identifies the hardware
environment of the user's device 30, such as the graphics card the
user's device 30 comprises and the processing speed of the CPU
(central processing unit) of the user's device 30.
[0106] The game server 20 requires a two-way interactive
communication with the user's device 30 at all times during game
play. This is because during game play, not only is it necessary
for the game server 20 to download data (active and passive data)
to the user's device 30, but it is also necessary for the user's
device 30 to send data to the game server 20, such as information
about decisions made by the game player (user) during game play,
and thus which data is required next in the game.
[0107] Consequently, the administration and user set-up module 170
also determines the ping time and bandwidth of the user's
connection upon first (and subsequent) use of the gaming server 20.
The ping time and bandwidth of the user's connection affects the
speed with which the user's device 30 gets a response from the game
server 20 when the user's device 30 sends a request for data to the
game server 20.
[0108] In one embodiment, the hardware environment of the user's
device 30 and/or the ping time and bandwidth of the user's device
30 is checked at predetermined intervals, for example each time the
user connects to the game server 20, or each time the user selects
a new game for playing. In addition, the hardware environment of
the user's device 30 and/or the ping time and bandwidth of the
user's device 30 may be checked throughout game play.
[0109] In order to avoid pauses during game play whilst data is
being downloaded from the game server 20, the administration and
user set-up module 170 may alter the buffer zone (explained in
further detail below) for each user as a result of their hardware
environment, ping time and bandwidth. Users with poor ping time and
bandwidth are assigned a larger buffer zone than users who have
good ping time and bandwidth.
[0110] As well as storing the user account data, the user database
160 can also be used to monitor and store user behaviour during
game play. This data can then be transferred to game manufactures
such that the games can be modified if required. For example, if
50% of users are not going through a particular door, because a
secret code is needed, the game maker can establish that the code
is too hard and thus can adjust the code/game.
[0111] Following set-up of an user account (if required), the user
becomes an authorised user. An authorised user may be required to
enter a user name and password via the web interface 140 in order
to gain access to the game server 20. The administration and user
set-up module 170 then compares the entered user name and password
with authorised user data held in the user database 160 in order to
verify if the user is an authorised user. Once it is confirmed that
the user is an authorised user, the user is allowed to access the
game server 20 and play games.
[0112] The user database 160 may also store user account data. For
example, a user may be required to pay in order to play a game at
the game server 20. Therefore, the user account data may be data
regarding whether the user has sufficient funds in order to play a
game at the game server 20. If it is determined that the user does
not have sufficient funds in their account, then access to game
play via the game server 20 may be denied until sufficient funds
have been added to the user's account. In addition, if it is
determined that the user is an authorised user, but does not have
sufficient funds in their account, then access to game play via the
game server 20 may be denied until sufficient funds have been added
to the user's account.
[0113] Following confirmation that the user has sufficient funds
and/or is an authorised user, the user can select any one of the
converted games stored in the storage devices 100, 110 to play.
This selection can be made via the web interface 140.
[0114] In a further embodiment, the user may not be required to be
an authorised user and/or may not be required to pay in order to
play a game stored at the game server 20.
[0115] The optional CMS (content management system) module 150 is
used to manage the content of the web-interface 140 as known in the
art.
[0116] The user's game selection is transferred to the game content
processing module 120 together with confirmation from the
administration and user set-up module 170 that the user is an
authorised user and/or has sufficient funds in their account if
required. The game content processing module 120 comprises an
active object communication module 122, a content checking and
delivery module 124 and a passive data controller module 126.
[0117] The game content processing module 120 interfaces with the
game user software at the user's device 30 via the game server
communication interface 130.
[0118] The game user software at the user's device 30 uses an user
passive data storage device (not illustrated). In one embodiment,
the user passive data storage device is initially empty. In another
embodiment, initial passive data may be transferred with the game
user software from the administration and user set-up module 170 to
the user device 30 in order to populate the user passive data
storage device. In another or additional embodiment, passive data
may be provided on a CD (compact disc)/DVD/memory stick etc. which
the user purchases in order to populate the user passive data
storage device.
[0119] In order to play the selected game the essential minimum
data (discussed above) is downloaded from the passive data storage
device 110 at the server 20 to the user passive data storage
device. In addition the connection between the server 20 and the
user's device 30 must be active, so that active data and further
passive data can be downloaded to the user's device 30 as required
during game play.
[0120] As stated above the game engine is considered a special type
of passive data. Prior to, or after, download of the essential
minimum data it is determined whether the user's device 30 has the
required game engine, and if the user's device 30 does not have the
required game engine, then it is (a copy is) downloaded to, and
stored at, the user's device 30 together with, or separately from
the essential minimum data. The game is then run on this locally
stored game engine which combines the necessary active data
received from the game server 20 and the necessary passive data
downloaded to the user passive data storage device from the game
server 20 and retrieved from the user passive data storage device
by the game engine.
[0121] FIG. 3 illustrates schematically the process of the
essential minimum data download from the passive data storage
device 110 at the game server 20 to the user passive data storage
device at the user's device 30.
[0122] When a user selects a game for playing (at step S200), the
users selection is transferred via the web interface 140 to the
game content processing module 120. The content checking and
delivery module 124 determines what game engine is required to play
the selected game and checks whether the user's device 30 has this
game engine (step S202). If the user's device 30 does not have the
required game engine, then the game engine is transferred to the
user's device 30 (step S204). The passive (and active) data is
transferred to the user's device 30 via the game server
communication interface 130.
[0123] The game engine is a special type of passive data and as
such it is stored in the user passive data storage device.
[0124] In addition to determining what game engine is required by
the game, the content checking and delivery module 124 also
determines what administrative features, such as physics engine,
control application etc. are required by the game and transfers
those which are required to the user's device 30, if not available
at the users device 30. In one embodiment, all the administrative
features of the game are downloaded to the users device 30 at the
beginning of the game download.
[0125] The content checking and delivery module 124 also determines
what essential minimum data is required in order to play the
selected game (step 5206). The passive data which is stored in the
passive data storage device 110 is associated with an unique
reference, as discussed above, which is used to identify the
passive data. Each passive data also contains an indication as to
which game requires the passive data. The content checking and
delivery module 124 transfers a first list of unique references
indicating the essential minimum data which is required for the
selected game to the user's device 30 (step S208).
[0126] The user device 30 comprises an user passive data manager.
The user passive data manager compares the first list of unique
references with the unique references associated with passive data
stored in the user's passive data storage device (step S210) and
determines which of the first listed passive data is not already
stored in an user passive data storage device (step S212). The user
passive data manager then returns a second list of unique
references to the content checking and delivery module 124 (step
S214) via the server communication interface 130. The second list
indicates which of the first listed essential minimum data is not
stored in the user passive data storage device at the user's device
30 and thus is required by the user passive data storage
device.
[0127] In one embodiment, if the user device 30 does not have any
data stored in the user passive data storage device, then the
second list of references is identical to the first list of
references. However, if some of the required essential minimum data
is already stored in the user passive data storage device, then
this passive data does not need to be transferred from the passive
data storage device 110 of the game server 20 to the user passive
data storage device of the user's device 30. Consequently, the
second list of references is likely to be smaller than the first
list of references.
[0128] In one embodiment, as discussed above, the game conversion
module 10 identifies all the instances where an element of passive
data within a game appears (either identical or similar) in another
game already converted by the game conversion module 10 and
associated the existing unique reference with the element of
passive data. The game conversion module 10 amends the
ReplacementFileID of the element of passive data element to include
the GameID of each new game for which the identified passive data
element is a reference file. Consequently, the passive data stored
in the passive data storage device 110 at the game server (which
was converted by the game conversion module 10) does not include
any duplications of passive data.
[0129] As a result, the passive data which is transferred to the
users device from the game server 20 details the GameID of each
converted game for which the identified passive data element is a
reference file.
[0130] The content checking and delivery module 124 uses the second
list of references to determine what passive data and its
associated reference is required to be transferred to the user's
device 30. The content checking and delivery module 124 then
retrieves the required essential minimum passive data and its
associated reference from the passive data storage device 110 (step
S216) and transfers a copy of the passive data and its associated
reference to the user device 30 (step S218). Therefore, only new
passive data (passive data not already stored in the user passive
data storage device) is transferred to the user device 30.
[0131] The user passive data manager then stores the transferred
passive data and associated reference in the user passive data
storage device.
[0132] Steps S202 and S204 may be performed after steps S206 to
S218, i.e. the game engine may be transferred after the essential
minimum data. In addition, the game engine may be transferred at
the same time as the essential minimum data at step S218.
[0133] In one embodiment, as with the game conversion module 10 and
the game server 20, the passive data storage device of the user's
device 30 stores the passive data based on categories, such as all
textures are stored in one table, all mp3 files are stored in
another table, all wave files are stored in another table etc.
Therefore, the passive data storage device of the user device 30 is
one storage device storing all the passive data but is divided into
separate tables based on the category of passive data.
[0134] Since only new passive data (passive data not already stored
in the user passive data storage device) is transferred to the user
device 30, the more games that the user has selected for playing,
the more passive data will be stored in the user passive data
storage device. Thus, the amount of passive data required to be
transferred from the game server 20 to the user device 30 should
reduce with each game, such that the time required to download the
essential minimum data to the user's device 30 may decrease with
each game. In addition the time required to download the passive
data to the user's device 30 during game play may decrease with
each game.
[0135] The essential minimum data required for initial download may
also be supplemented with further initial download data (if
required) depending on the determined ping time and bandwidth of
the connection to the user's device 30 (as discussed above). For
example, if the user's connection is slow, the game content
processing module 120 may determine that the user's device 30
requires the essential minimum data and further additional active
and/or passive data to be downloaded to the user's device 30 before
game play can commence. In this instance the extra passive data is
transferred together with or separately from the essential minimum
data using a similar process to that described in FIG. 3. The extra
active data may also be transferred together with or separately
from the essential minimum data. However, since the active data
cannot be replaced by a reference and is not permanently stored at
the user's device 30, no comparison (such as steps S210 to S218) is
required.
[0136] The process of FIG. 3 is performed prior to commencement of
game play. Not all of the selected game passive data may be
transferred before commencement of game play. For example, only the
passive data which is required for the first three levels of the
selected game may be identified and transferred, using the process
described above with reference to FIG. 3, to the user's device 30
before game play commences.
[0137] During game play the passive data is downloaded from the
storage device 110 at the server 20 to the user passive data
storage device at the user's device 30 (in the background), using a
process similar to that of FIG. 3. The passive data is then read
from the user passive data storage device when required. In
contrast the active data is downloaded when required, and is not
permanently stored at the user's device 30. The user passive data
storage device functions as a virtual drive at the user's device 30
from which the passive data is read, in contrast to conventional
games which are read from a disc.
[0138] It may not necessary for the process of FIG. 3 to be carried
out when the user selects the game for playing the second and
subsequent times, since the essential minimum data required to
begin game play has been downloaded to the user passive data
storage device at the user's device 30.
[0139] Following download of the essential minimum data (including
the game engine if required) game play can begin. The entire game
is not required to be downloaded before game play begins, only the
essential minimum is required. The game data (active and passive
data) is then downloaded in the background during game play, as
required.
[0140] According to one embodiment, active data and passive data
are distributed by separate servers. For example, passive data can
be distributed by a web server, since its delivery speed does not
directly affect game play; a slower delivery speed simply means the
user has to wait longer to begin playing the game (and the buffer
zone is increased, as discussed below). The delivery speed of
active data, on the other hand, is more critical in the sense that
the game cannot be played without it and most games will be
prepared by the game conversion module 10 in a manner that requires
a constant feed of active data in order for the game to be played.
In this regard, therefore, it is more desirable to have a fast
server for distributing the active data. According to one example,
active data is distributed by a blade server and passive data is
distributed by a web server.
[0141] To ensure that there are not any delays during game play
whilst passive (and active) data is downloaded from the game server
20, it is necessary to determine a buffer zone which surrounds the
players (user's game token) current position in the game. This
buffer zone indicates all the passive (and active) data which may
be required during the next predetermined period of game play.
[0142] As illustrated in FIG. 4, if the player is currently at the
centre position (indicated by the solid black diamond
.diamond-solid.) at time t=0, then the player could be anywhere
within the first circle 1 at t=1, anywhere within the second circle
5 at t=5 and anywhere within the third circle 10 at t=10. In most
games the player is not required to move in one direction, such as
direction A, B or C, and can turn around and double back on himself
or can change direction, game play may not be linear and different
users (or the same user) can play the same game in different ways,
based on decisions taken during the game. Consequently, at any one
time, the player could be about to move to any one of plurality of
different environments each requiring different (or the same)
active and passive data. For example, if the passive data buffer
zone is defined by the dotted circle 10 in FIG. 4 and the active
data buffer zone is defined by the dotted circle 1 in FIG. 4, then
the game server 20, and in this example, the game content
processing module 120, needs to monitor game play and determine all
the passive data that may be required within the zones 0 to 10 and
all the active data that may be required within the zones 0 to 1.
The zones of the game may be defined for example in terms of time,
distance, memory, rooms or levels within a game.
[0143] The active data buffer zone is smaller than the passive data
buffer zone so as to avoid permanently storing (for any significant
period of time/amount of data) active data at the user's device 30
and thus prevents the game being played when connection to the
server 20 is broken.
[0144] The content checking and delivery module 124 can then
download the required (buffer zone) passive data to the user
passive data storage device at the user's device 30 and the
required (buffer zone) active data to the user active data storage
device at the user's device 30 in the background during game
play.
[0145] Monitoring of game play and dynamic determination of buffer
zone(s) can occur at either the game server 20 or at the user
device 30. In the latter case, the user device 30 needs to request
the buffer zone data (active and passive) required to be stored at
the user device 30.
[0146] In one embodiment, the passive data buffer zone may be set
as one level, in this case the game server 20 downloads each level
of passive data one level before it is required.
[0147] FIG. 5 illustrates an exemplary server monitoring process of
game play and for downloading data from the game server 20 to the
user's device 30 during game play.
[0148] The game content processing module 120 receives an
indication of the current game play (for example, which level the
player is on and where in the level the player is) together with a
request for active and passive data from the user's device 30 via
the game server communication module 130 (step S300). The content
checking and delivery module 124 than determines what passive data
is required for the next predetermined period of game play (the
buffer zone) at step S302.
[0149] The content checking and delivery module 124 then transfers
a first list of unique references indicating the passive data which
is required for the next predetermined period of game play to the
user device 30 (step S304).
[0150] As stated above, the user device 30 comprises an user
passive data manager. The user passive data manager compares the
first list of unique references with the unique references
associated with passive data stored in an user's passive data
storage device (step S306) and determines which of the first listed
passive data is not already stored in an user passive data storage
device (step S308). The user passive data manager then returns a
second list of unique references to the content checking and
delivery module 124 (step S310) via the server communication
interface 130. The second list indicates which of the first listed
passive data is not stored in the user passive data storage device
and thus is required to be downloaded to the user passive data
storage device.
[0151] The content checking and delivery module 124 uses the second
list of references to determine what passive data and its
associated reference is required to be transferred to the user
device 30 and the passive data controller 126 determines the order
in which the passive data is to be downloaded to the user device 30
(step S312). The content checking and delivery module 124 then
retrieves the second list of passive data and its associated
reference from the passive data storage device 110 (step S314) and
transfers a copy of the passive data and its associated reference
to the user device 30 (step S316).
[0152] The user passive data manager then stores the transferred
passive data and associated reference in the user passive data
storage device at the user's device 30.
[0153] The active data is only downloaded to the user's device 30
during game play and the active data is not permanently stored at
the user's device 30.
[0154] The active data is downloaded to the user's device 30 with a
buffer zone. However, the buffer zone for the passive data is set
to be larger than the buffer zone for the active data. This is
because, in most instances, more passive data is required for one
zone and passive data tends to have larger file sizes than the
active data, thus the passive data requires longer download times.
In addition, the active data is only stored temporarily, for a very
short period of time, on the users device 30. The active data is
constantly being overwritten at the user's device 30 when it is no
longer required. Therefore, a live connection between the user's
device 30 and the game server 20 is required during all game play.
It is not possible for the user to play a downloaded game if they
are not connected to the game server 20 since the user's device 30
does not store any of the active data required for game play only
the passive data is stored at the users device 30. In addition, it
is not possible for a user to create a copy of the game (for resell
for example) since the user's device 30 does not store any of the
active data required for game play. Additionally the game cannot be
used through a peer-to-peer sharing network, as again the user's
device 30 does not store any of the active data required for game
play.
[0155] The active object communication module 122 retrieves the
active data required for game play from the active data storage
device 100 and transfers it to the user's device 30 via the game
server communication interface 130 during game play. The active
data is not transferred prior to game play and is not stored at the
user's device 30.
[0156] It is also possible for the game user apparatus at the
user's device 30 to be launched through a conventional internet
browser. For example by clicking a game listed on a website hosted
by the game server 20, via the web interface 140, an extension of
the browser automatically launches the game user apparatus on the
user's device 30 and begins to initiate the essential minimum
download or game play (i.e. active and passive data stream) if the
game has been played before.
[0157] The gaming system 1 prevents users from copying games. In
addition, the gaming system 1 enables multiplayer game play to be
easier as long at all the players are connected to the game server
20.
[0158] The invention has been described with particular
illustrative embodiments. It is to be understood that the invention
is not limited to the above-described embodiments and that various
changes and modifications may be made by those of ordinary skill in
the art without departing from the scope of the invention.
* * * * *