US20070087829A1 - Multi-player game architecture - Google Patents

Multi-player game architecture Download PDF

Info

Publication number
US20070087829A1
US20070087829A1 US11/250,681 US25068105A US2007087829A1 US 20070087829 A1 US20070087829 A1 US 20070087829A1 US 25068105 A US25068105 A US 25068105A US 2007087829 A1 US2007087829 A1 US 2007087829A1
Authority
US
United States
Prior art keywords
game
network
client applications
gsi
game client
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/250,681
Inventor
Derek Liu
John Loethrer
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/250,681 priority Critical patent/US20070087829A1/en
Priority to CNA2006101322597A priority patent/CN1949778A/en
Publication of US20070087829A1 publication Critical patent/US20070087829A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • A63F13/12
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/31Communication aspects specific to video games, e.g. between several handheld game devices at close range
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • 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/326Game play aspects of gaming systems
    • G07F17/3272Games involving multiple players
    • G07F17/3276Games involving multiple players wherein the players compete, e.g. tournament
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/401Secure communication, e.g. using encryption or authentication
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/402Communication between platforms, i.e. physical link to protocol
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/407Data transfer via internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/532Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing using secure communication, e.g. by encryption, authentication

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 bi-directional. 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.
  • Another difficulty to the network-based game systems is scalability. 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. Another challenge is to provide a large number of game rooms each hosting a number of game players. A further desired feature for network-based game systems is to effectively provide a wide selection of games to the players while maintaining the same performance in real-time responses to a large number of players or offering many games to game players within a unified social context and user identity.
  • Implementations of the system may include one or more of the following.
  • the present invention relates to a network-based game system, comprising:
  • a computer network configured to communicate with game client applications running on a plurality of computer devices, wherein at least two of the game client applications are engaged in the same game room;
  • a first server connected to the computer network, configured to store a game engine application capable of communicating with the plurality of game client applications
  • a computer storage device connected to the computer network, configured to store a protocol for message encryption and message decryption
  • a second server connected to the computer network, configured to store a game-system- interface (GSI) program that can receive a plurality of first encrypted messages from the plurality of game client applications and decrypt the first encrypted messages using the protocol stored on the computer storage device.
  • GMI game-system- interface
  • the present invention relates to a network-based game system, comprising:
  • a computer network configured to communicate with game client applications running on a plurality of computer devices, wherein at least two of the game client applications are engaged in the same game room;
  • a first server connected to the computer network, configured to store a game engine application that can
  • a computer storage device connected to the computer network, configured to store a plurality of protocols for message encryption and message decryption;
  • a second server connected to the computer network, configured to store a game-system- interface (GSI) program that can receive a plurality of first encrypted messages from the plurality of game client applications and decrypt the first encrypted messages using one or more of the plurality of the protocols.
  • GMI game-system- interface
  • the present invention relates to a network-based game system, comprising:
  • a computer network configured to communicate with game client applications running on a plurality of computer devices, wherein at least two of the game client applications are engaged in the same game room;
  • a first server connected to the computer network, configured to store a game engine application that can
  • a computer storage device connected to the computer network, configured to store a plurality of protocols for message encryption and message decryption;
  • a second server connected to the computer network, configured to store a game-system- interface (GSI) controller and a GSI model,
  • GSI game-system- interface
  • the GSI controller can receive a plurality of first encrypted messages from the plurality of game client applications, decrypt the first encrypted messages, and encrypt second encrypted messages to be sent to the game client applications using one or more of the protocols stored on the computer storage device and the GSI model can store game application logic and develop response messages to be encrypted in the second encrypted messages in accordance with the application logic.
  • the first server can be configured to store a game engine application capable of communicating with the plurality of game client applications in a persistent network connection.
  • the computer storage device can be configured to store a plurality of protocols for message encryption and message decryption and the game-system-interface (GSI) program can decrypt the first encrypted messages using one or more of the plurality of the protocols.
  • the game engine application can be configured to broadcast to the plurality of client applications in the same game room.
  • the game engine application can be configured to receive requests from the game client application and instantaneously respond to the requests.
  • the first encrypted messages can include game status information comprising one or more of game statistics and game configurations associated with at least one of the game client applications.
  • At least one of the first encrypted messages can include a serialized message that can be serialized by the protocol.
  • the first encrypted messages can include one or more of user identification, session identification, and game room information associated with the game client applications.
  • the network-based game system can further include a data storage device connected to the computer network configured to receive information associated with the first encrypted messages from the GSI program and store the information associated with the first encrypted messages.
  • the GSI program can be configured to receive requests from the game client applications in the first encrypted messages and to respond to the requests by sending second encrypted messages to the game client applications.
  • the second encrypted messages can be encrypted using one or more of the plurality of protocols stored on the computer storage device.
  • the first encrypted messages can include authentication information and the second encrypted messages include verification information.
  • the GSI program can include a GSI controller configured to decrypt the first encrypted messages and encrypt response messages using one or more of the protocols stored on the computer storage device.
  • the GSI program can include a GSI model that stores game application logic and is configured to develop the response messages in accordance with the application logic.
  • the game client applications can be executed by a plug-in to a web browser installed on the computer device.
  • the GSI program can be configured to communicate with the game client applications in a non-persistent network connection.
  • Embodiments may include one or more of the following advantages.
  • An advantage of the present invention is that the disclosed network-based gaming system can provide game applications simultaneously to many remote game players. A plurality of game players can play the same game in the same game room from different locations convenient to them. Many game players can play the same game applications while competing against each other or play separate game applications.
  • the persistent communication paths allow game applications to be played with instantaneous responses without network latency at multiple remote locations.
  • Another advantage of the invention is that the disclosed system can provide many game applications to remote game players over a computer network using different serialization encryption protocols such as PHP, XML, AMF, XML-RPC, etc.
  • the game players can access game applications based on any of the protocols from a single network-based service.
  • the selection of the game applications is significantly increased. Different game applications used by different game players can use different encryption protocols to play the same game or even play in the same game room.
  • Yet another advantage of the present invention is that the disclosed system can provide game applications to remote game players with persistent network connections while efficiently tracking and updating the game status of each of the players in an efficient manner.
  • the disclosed system includes a persistent communication path that provides instantaneous message exchanges for the game applications in real time.
  • the disclosed system includes a separate communication path that can respond to the requests game applications without consuming significant network resources and store game status information in storage devices.
  • Still another advantage of the invention is that the disclosed game system is efficient.
  • the disclosed game system includes a communication path to the game client that does not need to be persistent through a game session. A call from the game client is answered and the communication session is closed and network connection freed up.
  • the disclosed system can be scaled up easily without consuming significant network bandwidth as in the prior art systems. It can host millions of game players in millions of game sessions over a computer network, which is one or more orders of magnitudes higher than conventional network-based game systems.
  • Another advantage of the present invention is that it allows scalability to the hosting of a large number of game players in the same game room or in different game rooms.
  • the communications to the game client application are divided into a persistent communication and an efficient but non-persistent communication path.
  • the amount of information communicated in real time is minimized.
  • a flexible layer by game-system-interface (GSI) program handles the non-persistent communications, which allows the network-based game system to handle a large number and variety of game client applications.
  • FIG. 1 is a system diagram of the network-based game system in accordance with the present invention.
  • FIG. 2 shows a game client application that can be running on a computer device shown in FIG. 1 .
  • FIG. 3 shows a game engine application that can be stored on a game server shown in FIG. 1 .
  • FIG. 4A shows a Game System Interface application that is stored on a server in the network-based game system shown in FIG. 1 in accordance to an embodiment of the present invention.
  • FIG. 4B shows a Game System Interface application that is stored on a web server of FIG. 1 in accordance to another embodiment of the present invention.
  • FIG. 5 shows a system diagram of a persistent and efficient game architecture compatible with the network-based game system of FIG. 1 .
  • FIG. 6 shows a system diagram of a game architecture compatible with the network-based game system of FIG. 1 .
  • the game architecture is capable of communicating in serialized messages under a plurality of communication protocols.
  • FIG. 7 shows a table that lists a plurality of game engines that can communicate under different serialization protocols.
  • FIG. 8 shows a flow chart for the communication between the Game System Interface application and a game client application or a game engine in a network-based game system.
  • a network-based game system 100 can provide game applications over a communication network 105 to be played on many computer devices 106 and 107 .
  • 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., and Wi-Fi wireless communication standards such as IEEE 802.11, Wi-Max, and IEEE 806.16, and others.
  • GSM Global System for Mobile Communications
  • GPRS General Packet Radio Service
  • EDGE Code Division Multiple Access
  • CDMA Code Division Multiple Access
  • TD-SCDMA Wideband CDMA
  • UMTS Universal Mobile Telecommunications System
  • Wi-Fi wireless communication standards such as IEEE 802.11, Wi-Max, and
  • 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, the SONY PlayStation OR PS2, and/or the Nintendo 64, GameCube, or GameBoy.
  • PDA portable digital assistance
  • cell phones cell phones
  • digital image capture devices digital image capture devices
  • dedicated game devices such as Microsoft XBOX, the SONY PlayStation OR PS2, and/or the Nintendo 64, 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 , a server 140 , one or more servers 141 - 143 , a database 150 , and a storage area network 151 .
  • 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, and 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 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.
  • a game client application 200 can reside on the computer device 106 or 107 as shown in FIG. 2 .
  • the game client application 200 can be executed by a plug-in to the web browser application.
  • the game client application 200 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 200 can use the web browser's communication API (Application Programming Interface) to communicate with various servers and devices ( 115 , 121 - 124 , 140 - 143 etc.) in the network-based game system 100 .
  • API Application Programming Interface
  • 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 is attached to the web browsers running on the computer devices 106 and 107 to allow the web browser play SWF (Small Web Format) movie clips referenced in a webpage.
  • SWF Small Web Format
  • 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 200 can be written in one or more SWF movie clips to be loaded in the web browser. Each game client application 200 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.
  • FIG. 3 shows a game engine application 300 stored on a game server 141 , 142 , or 143 .
  • the game engine application 300 is responsible for providing real-time responses to the game client application 200 during a game session.
  • the term “real-time communication” refers to the types of communications facilitated by a persistent network connection.
  • the persistent network connection allows instantaneous and reliable communications between two components over the network without network latency.
  • the game server 141 , 142 , or 143 on which the game engine application 300 is stored can keep an open socket connection with the computer device 106 or 107 .
  • the game engine application 300 and the game client application 200 can send and receive TCP/IP messages to and from each other by writing and reading data to and from the socket. 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 at all time during a game session. A loss of connection in the persistent communication can be interpreted as that the game client application 200 has left the game.
  • the game engine application 300 is compatible with different server software implementations such as Sushi Multiuser Server available at “www.wok2.de”, ElectroServer 3available at “www.electrotank.com”, and Terazona Network Engine available at “www.zona.net”.
  • the network-based game system 100 can include many the game engine applications 300 developed using different server software. Different server software may require serialized messages encrypted under different serialization protocols. The communication protocols with these game engine applications 300 are provided by the GSI program 400 .
  • the message serialization and de-serialization are used as examples of the encryption and decryption methods in the disclosed system and methods.
  • the examples are meant to depict the flexibility and capability of the invention system.
  • the present invention is compatible with other encryption and decryption techniques, and associated protocols.
  • the network-based game system 100 includes a Game System Interface (GSI) program 400 that can be stored on a server 140 as shown in FIG. 4A , on the web server 121 , 122 , or 123 as shown in FIG. 4B , or on other servers such as the game servers 141 - 143 connected to the computer network.
  • This server that the GSI program 400 resides on can be a single computer or a load-balanced cluster of servers.
  • Each request to the GSI program 400 is an autonomous transaction and therefore does not require a persistent connection between the GSI program 400 and the other party (e.g. the game client application 200 or the game engine application 300 ).
  • the GSI program 400 provides information to clients such as the game client application 200 in response to requests but does initiate communications.
  • the GSI program 400 can respond to the requests from the game client applications 200 running on the computer devices 106 and 107 .
  • the GSI program 400 can also provide game information in response to the requests from the game engine application 300 .
  • FIG. 5 shows a system diagram of a persistent and efficient game architecture 500 in the network-based game system 100 .
  • the persistent and efficient game architecture 500 include the game client application 200 , the game engine application 300 , and the GSI program 400 , which provide a persistent communication path and an efficient but non-persistent communication path for the game client application 200 .
  • the GSI program 400 is connected to the database 150 and a Storage Area Network 151 for saving updated data in the current game and retrieving data from the current and past games.
  • the games are run on the game client applications 200 and communicate with the game engine applications 300 through the protocols defined by the game client application 400 .
  • An advantageous feature of the disclosed network-based game system is that it includes a persistent communication path and a non-persistent communication path for the remote game client application.
  • the persistent communication path is used for exchanging short and instantaneous messages that a game needs to be updated in real time, but does not need to be stored permanently on data storage.
  • the real-time two-way communications between the game client application 200 and the game engine application 300 are fast and without network latency. There is no cycle time spent on accessing and storing the exchange information on a data storage device.
  • the persistency of the network connection between the game client application 200 and the game engine application 300 typically last through a game session.
  • the non-persistent communication path is efficient, which allows the amount of information communicated in real time to be minimized.
  • the network-based system is scalable to a large number of game players.
  • the non-persistent communication path is used to communicate information that is of “long-term” use to the games or the game players and does not require instantaneous and resource-intensive communications.
  • the information may include the attributes and statistics of the game player such as his or her game scores, the equipment he or she purchased to be used in the games, the “money”he or she owns from the past and the current games, and so on. The information not only is needed for the current game, but also needs to be stored and retrieved for future games.
  • the information exchanged between the game client application 200 and the GSI program 400 often involves the access or retrieving data from the database 150 and a data storage device such as SAN 151 , and writing and saving data to the database 150 and a data storage device.
  • the interactions between the game client application 200 and the GSI program 400 are usually single requests that can be answered. The connection is then closed. In other words, no persistent network connection is required for these communications throughout a game session.
  • the persistent and efficient game architecture 500 shown in FIG. 5 differs from certain prior art systems that integrate the different types of communications into the same application layer.
  • the same application layer handles real-time persistent communications and communications that do not need to be real time (which is in contrast to the separate game engine application 300 and the GSI 400 provided in the persistent and efficient game architecture 500 ).
  • This type of prior art systems requires persistent network connections for both types of server communications throughout the game sessions.
  • Each of the server instances is to be managed by a much larger and more resource-intensive application layer than the presently disclosed system.
  • the burden to the application layer grows rapidly as the number of game clients or the number of games grows, which often increases the chance for failure, slows the responses, or degrades reliability.
  • the present disclosed system is much more scalable compared to this type of prior art systems.
  • Each game engine application 300 can support one or many game client applications 200 .
  • the GSI program 400 can support many game client applications 200 and many game engine applications 300 .
  • the game logic can be stored inside the game client application 200 , for example, in the form of compiled flash SWF files that are loaded on the web browsers on the computer devices 106 and 107 .
  • the game client application 200 can be loaded via web browser running on the computer devices 106 and 107 .
  • the game client application 200 can include many game logics to allow a player to play many games.
  • the game play logic can also be remotely stored on a server (such as 121 - 124 or 140 - 143 ) in the network-based game system 100 .
  • the game logic can be included in the game engine application 300 or the GSI program 400 that can typically accommodate 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 (such as 121 - 124 or 140 - 143 ) or downloaded to the game players' computer devices 106 and 107 before a session starts.
  • 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 200 on a web page presented by a web browser application running on a computer device 106 or 107 .
  • a game session refers to an active connection between the client game application 200 and other programs such as game engine application 300 and GSI program 400 stored in the network-based game system 100 .
  • the game client application 200 can also be in the form of stream media (e.g. Flash SWF) so a game can keep loading as game-play starts.
  • stream media e.g. Flash SWF
  • a game can be started and a game session can be initiated directly from the game client application 200 to the game engine application 300 after authenticating with GSI 400 , without the need to access a webpage.
  • Each game client application 200 can include game logic for one or more games.
  • the game client application 200 can be a Flash plug-in provided by Macromedia.
  • 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 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 .
  • Each game engine application 300 can support one or many game client applications 200 and thus many game logics.
  • each game client application 200 can be supported by a game engine application 300 with a persistent connection in the network-based game system 100 , that is, the game client application 200 and the game engine application 300 can send requests to each other and receive instantaneous responses at any time during a game session.
  • a stop in the two-way communications between the game client application 200 and the game engine application 300 is typically interpreted by the game engine application 300 as the leaving of the game session by the game client application 200 .
  • the network-based game system 100 can include many game engine applications 300 stored on the game servers 141 - 143 .
  • Each of the game engine applications 300 can be based on different game platforms that may be developed by the game service provider such as Gaia Interactive, Inc., or sourced from a third party game developer. The game player can thus access a wide range of network-based games at many game engine applications 300 that run on game platforms.
  • Different game client applications 200 can be installed on the computer devices to run specific games supported by the corresponding game engine applications 300 .
  • the game client application 200 can pull information related to the specific game or game session from the game engine application 300 .
  • the game engine application 300 can respond to the requests instantaneously.
  • the game engine application 300 can also update the game client application 200 with animations and short-term game information that do not need to be permanently stored.
  • the short-term information can include the position of a soccer-ball on a field as it is being kicked around, the path a player's avatar is moving along on the field or the current pose an avatar is in, and the instant message chat communication between players in a game room, including text-based chats and emoticons.
  • a game room allows a plurality of remote game players to play the same game with each other.
  • the game players can play team based competitive games such as soccer, ice hockey, or football, or they can play individual based games such as fishing, car race, etc.
  • the network-based game system 100 can host many game players playing the same game client applications 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 the same game room.
  • the game engine application 300 can broadcast updates to many game client applications 200 running on many computer devices 106 , 107 that are in the same game room.
  • the game engine application 300 can establish the players in the same game room as peers.
  • the game engine application 300 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 200 in the game room can construct a message and request the game engine application 300 to forward to the message another peer or all the peers in the same game room.
  • the GSI program 400 can respond to the requests from the game client application 200 running on the computer devices 106 and 107 .
  • the GSI program 400 typically answers questions but does not initiate requests by the game client applications 200 .
  • the game client application 200 requests an authorization from the GSI program 400 .
  • the GSI program 400 creates a new session ID for the user at login.
  • the GSI program 400 verifies the user ID and session ID and returns validation message to authenticate the game session.
  • the responses by the GSI program 400 in general do not need to be persistent. For example, they do not have to communicate through SOCKET connections. This flexibility allows a GSL program 400 to answer more calls and enables the network-based game system 100 to handle a large number of game client applications and game players simultaneously.
  • the game client application 200 asks the GSI program 400 which game room to join for a given game.
  • the GSI program 400 checks information received from the game engine applications 300 to see whether or not a game room has been created for that game. If the game room exists, the game client application 200 enters it. If the game room does not exist, the game client application 200 requests the game engine applications 300 to create one.
  • the game engine application 300 creates the game room and passes the information to the GSI program 400 for verification.
  • the GSI program 400 validates and returns a verification message including a new game room ID to the game engine application 300 that in turn returns the verification information to the game client application 200 .
  • the game client application enters the new game room. In this sequence of the communications, the GSI program 400 does not initiate the request. It only validates the information in requests it receives.
  • the game engine applications 300 After the game engine applications 300 creates the game room, it writes information about the game room back into the GSI program 400 and waits for the GSI program 400 to validate that the game room is OK. After receiving the validation from the GSI program 400 , the game engine application 300 allows the game client application to enter the new game room.
  • the game client application 200 then requests the load of the game. 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 GSI program 400 . Instructions inside the SWF also instruct it to display the game environment and run the game interactions.
  • the GSI program 400 returns the variables necessary for loading the game and information for saving game results to the game client application 200 .
  • the game client application 200 can request the saving of the game results.
  • the GSI program 400 validates the data to be saved and returns whether or not the saving is succeeded.
  • the GSI program 400 also gathers information about all the players in the same game room and broadcast the information to the game room.
  • the GSI program 400 can respond to hundreds of different types of calls by the game client applications 200 .
  • the GSI program 400 can typically communicate with game client application 200 in the range of 0.001-0.1 milliseconds depending on network latency and the processing time.
  • the priority for the performance of the GSI program 400 is that it can respond to all the requests, but not necessarily in real time.
  • the GSI program 400 controls the load balance and the distribution of players in the game rooms across multiple game servers 141 - 143 on which the game engine applications 300 reside.
  • the GSI program 400 verifies that game rooms for a given game are not duplicated by accident.
  • the game client applications 200 updates the GSI program 400 with game status information such as game statistics and game configurations.
  • Game statistics for example can include game scores of a game player, the asset and money that a player has accumulated, number of games played etc.
  • Game configuration can include game equipment, game location, favorite games, etc.
  • Tokens and validation keys can also be passed from the game engine application 300 to the game client applications 200 to make sure different actions are occurring in the correct order and are not being spoofed by the client game application 200 .
  • the game client application 200 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 GSI program 400 sends the game status information to database 150 and storage area network to store the game status information into the user account such that the user can keep his or her record even after the specific game session is ended.
  • An advantage of the present invention is that it allows scalability up to a large number of game players in the same game room or in different game rooms.
  • the communications to the game client applications are divided into persistent real-time communications and efficient but non-persistent communications.
  • the amount of information communicated in real time is minimized.
  • a flexible layer by game-system- interface (GSI) program handles the non-persistent communications, which allows the network-based game system to handle an ever-increasing number and variety of game client applications.
  • the GSI program 400 can also respond to requests from the game engine application 300 as shown in FIG. 5 .
  • the GSI program 400 provides information to the game engine application 300 as requested but the GSI program 400 does not initiate messages to the game engine application 300 .
  • the game engine application 300 informs the GSI program 400 of all players and game rooms created.
  • the game engine application 300 also sends user ID, session ID, game room ID to the GSI program 400 for validation.
  • the GSI program 400 responds to the game engine application 300 to validate of the game rooms, the game sessions and the user ID.
  • the game engine application 300 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 300 ), eliminating network latency between the game engine application 300 and the GSI program 400 .
  • FIG. 6 shows a system diagram of a game architecture capable of communicating in serialized messages under a plurality of communication protocols.
  • a plurality of game client applications 611 - 613 can be running on a multiple of computer devices 106 and 107 to support multiple game players to play in the same or different game rooms.
  • Each computer devices 106 and 107 can host multiple of game client applications 611 - 613 .
  • the game client applications 611 - 613 can communicate with one or more game engine applications 621 - 623 in communication paths that are persistent through game sessions. The responses are real time without network latency, but the information communicated is specific to each game session and are not required to be stored after a game session is ended.
  • the game engine applications 621 - 623 can communicate in different languages defined by serialization communication protocols such as PHP (Hypertext Preprocessor), XML, AMF, XML-RPC (Remote Procedure Call), etc.
  • the game client applications 611 - 613 can also communicate with a Game System Interface (GSI) program 630 in an efficient communication path.
  • the GSI program 630 is intended to provide a logical structure for connecting the game client applications 611 - 613 to application logic on one or more servers in the network-based game system 100 .
  • the GSI program 630 can respond to requests from the game client applications 611 - 613 and the game engine applications 621 - 623 . Each request/response cycle is a separate session that is not required to be persistent through the game session.
  • the requests to and responses by the GSI program 630 can be asynchronous communications.
  • the GSI program 630 includes two application layers: a GSI controller 640 and a GSI model 650 .
  • the GSI controller 640 can access a game protocol library 660 that can be stored in a storage device connected in the network.
  • An exemplified table 700 in the game protocol library 660 is shown in FIG. 7 .
  • the table 700 lists a plurality of Game IDs such as “Fishing”, “Soccer”, “Halloween”, “Treasure Hunt”, “Survival”, etc.
  • One or more game IDs are supported by a game engine (GEl, GE 2 , GE 3 ).
  • the communication protocols are coded to communicate under different serialization protocols such as PHP, XML, AMF, XML-RPC, and PHP that can be transported using a variety of Internet protocols, including HTTP, SMTP, and MIME.
  • the communication protocols are independent from the operating systems on the computer devices 106 and 107 or on the servers in the network based game system 100 .
  • the communication protocols can be independent of the game logic, the game rooms, and the game engine applications. Different game client applications 611 - 613 can even use many different communication protocols to enter the same game room at the same time.
  • the GSI program 630 provides multiple message serialization protocols, allowing multiple client types to communicate with the game engine applications 621 - 623 , the data base 670 and storage device 671 through the GSI model 650 .
  • the GSI program 630 publishes a list of communication protocols to provide a standardized method of message delivery. For instance, a communication protocol can abstract different representations of different types of data into a serialized encapsulation, which allows a common representation of data for different languages used on different computer devices. Importantly, this enables communication with unknown client applications residing on a computer whose programming language is unknown to the GSI program.
  • the communication protocols can include encryption rules and decryption rules for serializing or de-serializing messages as shown in FIG. 7 .
  • the game client applications 611 - 613 and the game engine applications 621 - 623 are built with libraries that handle the translations under different protocols. For example, the game client applications 611 - 613 and the game engine applications 621 - 623 can decode serialized packet into its own internal language to understand data contained in a serialized encapsulation. Similarly, request messages to the GSI program 630 can be encrypted using these natively stored protocols before sent to the GSI program 630 .
  • the game client applications 611 - 613 and the game engine applications 621 - 623 use the communication protocols to invoke requests to the GSI program 630 and interpret reply messages from GSI program 630 .
  • the GSI program 630 provides a single entry point for requests from all game client applications 611 - 613 .
  • This architecture allows the game client applications 611 - 613 bundle multiple asynchronous requests in the same HTTP requests (i.e. boxcar method). Furthermore, requests in different communications protocols can be bundled in the same HTTP message. The GSI program can subsequently respond to the bundled HTTP requests in one bundled HTTP response.
  • the boxcar method allows efficient information transfer at low communication barrier.
  • a game architecture comprising multiple entry points for the game client applications cannot allow the bundling of different requests if the requests are intended to be received by different entry points.
  • the GSI program 630 separates message serialization from application logic.
  • the message serialization and de-serialization is handled by the GSI controller 640 whereas the application logic is processed by the GSI model 650 .
  • the GSI program 630 is built using a hybridized MVC (Model View Controller) architecture including two application layers the GSI controller 640 and one or more GSI models 650 .
  • the GSI controller 640 is a single gateway responsible for controlling the requests and routing the requests to specific GSI models 650 and then returning the responses back to the game client application 611 - 613 .
  • Each GSI model contains the application logic for each particular method call.
  • the GSI models 650 accept parameters and return responses.
  • the GSI models interpret de-serialize messages sent by the game client applications 613 - 613 or the game engine applications 621 - 623 and serialize the responses from the model using the same protocol as the initial request. Views de-serialize messages sent by the client application and then serialize the response from the model using the same protocol as the initial request.
  • the GSI controller 640 controls what application logic is called.
  • the GSI models 650 house that application logic. The view formats the information provided by the GSI model 650 .
  • the architecture comprising the GSI program 621 - 623 include one or more advantages.
  • the GSI program 621 - 623 allows a lightweight client to server-side application logic.
  • the GSI program 621 - 623 allows the connection of two different servers that do not use the same programming language such as Java, Flash ActionScript, and PHP.
  • the serialization protocol makes it possible to represent data-structures that are different from one server to the next. For the data in a received message to be used by a server, the message must be de-serialized and translated into its own language so that the data can be manipulated.
  • the serialization protocol provides a read-only representations of the data. Once the data is de-serialized, it is manipulated by the native language methods until the data needs to be returned.
  • the client applications can communicate with the servers in the network-based system 100 in different message serialization protocols.
  • the application logic accessible to GSI models 650 can be broken down into a series of discreet requests for specific information and each method invocation answers a specific question.
  • FIG. 8 shows an exemplified flow chart for the communication between Game System Interface application and a game client application or a game engine.
  • a game client application 200 , 611 - 613 submits a request to a URL or other communication layer, which is received by the web server 121 - 124 .
  • the web server 121 - 124 instantiates a GSI controller 640 to handle the request.
  • the GSI controller 640 evaluates the request and determines which communication protocol is to be used.
  • the communication protocol may be indicated in a header in the request message or stored at a storage location defined by an URL.
  • the GSI controller 640 then instantiates a view object from the game protocol library 660 .
  • the view object can include decryption and encryption rules for the protocol.
  • the GSI controller 640 asks the view object to de-serialize the request.
  • the view object de-serializes the request in step 830 and returns the request in a standardized format to the GSI controller 640 .
  • the GSI controller 640 evaluates the request in step 850 .
  • the GSI controller 640 instantiates a GSI model 650 to handle different sections of the request.
  • the GSI model 650 accepts the parameters passed in by the GSI controller 640 and returns a response in step 860 .
  • the GSI controller 640 captures the result of these operations and passes them to the view object.
  • the view object serializes the response in step 870 .
  • the GSI controller 640 returns the serialized response to the game client application 200 , 611 - 613 .
  • a GSI program 621 - 623 closes the request.
  • the message from the game client application 200 , 611 - 613 often includes game status information that need to be stored in the player's account to allow the information to be available after the game session ends.
  • the game status information can include game scores of a game player, the asset and money that a player has accumulated, game equipment, and game location.
  • a DAO Data Access Object
  • a database query e.g. SQL query
  • the game status information in the request is written in the storage device 671 in step 895 .
  • the request/response communication cycles between the game engine applications 300 , 621 - 623 and the GSI program 400 , 650 can be conducted in a similar fashion as described above.

