US20080076573A1 - Network-based game system - Google Patents

Network-based game system Download PDF

Info

Publication number
US20080076573A1
US20080076573A1 US11/530,444 US53044406A US2008076573A1 US 20080076573 A1 US20080076573 A1 US 20080076573A1 US 53044406 A US53044406 A US 53044406A US 2008076573 A1 US2008076573 A1 US 2008076573A1
Authority
US
United States
Prior art keywords
game
request
network
gsi
servers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/530,444
Inventor
John Loehrer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US11/530,444 priority Critical patent/US20080076573A1/en
Publication of US20080076573A1 publication Critical patent/US20080076573A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3225Data transfer within a gaming system, e.g. data sent between gaming machines and users
    • G07F17/3232Data transfer within a gaming system, e.g. data sent between gaming machines and users wherein the operator is informed
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3225Data transfer within a gaming system, e.g. data sent between gaming machines and users
    • G07F17/3232Data transfer within a gaming system, e.g. data sent between gaming machines and users wherein the operator is informed
    • G07F17/3234Data transfer within a gaming system, e.g. data sent between gaming machines and users wherein the operator is informed about the performance of a gaming system, e.g. revenue, diagnosis of the gaming system

Definitions

  • This application relates to a game system, more specifically, a network-based game system.
  • Interactive online digital entertainment has advanced on many fronts in recent years, especially with respect to video gaming. For example, users can login to websites to find an opponent and then a game of chess or a card game in the virtual world. As a player may be competing against another player, the communication is bidirectional. However, not all video games can be played online. For a game of chess where time to make a move does not have an immediate and consequential effect on the outcome, players have time to contemplate the next move, counter move, game strategy and so on and the game does not need to provide real-time feedback. However, in a majority of real-time video games, time needed to make a decision and act upon that decision is relatively short so that players involved feel a sense of realism and engagement.
  • the present invention relates to a network-based game system including a load balancer configured to receive a first request and a second request from a game client application running on a computer device, wherein the first request includes game logic information and the second request includes persistent game-state information; a plurality of game servers in connection with the load balancer, wherein each of the game servers stores a game engine application configured to produce a first response to the first request; and a game-system-interface (GSI) server in connection with the plurality of game servers, wherein the GSI stores a GSI program configured to produce a second response to the second request.
  • a load balancer configured to receive a first request and a second request from a game client application running on a computer device, wherein the first request includes game logic information and the second request includes persistent game-state information
  • a plurality of game servers in connection with the load balancer, wherein each of the game servers stores a game engine application configured to produce a first response to the first request
  • GSI game-system-
  • the present invention relates to a network-based game system, including a load balancer configured to receive a first request from a game client application running on a computer device, wherein the first request includes game logic information; a plurality of game servers in persistent network connections with the load balancer, wherein each of the game servers stores a game engine application configured to produce a first response to the first request and to produce a second request, wherein the second request includes persistent game-state information; and a game-system-interface (GSI) server in non-persistent network connections with the plurality of game servers, wherein the GSI stores a GSI program configured to produce a second response to the second request.
  • GSI game-system-interface
  • the present invention relates to a method of providing a game over a computer network including receiving a first request and a second request by a load balancer from a game client application running on a computer device in a persistent network connection with the load balancer, wherein the first request includes game logic information and the second request comprises persistent game-state information; producing a first response to the first request by a game engine application running on one of a plurality of game servers, wherein the plurality of game servers are in persistent network connections with the load balancer; and producing a second response to the second request by a GSI program running on a game-system-interface (GSI) server.
  • Implementations of the system may include one or more of the following.
  • the load balancer can communicate with the computer device in a persistent network connection.
  • the load balancer can communicate with the plurality of game servers in persistent network connections.
  • the load balancer can route the first request or the second request to a game sever in accordance with the status of the plurality of the game servers.
  • the GSI server can communicate with the plurality of game servers non-persistent network connections.
  • At least one of the plurality of game servers can receive the second request and to send a third request to the GSI server in response to the second request.
  • the at least one of the plurality of game servers can receive a third response from the GSI server in response to the second request and send the second response to the computer device in response to the third response.
  • the first request includes one or more of game animation information, game statistics, or game chats.
  • the second request includes one or more of a user's account information, user identification, a user's game scores, session identification, game room information, a user's game currency or game credits, an inventory for a user's asset, or a user's buddies list.
  • the network-based game system can further include a data base in communication with the GSI server.
  • the GSI program can update information in the data base or retrieve information from the database in response to the second request.
  • the game engine program or the GSI program can send a message to authenticate identification associated with a game client application.
  • the identification includes user identification, game session identification, or game room identification.
  • the game engine application can communicate with the game client application in encrypted serialized messages.
  • Embodiments may include one or more of the following advantages.
  • the disclosed system and methods provide a simplified game architecture for a network-based game system.
  • a game client application running one a game player's computer device can communicate with a load balancer in the network-based game system in a persistent network connection.
  • the load balancer routes requests from the game client application to a game engine application on a game server.
  • the game engine application makes requests and sends information to a game system interface (GSI) when needed.
  • GSI game system interface
  • the game client application no longer needs to communicate with the GSI in non-persistent network connections.
  • the elimination of the non-persistent network connection simplifies the communications between the game client application and the network-based system.
  • a single persistent connection to a game server at a consistent gateway IP address is much easier to maintain than multiple connections to many different possible services in some network-based game systems.
  • the persistent network connections between the game client application and the load balancer provide more robust communications between the game client application and the network-based game system.
  • the persistent network connections allow instantaneous information exchanges with the game client applications in real time.
  • the persistent network connections have much lower probability of connection failures than non-persistent network connections.
  • the persistent network communications allow a large number of client game applications to be played without network latency at multiple remote locations.
  • the disclosed system and methods also improves network security for communications with the game client applications.
  • the game client applications and the network-based game system can communicate in persistent and authenticated network connections.
  • the communications are first validated and authenticated by game engine applications on the game servers.
  • the GSI receives requests or updates from the game client applications only through the game engine applications after the validation and authentication, that is, the communications to and from GSI are internal to the network-based game system.
  • This architecture design removes the need for network security for non-persistent network connections between GSI and game client applications in some network-based game systems.
  • the persistent network connection between the game client application and the game engine application are stateful.
  • the game engine application is thus much better equipped to validate and authenticate requests from the game claim applications. As a result, the network security is much improved for the network-based game system.
  • the disclosed system and methods also improve the efficiency and scalability of the network-based game system.
  • the requests from a large number of game client applications can be intelligently routed by a load balancer to a plurality of game servers in accordance with the up/down status and the load levels of the game servers.
  • the game servers in the network-based game system can thus be more efficiently utilized and network traffic can be minimized.
  • the network-based game system can also be more easily scaled up by increasing the number of game servers to accommodate the communication needs with increased number of game client applications.
  • FIG. 1 is a system diagram of a network-based game system.
  • FIG. 2 is a block diagram of an improved game architecture compatible with the network-based game system.
  • FIG. 3 is a flow diagram for the network-based game system.
  • a network-based game system 100 can support game applications running on remote computer devices 106 and 107 through a communication network 105 .
  • the communication network 105 can include various wired, wireless, satellite communication arrangements including but not limited to a wide area network such as the Internet, a local area network, a cellular phone network under various communication protocols Such as 2G, 2.5G and 3G, Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), EDGE, Code Division Multiple Access (CDMA), Wideband CDMA. TD-SCDMA, Universal Mobile Telecommunications System (UMTS), etc.
  • GSM Global System for Mobile Communications
  • GPRS General Packet Radio Service
  • CDMA Code Division Multiple Access
  • TD-SCDMA Universal Mobile Telecommunications System
  • UMTS Universal Mobile Telecommunications System
  • the computer devices 106 and 107 can include personal computers, portable digital assistance (PDA) devices, cell phones, digital image capture devices, and dedicated game devices such as Microsoft XBOX, SONY PlayStation OR PS2, Nintendo gaming machines, GameCube, or GameBoy.
  • PDA portable digital assistance
  • game devices such as Microsoft XBOX, SONY PlayStation OR PS2, Nintendo gaming machines, GameCube, or GameBoy.
  • the network-based game system 100 can include a load balancer 115 , one or more web servers 121 - 124 , one or more session servers 130 , one or more load balancers 250 , a plurality of game servers 141 - 143 , and a database 150 .
  • the data base 150 can for example be implemented as a storage area network.
  • the one load balancers 250 can be designed to ensure redundancy and reliability for the network-based game system 100 .
  • the network-based game system 100 can be operated by a game service provider such as Gaia Interactive Inc. based in California, USA.
  • the network-based game system 100 can provide a website such as www.gaiaonline.com on the Internet to host a game community and provide various game services such as games, discussion groups, forums, and e-mails etc.
  • a player can sign up at the website to own his or her own account. The player can also personalize his or her own profiles. The player can also set up a list of buddies. He or she may play with some of the buddies in multi-player network-based games.
  • the network-based system 100 can store game statistics and other game properties associated with a player in a networked storage device, available and updatable to the game player.
  • a game player can access the web site of the game service provider using computer devices 106 and 107 with a web browser application executed on the computer devices 106 or 107 .
  • the web browser applications are available from several manufacturers including Internet ExplorerTM from Microsoft, NetscapeTM from AOL, and FireboxTM from Mozilla and so on.
  • Various Internet browsing applications are available to cellular phones, PDAs, game consoles which are also compatible with the disclosed system and methods.
  • FIG. 2 depicts interactions between various components in a game architecture 200 compatible with the network-based game system 100 .
  • Game client applications 206 and 207 reside on the computer devices 106 and 107 .
  • the game client applications 206 and 207 can be executed by a plug-in to the web browser application.
  • the game client applications 206 and 207 can include game logic for one or more games and enable animation display for the games.
  • the web-browser plug-in can enable the web browser to audio or video messages and properly display vector graphics images independent of the manufacturer or the version of the web browser.
  • the web-browser plug-in can allow animations to be properly scaled to as web browser window is resized.
  • the game client application 206 or 207 can use the web browser's communication API (Application Programming Interface) to communicate with the network-based game system 100 .
  • API Application Programming Interface
  • Flash plug-in produced by Macromedia Inc.
  • Flash is a bandwidth friendly and browser independent vector-graphic animation technology. Animation is choreographed using one or more sequential timelines in which actions and interactions are defined.
  • the Flash plug-in can be downloaded, installed, and attached to a web browser.
  • the Flash plug-in allows the web browser to play SWF (Small Web Format) movie clips in the web-browser it finds referenced in a webpage. Each SWF movie clip can include a unique game.
  • the SWF movie clips contain the game logic as well as animations, images, and other effects.
  • the SWF movie clip can communicate with servers in the network-based game system 100 using the library of functions provided by Macromedia's Flash plug-in and libraries of APIs developed for the network-based game system 100 .
  • Macromedia's Flash MX and Freehand applications and other Flash files can also be viewed through a Web browser plug-in (or the Flash player) or multimedia applications that access the player directly.
  • Flash files can include sound. Flash can use the FLA files for source files and SWF files for the Flash movies. Flash files are space-efficient and suitable for interactions, comparing to other movie files (AVI, MPG. etc.) files.
  • the game client application 206 or 207 can be written in one or more SWF movie clips to be loaded in the web browser. Each game client application 206 or 207 can correspond to one or more games.
  • the SWF movie clips include game logic as well as animations, images, and other effects.
  • the SWF movie clips can communicate with servers in the network-based game system 100 using the library of functions provided by Macromedia's Flash plug-in.
  • a library of APIs can be developed for the SWF movie clips that can be re-used in multiple games.
  • the game client applications 206 and 207 communicate with the network-based game system 100 via one or more load balancers 250 in persistent communication channels such as socket network connections.
  • a load balancer 250 can monitor the status of the game servers 141 - 143 , for example, whether one of the game servers 141 - 143 is on or off.
  • the load balancers 250 can monitor the load level of the game servers 141 - 143 .
  • the load balancers 250 can direct a request from a game client application 206 or 207 to a game server 141 - 143 that is available and has relatively low load level so that the capacity of the game servers 141 - 143 can be efficiently utilized.
  • the communications between the game client applications 206 and 207 and the game engine applications 301 - 303 (via the load balancers 250 ) can include following two types:
  • Game logic information that does not need to be stored permanently on data storage beyond a game session.
  • the game logic information can include positions of a soccer-ball on a soccer field as the ball is being kicked around; the positions or the postures of a player's avatar as the player moves across the soccer field, and the instant message chat communication among the players in a game room, including text-based chats and emoticons.
  • the game logic information can be handled by the game engines alone.
  • Persistent game-state information that is usually of use beyond a single game session.
  • the persistent game-state information may include for example, user account information, attributes and statistics associated with a game player such as his or her game scores, game currency or game credits that the player owns, an inventory for tools and weapons owned by a player, an update of a buddie list, etc.
  • the persistent game-state information is handled by the GSI program 400 , and can be updated and stored in the data base 150 .
  • the GSI program 400 can store game room ID and game session ID in a local memory, which are typically cleared after the end of a game session. But the game room ID and the game session ID can be stored for hours and can be retrieved during this period of time for authentication of users and game client applications 206 and 207 .
  • the game engine application 301 - 303 can instantaneously respond to calls from the game client applications 206 and 207 to ensure real-time performance of the game sessions.
  • the GSI program 400 on the other hand can respond to a game engine application 301 - 303 in the typical time frame of 0 . 001 - 0 . 1 milliseconds, depending on network latency and the processing time.
  • the GSI program 400 can reliably respond to requests, but not necessarily in real time.
  • the GSI program 400 can store the persistent game-state information into the player's account on the database 150 , which can include game status information such that the player can retrieve the information after the specific game session is closed.
  • the game client applications 206 and 207 can securely communicate with a load balancer 250 and thus with the game engine application 301 - 303 , and the GSI program 400 in encrypted serialized messages.
  • Each game engine application 301 - 303 can choose to communicate in specific serialization communication protocol such as PHP (Hypertext Preprocessor), XML, AMF, XML-RPC (Remote Procedure Call), etc.
  • a library of serialization communication protocols is stored on a computer device connected to the network-based game system 100 available to the game engine application 301 - 303 and the GSI program 400 .
  • the library provides rules for encryption and decryption of the serialized messages under different protocols.
  • the communication protocols can be independent of the game logic, the game rooms, and the game engine applications.
  • a call from a game client application 206 or 207 can include a token that specifies gaming protocols such as PHP, XML, AMF, XML-RPC, etc.
  • the load balancer 250 can also direct a call from a game client application 206 or 207 to a game server 141 - 143 that can interpret the protocols required by the specific call.
  • the game server 141 , 142 , or 143 can keep an open socket connection with the computer device 106 or 107 .
  • the game engine application 301 - 303 and the game client application 206 or 207 can send and receive TCP/IP messages to and from each other by writing and reading data through the socket connection. Messages can be sent and received from either the game server 141 (or 142 and 143 ) or the computer device 106 or 107 at any time.
  • the persistent network connection allows instantaneous two-way communications and guarantees the games updated in real time without network latency during a game session.
  • the persistency of the network connection between the game client application 206 or 207 and the game engine application 301 - 303 typically last through a game session.
  • a loss of connection in the persistent communication can be interpreted as that the game client application 206 or 207 has left the game.
  • a stop in the two-way communications between the game client application 206 or 207 and the game engine application 301 - 303 (via the load balancer 250 ) can be interpreted by the game engine application 301 - 303 as that the game client application 206 or 207 is leaving the game session.
  • the game engine application 301 - 303 is compatible with different server software implementations such as Sushi Multiuser Server available at “www.wok2.de”, ElectroServer 3 available at “www.electrotank.com”, and Terazona Network Engine available at “www.zona.net”.
  • the network-based game system 100 can include game engine applications 301 - 303 developed using different server software. Different server software may require serialized messages encrypted under different serialization protocols.
  • each game client application 206 or 207 can be supported by a game engine application 301 - 303 with a persistent connection in the network-based game system 100 .
  • the game client application 206 or 207 can pull information related to the specific game or game session from the game engine application 301 - 303 .
  • the game engine application 301 - 303 can also update the game client application 206 or 207 with animations and short-term game logic information that do not need to be permanently stored.
  • the game client application 206 or 207 can request the saving of the game results.
  • the game engine application 301 - 303 can validate the data to be saved on the data base 150 by the GSI program 400 and returns whether or not the saving is succeeded.
  • the game engine application 301 - 303 can also gather information about all the players in the same game room and broadcast the information to the game room.
  • the game engine application 301 - 303 can establish the players in the same game room as peers.
  • the game engine application 301 - 303 can conduct peer-to-peer communications in real time by broadcasting a player's actions or events over that player's game client application to other peers game client applications in the same game room.
  • Each game client application 206 or 207 in the game room can construct a message and request the game engine application 301 - 303 to forward to the message another peer or all the peers in the same game room.
  • a load balancer 250 can control the load balance and the distribution of players and game sessions in the game rooms across multiple game servers 141 - 143 .
  • a game engine application 301 - 303 includes programmed game logic for each game and can control the game flow. The game engine application 301 - 303 can decide when to retrieve user information from the GSI program 400 and store information to the GSI program 400 .
  • Many game players each running a game client applications can play in a common game session. The game players can, for example, compete with each other in a ball game or fishing game in the game session. The game players playing can also be depicted as playing in a same game room.
  • the game engine application 301 - 303 can broadcast updates to many game client applications 206 and 207 running on many computer devices 106 , 107 that are in the same game room.
  • the GSI program 400 serves as an interface for the game servers 141 - 143 to the database 150 .
  • the game engine application 301 - 303 can communicate with the GSI program 400 in trusted intra-network connections.
  • the game engine application 301 - 303 can contact the GSI program 400 to verify that game rooms for a given game are not duplicated by accident.
  • the game client applications 206 and 207 updates the game engine application 301 - 303 with game statistics and game player information such as game scores, game equipment, game location.
  • the game engine application 301 - 303 can pass the persistent game-state information to the GSI program 400 .
  • Tokens and validation keys can also be passed from the GSI program 400 to the game engine application 301 - 303 and in turn to the game client applications 206 and 207 to make sure different actions are occurring in the correct order and are not being spoofed by the client game application 206 or 207 .
  • the game client application 206 or 207 may be required to return the tokens and keys combined with other variables to ensure that the game's integrity has not been compromised.
  • the game engine application 301 - 303 can communicate with the GSI application 400 over its own local host loop-back IP address (since the GSI program 400 can be installed and run on the same computer as the game engine application 301 - 303 ), eliminating network latency between the game engine application 301 - 303 and the GSI program 400 .
  • the game engine application 301 - 303 can act as a controller that can monitor the loads of game servers 141 - 143 and the status of the game rooms.
  • the game engine application 301 - 303 can intelligently assign the game client applications 206 and 207 an appropriate game room according to the loads of the game servers 141 - 143 and the status of the game rooms.
  • the game engine application 301 - 303 can also store game room ID, user ID, and game session ID in a local memory for verifying game client applications 206 and 207 without necessarily going through the GSI program 400 .
  • the server 450 that the GSI resides can be one of the web servers 121 - 123 , one of the game servers 141 - 143 , or another server connected to the computer network in the network-based game system 100 .
  • the GSI program 400 can reside on any of the web servers 121 - 123 and the game servers 141 - 143 .
  • Using GSI program 400 as an interface is beneficial because the game servers 141 - 143 and the data base 150 can be modified independently without affecting each other in system upgrades.
  • a game player can access a game service website such as www.gaiaonline.com operated by Gaia Interactive Inc., based in California, USA.
  • the game player can initiate a game session by clicking a game client application 206 or 207 on a computer device 106 or 107 (step 310 ).
  • the game client application 206 or 207 can be presented on a web page presented by a web browser application.
  • a game session refers to an active connection between the client game application 206 or 207 and other programs such as game engine application 301 - 303 stored in the network-based game system 100 .
  • the game client application 206 or 207 can also be in the form of stream media (e.g.
  • a game session can be initiated by a game client application 206 or 207 by contacting and authenticating with a game engine application 301 - 303 via a load balancer 250 without the need to access a webpage.
  • the game client application 206 or 207 sends a request to a load balancer 250 to request long in the user using a password (step 310 ).
  • the load balancer 350 directs the authorization request to a game engine application 301 - 303 on a game server 141 - 143 (step 330 ).
  • the game engine application 301 - 303 passes the request to GSI program 400 (step 340 ).
  • the GSI program 400 verifies the user ID and password using information retrieved from the data base 150 .
  • the GSI program 400 creates a new session ID for the user at login (step 350 ). If the game room exists, the GSI can assign the game client application 206 or 207 to an existing one.
  • the GSI program 400 creates, validates the game room, and stores the game room ID.
  • the GSI program 400 returns validation message to the game engine application 301 - 303 to confirm the authenticity of the user ID and the game session ID.
  • the validation message can include the game session ID and game room ID in association with the user ID.
  • the game engine application 301 - 303 hold the user ID and the game session ID for future identification purposes.
  • the game engine application 301 - 303 communicates a validation message to the game engine applications 301 - 303 about the game session ID and which game room the user has been assigned to (step 360 ).
  • the game client application enters the game room.
  • the game client application 206 or 207 then requests the load of a game (step 360 ).
  • a SWF file is loaded by the plug-in at the request of the web browser.
  • the SWF is executed by a Flash Plugin. Instructions inside the SWF tell it to connect to the game engine 301 - 303 . Instructions inside the SWF also instruct it to display the game environment and run the game interactions.
  • GSI only really is an authentication provider. It can return a session id for the GE server to use, and validate a username/password, but our current thinking is that it will do less work than it does now for tracking a user throughout the games.
  • the game engine application is responsible for this now.
  • the game client applications 206 or 207 can update the game engine application 301 - 303 with game statistics, and persistent game-state information such as scores, equipment, and the amount of currency owned by the user.
  • the game engine application 301 - 303 can pass the persistent game-state information to the GSI program 400 (step 370 ), which in turn can update the information in the data base 150 .
  • the game logic can also be remotely stored on a server in connection with the network-based game system, instead of on a computer device 106 or 207 .
  • the server may be able to store more complex game logic than game client applications.
  • the remotely stored game logic can be activated remotely in real-time with secure processing on the servers or downloaded to the game players' computer devices 106 and 107 before a session starts.
  • each game engine application can support one or many game client applications and thus many game logics.
  • the game engine applications 301 - 303 can be implemented on different game platforms that may be provided by different game service providers which allow game players to access a wide range of network-based game engine applications based on different game platforms.
  • Different game client applications can be installed on the computer devices to run specific games supported by the game platforms of the corresponding game engine applications.
  • a single game server or a single game engine application can simultaneously support one or many game client applications.

Abstract

A network-based game system includes a load balancer configured to receive a first request and a second request from a game client application running on a computer device. The first request comprises game logic information and the second request includes persistent game-state information. The network-based game system also includes a plurality of game servers in connection with the load balancer, wherein each of the game servers stores a game engine application configured to produce a first response to the first request and a game-system-interface (GSI) server in connection with the plurality of game servers wherein the GSI stores a GSI program configured to produce a second response to the second request.

Description

    TECHNICAL FIELD
  • This application relates to a game system, more specifically, a network-based game system.
  • BACKGROUND
  • Interactive online digital entertainment has advanced on many fronts in recent years, especially with respect to video gaming. For example, users can login to websites to find an opponent and then a game of chess or a card game in the virtual world. As a player may be competing against another player, the communication is bidirectional. However, not all video games can be played online. For a game of chess where time to make a move does not have an immediate and consequential effect on the outcome, players have time to contemplate the next move, counter move, game strategy and so on and the game does not need to provide real-time feedback. However, in a majority of real-time video games, time needed to make a decision and act upon that decision is relatively short so that players involved feel a sense of realism and engagement. In such a real-time game, action must occur in close proximity to real life events. Real-time action is required for the action games, simulation games such as flight simulators and sport games. In most cases persistent communications, scoring, player attributes, etc. cannot be offered together with real-time realism and engagement. Scalability is another challenge to the network-based game application. While some existing network-based systems can handle tens of thousands of game players, it is a serious challenge to provide game applications in real time to millions of players reliably and simultaneously. An additional requirement for a network-based game system is that the network communications with the game client applications must be secure and not easily be attacked by internet hackers.
  • SUMMARY
  • In one aspect, the present invention relates to a network-based game system including a load balancer configured to receive a first request and a second request from a game client application running on a computer device, wherein the first request includes game logic information and the second request includes persistent game-state information; a plurality of game servers in connection with the load balancer, wherein each of the game servers stores a game engine application configured to produce a first response to the first request; and a game-system-interface (GSI) server in connection with the plurality of game servers, wherein the GSI stores a GSI program configured to produce a second response to the second request.
  • In another aspect, the present invention relates to a network-based game system, including a load balancer configured to receive a first request from a game client application running on a computer device, wherein the first request includes game logic information; a plurality of game servers in persistent network connections with the load balancer, wherein each of the game servers stores a game engine application configured to produce a first response to the first request and to produce a second request, wherein the second request includes persistent game-state information; and a game-system-interface (GSI) server in non-persistent network connections with the plurality of game servers, wherein the GSI stores a GSI program configured to produce a second response to the second request.
  • In yet another aspect, the present invention relates to a method of providing a game over a computer network including receiving a first request and a second request by a load balancer from a game client application running on a computer device in a persistent network connection with the load balancer, wherein the first request includes game logic information and the second request comprises persistent game-state information; producing a first response to the first request by a game engine application running on one of a plurality of game servers, wherein the plurality of game servers are in persistent network connections with the load balancer; and producing a second response to the second request by a GSI program running on a game-system-interface (GSI) server. Implementations of the system may include one or more of the following. The load balancer can communicate with the computer device in a persistent network connection. The load balancer can communicate with the plurality of game servers in persistent network connections. The load balancer can route the first request or the second request to a game sever in accordance with the status of the plurality of the game servers. The GSI server can communicate with the plurality of game servers non-persistent network connections. At least one of the plurality of game servers can receive the second request and to send a third request to the GSI server in response to the second request. The at least one of the plurality of game servers can receive a third response from the GSI server in response to the second request and send the second response to the computer device in response to the third response. The first request includes one or more of game animation information, game statistics, or game chats. The second request includes one or more of a user's account information, user identification, a user's game scores, session identification, game room information, a user's game currency or game credits, an inventory for a user's asset, or a user's buddies list. The network-based game system can further include a data base in communication with the GSI server. The GSI program can update information in the data base or retrieve information from the database in response to the second request. The game engine program or the GSI program can send a message to authenticate identification associated with a game client application. The identification includes user identification, game session identification, or game room identification. The game engine application can communicate with the game client application in encrypted serialized messages.
  • Embodiments may include one or more of the following advantages. The disclosed system and methods provide a simplified game architecture for a network-based game system. A game client application running one a game player's computer device can communicate with a load balancer in the network-based game system in a persistent network connection. The load balancer routes requests from the game client application to a game engine application on a game server. The game engine application makes requests and sends information to a game system interface (GSI) when needed. The game client application no longer needs to communicate with the GSI in non-persistent network connections. The elimination of the non-persistent network connection simplifies the communications between the game client application and the network-based system. A single persistent connection to a game server at a consistent gateway IP address is much easier to maintain than multiple connections to many different possible services in some network-based game systems.
  • In addition, the persistent network connections between the game client application and the load balancer provide more robust communications between the game client application and the network-based game system. The persistent network connections allow instantaneous information exchanges with the game client applications in real time. The persistent network connections have much lower probability of connection failures than non-persistent network connections. The persistent network communications allow a large number of client game applications to be played without network latency at multiple remote locations.
  • The disclosed system and methods also improves network security for communications with the game client applications. The game client applications and the network-based game system can communicate in persistent and authenticated network connections. The communications are first validated and authenticated by game engine applications on the game servers. The GSI receives requests or updates from the game client applications only through the game engine applications after the validation and authentication, that is, the communications to and from GSI are internal to the network-based game system. This architecture design removes the need for network security for non-persistent network connections between GSI and game client applications in some network-based game systems. Furthermore, the persistent network connection between the game client application and the game engine application are stateful. The game engine application is thus much better equipped to validate and authenticate requests from the game claim applications. As a result, the network security is much improved for the network-based game system.
  • Furthermore, the disclosed system and methods also improve the efficiency and scalability of the network-based game system. The requests from a large number of game client applications can be intelligently routed by a load balancer to a plurality of game servers in accordance with the up/down status and the load levels of the game servers. The game servers in the network-based game system can thus be more efficiently utilized and network traffic can be minimized. The network-based game system can also be more easily scaled up by increasing the number of game servers to accommodate the communication needs with increased number of game client applications.
  • Details of one or more embodiments are set forth in the accompanying drawing and in the description below. Other features, objects, and advantages of the invention will become apparent from the description and drawings, and from the claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a system diagram of a network-based game system.
  • FIG. 2 is a block diagram of an improved game architecture compatible with the network-based game system.
  • FIG. 3 is a flow diagram for the network-based game system.
  • DETAILED DESCRIPTION
  • Referring to FIG. 1, a network-based game system 100 can support game applications running on remote computer devices 106 and 107 through a communication network 105. The communication network 105 can include various wired, wireless, satellite communication arrangements including but not limited to a wide area network such as the Internet, a local area network, a cellular phone network under various communication protocols Such as 2G, 2.5G and 3G, Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), EDGE, Code Division Multiple Access (CDMA), Wideband CDMA. TD-SCDMA, Universal Mobile Telecommunications System (UMTS), etc. city wide wires network such as WiMax, and wireless local area network (WLAN) such as Wi-Fi wireless communication standards such as IEEE 802.11, Wi-Max, and IEEE 806.16, and others. The computer devices 106 and 107 can include personal computers, portable digital assistance (PDA) devices, cell phones, digital image capture devices, and dedicated game devices such as Microsoft XBOX, SONY PlayStation OR PS2, Nintendo gaming machines, GameCube, or GameBoy.
  • The network-based game system 100 can include a load balancer 115, one or more web servers 121-124, one or more session servers 130, one or more load balancers 250, a plurality of game servers 141-143, and a database 150. The data base 150 can for example be implemented as a storage area network. The one load balancers 250 can be designed to ensure redundancy and reliability for the network-based game system 100. The network-based game system 100 can be operated by a game service provider such as Gaia Interactive Inc. based in California, USA. The network-based game system 100 can provide a website such as www.gaiaonline.com on the Internet to host a game community and provide various game services such as games, discussion groups, forums, and e-mails etc. A player can sign up at the website to own his or her own account. The player can also personalize his or her own profiles. The player can also set up a list of buddies. He or she may play with some of the buddies in multi-player network-based games. As described below, the network-based system 100 can store game statistics and other game properties associated with a player in a networked storage device, available and updatable to the game player.
  • A game player can access the web site of the game service provider using computer devices 106 and 107 with a web browser application executed on the computer devices 106 or 107. The web browser applications are available from several manufacturers including Internet Explorer™ from Microsoft, Netscape™ from AOL, and Firebox™ from Mozilla and so on. Various Internet browsing applications are available to cellular phones, PDAs, game consoles which are also compatible with the disclosed system and methods.
  • FIG. 2 depicts interactions between various components in a game architecture 200 compatible with the network-based game system 100. Game client applications 206 and 207 reside on the computer devices 106 and 107. The game client applications 206 and 207 can be executed by a plug-in to the web browser application. The game client applications 206 and 207 can include game logic for one or more games and enable animation display for the games. The web-browser plug-in can enable the web browser to audio or video messages and properly display vector graphics images independent of the manufacturer or the version of the web browser. The web-browser plug-in can allow animations to be properly scaled to as web browser window is resized. The game client application 206 or 207 can use the web browser's communication API (Application Programming Interface) to communicate with the network-based game system 100.
  • For example the computer devices 106 and 107 can be installed with Flash plug-in produced by Macromedia Inc. Flash is a bandwidth friendly and browser independent vector-graphic animation technology. Animation is choreographed using one or more sequential timelines in which actions and interactions are defined. The Flash plug-in can be downloaded, installed, and attached to a web browser. The Flash plug-in allows the web browser to play SWF (Small Web Format) movie clips in the web-browser it finds referenced in a webpage. Each SWF movie clip can include a unique game. The SWF movie clips contain the game logic as well as animations, images, and other effects. The SWF movie clip can communicate with servers in the network-based game system 100 using the library of functions provided by Macromedia's Flash plug-in and libraries of APIs developed for the network-based game system 100. Macromedia's Flash MX and Freehand applications and other Flash files can also be viewed through a Web browser plug-in (or the Flash player) or multimedia applications that access the player directly. Flash files can include sound. Flash can use the FLA files for source files and SWF files for the Flash movies. Flash files are space-efficient and suitable for interactions, comparing to other movie files (AVI, MPG. etc.) files.
  • The game client application 206 or 207 can be written in one or more SWF movie clips to be loaded in the web browser. Each game client application 206 or 207 can correspond to one or more games. The SWF movie clips include game logic as well as animations, images, and other effects. The SWF movie clips can communicate with servers in the network-based game system 100 using the library of functions provided by Macromedia's Flash plug-in. A library of APIs can be developed for the SWF movie clips that can be re-used in multiple games.
  • In accordance with the present specification, the game client applications 206 and 207 communicate with the network-based game system 100 via one or more load balancers 250 in persistent communication channels such as socket network connections. A load balancer 250 can monitor the status of the game servers 141-143, for example, whether one of the game servers 141-143 is on or off. The load balancers 250 can monitor the load level of the game servers 141-143. The load balancers 250 can direct a request from a game client application 206 or 207 to a game server 141-143 that is available and has relatively low load level so that the capacity of the game servers 141-143 can be efficiently utilized.
  • The communications between the game client applications 206 and 207 and the game engine applications 301-303 (via the load balancers 250) can include following two types:
  • a) Game logic information that does not need to be stored permanently on data storage beyond a game session. In a soccer game, for example, the game logic information can include positions of a soccer-ball on a soccer field as the ball is being kicked around; the positions or the postures of a player's avatar as the player moves across the soccer field, and the instant message chat communication among the players in a game room, including text-based chats and emoticons. The game logic information can be handled by the game engines alone.
  • b) Persistent game-state information that is usually of use beyond a single game session. The persistent game-state information may include for example, user account information, attributes and statistics associated with a game player such as his or her game scores, game currency or game credits that the player owns, an inventory for tools and weapons owned by a player, an update of a buddie list, etc. The persistent game-state information is handled by the GSI program 400, and can be updated and stored in the data base 150.
  • Not all the information handled by the GSI program 400 needs to be stored beyond a game session. For example, the GSI program 400 can store game room ID and game session ID in a local memory, which are typically cleared after the end of a game session. But the game room ID and the game session ID can be stored for hours and can be retrieved during this period of time for authentication of users and game client applications 206 and 207.
  • In general, the game engine application 301-303 can instantaneously respond to calls from the game client applications 206 and 207 to ensure real-time performance of the game sessions. The GSI program 400 on the other hand can respond to a game engine application 301-303 in the typical time frame of 0.001-0.1 milliseconds, depending on network latency and the processing time. The GSI program 400 can reliably respond to requests, but not necessarily in real time. The GSI program 400 can store the persistent game-state information into the player's account on the database 150, which can include game status information such that the player can retrieve the information after the specific game session is closed.
  • The game client applications 206 and 207 can securely communicate with a load balancer 250 and thus with the game engine application 301-303, and the GSI program 400 in encrypted serialized messages. Each game engine application 301-303 can choose to communicate in specific serialization communication protocol such as PHP (Hypertext Preprocessor), XML, AMF, XML-RPC (Remote Procedure Call), etc. A library of serialization communication protocols is stored on a computer device connected to the network-based game system 100 available to the game engine application 301-303 and the GSI program 400. The library provides rules for encryption and decryption of the serialized messages under different protocols. The communication protocols can be independent of the game logic, the game rooms, and the game engine applications. In fact, the disclosed system allows different game client applications 206 and 207 using many different communication protocols to enter the same game room at the same time. A call from a game client application 206 or 207 can include a token that specifies gaming protocols such as PHP, XML, AMF, XML-RPC, etc. The load balancer 250 can also direct a call from a game client application 206 or 207 to a game server 141-143 that can interpret the protocols required by the specific call.
  • The game server 141, 142, or 143 can keep an open socket connection with the computer device 106 or 107. The game engine application 301-303 and the game client application 206 or 207 can send and receive TCP/IP messages to and from each other by writing and reading data through the socket connection. Messages can be sent and received from either the game server 141 (or 142 and 143) or the computer device 106 or 107 at any time. The persistent network connection allows instantaneous two-way communications and guarantees the games updated in real time without network latency during a game session. The persistency of the network connection between the game client application 206 or 207 and the game engine application 301-303 typically last through a game session. A loss of connection in the persistent communication can be interpreted as that the game client application 206 or 207 has left the game. A stop in the two-way communications between the game client application 206 or 207 and the game engine application 301-303 (via the load balancer 250) can be interpreted by the game engine application 301-303 as that the game client application 206 or 207 is leaving the game session.
  • The game engine application 301-303 is compatible with different server software implementations such as Sushi Multiuser Server available at “www.wok2.de”, ElectroServer 3 available at “www.electrotank.com”, and Terazona Network Engine available at “www.zona.net”. The network-based game system 100 can include game engine applications 301-303 developed using different server software. Different server software may require serialized messages encrypted under different serialization protocols.
  • During a game session, each game client application 206 or 207 can be supported by a game engine application 301-303 with a persistent connection in the network-based game system 100. The game client application 206 or 207 can pull information related to the specific game or game session from the game engine application 301-303. The game engine application 301-303 can also update the game client application 206 or 207 with animations and short-term game logic information that do not need to be permanently stored. The game client application 206 or 207 can request the saving of the game results. The game engine application 301-303 can validate the data to be saved on the data base 150 by the GSI program 400 and returns whether or not the saving is succeeded. The game engine application 301-303 can also gather information about all the players in the same game room and broadcast the information to the game room. The game engine application 301-303 can establish the players in the same game room as peers. The game engine application 301-303 can conduct peer-to-peer communications in real time by broadcasting a player's actions or events over that player's game client application to other peers game client applications in the same game room. Each game client application 206 or 207 in the game room can construct a message and request the game engine application 301-303 to forward to the message another peer or all the peers in the same game room.
  • A load balancer 250 can control the load balance and the distribution of players and game sessions in the game rooms across multiple game servers 141-143. A game engine application 301-303 includes programmed game logic for each game and can control the game flow. The game engine application 301-303 can decide when to retrieve user information from the GSI program 400 and store information to the GSI program 400. Many game players each running a game client applications can play in a common game session. The game players can, for example, compete with each other in a ball game or fishing game in the game session. The game players playing can also be depicted as playing in a same game room. In the multi-player game sessions, the game engine application 301-303 can broadcast updates to many game client applications 206 and 207 running on many computer devices 106, 107 that are in the same game room.
  • The GSI program 400 serves as an interface for the game servers 141-143 to the database 150.The game engine application 301-303 can communicate with the GSI program 400 in trusted intra-network connections. The game engine application 301-303 can contact the GSI program 400 to verify that game rooms for a given game are not duplicated by accident. During the game sessions, the game client applications 206 and 207 updates the game engine application 301-303 with game statistics and game player information such as game scores, game equipment, game location. The game engine application 301-303 can pass the persistent game-state information to the GSI program 400. Tokens and validation keys can also be passed from the GSI program 400 to the game engine application 301-303 and in turn to the game client applications 206 and 207 to make sure different actions are occurring in the correct order and are not being spoofed by the client game application 206 or 207. The game client application 206 or 207 may be required to return the tokens and keys combined with other variables to ensure that the game's integrity has not been compromised. The game engine application 301-303 can communicate with the GSI application 400 over its own local host loop-back IP address (since the GSI program 400 can be installed and run on the same computer as the game engine application 301-303), eliminating network latency between the game engine application 301-303 and the GSI program 400.
  • In other embodiments, the game engine application 301-303 can act as a controller that can monitor the loads of game servers 141-143 and the status of the game rooms. The game engine application 301-303 can intelligently assign the game client applications 206 and 207 an appropriate game room according to the loads of the game servers 141-143 and the status of the game rooms. The game engine application 301-303 can also store game room ID, user ID, and game session ID in a local memory for verifying game client applications 206 and 207 without necessarily going through the GSI program 400.
  • The server 450 that the GSI resides can be one of the web servers 121-123, one of the game servers 141-143, or another server connected to the computer network in the network-based game system 100. In other words, the GSI program 400 can reside on any of the web servers 121-123 and the game servers 141-143. Using GSI program 400 as an interface is beneficial because the game servers 141-143 and the data base 150 can be modified independently without affecting each other in system upgrades.
  • Referring to FIG. 3, to start a game, a game player can access a game service website such as www.gaiaonline.com operated by Gaia Interactive Inc., based in California, USA. The game player can initiate a game session by clicking a game client application 206 or 207 on a computer device 106 or 107 (step 310). The game client application 206 or 207 can be presented on a web page presented by a web browser application. In the present invention a game session refers to an active connection between the client game application 206 or 207 and other programs such as game engine application 301-303 stored in the network-based game system 100. The game client application 206 or 207 can also be in the form of stream media (e.g. Flash SWF) so a game can keep loading as game-play starts. In some embodiments, a game session can be initiated by a game client application 206 or 207 by contacting and authenticating with a game engine application 301-303 via a load balancer 250 without the need to access a webpage.
  • The game client application 206 or 207 sends a request to a load balancer 250 to request long in the user using a password (step 310). The load balancer 350 directs the authorization request to a game engine application 301-303 on a game server 141-143 (step 330). The game engine application 301-303 passes the request to GSI program 400 (step 340). The GSI program 400 verifies the user ID and password using information retrieved from the data base 150. The GSI program 400 creates a new session ID for the user at login (step 350). If the game room exists, the GSI can assign the game client application 206 or 207 to an existing one. If the game room does not exist, the GSI program 400 creates, validates the game room, and stores the game room ID. The GSI program 400 returns validation message to the game engine application 301-303 to confirm the authenticity of the user ID and the game session ID.
  • The validation message can include the game session ID and game room ID in association with the user ID. The game engine application 301-303 hold the user ID and the game session ID for future identification purposes. The game engine application 301-303 communicates a validation message to the game engine applications 301-303 about the game session ID and which game room the user has been assigned to (step 360). The game client application enters the game room. The game client application 206 or 207 then requests the load of a game (step 360). For example, a SWF file is loaded by the plug-in at the request of the web browser. The SWF is executed by a Flash Plugin. Instructions inside the SWF tell it to connect to the game engine 301-303. Instructions inside the SWF also instruct it to display the game environment and run the game interactions.
  • GSI only really is an authentication provider. It can return a session id for the GE server to use, and validate a username/password, but our current thinking is that it will do less work than it does now for tracking a user throughout the games. The game engine application is responsible for this now.
  • During the game session, the game client applications 206 or 207 can update the game engine application 301-303 with game statistics, and persistent game-state information such as scores, equipment, and the amount of currency owned by the user. The game engine application 301-303 can pass the persistent game-state information to the GSI program 400 (step 370), which in turn can update the information in the data base 150.
  • Although specific embodiments of the present invention have been illustrated in the accompanying drawings and described in the foregoing detailed description, it will be understood that the invention is not limited to the particular embodiments described herein, but is capable of numerous rearrangements, modifications, and substitutions without departing from the scope of the invention. The following claims are intended to encompass many such modifications. For example, the game logic can also be remotely stored on a server in connection with the network-based game system, instead of on a computer device 106 or 207. The server may be able to store more complex game logic than game client applications. The remotely stored game logic can be activated remotely in real-time with secure processing on the servers or downloaded to the game players' computer devices 106 and 107 before a session starts. Moreover, each game engine application can support one or many game client applications and thus many game logics.
  • Furthermore, the game engine applications 301-303 can be implemented on different game platforms that may be provided by different game service providers which allow game players to access a wide range of network-based game engine applications based on different game platforms. Different game client applications can be installed on the computer devices to run specific games supported by the game platforms of the corresponding game engine applications. Moreover, a single game server or a single game engine application can simultaneously support one or many game client applications.

