"COMMUNICATION SYSTEM AND METHOD"
Technical Field
This invention relates to a communication system and method.
The invention has particular application to a method and system for interactive communication between a plurality of distributed players of computer based games.
Background of Invention
Arcade game systems are well known and similar games have been modified for home use with a TV screen. The advent of the PC has also seen the development of single- and multi-player game software packages. On-line game services are also known in which a central computer controls a the game for players connected to the computer, for example by a local area network (LAN) . It is also known for multi-user games to run on specific servers. US patent 5280426 describes a system in which a central computer communicates with a player control unit and separately with selected distributed agency game control units. Gambling systems are also known in which local controls are connected to a central control system by a cable TV system with the TV used for display. International patent publication WO 81/01664 describes such a gambling system.
Summary of Invention
The present invention aims to provide an alternative to known methods and systems for interactive communication between a plurality of distributed players of computer based games.
This invention in one aspect resides broadly in a system for interactive communication between a plurality of distributed players of computer based games on computer assemblies interconnected by a data communication network, the system including:- at least one controller data processing assembly
connectable to the data communication network for controlling the operation of the plurality of computer assemblies connected to the data communication network, and a plurality of computer assemblies for players to play computer based games, each computer assembly including:- an input/output assembly for transmitting data representative of game and/or player status to a data communication network, and application program interface means for interfacing each the computer assembly with the controller data processing assembly; wherein application program interface data is transferable to the application program interface means from game data storage means, the application program interface means being operable to allow a plurality of players located at distributed locations and utilising computer assemblies having the same or differing operating systems and/or hardware configurations to play a game, data representative of the game being transferable to the computer assemblies from the game data storage means for processing solely by the computer assemblies. As used herein the expression "computer assembly" refers to computerised work station such as a personal computer or games console (referred to as a PC) and can include input and output peripherals such as a keyboard, mouse, 3D input device, virtual reality pointer, virtual reality headset, joystick, barcode reader, touch screen, monitor screen, speaker, printer etc.
As used herein the expression "game and/or player status" means any information relating to past, present or future progress of the game or participation in the game by players. The information can for example relate to the progress of a game during play, the details of sessions of the game, the skill levels or past- performance of players etc.
The input/output assembly can be any means suitable to communicate between computer and a communication network. The input/output assembly may for example be a cable television adaptor, set top box, wireless unit, router, phone, fax, infra-red link etc. The input/output assembly is preferably a modem.
The data communication network is preferably a wide area network (WAN) using commercial communication systems. The data communication network can include the InterNet or commercial equivalents to the InterNet.
The controller data processing assembly or file server can provide many functions. In a preferred embodiment the controller data processing assembly includes:- data storage means for storing data representative of the players, the games, and the playing of the games by the players.
The controller data processing assembly may also include:- player identification and registration means for identifying players using the system and registering a player using the system; game session and game choice registration means for registering a game chosen by players who intend playing the game on the system and for registering the preferred session indicated by a player for playing the game, and game session coordination means for coordinating game sessions in accordance with input from the game session and game choice registration means. It is to be understood that the selection and coordination of game sessions can be in accordance with many variables including game connection, duration of play, time of play, skill levels etc.
It is preferred that the system includes for each game:- ga e data storage means for storing data to enable the game to be played on a computer assembly, the game data storage means storing data representative of the
game, and including interface data storage means storing the application program interface data.
The game data storage means is preferable a magnetic diskette, a CDROM or a RAM memory module. Alternatively the game data storage means may be mounted on the InterNet or other communication system and the relevant game data downloaded onto individual computer assemblies via the InterNet.
The system may include only one controller data processing assembly but it is preferred that the system includes a plurality of the controller data processing assemblies.
In another aspect this invention resides broadly in a method of providing interactive communication between a plurality of distributed players of computer based games on computer assemblies interconnected by a data communication network, the method including:- connecting at least one controller data processing assembly to the data communication network for controlling the operation of the plurality of computer assemblies connected to the data communication network; providing a plurality of computer assemblies for players to play computer based games, each computer assembly including:- an input/output assembly for transmitting data representative of game and/or player status to a data communication network, and application program interface means for interfacing each the computer assembly with the controller data processing assembly; transferring application program interface data to the application program interface means from game data storage means, the application program interface means being operable to allow a plurality of players located at distributed locations and utilising computer assemblies having the same or differing operating systems and/or hardware configurations to play a game, and transferring data representative of the game to the
computer assemblies from the game data storage means for processing solely by the computer assemblies.
It is preferred that the method includes transmitting data representative of game and/or player status to the data communication network by the input/output assembly.
It is preferred that the usage of each game by each player is recorded. As used herein the expression "usage" is to be given a wide meaning. It can include inter alia, the time for which a game is played, the number of logins to the game and the number of introductions to other players playing the game.
In yet another aspect this invention resides broadly in game data storage means for storing data to enable a computer based game to be played by or between a plurality of distributed players on computer assemblies interconnected by a data communication network, the game data storage means storing data representative of the game, and including:- interface data storage means storing application program interface data for interfacing a computer assembly storing data from the game data storage means with a controller data processing assembly connected to the data communication network for controlling the operation of a plurality of the computer assemblies connected to the data communication network; wherein the application program interface data iε transferable to application program interface means in each computer assembly, the application program interface means being operable to allow a plurality of players located at distributed locations and utilising computer assemblies having the same or differing operating systems and/or hardware con igurations to play a game, data representative of the game being transferable to the computer assemblies from the game data storage means for processing solely by the computer assemblies.
In a further aspect this invention resides broadly in a method of billing a game-player in accordance with
the usage of a computer based game to be played by or between a plurality of distributed players on computer assemblies interconnected by a data communication network, the method including:- providing at least one controller data processing assembly for controlling the operation of a plurality of the computer assemblies connected to the data communication network; providing game data storage means for storing data to enable the computer based game to be played by or between the plurality of distributed players, the data storage means storing data representative of the game, and including interface data storage means storing application program interface data for interfacing a computer assembly storing data from the game data storage means with the controller data processing assembly; wherein the application program interface data is transferable to application program interface means in each computer assembly, the application program interface means being operable to allow a plurality of players located at distributed locations and utilising computer assemblies having the same or differing operating systems and/or hardware configurations to play a game, data representative of the game being transferable to the computer assemblies from the game data storage means for processing solely by the computer assemblies; connecting the controller data processing assembly to the data communication network; transmitting data representative of game and/or player status to the data communication network by an input/output assembly; recording the usage of each game by each player, and billing each player in accordance with the usage of the game by the player. The financial return can be provided to the originator of the game, the developer, the publisher or any other third party.
Description of Drawings
In order that this invention may be more easily understood and put into practical effect, reference will now be made to the accompanying drawings which illustrate a preferred embodiment of the invention, wherein:-
FIG 1 is a schematic block diagram of a computer based games communication system in accordance with the invention;
FIG 2 is a schematic block diagram of a home computer set up to play games in the games communication system of the present invention;
FIG 3 is a schematic block diagram of a games file server for use in the games communication system of the present invention, and FIG 4 (A and B) is a schematic flow chart diagram illustrating the method of operating the games communication system of the present invention.
Description of Preferred Embodiment of Invention As can be seen in FIG 1, a plurality of geographically distributed PCs Ila, lib ....lln are connected to communication network 12 by modems 13a, 13b ....13n. The PCs are operated by game players 14a, 14b ,...14n. Communication network 12 and/or the telecommunication links between modems 13a, 13b, ....13n are provided by telecommunications companies 15a, 15b, ....15n in known manner. Game storage devices such as diskettes or CDROMS 16a, 16b, ....16n produced by game developers and/or publishers 17a, 17b, ....17n can be purchased and played on their PCs by game players 14a,
14b 14n.
Game file servers 18a, ....18n are connected to communication network 12 which are positioned in suitable geographic locations and in accordance with user requirements. The game file servers enable games to be played interactively by a number of players in a manner to be described.
As well as including data 19a, 19b, ....19n relevant
to the game per se, game diskettes 16a, 16b, ....16n include data 20a, 20b, ....20n representative of application program interface (API) data for interfacing PCs Ila, lib ....lln with game file servers 18a, ....18n such that any number of game players 14a, 14b ....14n located at distributed locations can interactively play any number of games loaded into the PCs from game diskettes 16a, 16b, ....16n irrespective of the operating system and/or hardware configuration of the PCs. The data representative of each game is stored in the respective PC being used to play the game.
The game file server 18 records the usage of each player 14 of each game 16 and this information is available for the respective telecommunication company 15 to bill the players in the accordance with their usage. The telecommunication companies 15 also pay a royalty to game developers and/or publishers 17 in accordance with the total usage of each game 16 by all players 14.
It will be appreciated that the telecommunication companies 15 most probable will provide the communication between the modem 13 and the network 12 and that the billing will include charges for this component. Furthermore the communication between telecommunication companies 15 and players 14 is by the network 12 rather than by a direct link as shown in FIG 1. It is to be understood that FIG 1 is merely schematic in these regards.
As can be seen in FIG 2 which illustrates a computer assemblies 11 of FIG 1, a computer assembly 26 is operated by a player 28 for the purpose of playing games. Computer assembly 26 is a computerised work station such as a personal computer or games console. The game software components 21, 22, 23, 24 and 25 (to be described subsequently) are stored on computer assembly 11 in data storage means 30, or the software components can remain stored on CDROM or diskette 16 for access by the computer assembly. Data storage means 30 is a fixed and/or removable storage media used to store all aspects
of the game. It will also store player registration information required to start subsequent games.
To operate computer assembly 11 and play the game, player 28 utilises input-output peripherals 29 such as a keyboard, monitor screen, joystick, 3D input device, virtual reality position locaters, speakers, printers etc. Input/output assembly 27 allows computer assembly 26 to be to a data communications network 12 such that information can flow between the two. Input/output assembly 27 may be a mode , network interface card, direct connection or cable TV interface.
The game comprises game interface 25 and game functions 24 developed by the game developers and /or publishers. Game interface 25 is that part of the game designed by the game developer to interface with player 28 via the input/output peripherals 29. Game functions 24 form the body of the game as design and developed by the game developer.
API functions 22 and server interface 23 in accordance with the present invention are supplied to the game developers. API functions 22 allow bi-directional communication between computer assembly 11 and game file server 18. They are made available to game functions 24 and server interface 25 via an Application Programming Interface (API). Game functions 24 can utilise this API to communicate with game file server 18 and solicit the services provided by the server. The game file server can utilise the API to negotiate with the game functions in relation to the services to be provided. A protocol stack 21 encapsulates messages generated by game functions 24 and API functions 22 and facilitates their delivery to another computer assembly 11 operating the same protocol stack. Protocol stacks are commercially available. As can be seen in FIG 2 game functions 24 utilise API functions 22 to communicate with data communications network 12. API functions 22 utilise protocol stack 21 in known manner to facilitate communication with game
file server 18 illustrated in detail in FIG 3 via data communications network 12. API functions 22 contain a means for game functions 24 to communicate via data communications network 12 with game file server 18 and to solicit services from that server. The API functions also provide a means for the game functions to communicate with other computer assemblies that are utilising the same protocol stack and API functions.
Server interface 23 utilises the API functions 22 to perform player registration functions on the games file server. The purpose of server interface 23 is to offset the work required by the game developer in incorporating API functions 22. All API functions utilised by server interface 23 are also available to game functions 24. Server interface 23 allows the player 28 to perform player registration and initialisation functions that are not necessarily part of the game but are required by the system in order to access the services provided by the game file server 18. The game developers and publishers may choose not to utilise server interface 23 and instead may develop their own interface in keeping with the style of their particular game using API functions 22.
The controller data processing assemblies or games file servers illustrated in FIG 1 as 18a, 18b ... 18n are now described with reference to FIG 3 in which a controller data processing assembly 40 is connected to a data communication network 12 for the purpose of sending and receiving messages from the computer assemblies 26 illustrated in FIG 2. Controller data processing assembly 40 is a computerised workstation, file server or host with sufficient processing resources to support the game file server software.
Software components 31, 32, 33, 34, 35 and 37 (to be described subsequently) are stored on game file server 40 by data storage means 36. This storage facility is for the non-volatile storage of server software and operating information. It also stores dynamic and historical
information relating to the operation of the server.
Player registration module 31 is responsible for providing account information that will allow the billing of players for each game session or server service provided. As each session is established module 31 issues the player with a valid session key that will be checked by session validation module 32. This key is encrypted and time limited to prevent re-use. Account information passing between the player's computer assembly 26 and game file server 40 is encrypted for security purposes. Player registration module 31 is supplied to provide the infrastructure required by the other components.
Session validation module 32 is responsible for providing validation that all requests to game file server 40 have valid accounting information as required for billing purposes. This is based on authenticating session keys issued by player registration module 31 at the start of each session. Game session registration module 33 is responsible for recording player requests. It will negotiate with players for further selection criterion such as the desired average skill level of the other players, time of play, duration of game etc. The required accuracy of these criterion is also a request criterion.
Game session resolution module 34 is responsible for collating requests so as to satisfy the requests of as many players as possible. It is also responsible for monitoring the state of games in progress. Protocol stack 35 provides an interface with data communication network 12 for the transmission and reception of messages.
Audit functions module 37 ensures that sufficient system resources are always available for the smooth operation of game file server 40. It also allows control of the server modules and for access to operating information. Audit function module 37 is supplied to provide the infrastructure required by the other
components.
Requests from players are received from data communications network 12 via protocol stack 35. These requests are then passed to session validation module 32 to identify whether they are part of an established and legitimate session. Those messages not found to be part of an established or legitimate session are passed to player registration module 31 which negotiates with the player to legitimise the session. This may involve the transfer of player account information to game file server 40 and the provision of player registration information to the player.
Requests found by session validation module 32 to be part of an established and legitimate session are passed to the game session registration module 33 for processing. Thiε module records the details of the players request.
Game session registration module 33 allows the following requests to be made:- A player running a game on a computer assembly requests that other players wishing to join the game be found.
The game is identified by a unique game ID as arranged between the game developers and/or publishers and the operators of the game file server. The game may already be in progress on the player's computer assembly or will start when sufficient players are located by the game session resolution module 34.
A player running a game on a computer assembly requests to join a game of that type already in progress between other players.
Whether this function is supported by the game in question depends on the design of the game as developed by the game developers.
A player registers interest in playing a game
of particular type at a specified time and date.
The server registers this request and allows the player to terminate the session. Successful resolution of the request will prompt the server to notify all players of the impending game immediately prior to the specified time.
. Other request types can be allowed depending on the type of game.
Game session resolution module 34 is aware of all requests registered by game session registration module 33 and processes the requests to satisfy the requests if possible. If necessary game session resolution module 34 negotiates with the players via their respective computer assemblies 26 to offer suggested resolutions or obtain further selection criterion. Game session resolution module 34 monitors established games still in progress to maintain knowledge of the number of active players and the number of player vacancies. Where possible it will attempt to fill those vacancies from players with unsatisfied requests. Upon termination of a game, game seεsion resolution module 34 removes the terminated game from its list of active sessions. API functions 22 in the player's computer assemblies 26 provide player and vacancy information to game session resolution module 34. Game file server 40 incorporates audit functions 37 to control and access the other processes. These audit functions also provide an interface whereby administrator 38 can access information contained within the server via the input-output peripherals 39 such as keyboard, monitor screen, mouse, speakers, printers etc. This information forms part of a system providing "help desk" functions to players needing assistance. The administrator is familiar with the operation of the game file server and
responsible for its day-to-day operation.
It will be appreciated that in the system of this invention no software for the game file server needs to be developed by the game developers. Access to server functions is obtained by the game developers by incorporating the API functions into the game software which runs on a player's computer assembly.
FIG 4 broadly illustrates the flow of information and the control between the player's computer assembly 26 as seen in FIG 2 and the data controller processing assembly or game file server 40 seen in FIG 3. Player functions and decisions are shown on the left of FIG 4 and server functions and decisions are shown on the right of FIG 4. The arrows designate the sequence and flow of information across data communications network 12. The number sequence of both player and server functions are indicated in parenthesis in the following text.
Operation in the system commences with the player choosing to play an on-line, multi-player game. The player must start the game (40) and select the on-line play option (41) provided by the game developers. The
API functions 22 as seen in FIG 2 then choose a server address (42) and gets the player registration details
(43) from the local data storage means 30 as seen in FIG 2. Player registration details are stored on the data storage means in an encrypted file. The player must enter a password in order for the API functions to decrypt the player registration details. Once the player registration details (or lack thereof) is established then the player's computer assembly will connect to the server (44) passing the player's registration details and the game ID of the game being played. The game ID is a number unique to that game and is assigned by the operator of the server and embedded in the game by the game developers.
Upon receipt of the player's message the server will resolve the player details (46) against its internal data. The server will either authenticate the player
details or resolve that the player has not yet registered with the system. Messages from authenticated players are passed to the server resolution process (53).
Unregistered playerε will be asked to enter account details (48) in order to become registered. This information is encrypted before transmission to the server (49). Upon receipt of the account details the server will register the player (50) and notify the player's computer assembly of the player registration details (51). The player's computer assembly will encrypt and store (52) this information for later use. The player details and game ID of the newly registered and authenticated player are then passed to the server resolution process (53). Once a player is authenticated the server resolution process (53) matches the game ID with the server 18a, 18b ... 18n as seen in FIG 1 handling that game. This decision will also take into consideration the geographical location of servers. Once the server has been resolved the current server will inform the player's game API functions of the new server address and request further details regarding the nature of the requeεt (54). Subsequent communication originating from the player' s computer assembly will be addressed to the new server. Authentication of the player will be sent from the original server to the new server.
The player can then choose the criterion (55) for the request to the server (56). This will include (but is not limited to) the choices outlined in the discussion of the game session registration module 33 with reference to FIG 3. The server regiεter thiε requeεt (57) and adviεes the player of its receipt 5(8). The API function will inform the player of server progress (59).
The game resolution process (60) then accumulates requestε and lookε for commonality between them. Uεing the request criterion it will resolve each player request as best as possible. The accuracy of resolution is another request criterion. The player will be informed
of the progress of the server (61) so that the request criterion can be altered and near matches can be accepted or rejected.
Once the request has been satisfied by the server and accepted by the player, the server will send introduction data (63) to the player in order to introduce (62) the player to the other participants in the game. The API functions coordinate this introduction and connect to other players (64), (65). The API functions in the game will then allow the games of individual players to communicate with each other independently of the server. The game can then progress (66) in accordance with its design.
The API function will periodically notify the server (67) of its continued progress and of any change in the number of players or player vacancies. The server will also poll the games if such notification has not been received for a given period. The games will also notify the server (where possible) when the player exits the game.
The server stores the status information (67) so that it can be used for further request resolution (60).
The API functions provide a means for the players to cancel or modify the selection criterion for further participants in the game.
In use, the system is accessed in known manner by a games player choosing the online option of a commercial retail game. The game being played on a player's computer interfaces with the controller file server through a common API. The controller file server will validate the player's request to join an existing game or take part in a future game. The file server enables the local computer games residing on the player's computer to be synchronised with any other computer game player who wishes to take part in playing the game.
It will be appreciated by those skilled in the art that the method and system of the present invention has a number of advantages over known systems and methods. In
particular it provideε for interactive operation between multiple users of various computer based commercially available games distributed at multiple locations. It facilitates the possibility of a standard approach for retail games to provide cross-hardware platform online capabilities through the use of widely available API ' s. It avoids the delays in graphical interaction and the long response times imposed by modem and similar connections which severely limit communication bandwidths and result in unacceptably long delays for certain styles of retail games.
The system and method of the present invention is not limited by the software or to the users operating on a dedicated network and enableε all developerε and/or publishers to provide generic products which can run on networks that are not user- or product-specific.
Thus by providing generic facilities to commercial game developers and publishers, the present invention avoids the requirement for developers and publishers to develop a range of products each specifically designed to run on a given network. Developers and publiεherε can use the generic software of the preεent invention so that games running at multiple player εites can automatically communicate over a data network provided by a third party such as a telecommunication carrier. This data telecommunication network is available world-wide and enables games to be played anywhere in the world.
Moreover by tracking player usage, the present invention facilitates the return to the game developer or publisher of a royalty based on usage. The developer does not have to develop an online interactive product specific to a particular network and it is unnecessary for the developer or publisher to create their own multi¬ user interfaceε and networkε. A commercially available gameε product iε developed with a εupplied API that enables online interactive play through a network provided by a third party.
The system and method of the present invention
enables standard commercially available games to be utilised and permits connection of the players regardless of their operating system or hardware platform.
It will also be realised by those skilled in the art that the system and method of the present invention allows the world-wide computer games industry to provide multi-player support for standard commercially available games without the necessity of porting a popular game to a proprietary server system. It will of course be realised that whilst the above has been given by way of an illustrative example of thiε invention, all εuch and other modificationε and variationε hereto, aε would be apparent to persons skilled in the art, are deemed to fall within the broad scope and ambit of this invention as is herein set forth.