Abstract

A network-based game system includes a computer network configured to communicate with game client applications running on a plurality of computer devices, wherein at least two of the game client applications are engaged in the same game room, a first server connected to the computer network, configured to store a game engine application capable of communicating with the plurality of game client applications, a computer storage device connected to the computer network, configured to store a protocol for message encryption and message decryption, and a second server connected to the computer network, configured to store a game-system-interface (GSI) program that can receive a plurality of first encrypted messages from the plurality of game client applications and decrypt the first encrypted messages using the protocol stored on the computer storage device.

Description

    CROSS REFERENCES TO RELATED APPLICATIONS
  • This application is related to commonly assigned U.S. patent application Ser. No. 11/188,148, titled “Persistent and efficient game architecture” by Liu et al, filed Jul. 22, 2005 and U.S. patent application Ser. No. 11/212,216, titled “Multi-protocol game engine” by Liu et al, filed Aug. 25,2005, the contents of which are incorporated herein by reference.
  • 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 bi-directional. 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.
  • Another difficulty to the network-based game systems is scalability. 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. Another challenge is to provide a large number of game rooms each hosting a number of game players. A further desired feature for network-based game systems is to effectively provide a wide selection of games to the players while maintaining the same performance in real-time responses to a large number of players or offering many games to game players within a unified social context and user identity.
  • SUMMARY
  • Implementations of the system may include one or more of the following. In one aspect, the present invention relates to a network-based game system, comprising:
  • a computer network configured to communicate with game client applications running on a plurality of computer devices, wherein at least two of the game client applications are engaged in the same game room;
  • a first server connected to the computer network, configured to store a game engine application capable of communicating with the plurality of game client applications;
  • a computer storage device connected to the computer network, configured to store a protocol for message encryption and message decryption; and
  • a second server connected to the computer network, configured to store a game-system- interface (GSI) program that can receive a plurality of first encrypted messages from the plurality of game client applications and decrypt the first encrypted messages using the protocol stored on the computer storage device.
  • In another aspect, the present invention relates to a network-based game system, comprising:
  • a computer network configured to communicate with game client applications running on a plurality of computer devices, wherein at least two of the game client applications are engaged in the same game room;
  • a first server connected to the computer network, configured to store a game engine application that can
      • a) respond to the game client applications instantaneously after receiving requests from the game client applications, and
      • b) send requests to the game client applications and instantaneously receive responses from the game client applications;
  • a computer storage device connected to the computer network, configured to store a plurality of protocols for message encryption and message decryption; and
  • a second server connected to the computer network, configured to store a game-system- interface (GSI) program that can receive a plurality of first encrypted messages from the plurality of game client applications and decrypt the first encrypted messages using one or more of the plurality of the protocols.
  • In yet another aspect, the present invention relates to a network-based game system, comprising:
  • a computer network configured to communicate with game client applications running on a plurality of computer devices, wherein at least two of the game client applications are engaged in the same game room;
  • a first server connected to the computer network, configured to store a game engine application that can
      • a) respond to the game client applications instantaneously after receiving requests from the game client applications, and
      • b) send requests to the game client applications and instantaneously receive responses from the game client applications;
  • a computer storage device connected to the computer network, configured to store a plurality of protocols for message encryption and message decryption; and
  • a second server connected to the computer network, configured to store a game-system- interface (GSI) controller and a GSI model,
  • wherein the GSI controller can receive a plurality of first encrypted messages from the plurality of game client applications, decrypt the first encrypted messages, and encrypt second encrypted messages to be sent to the game client applications using one or more of the protocols stored on the computer storage device and the GSI model can store game application logic and develop response messages to be encrypted in the second encrypted messages in accordance with the application logic.
  • Implementations of the system may include one or more of the following. The first server can be configured to store a game engine application capable of communicating with the plurality of game client applications in a persistent network connection. The computer storage device can be configured to store a plurality of protocols for message encryption and message decryption and the game-system-interface (GSI) program can decrypt the first encrypted messages using one or more of the plurality of the protocols. The game engine application can be configured to broadcast to the plurality of client applications in the same game room. The game engine application can be configured to receive requests from the game client application and instantaneously respond to the requests. The first encrypted messages can include game status information comprising one or more of game statistics and game configurations associated with at least one of the game client applications. At least one of the first encrypted messages can include a serialized message that can be serialized by the protocol. The first encrypted messages can include one or more of user identification, session identification, and game room information associated with the game client applications. The network-based game system can further include a data storage device connected to the computer network configured to receive information associated with the first encrypted messages from the GSI program and store the information associated with the first encrypted messages. The GSI program can be configured to receive requests from the game client applications in the first encrypted messages and to respond to the requests by sending second encrypted messages to the game client applications. The second encrypted messages can be encrypted using one or more of the plurality of protocols stored on the computer storage device. The first encrypted messages can include authentication information and the second encrypted messages include verification information. The GSI program can include a GSI controller configured to decrypt the first encrypted messages and encrypt response messages using one or more of the protocols stored on the computer storage device. The GSI program can include a GSI model that stores game application logic and is configured to develop the response messages in accordance with the application logic. The game client applications can be executed by a plug-in to a web browser installed on the computer device. The GSI program can be configured to communicate with the game client applications in a non-persistent network connection.
  • Embodiments may include one or more of the following advantages. An advantage of the present invention is that the disclosed network-based gaming system can provide game applications simultaneously to many remote game players. A plurality of game players can play the same game in the same game room from different locations convenient to them. Many game players can play the same game applications while competing against each other or play separate game applications. The persistent communication paths allow game applications to be played with instantaneous responses without network latency at multiple remote locations.
  • Another advantage of the invention is that the disclosed system can provide many game applications to remote game players over a computer network using different serialization encryption protocols such as PHP, XML, AMF, XML-RPC, etc. The game players can access game applications based on any of the protocols from a single network-based service. The selection of the game applications is significantly increased. Different game applications used by different game players can use different encryption protocols to play the same game or even play in the same game room.
  • Yet another advantage of the present invention is that the disclosed system can provide game applications to remote game players with persistent network connections while efficiently tracking and updating the game status of each of the players in an efficient manner. The disclosed system includes a persistent communication path that provides instantaneous message exchanges for the game applications in real time. The disclosed system includes a separate communication path that can respond to the requests game applications without consuming significant network resources and store game status information in storage devices.
  • Still another advantage of the invention is that the disclosed game system is efficient. The disclosed game system includes a communication path to the game client that does not need to be persistent through a game session. A call from the game client is answered and the communication session is closed and network connection freed up.
  • Because of its efficient communication architecture, the disclosed system can be scaled up easily without consuming significant network bandwidth as in the prior art systems. It can host millions of game players in millions of game sessions over a computer network, which is one or more orders of magnitudes higher than conventional network-based game systems.
  • Another advantage of the present invention is that it allows scalability to the hosting of a large number of game players in the same game room or in different game rooms. The communications to the game client application are divided into a persistent communication and an efficient but non-persistent communication path. The amount of information communicated in real time is minimized. A flexible layer by game-system-interface (GSI) program handles the non-persistent communications, which allows the network-based game system to handle a large number and variety of game client applications.
  • The 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 the network-based game system in accordance with the present invention.
  • FIG. 2 shows a game client application that can be running on a computer device shown in FIG. 1.
  • FIG. 3 shows a game engine application that can be stored on a game server shown in FIG. 1.
  • FIG. 4A shows a Game System Interface application that is stored on a server in the network-based game system shown in FIG. 1 in accordance to an embodiment of the present invention.
  • FIG. 4B shows a Game System Interface application that is stored on a web server of FIG. 1 in accordance to another embodiment of the present invention.
  • FIG. 5 shows a system diagram of a persistent and efficient game architecture compatible with the network-based game system of FIG. 1.
  • FIG. 6 shows a system diagram of a game architecture compatible with the network-based game system of FIG. 1. The game architecture is capable of communicating in serialized messages under a plurality of communication protocols.
  • FIG. 7 shows a table that lists a plurality of game engines that can communicate under different serialization protocols.
  • FIG. 8 shows a flow chart for the communication between the Game System Interface application and a game client application or a game engine in a network-based game system.
  • DETAILED DESCRIPTION
  • Reference will now be made in detail to the preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the preferred embodiments, it will be understood that they are not intended to limit the invention to these embodiments. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. Furthermore, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention.
  • Shown in FIG. 1, a network-based game system 100 can provide game applications over a communication network 105 to be played on many computer devices 106 and 107. 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., and 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, the SONY PlayStation OR PS2, and/or the Nintendo 64, 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, a server 140, one or more servers 141-143, a database 150, and a storage area network 151. 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, and 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. 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.
  • A game client application 200 can reside on the computer device 106 or 107 as shown in FIG. 2. The game client application 200 can be executed by a plug-in to the web browser application. The game client application 200 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 200 can use the web browser's communication API (Application Programming Interface) to communicate with various servers and devices (115, 121-124, 140-143 etc.) in the network-based game system 100.
  • Specifically, without limitation, 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 is attached to the web browsers running on the computer devices 106 and 107 to allow the web browser play SWF (Small Web Format) movie clips referenced in a webpage. 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 200 can be written in one or more SWF movie clips to be loaded in the web browser. Each game client application 200 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.
  • FIG. 3 shows a game engine application 300 stored on a game server 141, 142, or 143. The game engine application 300 is responsible for providing real-time responses to the game client application 200 during a game session. In the present application, the term “real-time communication” refers to the types of communications facilitated by a persistent network connection. The persistent network connection allows instantaneous and reliable communications between two components over the network without network latency.
  • The game server 141, 142, or 143 on which the game engine application 300 is stored can keep an open socket connection with the computer device 106 or 107. The game engine application 300 and the game client application 200 can send and receive TCP/IP messages to and from each other by writing and reading data to and from the socket. 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 at all time during a game session. A loss of connection in the persistent communication can be interpreted as that the game client application 200 has left the game.
  • The game engine application 300 is compatible with different server software implementations such as Sushi Multiuser Server available at “www.wok2.de”, ElectroServer 3available at “www.electrotank.com”, and Terazona Network Engine available at “www.zona.net”. The network-based game system 100 can include many the game engine applications 300 developed using different server software. Different server software may require serialized messages encrypted under different serialization protocols. The communication protocols with these game engine applications 300 are provided by the GSI program 400.
  • The message serialization and de-serialization are used as examples of the encryption and decryption methods in the disclosed system and methods. The examples are meant to depict the flexibility and capability of the invention system. The present invention is compatible with other encryption and decryption techniques, and associated protocols.
  • The network-based game system 100 includes a Game System Interface (GSI) program 400 that can be stored on a server 140 as shown in FIG. 4A, on the web server 121, 122, or 123 as shown in FIG. 4B, or on other servers such as the game servers 141-143 connected to the computer network. This server that the GSI program 400 resides on can be a single computer or a load-balanced cluster of servers. Each request to the GSI program 400 is an autonomous transaction and therefore does not require a persistent connection between the GSI program 400 and the other party (e.g. the game client application 200 or the game engine application 300).
  • The GSI program 400 provides information to clients such as the game client application 200 in response to requests but does initiate communications. The GSI program 400 can respond to the requests from the game client applications 200 running on the computer devices 106 and 107. Similarly, the GSI program 400 can also provide game information in response to the requests from the game engine application 300.
  • FIG. 5 shows a system diagram of a persistent and efficient game architecture 500 in the network-based game system 100. The persistent and efficient game architecture 500 include the game client application 200, the game engine application 300, and the GSI program 400, which provide a persistent communication path and an efficient but non-persistent communication path for the game client application 200. The GSI program 400 is connected to the database 150 and a Storage Area Network 151 for saving updated data in the current game and retrieving data from the current and past games. The games are run on the game client applications 200 and communicate with the game engine applications 300 through the protocols defined by the game client application 400.
  • An advantageous feature of the disclosed network-based game system is that it includes a persistent communication path and a non-persistent communication path for the remote game client application. The persistent communication path is used for exchanging short and instantaneous messages that a game needs to be updated in real time, but does not need to be stored permanently on data storage. The real-time two-way communications between the game client application 200 and the game engine application 300 are fast and without network latency. There is no cycle time spent on accessing and storing the exchange information on a data storage device. The persistency of the network connection between the game client application 200 and the game engine application 300 typically last through a game session.
  • The non-persistent communication path is efficient, which allows the amount of information communicated in real time to be minimized. As a result, the network-based system is scalable to a large number of game players. The non-persistent communication path is used to communicate information that is of “long-term” use to the games or the game players and does not require instantaneous and resource-intensive communications. The information may include the attributes and statistics of the game player such as his or her game scores, the equipment he or she purchased to be used in the games, the “money”he or she owns from the past and the current games, and so on. The information not only is needed for the current game, but also needs to be stored and retrieved for future games. Thus the information exchanged between the game client application 200 and the GSI program 400 often involves the access or retrieving data from the database 150 and a data storage device such as SAN 151, and writing and saving data to the database 150 and a data storage device. The interactions between the game client application 200 and the GSI program 400 are usually single requests that can be answered. The connection is then closed. In other words, no persistent network connection is required for these communications throughout a game session.
  • The persistent and efficient game architecture 500 shown in FIG. 5 differs from certain prior art systems that integrate the different types of communications into the same application layer. The same application layer handles real-time persistent communications and communications that do not need to be real time (which is in contrast to the separate game engine application 300 and the GSI 400 provided in the persistent and efficient game architecture 500). This type of prior art systems requires persistent network connections for both types of server communications throughout the game sessions. Each of the server instances is to be managed by a much larger and more resource-intensive application layer than the presently disclosed system. The burden to the application layer grows rapidly as the number of game clients or the number of games grows, which often increases the chance for failure, slows the responses, or degrades reliability. Furthermore, the present disclosed system is much more scalable compared to this type of prior art systems.
  • Each game engine application 300 can support one or many game client applications 200. The GSI program 400 can support many game client applications 200 and many game engine applications 300. The game logic can be stored inside the game client application 200, for example, in the form of compiled flash SWF files that are loaded on the web browsers on the computer devices 106 and 107.
  • The game client application 200 can be loaded via web browser running on the computer devices 106 and 107. The game client application 200 can include many game logics to allow a player to play many games. Alternatively, the game play logic can also be remotely stored on a server (such as 121-124 or 140-143) in the network-based game system 100. For example, the game logic can be included in the game engine application 300 or the GSI program 400 that can typically accommodate 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 (such as 121-124 or 140-143) or downloaded to the game players' computer devices 106 and 107 before a session starts.
  • 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 200 on a web page presented by a web browser application running on a computer device 106 or 107. In the present invention, a game session refers to an active connection between the client game application 200 and other programs such as game engine application 300 and GSI program 400 stored in the network-based game system 100. The game client application 200 can also be in the form of stream media (e.g. Flash SWF) so a game can keep loading as game-play starts.
  • In one embodiment, a game can be started and a game session can be initiated directly from the game client application 200 to the game engine application 300 after authenticating with GSI 400, without the need to access a webpage.
  • Many game client applications can be loaded on a computer device 106 or 107. Each game client application 200 can include game logic for one or more games. In one embodiment, the game client application 200 can be a Flash plug-in provided by Macromedia. 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 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. Each game engine application 300 can support one or many game client applications 200 and thus many game logics.
  • During a game session, each game client application 200 can be supported by a game engine application 300 with a persistent connection in the network-based game system 100, that is, the game client application 200 and the game engine application 300 can send requests to each other and receive instantaneous responses at any time during a game session. A stop in the two-way communications between the game client application 200 and the game engine application 300 is typically interpreted by the game engine application 300 as the leaving of the game session by the game client application 200.
  • The network-based game system 100 can include many game engine applications 300 stored on the game servers 141-143. Each of the game engine applications 300 can be based on different game platforms that may be developed by the game service provider such as Gaia Interactive, Inc., or sourced from a third party game developer. The game player can thus access a wide range of network-based games at many game engine applications 300 that run on game platforms. Different game client applications 200 can be installed on the computer devices to run specific games supported by the corresponding game engine applications 300.
  • During a game session, the game client application 200 can pull information related to the specific game or game session from the game engine application 300. The game engine application 300 can respond to the requests instantaneously. The game engine application 300 can also update the game client application 200 with animations and short-term game information that do not need to be permanently stored. The short-term information, for example, can include the position of a soccer-ball on a field as it is being kicked around, the path a player's avatar is moving along on the field or the current pose an avatar is in, and the instant message chat communication between players in a game room, including text-based chats and emoticons. A game room allows a plurality of remote game players to play the same game with each other. The game players can play team based competitive games such as soccer, ice hockey, or football, or they can play individual based games such as fishing, car race, etc.
  • In another embodiment, the network-based game system 100 can host many game players playing the same game client applications 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 the same game room. In the multi-player game sessions, the game engine application 300 can broadcast updates to many game client applications 200 running on many computer devices 106, 107 that are in the same game room.
  • The game engine application 300 can establish the players in the same game room as peers. The game engine application 300 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 200 in the game room can construct a message and request the game engine application 300 to forward to the message another peer or all the peers in the same game room.
  • The GSI program 400 can respond to the requests from the game client application 200 running on the computer devices 106 and 107. The GSI program 400 typically answers questions but does not initiate requests by the game client applications 200. When a player enters the game website or when the player starts a game session, the game client application 200 requests an authorization from the GSI program 400. The GSI program 400 creates a new session ID for the user at login. The GSI program 400 verifies the user ID and session ID and returns validation message to authenticate the game session. The responses by the GSI program 400 in general do not need to be persistent. For example, they do not have to communicate through SOCKET connections. This flexibility allows a GSL program 400 to answer more calls and enables the network-based game system 100 to handle a large number of game client applications and game players simultaneously.
  • The game client application 200 asks the GSI program 400 which game room to join for a given game. The GSI program 400 checks information received from the game engine applications 300 to see whether or not a game room has been created for that game. If the game room exists, the game client application 200 enters it. If the game room does not exist, the game client application 200 requests the game engine applications 300 to create one. The game engine application 300 creates the game room and passes the information to the GSI program 400 for verification. The GSI program 400 validates and returns a verification message including a new game room ID to the game engine application 300 that in turn returns the verification information to the game client application 200. The game client application enters the new game room. In this sequence of the communications, the GSI program 400 does not initiate the request. It only validates the information in requests it receives.
  • After the game engine applications 300 creates the game room, it writes information about the game room back into the GSI program 400 and waits for the GSI program 400 to validate that the game room is OK. After receiving the validation from the GSI program 400, the game engine application 300 allows the game client application to enter the new game room.
  • The game client application 200 then requests the load of the game. 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 GSI program 400. Instructions inside the SWF also instruct it to display the game environment and run the game interactions.
  • The GSI program 400 returns the variables necessary for loading the game and information for saving game results to the game client application 200. During the game session, the game client application 200 can request the saving of the game results. The GSI program 400 validates the data to be saved and returns whether or not the saving is succeeded. The GSI program 400 also gathers information about all the players in the same game room and broadcast the information to the game room. In general, the GSI program 400 can respond to hundreds of different types of calls by the game client applications 200. The GSI program 400 can typically communicate with game client application 200 in the range of 0.001-0.1 milliseconds depending on network latency and the processing time. The priority for the performance of the GSI program 400 is that it can respond to all the requests, but not necessarily in real time.
  • The GSI program 400 controls the load balance and the distribution of players in the game rooms across multiple game servers 141-143 on which the game engine applications 300 reside. The GSI program 400 verifies that game rooms for a given game are not duplicated by accident. During the game sessions, the game client applications 200 updates the GSI program 400 with game status information such as game statistics and game configurations. Game statistics for example can include game scores of a game player, the asset and money that a player has accumulated, number of games played etc. Game configuration can include game equipment, game location, favorite games, etc.
  • Tokens and validation keys can also be passed from the game engine application 300 to the game client applications 200 to make sure different actions are occurring in the correct order and are not being spoofed by the client game application 200. The game client application 200 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 GSI program 400 sends the game status information to database 150 and storage area network to store the game status information into the user account such that the user can keep his or her record even after the specific game session is ended.
  • An advantage of the present invention is that it allows scalability up to a large number of game players in the same game room or in different game rooms. The communications to the game client applications are divided into persistent real-time communications and efficient but non-persistent communications. The amount of information communicated in real time is minimized. A flexible layer by game-system- interface (GSI) program handles the non-persistent communications, which allows the network-based game system to handle an ever-increasing number and variety of game client applications.
  • The GSI program 400 can also respond to requests from the game engine application 300 as shown in FIG. 5. The GSI program 400 provides information to the game engine application 300 as requested but the GSI program 400 does not initiate messages to the game engine application 300. The game engine application 300 informs the GSI program 400 of all players and game rooms created. The game engine application 300 also sends user ID, session ID, game room ID to the GSI program 400 for validation. The GSI program 400 responds to the game engine application 300 to validate of the game rooms, the game sessions and the user ID. The game engine application 300 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 300), eliminating network latency between the game engine application 300 and the GSI program 400.
  • FIG. 6 shows a system diagram of a game architecture capable of communicating in serialized messages under a plurality of communication protocols. A plurality of game client applications 611-613 can be running on a multiple of computer devices 106 and 107 to support multiple game players to play in the same or different game rooms. Each computer devices 106 and 107 can host multiple of game client applications 611-613. The game client applications 611-613 can communicate with one or more game engine applications 621-623 in communication paths that are persistent through game sessions. The responses are real time without network latency, but the information communicated is specific to each game session and are not required to be stored after a game session is ended. The game engine applications 621-623 can communicate in different languages defined by serialization communication protocols such as PHP (Hypertext Preprocessor), XML, AMF, XML-RPC (Remote Procedure Call), etc.
  • The game client applications 611-613 can also communicate with a Game System Interface (GSI) program 630 in an efficient communication path. The GSI program 630 is intended to provide a logical structure for connecting the game client applications 611-613 to application logic on one or more servers in the network-based game system 100. The GSI program 630 can respond to requests from the game client applications 611-613 and the game engine applications 621-623. Each request/response cycle is a separate session that is not required to be persistent through the game session. Moreover, the requests to and responses by the GSI program 630 can be asynchronous communications. The GSI program 630 includes two application layers: a GSI controller 640 and a GSI model 650. The GSI controller 640 can access a game protocol library 660 that can be stored in a storage device connected in the network. An exemplified table 700 in the game protocol library 660 is shown in FIG. 7. The table 700 lists a plurality of Game IDs such as “Fishing”, “Soccer”, “Halloween”, “Treasure Hunt”, “Survival”, etc. One or more game IDs are supported by a game engine (GEl, GE2, GE3...). The game engines GE1, GE2, GE3... are coded to communicate under different serialization protocols such as PHP, XML, AMF, XML-RPC, and PHP that can be transported using a variety of Internet protocols, including HTTP, SMTP, and MIME. The communication protocols are independent from the operating systems on the computer devices 106 and 107 or on the servers in the network based game system 100. The communication protocols can be independent of the game logic, the game rooms, and the game engine applications. Different game client applications 611-613 can even use many different communication protocols to enter the same game room at the same time. The GSI program 630 provides multiple message serialization protocols, allowing multiple client types to communicate with the game engine applications 621-623, the data base 670 and storage device 671 through the GSI model 650.
  • The GSI program 630 publishes a list of communication protocols to provide a standardized method of message delivery. For instance, a communication protocol can abstract different representations of different types of data into a serialized encapsulation, which allows a common representation of data for different languages used on different computer devices. Importantly, this enables communication with unknown client applications residing on a computer whose programming language is unknown to the GSI program.
  • The communication protocols can include encryption rules and decryption rules for serializing or de-serializing messages as shown in FIG. 7. The game client applications 611-613 and the game engine applications 621-623 are built with libraries that handle the translations under different protocols. For example, the game client applications 611-613 and the game engine applications 621-623 can decode serialized packet into its own internal language to understand data contained in a serialized encapsulation. Similarly, request messages to the GSI program 630 can be encrypted using these natively stored protocols before sent to the GSI program 630. The game client applications 611-613 and the game engine applications 621-623 use the communication protocols to invoke requests to the GSI program 630 and interpret reply messages from GSI program 630.
  • The GSI program 630 provides a single entry point for requests from all game client applications 611-613. This architecture allows the game client applications 611-613 bundle multiple asynchronous requests in the same HTTP requests (i.e. boxcar method). Furthermore, requests in different communications protocols can be bundled in the same HTTP message. The GSI program can subsequently respond to the bundled HTTP requests in one bundled HTTP response. The boxcar method allows efficient information transfer at low communication barrier. In contrast, a game architecture comprising multiple entry points for the game client applications cannot allow the bundling of different requests if the requests are intended to be received by different entry points.
  • The GSI program 630 separates message serialization from application logic. The message serialization and de-serialization is handled by the GSI controller 640 whereas the application logic is processed by the GSI model 650. The GSI program 630 is built using a hybridized MVC (Model View Controller) architecture including two application layers the GSI controller 640 and one or more GSI models 650. The GSI controller 640 is a single gateway responsible for controlling the requests and routing the requests to specific GSI models 650 and then returning the responses back to the game client application 611-613. Each GSI model contains the application logic for each particular method call. The GSI models 650 accept parameters and return responses. The GSI models interpret de-serialize messages sent by the game client applications 613-613 or the game engine applications 621-623 and serialize the responses from the model using the same protocol as the initial request. Views de-serialize messages sent by the client application and then serialize the response from the model using the same protocol as the initial request. In sum, the GSI controller 640 controls what application logic is called. The GSI models 650 house that application logic. The view formats the information provided by the GSI model 650.
  • The architecture comprising the GSI program 621-623 include one or more advantages. The GSI program 621-623 allows a lightweight client to server-side application logic. The GSI program 621-623 allows the connection of two different servers that do not use the same programming language such as Java, Flash ActionScript, and PHP. The serialization protocol makes it possible to represent data-structures that are different from one server to the next. For the data in a received message to be used by a server, the message must be de-serialized and translated into its own language so that the data can be manipulated. The serialization protocol provides a read-only representations of the data. Once the data is de-serialized, it is manipulated by the native language methods until the data needs to be returned. It is then re-serialized and sent off. The client applications can communicate with the servers in the network-based system 100 in different message serialization protocols. Furthermore, the application logic accessible to GSI models 650 can be broken down into a series of discreet requests for specific information and each method invocation answers a specific question.
  • FIG. 8 shows an exemplified flow chart for the communication between Game System Interface application and a game client application or a game engine. A game client application 200, 611-613 submits a request to a URL or other communication layer, which is received by the web server 121-124. In step 810, the web server 121-124 instantiates a GSI controller 640 to handle the request. In step 820, the GSI controller 640 evaluates the request and determines which communication protocol is to be used. The communication protocol may be indicated in a header in the request message or stored at a storage location defined by an URL. The GSI controller 640 then instantiates a view object from the game protocol library 660. The view object can include decryption and encryption rules for the protocol. The GSI controller 640 asks the view object to de-serialize the request. The view object de-serializes the request in step 830 and returns the request in a standardized format to the GSI controller 640. The GSI controller 640 evaluates the request in step 850. The GSI controller 640 instantiates a GSI model 650 to handle different sections of the request. The GSI model 650 accepts the parameters passed in by the GSI controller 640 and returns a response in step 860. The GSI controller 640 captures the result of these operations and passes them to the view object. The view object serializes the response in step 870. The GSI controller 640 returns the serialized response to the game client application 200, 611-613. A GSI program 621-623 closes the request. The message from the game client application 200, 611-613 often includes game status information that need to be stored in the player's account to allow the information to be available after the game session ends. The game status information can include game scores of a game player, the asset and money that a player has accumulated, game equipment, and game location. A DAO (Data Access Object) is instantiated in step 880. A database query (e.g. SQL query) is instantiated to update the database 150, 670 in step 890. The game status information in the request is written in the storage device 671 in step 895. The request/response communication cycles between the game engine applications 300, 621-623 and the GSI program 400, 650 can be conducted in a similar fashion as described above.
  • 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.