Claims (27)

1. A network-based game system, comprising:
a load balancer configured to receive a first request and a second request from a game client application running on a computer device, wherein the first request comprises game logic information and the second request comprises persistent game-state information;
a plurality of game servers in connection with the load balancer, wherein each of the game servers stores a game engine application configured to produce a first response to the first request; and
a game-system-interface (GSI) server in connection with the plurality of game servers, wherein the GSI stores a GSI program configured to produce a second response to the second request.
2. The network-based game system of claim 1, wherein the load balancer is configured to communicate with the computer device in a persistent network connection.
3. The network-based game system of claim 1, wherein the load balancer is configured to communicate with the plurality of game servers in persistent network connections.
4. The network-based game system of claim 1, wherein the load balancer is configured to route the first request or the second request to a game sever in accordance with the status of the plurality of the game servers.
5. The network-based game system of claim 1, wherein the GSI server is configured to communicate with the plurality of game servers non-persistent network connections.
6. The network-based game system of claim 1, wherein at least one of the plurality of game servers is configured to receive the second request and to send a third request to the GSI server in response to the second request.
7. The network-based game system of claim 6, wherein the at least one of the plurality of game servers is configured to receive a third response from the GSI server in response to the second request and send the second response to the computer device in response to the third response.
8. The network-based game system of claim 1, wherein the first request comprises one or more of game animation information, game statistics, or game chats.
9. The network-based game system of claim 1, wherein the second request comprises one or more of a user's account information, user identification, a user's game scores, session identification, game room information, a user's game currency or game credits, an inventory for a user's asset, or a user's buddies list.
10. The network-based game system of claim 1, further comprising a data base in communication with the GSI server.
11. The network-based game system of claim 10, wherein the GSI program is configured to update information in the data base or retrieve information from the database in response to the second request.
12. The network-based game system of claim 1, wherein the game engine program or the GSI program is configured to send a message to authenticate identification associated with a game client application.
13. The network-based game system of claim 12, wherein the identification includes user identification, game session identification, or game room identification.
14. The network-based game system of claim 1, wherein the game engine application is configured to communicate with the game client application in encrypted serialized messages.
15. A network-based game system, comprising:
a load balancer configured to receive a first request from a game client application running on a computer device wherein the first request comprises game logic information:
a plurality of game servers in persistent network connections with the load balancer, wherein each of the game servers stores a game engine application configured to produce a first response to the first request and to produce a second request, wherein the second request comprises persistent game-state information; and
a game-system-interface (GSI) server in non-persistent network connections with the plurality of game servers, wherein the GSI stores a GSI program configured to produce a second response to the second request.
16. The network-based game system of claim 15, wherein the load balancer is configured to route the first request to a game sever in accordance with the status of the plurality of the game servers.
17. The network-based game system of claim 1, wherein at least one of the plurality of game servers is configured to receive the second request and to pass the second request to the GSI server.
18. The network-based game system of claim 1, wherein the at least one of the plurality of game servers is configured to receive the second response from the GSI server and send the second response to the computer device.
19. The network-based game system of claim 15, further comprising a data base in communication with the GSI server, wherein the GSI program is configured to update information in the data base or retrieve information from the database in response to the second request.
20. The network-based game system of claim 15, wherein the game engine program or the GSI program is configured to send a message to authenticate identification associated with a game client application, wherein the identification includes user identifications game session identification, or game room identification.
21. The network-based game system of claim 15, wherein the game engine application is configured to communicate with the game client application in a persistent network connection with the load balancer.
22. A method of providing a game over a computer network, comprising:
receiving a first request and a second request by a load balancer from a game client application running on a computer device in a persistent network connection with the load balancer wherein the first request comprises game logic information and the second request comprises persistent game-state information;
producing a first response to the first request by a game engine application running on one of a plurality of game servers, wherein the plurality of game servers are in persistent network connections with the load balancer; and
producing a second response to the second request by a GSI program running on a game-system-interface (GSI) server.
23. The method of claim 22, further comprising
routing the first request or the second request by the load balancer to a game sever in accordance with the status of the plurality of the game servers.
24. The method of claim 22, wherein the GSI server is in non-persistent network connections with the plurality of game servers.
25. The method of claim 22, further comprising:
receiving the second response by the at least one of the plurality of game servers from the GSI server, and
sending the second response from the at least one of the plurality of game servers to the computer device.
26. The method of claim 22, further comprising:
updating information in a data base or retrieving information from the database in response to the second request.
27. The method of claim 22, further comprising:
authenticating an identification associated with a game client application by the game engine application, wherein the identification includes user identification, game session identification or game room identification.
US11/530,444 2006-09-08 2006-09-08 Network-based game system Abandoned US20080076573A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/530,444 US20080076573A1 (en) 2006-09-08 2006-09-08 Network-based game system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/530,444 US20080076573A1 (en) 2006-09-08 2006-09-08 Network-based game system