Claims (20)

1. A network-based game system, comprising:
a computer network configured to communicate with game client applications running on a plurality of computer devices, wherein at least two of the game client applications are engaged in the same game room;
a first server connected to the computer network, configured to store a game engine application capable of communicating with the plurality of game client applications;
a computer storage device connected to the computer network, configured to store a protocol for message encryption and message decryption; and
a second server connected to the computer network, configured to store a game-system-interface (GSI) program that can receive a plurality of first encrypted messages from the plurality of game client applications and decrypt the first encrypted messages using the protocol stored on the computer storage device.
2. The network-based game system of claim 1, wherein the first server is configured to store a game engine application capable of communicating with the plurality of game client applications in a persistent network connection.
3. The network-based game system of claim 1, wherein the computer storage device is configured to store a plurality of protocols for message encryption and message decryption and the game-system-interface (GSI) program can decrypt the first encrypted messages using one or more of the plurality of the protocols.
4. The network-based game system of claim 1, wherein the game engine application is configured to broadcast to the plurality of client applications in the same game room.
5. The network-based game system of claim 1, wherein the game engine application is configured to receive requests from the game client application and instantaneously respond to the requests.
6. The network-based game system of claim 1, wherein the first encrypted messages comprise game status information comprising one or more of game statistics and game configurations associated with at least one of the game client applications.
7. The network-based game system of claim 1, wherein at least one of the first encrypted messages includes a serialized message that can be serialized by the protocol.
8. The network-based game system of claim 1, wherein the first encrypted messages include one or more of user identification, session identification, and game room information associated with the game client applications.
9. The network-based game system of claim 1, further comprising
a data storage device connected to the computer network, configured to receive information associated with the first encrypted messages from the GSI program and store the information associated with the first encrypted messages.
10. The network-based game system of claim 1, wherein the GSI program is configured to receive requests from the game client applications in the first encrypted messages and to respond to the requests by sending second encrypted messages to the game client applications.
11. The network-based game system of claim 10, wherein the second encrypted messages are encrypted using one or more of the plurality of protocols stored on the computer storage device.
12. The network-based game system of claim 10, wherein the first encrypted messages include authentication information and the second encrypted messages include verification information.
13. The network-based game system of claim 1, wherein the GSI program comprises a GSI controller configured to decrypt the first encrypted messages and encrypt response messages using one or more of the protocols stored on the computer storage device.
14. The network-based game system of claim 13, wherein the GSI program comprises a GSI model that stores game application logic and is configured to develop the response messages in accordance with the application logic.
15. The network-based game system of claim 1, wherein the game client applications are executed by a plug-in to a web browser installed on the computer device.
16. The network-based game system of claim 1, wherein the GSI program is configured to communicate with the game client applications in a non-persistent network connection.
17. A network-based game system, comprising:
a computer network configured to communicate with game client applications running on a plurality of computer devices, wherein at least two of the game client applications are engaged in the same game room;
a first server connected to the computer network, configured to store a game engine application that can
a) respond to the game client applications instantaneously after receiving requests from the game client applications, and
b) send requests to the game client applications and instantaneously receive responses from the game client applications;
a computer storage device connected to the computer network, configured to store a plurality of protocols for message encryption and message decryption; and
a second server connected to the computer network, configured to store a game-system-interface (GSI) program that can receive a plurality of first encrypted messages from the plurality of game client applications and decrypt the first encrypted messages using one or more of the plurality of the protocols.
18. The network-based game system of claim 17, wherein the game engine application is configured to broadcast to the plurality of client applications in the same game room.
19. The network-based game system of claim 17, wherein the first encrypted messages comprise game status information comprising one or more of game statistics and game configurations associated with at least one of the game client applications.
20. A network-based game system, comprising:
a computer network configured to communicate with game client applications running on a plurality of computer devices, wherein at least two of the game client applications are engaged in the same game room;
a first server connected to the computer network, configured to store a game engine application that can
a) respond to the game client applications instantaneously after receiving requests from the game client applications, and
b) send requests to the game client applications and instantaneously receive responses from the game client applications;
a computer storage device connected to the computer network, configured to store a plurality of protocols for message encryption and message decryption; and
a second server connected to the computer network, configured to store a game-system-interface (GSI) controller and a GSI model,
wherein the GSI controller can receive a plurality of first encrypted messages from the plurality of game client applications, decrypt the first encrypted messages, and encrypt second encrypted messages to be sent to the game client applications using one or more of the protocols stored on the computer storage device and the GSI model can store game application logic and develop response messages to be encrypted in the second encrypted messages in accordance with the application logic.
US11/250,681 2005-10-14 2005-10-14 Multi-player game architecture Abandoned US20070087829A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/250,681 US20070087829A1 (en) 2005-10-14 2005-10-14 Multi-player game architecture
CNA2006101322597A CN1949778A (en) 2005-10-14 2006-10-13 Multi-player game architecture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/250,681 US20070087829A1 (en) 2005-10-14 2005-10-14 Multi-player game architecture

Publications (1)

Publication Number Publication Date
US20070087829A1 true US20070087829A1 (en) 2007-04-19

Family

ID=37948806

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/250,681 Abandoned US20070087829A1 (en) 2005-10-14 2005-10-14 Multi-player game architecture

Country Status (2)

Country Link
US (1) US20070087829A1 (en)
CN (1) CN1949778A (en)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009009969A1 (en) * 2007-07-13 2009-01-22 Tencent Technology (Shenzhen) Company Limited Service application platform and method for accessing service application platform
US20090036216A1 (en) * 2007-07-30 2009-02-05 Trey Ratcliff Video game for interactive engagement between multiple on-line participants in competition over internet websites
US20090181774A1 (en) * 2007-07-30 2009-07-16 Jg Games Holdings, Llc Video game for interactive engagement between multiple on-line participants in competition over internet websites
US20090179917A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Proxy direct 3-d device and remote rendering
US20100100723A1 (en) * 2007-07-13 2010-04-22 Tencent Technology (Shenzhen) Company Ltd. Service application platform and method for accessing service application platform
US20100285858A1 (en) * 2009-05-05 2010-11-11 Microsoft Corporation Massively multiplayer game with shared gameplay experience
CN102355489A (en) * 2011-08-17 2012-02-15 焦秀琴 Method, system, server and client side for displaying and operating 3D (Three-Dimensional) game
US20120122528A1 (en) * 2010-11-15 2012-05-17 Bally Gaming, Inc. System and method for augmented reality gaming using a mobile device
CN102609629A (en) * 2012-04-16 2012-07-25 厦门游家网络有限公司 Method and device for batch manufacturing medal games in flash game
CN102663109A (en) * 2012-04-16 2012-09-12 厦门游家网络有限公司 Method and device for batch adding of point ranking function for Flash game
US20120321008A1 (en) * 2011-06-17 2012-12-20 Qualcomm Incorporated Cooperative data transport
US20120329555A1 (en) * 2009-03-03 2012-12-27 E3,Llc System and method for gaming using wireless communication devices
CN103391276A (en) * 2012-05-10 2013-11-13 腾讯科技(深圳)有限公司 Method and device for display control
US20140235170A1 (en) * 2013-02-21 2014-08-21 Tencent Technology (Shenzhen) Company Limited Methods and systems for connecting multiple devices online
US9264353B2 (en) 2011-09-22 2016-02-16 Qualcomm Incorporated Dynamic subflow control for a multipath transport connection in a wireless communication network
US9455897B2 (en) 2010-04-06 2016-09-27 Qualcomm Incorporated Cooperative bandwidth aggregation using multipath transport
US20160285910A1 (en) * 2015-03-24 2016-09-29 Global Data Sentinel, Inc. Transport envelope
US9875600B2 (en) 2010-12-15 2018-01-23 Bally Gaming, Inc. System and method for augmented reality using a user-specific card
US11185785B2 (en) 2010-11-08 2021-11-30 Utherverse Gaming Llc Single user multiple presence in multi-user game
US11452938B2 (en) 2014-08-12 2022-09-27 Utherverse Gaming Llc Method, system and apparatus of recording and playing back an experience in a virtual worlds system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100539599C (en) * 2007-06-29 2009-09-09 腾讯科技(深圳)有限公司 A kind of method and system that realize that game on line is invited
CN102591629A (en) * 2011-01-18 2012-07-18 腾讯科技(深圳)有限公司 Method and apparatus for adding image element
CN103713890B (en) * 2012-10-09 2017-03-22 厦门吉比特网络技术股份有限公司 Method of developing browser online game clients

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214703A (en) * 1990-05-18 1993-05-25 Ascom Tech Ag Device for the conversion of a digital block and use of same
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
US20010047406A1 (en) * 2000-04-13 2001-11-29 Netilla Networks Inc. Apparatus and accompanying methods for providing, through a centralized server site, an integrated virtual office environment, remotely accessible via a network-connected web browser, with remote network monitoring and management capabilities
US20020142845A1 (en) * 2001-03-09 2002-10-03 Randall Whitten Jon Marcus Method and apparatus for displaying information regarding stored data in a gaming system
US6468160B2 (en) * 1999-04-08 2002-10-22 Nintendo Of America, Inc. Security system for video game system with hard disk drive and internet access capability
US20040093515A1 (en) * 2002-11-12 2004-05-13 Microsoft Corporation Cross platform network authentication and authorization model
US20040097287A1 (en) * 2002-11-14 2004-05-20 Richard Postrel Method and system for gaming over a computer network
US20040152519A1 (en) * 2000-11-14 2004-08-05 Andy Wang Multi-player game employing dynamic re-sequencing
US20040152517A1 (en) * 2000-02-14 2004-08-05 Yon Hardisty Internet based multiplayer game system
US6800031B2 (en) * 2002-04-15 2004-10-05 Microsoft Corporation Method of conducting an interactive competition
US20040266533A1 (en) * 2003-04-16 2004-12-30 Gentles Thomas A Gaming software distribution network in a gaming system environment
US20060212407A1 (en) * 2005-03-17 2006-09-21 Lyon Dennis B User authentication and secure transaction system
US7214133B2 (en) * 2003-05-09 2007-05-08 Microsoft Corporation Method and apparatus for retrieving recorded races for use in a game
US7584149B1 (en) * 2001-02-26 2009-09-01 American Express Travel Related Services Company, Inc. System and method for securing data through a PDA portal

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214703A (en) * 1990-05-18 1993-05-25 Ascom Tech Ag Device for the conversion of a digital block and use of same
US5586257A (en) * 1994-05-05 1996-12-17 Perlman; Stephen G. Network architecture to support multiple site real-time video games
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
US6468160B2 (en) * 1999-04-08 2002-10-22 Nintendo Of America, Inc. Security system for video game system with hard disk drive and internet access capability
US6251017B1 (en) * 1999-04-21 2001-06-26 David Leason Game or lottery with a reward validated and/or redeemed online
US20040152517A1 (en) * 2000-02-14 2004-08-05 Yon Hardisty Internet based multiplayer game system
US6920502B2 (en) * 2000-04-13 2005-07-19 Netilla Networks, Inc. Apparatus and accompanying methods for providing, through a centralized server site, an integrated virtual office environment, remotely accessible via a network-connected web browser, with remote network monitoring and management capabilities
US20020032725A1 (en) * 2000-04-13 2002-03-14 Netilla Networks Inc. Apparatus and accompanying methods for providing, through a centralized server site, an integrated virtual office environment, remotely accessible via a network-connected web browser, with remote network monitoring and management capabilities
US20010047406A1 (en) * 2000-04-13 2001-11-29 Netilla Networks Inc. Apparatus and accompanying methods for providing, through a centralized server site, an integrated virtual office environment, remotely accessible via a network-connected web browser, with remote network monitoring and management capabilities
US6981041B2 (en) * 2000-04-13 2005-12-27 Aep Networks, Inc. Apparatus and accompanying methods for providing, through a centralized server site, an integrated virtual office environment, remotely accessible via a network-connected web browser, with remote network monitoring and management capabilities
US20040152519A1 (en) * 2000-11-14 2004-08-05 Andy Wang Multi-player game employing dynamic re-sequencing
US7584149B1 (en) * 2001-02-26 2009-09-01 American Express Travel Related Services Company, Inc. System and method for securing data through a PDA portal
US20020142845A1 (en) * 2001-03-09 2002-10-03 Randall Whitten Jon Marcus Method and apparatus for displaying information regarding stored data in a gaming system
US6800031B2 (en) * 2002-04-15 2004-10-05 Microsoft Corporation Method of conducting an interactive competition
US20040093515A1 (en) * 2002-11-12 2004-05-13 Microsoft Corporation Cross platform network authentication and authorization model
US20040097287A1 (en) * 2002-11-14 2004-05-20 Richard Postrel Method and system for gaming over a computer network
US20040266533A1 (en) * 2003-04-16 2004-12-30 Gentles Thomas A Gaming software distribution network in a gaming system environment
US7214133B2 (en) * 2003-05-09 2007-05-08 Microsoft Corporation Method and apparatus for retrieving recorded races for use in a game
US20060212407A1 (en) * 2005-03-17 2006-09-21 Lyon Dennis B User authentication and secure transaction system

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100100723A1 (en) * 2007-07-13 2010-04-22 Tencent Technology (Shenzhen) Company Ltd. Service application platform and method for accessing service application platform
WO2009009969A1 (en) * 2007-07-13 2009-01-22 Tencent Technology (Shenzhen) Company Limited Service application platform and method for accessing service application platform
US20090036216A1 (en) * 2007-07-30 2009-02-05 Trey Ratcliff Video game for interactive engagement between multiple on-line participants in competition over internet websites
US20090181774A1 (en) * 2007-07-30 2009-07-16 Jg Games Holdings, Llc Video game for interactive engagement between multiple on-line participants in competition over internet websites
US8120622B2 (en) 2008-01-15 2012-02-21 Microsoft Corporation Proxy direct 3-D device and remote rendering
US20090179917A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Proxy direct 3-d device and remote rendering
US20120329555A1 (en) * 2009-03-03 2012-12-27 E3,Llc System and method for gaming using wireless communication devices
US10244393B2 (en) * 2009-03-03 2019-03-26 Mobilitie, Llc System and method for gaming using wireless communication devices
US8409010B2 (en) * 2009-05-05 2013-04-02 Microsoft Corporation Massively multiplayer game with shared gameplay experience
US20100285858A1 (en) * 2009-05-05 2010-11-11 Microsoft Corporation Massively multiplayer game with shared gameplay experience
US9455897B2 (en) 2010-04-06 2016-09-27 Qualcomm Incorporated Cooperative bandwidth aggregation using multipath transport
US11931655B2 (en) 2010-11-08 2024-03-19 Utherverse Gaming Llc Single user multiple presence in multi-user game
US11185785B2 (en) 2010-11-08 2021-11-30 Utherverse Gaming Llc Single user multiple presence in multi-user game
US9940788B2 (en) 2010-11-15 2018-04-10 Bally Gaming, Inc. System and method for augmented reality gaming using a mobile device
US10417865B2 (en) 2010-11-15 2019-09-17 Bally Gaming, Inc. System and method for augmented reality gaming using a mobile device
US9697683B2 (en) 2010-11-15 2017-07-04 Bally Gaming, Inc. System and method for augmented reality gaming using a mobile device
US8821274B2 (en) * 2010-11-15 2014-09-02 Bally Gaming, Inc. System and method for augmented reality gaming using a mobile device
US9355519B2 (en) 2010-11-15 2016-05-31 Bally Gaming, Inc. System and method for augmented reality gaming using a mobile device
US20120122528A1 (en) * 2010-11-15 2012-05-17 Bally Gaming, Inc. System and method for augmented reality gaming using a mobile device
US10204476B2 (en) 2010-12-15 2019-02-12 Bally Gaming, Inc. System and method for augmented reality using a user-specific object
US9875600B2 (en) 2010-12-15 2018-01-23 Bally Gaming, Inc. System and method for augmented reality using a user-specific card
US20120321008A1 (en) * 2011-06-17 2012-12-20 Qualcomm Incorporated Cooperative data transport
US9451415B2 (en) * 2011-06-17 2016-09-20 Qualcomm Incorporated Cooperative data transport
CN102355489A (en) * 2011-08-17 2012-02-15 焦秀琴 Method, system, server and client side for displaying and operating 3D (Three-Dimensional) game
US9264353B2 (en) 2011-09-22 2016-02-16 Qualcomm Incorporated Dynamic subflow control for a multipath transport connection in a wireless communication network
CN102663109A (en) * 2012-04-16 2012-09-12 厦门游家网络有限公司 Method and device for batch adding of point ranking function for Flash game
CN102609629A (en) * 2012-04-16 2012-07-25 厦门游家网络有限公司 Method and device for batch manufacturing medal games in flash game
US9333431B2 (en) 2012-05-10 2016-05-10 Tencent Technology (Shenzhen) Company Limited Method, device and computer storage medium for controlling displaying
WO2013166940A1 (en) * 2012-05-10 2013-11-14 腾讯科技(深圳)有限公司 Display control method and device, and computer storage medium
CN103391276A (en) * 2012-05-10 2013-11-13 腾讯科技(深圳)有限公司 Method and device for display control
US20140235170A1 (en) * 2013-02-21 2014-08-21 Tencent Technology (Shenzhen) Company Limited Methods and systems for connecting multiple devices online
US11452938B2 (en) 2014-08-12 2022-09-27 Utherverse Gaming Llc Method, system and apparatus of recording and playing back an experience in a virtual worlds system
US11638871B2 (en) 2014-08-12 2023-05-02 Utherverse Gaming Llc Method, system and apparatus of recording and playing back an experience in a virtual worlds system
US20160285910A1 (en) * 2015-03-24 2016-09-29 Global Data Sentinel, Inc. Transport envelope
US10484339B2 (en) 2015-03-24 2019-11-19 Global Data Sentinel, Inc. Pervasive data security
US10505905B2 (en) * 2015-03-24 2019-12-10 Global Data Sentinel, Inc. Transport envelope

Also Published As

Publication number Publication date
CN1949778A (en) 2007-04-18

Similar Documents

Publication Publication Date Title
US20070087829A1 (en) Multi-player game architecture
US7695370B2 (en) Massively scalable multi-player game system
US20070050838A1 (en) Multi-protocol game engine
US20090215541A1 (en) Network system capable of serving a large number of interactive users
US20080076573A1 (en) Network-based game system
US20080070688A1 (en) Real-time gaming system having scalable database
US10130889B2 (en) Metrics-based gaming operations
US9630113B1 (en) Collaborative online gaming system and method
US9138647B2 (en) Game play skill training
US8650253B2 (en) System and method for integrating ancillary content into applications
US7736233B2 (en) System and method for entertainment game
US20090325712A1 (en) Player character matchmaking with distributed peer-to-peer functionality
US20120077580A1 (en) Dynamic asset and obstacle generation in online games
US8762430B1 (en) Key subscription for distributed systems
JP2007505673A (en) Game system using network
US9320969B2 (en) Online game for matching text with images
US9609087B2 (en) Sending and receiving configurable buckets of communications
US10471350B2 (en) Persistent game sessions with multiplayer support
US20070021212A1 (en) Persistent and effecient game architecture
KR100895199B1 (en) System and method for setting a character's moving path in virtual space world
Vähä Applying microservice architecture pattern to a design of an MMORPG backend
Trinta et al. Evaluating a middleware for crossmedia games
KR102606834B1 (en) System and method for providing game service
Hu et al. Plug: Virtual worlds for millions of people
KR101862269B1 (en) Social network service system interlocked with online game and method thereof

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

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