Publications (1)

Publication Number Publication Date
US20080076573A1 true US20080076573A1 (en) 2008-03-27

Family

ID=39225701

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/530,444 Abandoned US20080076573A1 (en) 2006-09-08 2006-09-08 Network-based game system

Country Status (1)

Country Link
US (1) US20080076573A1 (en)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082985A1 (en) * 2004-06-15 2008-04-03 Gagner Mark B Gaming Software Providing Operating System Independence
US20090197685A1 (en) * 2008-01-29 2009-08-06 Gary Stephen Shuster Entertainment system for performing human intelligence tasks
US20090271206A1 (en) * 2008-04-29 2009-10-29 International Business Machnines Corporation Virtual world subgroup determination and segmentation for performance scalability
US20100190553A1 (en) * 2007-06-19 2010-07-29 Wms Gaming Inc. Plug-in architecture for a wagering game network
US20110216347A1 (en) * 2010-03-03 2011-09-08 Canon Kabushiki Kaisha Printer server, print control method, and storage medium
US8041372B1 (en) 2007-11-26 2011-10-18 Adobe Systems Incorporated Selecting data in a mobile information system
US8214619B1 (en) 2007-11-26 2012-07-03 Adobe Systems Incorporated Memory allocation in a mobile device
US8281390B1 (en) * 2007-11-26 2012-10-02 Adobe Systems Incorporated Remotely defining security data for authorization of local application activity
US20130036227A1 (en) * 2011-08-02 2013-02-07 Verizon Patent And Licensing Inc. Selecting an auxiliary event-package server
US8413233B1 (en) * 2007-11-26 2013-04-02 Adobe Systems Incorporated Authorizing local application activity using remotely defined security data
US20130132979A1 (en) * 2009-01-13 2013-05-23 Disney Enterprises, Inc. System and Method for Integrated Hardware Platform for Flash Applications with Distributed Objects
WO2014025830A1 (en) * 2012-08-07 2014-02-13 South Point Poker Llc Methods and systems for updating online gaming clients
US8677476B2 (en) * 2007-11-26 2014-03-18 Adobe Systems Incorporated Providing remotely defined security data to a local application extension
US20150238867A1 (en) * 2012-10-03 2015-08-27 Gree, Inc. Method of synchronizing online game, and server device
US20160332082A1 (en) * 2014-02-04 2016-11-17 Sony Interactive Entertainment Inc. Information Processing Device and Assignment Method for Input Device
US9997014B2 (en) 2013-03-13 2018-06-12 Microsoft Technology Licensing, Llc Service-triggered game events
CN110855708A (en) * 2019-11-26 2020-02-28 上海莉莉丝科技股份有限公司 Game server architecture
US11100754B2 (en) * 2009-12-23 2021-08-24 Aristocrat Technologies Australia Pty Limited Method of enabling restoration of games and a method of restoring games

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586257A (en) * 1994-05-05 1996-12-17 Perlman; Stephen G. Network architecture to support multiple site real-time video games
US6077161A (en) * 1997-09-12 2000-06-20 Wisler; James M. Multiplayer card games having card plays to foundations
US6152824A (en) * 1997-03-06 2000-11-28 Mpath Interactive, Inc. Online gaming architecture
US6251017B1 (en) * 1999-04-21 2001-06-26 David Leason Game or lottery with a reward validated and/or redeemed online
US20030190960A1 (en) * 2002-04-04 2003-10-09 Eron Jokipii Method and system for providing access to and administering online gaming leagues and tournaments
US20040097287A1 (en) * 2002-11-14 2004-05-20 Richard Postrel Method and system for gaming over a computer network
US20040152517A1 (en) * 2000-02-14 2004-08-05 Yon Hardisty Internet based multiplayer game system
US20040152519A1 (en) * 2000-11-14 2004-08-05 Andy Wang Multi-player game employing dynamic re-sequencing
US6800031B2 (en) * 2002-04-15 2004-10-05 Microsoft Corporation Method of conducting an interactive competition
US6835137B1 (en) * 1998-08-06 2004-12-28 Namco Limited Game apparatus and communication game system
US20050054448A1 (en) * 2003-09-08 2005-03-10 Aristocrat Technologies Australia Pty, Ltd. N-tier architecture for a casino management system and method
US6884162B2 (en) * 2000-12-01 2005-04-26 Sony Corporation System and method to support gaming in an electronic network
US6884172B1 (en) * 2000-10-25 2005-04-26 Ngame Limited Electronic game system
US20050165626A1 (en) * 1999-08-12 2005-07-28 Karpf Ronald S. Computer system and method for increasing patients compliance to medical care instructions
USRE38812E1 (en) * 1994-10-12 2005-10-04 Acres Gaming Incorporated Method and apparatus for operating networked gaming devices
US7004839B2 (en) * 2000-07-12 2006-02-28 Kabushiki Kaisha Sega Communication game system, communication game method, and storage medium
US20060287106A1 (en) * 2005-05-17 2006-12-21 Super Computer International Collaborative online gaming system and method

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586257A (en) * 1994-05-05 1996-12-17 Perlman; Stephen G. Network architecture to support multiple site real-time video games
USRE38812E1 (en) * 1994-10-12 2005-10-04 Acres Gaming Incorporated Method and apparatus for operating networked gaming devices
US6152824A (en) * 1997-03-06 2000-11-28 Mpath Interactive, Inc. Online gaming architecture
US6077161A (en) * 1997-09-12 2000-06-20 Wisler; James M. Multiplayer card games having card plays to foundations
US6835137B1 (en) * 1998-08-06 2004-12-28 Namco Limited Game apparatus and communication game system
US6251017B1 (en) * 1999-04-21 2001-06-26 David Leason Game or lottery with a reward validated and/or redeemed online
US20050165626A1 (en) * 1999-08-12 2005-07-28 Karpf Ronald S. Computer system and method for increasing patients compliance to medical care instructions
US20040152517A1 (en) * 2000-02-14 2004-08-05 Yon Hardisty Internet based multiplayer game system
US7004839B2 (en) * 2000-07-12 2006-02-28 Kabushiki Kaisha Sega Communication game system, communication game method, and storage medium
US6884172B1 (en) * 2000-10-25 2005-04-26 Ngame Limited Electronic game system
US20040152519A1 (en) * 2000-11-14 2004-08-05 Andy Wang Multi-player game employing dynamic re-sequencing
US6884162B2 (en) * 2000-12-01 2005-04-26 Sony Corporation System and method to support gaming in an electronic network
US20030190960A1 (en) * 2002-04-04 2003-10-09 Eron Jokipii Method and system for providing access to and administering online gaming leagues and tournaments
US6800031B2 (en) * 2002-04-15 2004-10-05 Microsoft Corporation Method of conducting an interactive competition
US20040097287A1 (en) * 2002-11-14 2004-05-20 Richard Postrel Method and system for gaming over a computer network
US20050054448A1 (en) * 2003-09-08 2005-03-10 Aristocrat Technologies Australia Pty, Ltd. N-tier architecture for a casino management system and method
US20060287106A1 (en) * 2005-05-17 2006-12-21 Super Computer International Collaborative online gaming system and method

Cited By (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082985A1 (en) * 2004-06-15 2008-04-03 Gagner Mark B Gaming Software Providing Operating System Independence
US8544001B2 (en) 2004-06-15 2013-09-24 Wms Gaming Inc. Gaming software providing operating system independence
US8449394B2 (en) * 2007-06-19 2013-05-28 Wms Gaming Inc. Plug-in architecture for a wagering game network
US20100190553A1 (en) * 2007-06-19 2010-07-29 Wms Gaming Inc. Plug-in architecture for a wagering game network
US9148700B2 (en) 2007-11-26 2015-09-29 Adobe Systems Incorporated Remotely defining security data for authorization of local application activity
US8677476B2 (en) * 2007-11-26 2014-03-18 Adobe Systems Incorporated Providing remotely defined security data to a local application extension
US9727705B2 (en) 2007-11-26 2017-08-08 Adobe Systems Incorporated Remotely defining security data for authorization of local application activity
US8214619B1 (en) 2007-11-26 2012-07-03 Adobe Systems Incorporated Memory allocation in a mobile device
US9384344B2 (en) 2007-11-26 2016-07-05 Adobe Systems Incorporated Authorizing local application activity using remotely defined security data
US8281390B1 (en) * 2007-11-26 2012-10-02 Adobe Systems Incorporated Remotely defining security data for authorization of local application activity
US8041372B1 (en) 2007-11-26 2011-10-18 Adobe Systems Incorporated Selecting data in a mobile information system
US8413233B1 (en) * 2007-11-26 2013-04-02 Adobe Systems Incorporated Authorizing local application activity using remotely defined security data
US10449442B2 (en) 2008-01-29 2019-10-22 Gary Stephen Shuster Entertainment system for performing human intelligence tasks
US8206222B2 (en) * 2008-01-29 2012-06-26 Gary Stephen Shuster Entertainment system for performing human intelligence tasks
US9579575B2 (en) 2008-01-29 2017-02-28 Gary Stephen Shuster Entertainment system for performing human intelligence tasks
US9937419B2 (en) 2008-01-29 2018-04-10 Gary Stephen Shuster Entertainment system for performing human intelligence tasks
US20090197685A1 (en) * 2008-01-29 2009-08-06 Gary Stephen Shuster Entertainment system for performing human intelligence tasks
US10003640B2 (en) 2008-04-29 2018-06-19 International Business Machines Corporation Virtual world subgroup determination and segmentation for performance scalability
US8533733B2 (en) 2008-04-29 2013-09-10 International Business Machines Corporation Virtual world subgroup determination and segmentation for performance scalability
US20090271206A1 (en) * 2008-04-29 2009-10-29 International Business Machnines Corporation Virtual world subgroup determination and segmentation for performance scalability
US9661069B2 (en) 2008-04-29 2017-05-23 International Business Machines Corporation Virtual world subgroup determination and segmentation for performance scalability
US8230441B2 (en) * 2008-04-29 2012-07-24 International Business Machines Corporation Virtual world subgroup determination and segmentation for performance scalability
US20130132979A1 (en) * 2009-01-13 2013-05-23 Disney Enterprises, Inc. System and Method for Integrated Hardware Platform for Flash Applications with Distributed Objects
US8924989B2 (en) * 2009-01-13 2014-12-30 Disney Enterprises, Inc. System and method for integrated hardware platform for flash applications with distributed objects
US20210383646A1 (en) * 2009-12-23 2021-12-09 Aristocrat Technologies Australia Pty Limited Method of enabling restoration of games and a method of restoring games
US11100754B2 (en) * 2009-12-23 2021-08-24 Aristocrat Technologies Australia Pty Limited Method of enabling restoration of games and a method of restoring games
US11881080B2 (en) * 2009-12-23 2024-01-23 Aristocrat Technologies Australia Pty Limited Method of enabling restoration of games and a method of restoring games
US8705067B2 (en) * 2010-03-03 2014-04-22 Canon Kabushiki Kaisha Printer server, print control method, and storage medium for producing a printed output by a device of a low-display and low-input capability
US20110216347A1 (en) * 2010-03-03 2011-09-08 Canon Kabushiki Kaisha Printer server, print control method, and storage medium
US9241031B2 (en) * 2011-08-02 2016-01-19 Verizon Patent And Licensing Inc. Selecting an auxiliary event-package server
US20130036227A1 (en) * 2011-08-02 2013-02-07 Verizon Patent And Licensing Inc. Selecting an auxiliary event-package server
WO2014025830A1 (en) * 2012-08-07 2014-02-13 South Point Poker Llc Methods and systems for updating online gaming clients
US10456688B2 (en) * 2012-10-03 2019-10-29 Gree, Inc. Method of synchronizing online game, and server device
US20180369697A1 (en) * 2012-10-03 2018-12-27 Gree, Inc. Method of synchronizing online game, and server device
US20200038760A1 (en) * 2012-10-03 2020-02-06 Gree, Inc. Method of synchronizing online game, and server device
US10987591B2 (en) * 2012-10-03 2021-04-27 Gree, Inc. Method of synchronizing online game, and server device
US20150238867A1 (en) * 2012-10-03 2015-08-27 Gree, Inc. Method of synchronizing online game, and server device
US10080968B2 (en) * 2012-10-03 2018-09-25 GREE Inc. Method of synchronizing online game, and server device
US9849389B2 (en) * 2012-10-03 2017-12-26 Gree, Inc. Method of synchronizing online game, and server device
US11878251B2 (en) 2012-10-03 2024-01-23 Gree, Inc. Method of synchronizing online game, and server device
US9997014B2 (en) 2013-03-13 2018-06-12 Microsoft Technology Licensing, Llc Service-triggered game events
US10434419B2 (en) * 2014-02-04 2019-10-08 Sony Interactive Entertainment Inc. Information processing device and assignment method for input device
US20160332082A1 (en) * 2014-02-04 2016-11-17 Sony Interactive Entertainment Inc. Information Processing Device and Assignment Method for Input Device
CN110855708A (en) * 2019-11-26 2020-02-28 上海莉莉丝科技股份有限公司 Game server architecture

Similar Documents

Publication Publication Date Title
US20080076573A1 (en) Network-based game system
US20080070688A1 (en) Real-time gaming system having scalable database
US7695370B2 (en) Massively scalable multi-player game system
US20070087829A1 (en) Multi-player game architecture
US20070184903A1 (en) Network-based game system capable of serving massive number of game players
US20070050838A1 (en) Multi-protocol game engine
US7736233B2 (en) System and method for entertainment game
US7632186B2 (en) Spectator mode for a game
US7833096B2 (en) Button encounter system
US8025572B2 (en) Dynamic spectator mode
AU2004201618B2 (en) Method and apparatus for handling game data
US20090325712A1 (en) Player character matchmaking with distributed peer-to-peer functionality
US20180015372A1 (en) Invalidating network devices with illicit peripherals
US8032502B2 (en) Validation of network devices
US20070099702A1 (en) Network-based gaming system
US20070060343A1 (en) Role play system
US20040116186A1 (en) Distance based distributed online game server system
US7980949B2 (en) Guard condition system
US10994207B2 (en) Massively single-playing online game
US8758104B2 (en) System and method for transmitting P2P message in multi-access online game
US10471350B2 (en) Persistent game sessions with multiplayer support
US20070021212A1 (en) Persistent and effecient game architecture
US8769010B2 (en) Networking system and method of gaming with a user of a social network
KR20130055844A (en) Method, game server, terminal, and recording medium for providing automatic matching between users in game
Trinta et al. Evaluating a middleware for crossmedia games

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION