Dynamic player management
Abstract
A dynamic management method for game players is disclosed. The present invention relates to an application program configured to run in a multi-participant environment on a computer network. The application manages multiple participants in an online session of a multi-user application. If one of the participants exits the session, the session can continue without interruption. The application program initiates an online session of a multi-user application program, where the online session includes two or more participants and is composed of several network computers that are communicatively linked to a computer network. If the application detects that a first participant has been disconnected from the online session (810), where the first participant is responsible for managing certain management functions related to running a multi-user application (830), then the application communicates The network broadcasts an announcement (820) to the existing participants of the online session, thereby notifying the existing participants that the first participant has been disconnected from the online session. Then the launched application reassigns the functions related to the first participant to an existing participant of the online session (840). Participants can communicate peer-to-peer, or they can perform server tasks in a client-server model.
Term
Term ended
Projected expiry passed 18 March 2023, 3.5 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
24 claims: 6 independent, 18 dependent
- 1一种管理多用户应用程序的一个在线会话中的参与者的方法,包括:启动多用户应用程序的一个在线会话,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成;检测到一个第一参与者已经与在线会话断开连接,其中,该第一参与者负责管理与运行多用户应用程序有关的一定管理功能;通过通信网络向在线会话的现有参与者广播一个通告,从而通知现有的参与者该第一参与者已经与在线会话断开连接;把与第一参与者有关的功能重新分配给在线会话的一个现有的参与者。
- 2根据权利要求1的方法,进一步包括获得一个新的参与者,以取代现有的参与者。
- 3根据权利要求1的方法,其中,新的参与者受到人的控制。
- 4根据权利要求1的方法,其中,新的参与者受到网络计算机的控制。
- 5根据权利要求1的方法,其中,多用户应用程序是一个游戏应用程序,而且管理功能包括记分。
- 6一种管理多用户应用程序的一个在线会话中的参与者的方法,包括:启动多用户应用程序的一个在线会话,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成;检测到一个第一参与者已经与在线会话断开连接;通过通信网络向在线会话的现有参与者广播一个参与者断开连接的通告,从而通知现有的参与者该第一参与者已经与在线会话断开连接;获得一个新的参与者,以取代退出在线会话的第一参与者。
- 7根据权利要求6的方法,其中,该第一参与者负责管理与运行多用户应用程序有关的一定管理功能,以及进一步包括把与第一参与者有关的功能重新分配给在线会话的另一个参与者。
- 8根据权利要求7的方法,其中,把与第一参与者有关的功能重新分配给在线会话的另一个参与者,是重新分配给新的参与者。
- 9根据权利要求6的方法,其中,新的参与者受到人的控制。
- 10根据权利要求6的方法,其中,新的参与者受到网络计算机的控制。
- 11根据权利要求7的方法,其中,进一步包括根据现有参与者的通信环境,把与第一参与者有关的功能重新分配给在线会话的另一个参与者。
- 12根据权利要求7的方法,其中,把与第一参与者有关的功能重新分配给在线会话的另一个参与者,是随机地重新分配给另一个参与者。
- 13一种管理多用户应用程序的一个在线会话中的参与者的系统,该系统包括执行程序指令并接收一个数据集的一个或多个处理器,以及:启动多用户应用程序的一个在线会话,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成;检测到一个第一参与者已经与在线会话断开连接,其中,该第一参与者负责管理与运行多用户应用程序有关的一定管理功能;通过通信网络向在线会话的现有参与者广播一个通告,从而通知现有的参与者该第一参与者已经与在线会话断开连接;把与第一参与者有关的功能重新分配给在线会话的一个现有的参与者。
- 14根据权利要求13的系统,其中,这些处理器进一步执行程序指令,获得一个新的参与者,以取代现有的参与者。
- 15根据权利要求13的系统,其中,新的参与者受到人的控制。
- 16根据权利要求13的系统,其中,新的参与者受到网络计算机的控制。
- 17根据权利要求13的系统,其中,多用户应用程序是一个游戏应用程序,而且管理功能包括记分。
- 18一种程序产品,用于在执行一种计算机可读介质中记录的程序步骤的一个计算机系统中,执行一种管理多用户应用程序产品的一个在线会话中的参与者的方法,其中,程序步骤包括:启动多用户应用程序的一个在线会话,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成;检测到一个第一参与者已经与在线会话断开连接,该第一参与者负责管理与运行多用户应用程序有关的一定管理功能;通过通信网络向在线会话的现有参与者广播一个通告,从而通知现有的参与者该第一参与者已经与在线会话断开连接;把与第一参与者有关的功能重新分配给在线会话的一个现有的参与者。
- 19根据权利要求18的程序产品,其中,程序步骤进一步包括获得一个新的参与者,以取代现有的参与者。
- 20根据权利要求18的程序产品,其中,新的参与者受到人的控制。
- 21根据权利要求18的程序产品,其中,新的参与者受到网络计算机的控制。
- 22根据权利要求18的程序产品,其中,多用户应用程序是一个游戏应用程序,而且管理功能包括记分。
- 23一种管理多用户应用程序的一个在线会话中的参与者的系统,该系统包括执行程序指令并接收一个数据集的一个或多个处理器,以及:启动多用户应用程序的一个在线会话,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成;检测到一个第一参与者已经与在线会话断开连接;通过通信网络向在线会话的现有参与者广播一个参与者断开连接的通告,从而通知现有的参与者该第一参与者已经与在线会话断开连接;获得一个新的参与者,以取代退出在线会话的第一参与者。
- 24一种程序产品,用于在执行一种计算机可读介质中记录的程序步骤的一个计算机系统中,执行一种管理多用户应用程序产品的一个在线会话中的参与者的方法,其中,程序步骤包括:启动多用户应用程序的一个在线会话,该在线会话包括两个或者更多参与者,由通信链接到一个计算机网络的若干网络计算机组成;检测到一个第一参与者已经与在线会话断开连接;通过通信网络向在线会话的现有参与者广播一个参与者断开连接的通告,从而通知现有的参与者该第一参与者已经与在线会话断开连接;获得一个新的参与者,以取代退出在线会话的第一参与者。
Independent claims24
69 paragraphs, as filed
Game player dynamic management
Technical field
Generally speaking, the present invention relates to a computer network, and more specifically, to an application program run by a plurality of users in a computer network.
Background technique
The use of computer networks, such as local area networks and the Internet, as the backbone of various transactions and interactions between parties is increasing. From online banking where bank customers can process financial transactions on a computer network, to online games where players can participate in various games through the Internet, service providers are increasingly providing various services through computer networks. At present, there are various computer network structures that facilitate transaction processing and interaction.
One type of structure is the classic client-server structure, as shown in Figure 1. In this structure, a dedicated server computer 110 communicates with one or more client computers 120 through a network, such as the Internet. The client computer 120 makes a service request to the server computer 110, and the server computer 110 transmits data to the client computer 120 that made the request through the network, and the request is satisfied. The server computer 110 can be connected to a data storage device or other computer equipment to facilitate transaction processing between the client and the server computer. A characteristic of the client-server structure is that since client computers are only limited to communicating with server computers, client computers cannot communicate directly with each other.
For example, this client-server structure runs in an online game environment, and the server computer 110 is responsible for maintaining various states associated with the online game. The server computer can be connected to other computers, such as a storage engine 140, which maintains one or more instances of a game, while the server computer 110 also manages management affairs, such as player matching and account management. A game player on the client computer 120 can log in to the server computer 110 and receive a list containing available games and current players. The player selects a game, starts or joins, thereby determining a memory engine, and the player's computer establishes a client-server connection with it. In this way, the server computer 110 and the storage engine 140 collectively manage the game environment for one or more client computers 120.
Another type of structure is called an integrated server structure, as shown in Figure 2. This structure includes a dedicated server computer 110 and one or more client computers 120, and each client computer is connected to the server computer 110 through a computer network. As with the structure described above, the server computer 110 transmits data to the client computer 120. However, one of the client computers 120, such as the client computer 120a, functions as an integrated server, and it can also transmit data to other client computers 120. In an online game environment, the server computer 110 implements management functions, such as player matching, account management, and chat room management, and the client computer/integrated server 120a can perform the functions of the memory engine described above.
In another type of communication structure, multiple computers form a peer-to-peer structure, as shown in Figure 3. In a peer-to-peer structure, each of the computers can communicate with other computers, so all computers act as "peers." In a peer-to-peer structure, a dedicated server 110 communicates with multiple client computers 120 via a network. An online session is initially created by the client computer 120, and each of the client computers 120 is connected to a management computer, such as the server computer 110. Then the client computers 120 are connected to each other so that each of the client computers 120 and any other client computer 120 can send and receive data. In addition, each client computer 120 can operate with a dedicated server 110 in a client-server relationship. Those skilled in the art will understand that there are other communication structures in addition to the structures described above.
The various structures described above enable computer users to interact in a computer network. For example, in a network game environment, game players can play computer games on a computer network. In such a scenario, usually at least one computer is used as a game manager, which manages all aspects of the game, such as coordinating the number of players, remembering the state of the game, and sending updated data to the user based on the state of the game. It should be admitted that the continuity of the game process is extremely dependent on all users in the game playing the game continuously throughout the game. If a game player quits in the middle of a game, the game process may be interrupted or even terminated, especially when the quitting player is managing part of the game.
For example, a sports game typically has a fixed start and end of the game, and at least two players compete in the game. In the current structure, there are often several players participating in an online sports competition, assuming that each player plays a role in a sports team. For example, in an online football game, players can act as quarterbacks, direct ball receivers, defensive guards, midfielders, and so on. If one of the players suddenly leaves in the middle of the game, the game process will be interrupted or terminated. This is also the case in other types of games. The continuity of the game process depends on each player's continuous play through a specific scenario in the game environment.
Unfortunately, the current configuration of multi-user applications does not take into account the situation where participants in an online session suddenly or unexpectedly leave the online session. If a player does leave an online session, the session will be interrupted or terminated abnormally. Considering the aforementioned situation, a multi-user application must overcome the aforementioned shortcomings.
Summary of the invention
The present invention relates to an application program which is configured to run in a multi-participant environment on a computer network. The application manages multiple participants in an online session of a multi-user application. If one of the participants exits the session, the session can continue without interruption. According to one aspect of the present invention, the application program initiates an online session of a multi-user application program, wherein the online session includes two or more participants and is composed of a number of network computers that are communicatively linked to a computer network. If the application detects that a first participant has been disconnected from the online session, where the first participant is responsible for managing certain management functions related to running multi-user applications, then the application will communicate to the online session via the communication network. The existing participant broadcasts an announcement to notify the existing participant that the first participant has been disconnected from the online session. The launched application then reassigns the functions related to the first participant to an existing participant in the online session. Participants can communicate peer-to-peer, or they can perform server tasks in a client-server model.
From the following description of the preferred embodiments, other characteristics and advantages of the present invention should be apparent, which demonstrate the principle of the present invention through examples.
Brief Description of the Drawings Reading the following detailed description together with the accompanying drawings will make it easier to understand the purpose, advantages and characteristics of the present invention. Among them: Figure 1 shows a computer network arranged as a client-server network communication structure; Figure 2 Shows a computer network, arranged as an integrated network communication server structure; Figure 3 shows a computer network, arranged as a peer-to-peer network communication structure; Figure 4 shows a computer network system, which runs A multi-user application configured according to the present invention; Figure 5 shows a data structure, which includes the computer index and session master information of the multi-user application; Figure 6 shows a computer network system in which the multi-user application Distributed in the first type of communication structure; Figure 7 shows a computer network system in which multi-user applications are distributed in another type of communication structure; Figure 8 is a flowchart showing the The process of managing a participant's exit in an online session; Figure 9 is a flowchart showing the relevant steps of a multi-user application to create an online session; Figure 10 is a block diagram of a computer in the network shown in Figure 4, showing Figure 11 is a block diagram of a computer entertainment system in the network shown in Figure 4, showing several hardware components.
detailed description
Figure 4 is a block diagram of the computer network system 400, which is composed of one or more network devices, including one or more client computers 410, 412 and one or more dedicated server computers 420, 430, all of which are computers Node of network 430. In other words, some network computers are configured as servers and some are configured as clients. The computer network 430 may include a set of Internet networks, such as the Internet, and each node 410, 412, 420, and 430 may also include one or more local area networks. In this article, the term "Internet" refers to a set of interconnected (public and/or private) networks that are linked together through a set of standard communication protocols to form a globally distributed network.
The client computers 410, 412 may send data requests to one of the server computers 420, 430 via the network 430, and they are configured to provide data to the client via the network 430 in a well-known manner. The server computers 420 and 430 can function to include each other, or communicate with each other and connect to other servers, such as a database server and/or an application server, as well known by those skilled in the art. Although FIG. 4 only shows two client computers 410 and 420 and two server computers 420 and 422, it should be recognized that the network system 400 may include any number of client computers 410 and 420 and server computers 420 and 422. The server computers 420, 422 and the client computers 410, 420 are sometimes collectively referred to herein as network computers.
The network system 400 supports a multi-user application 440, which includes a computer program that enables multiple users to use network devices (such as client computers 410, 420) linked to the computer network 430 to interact in an online session. The application program 440 is installed in each client computer, which means that the memory of each client computer 410, 412 running (executing) the application program 440 stores a running instance of the application program. Each server computer that will participate in an online session of the multi-user application program also stores an instance of the application program 440. For ease of description, it will be assumed that the first server computer 420 is the server used by the multi-user application program being executed by the client computers 410 and 412, although the servers 420 and 422 both show that the application program 440 is installed. During the running of the application program 440, there is data exchange between instances, and the network socket 445 installed on each network computer enables the data exchange to proceed. In Figure 4, the socket is represented as a block on each corresponding network computer. Those skilled in the art will understand that a network socket is an end point of a multiple communication link between two or more programs running on the network system 400.
According to various communication structure configurations, the application 440 can run on several network devices of the network system 400, and the responsibilities of various application-related processes can be assigned to different computing devices of the network 430, as described in more detail below. Preferably, an application development interface is used to develop the application 440, as described in more detail below. The running mode of the application program enables the relevant network computer to use a communication structure to implement any communication mode shown in Figure 1, Figure 2, and Figure 3.
The multi-user application 440 may be any type of application that a user can run on a network computer connected to the computer network 430. When the application 440 is running on a client computer 410, 412, the user can interact with other users through other network computers that are also running the application 440. The server computer 420 can be used as a network center "meeting point" through which users can establish contact, maintain data, and initiate an online session of the application 440. Typically, the application program 440 causes the network device running it to establish communication with another network device, such as devices 410, 412, and 420, so as to initiate an online session. During the online session, the network computer will interact and exchange data in accordance with the program features of the application 440.
When the application 440 is launched and an online session is created between appropriately configured computers, the application enables these computers to interact in a variety of configurations. Throughout the specification, the application program 440 is often described in an online game scenario. At this time, the application program 440 includes a computer game, and multiple users can use the client computers 420 and 412 to access and run it. In such a situation, the application program 440 creates an online game session in which multiple network computers participate. However, it should be admitted that in addition to games, the application 440 can also be related to other scenarios, such as online banking or online travel plans, which all involve interaction between multiple computers on a computer network.
When an application program 440 is executed, it identifies a session master-a network computer, and performs various management and monitoring functions for the interaction between the application program and the computer during the online session. An online session of the application uses the registration or login process, where the data store contains information such as user identification. The login process authorizes more participants of the application in the network environment. Preferably, when a client computer running the application 440, such as the client computer 410, logs in to the server computer 420 to start an online session, the session master function is also allocated. However, it is the application program itself that determines the details of when and how to perform this allocation, so that various session master allocation schemes can be implemented without departing from the teachings of the present invention.
The client computer 410 where the running instance of the application program is located and that initiates an online session of the application program is called the host computer. The application program on the host computer allocates the session master function to either the server computer 420 or the host computer 410. When a new client computer logs in (registers) on the server computer 420 to join the online session, the server computer 420 notifies the new client of the identifier that the session master computer has assigned.
As described more fully below, the session master function makes the transition between the various network communication structures that the application 440 can run more smoothly. The session master function also enables the application program 440 to concentrate the responsibilities of the application-related tasks on a specific network computer, or to distribute such responsibilities between two or more network computers. The assignment of tasks can be performed by an instance of the application 440 on one of the network computers. At the same time, if the session mastering function is assigned, several session mastering tasks can be distributed to one or more computers in the network 430. To provide the necessary functions. The computer to which the session master function is assigned is referred to as the "owner" of the respective session master function in this article. If there is a group of computers that perform several session master functions together, then several references to a single session master will be understood as applying to these computers. Therefore, in accordance with the regulations of the application developer, the assignment of the session master task is performed in the manner specified by the application.
One type of task assigned to the session master involves application-specific functions, which are specific to the specific type of application 440 being executed. For example, if the application 440 is a game-type application, the session master or a group of session masters can memorize game-type data, such as game scores and remaining time in the game, and can perform several game functions. For example, when a game ends, the online session is terminated. It is also possible to assign the responsibility of tracking specific game data to a session master computer, such as the state of an object in the game environment, such as a football, an airplane, an ocean, a tree, etc. According to the operation of the application, each of these responsibilities can be concentrated in a single session master computer, or can be divided among several session master computers.
The host computer performs management functions on the computers participating in the online session. For example, whenever a network computer joins an online session of the application program 440, the host computer assigns an identification index number to the computer that joins the session. The host computer maintains a list of identifying index numbers and their associated network computers. The index number is used when sending information, and it is also used to maintain ownership records related to the session master function.
As mentioned above, there may be more than one session master in an online session. According to the running of the application, the application can determine the allocation method of a session master. The application 440 can also assign the responsibility of sending update messages to the session master, so as to update the network computer to adapt to the status of all network computers participating in the online session. When a new network computer joins the online session of the application 440, or when a current computer exits the online session, this responsibility requires the session master to notify the online network computer, as described in more detail below.
The host computer that assigns the above index number to each computer also maintains a list of all network computers participating in the online session. Then, according to the index number assigned to each computer, the application 440 memorizes the ownership of the session master. In order to memorize the index number and the division of responsibilities, the application program 440 may retain a data structure, for example, including a network computer index list in the form of a table, such as the table 500 shown in FIG. 5. Each network computer participating in the online session has a corresponding index number in the table 500, and the table also contains an indication of whether the network computer has the session master function. Preferably, the data structure of the index list including the table 500 also specifies the communication protocol used by each network computer. Figure 5 shows that different session master tasks (C1, C2, C3) can be owned by different network computers.
In addition to defining the communication protocol, the data structure also specifies the associated port of the communication protocol for each network computer. Each instance of the application program 440 enables related network computers participating in an online session to open multiple communication ports, and each port is associated with a specific communication protocol. The network computer uses a specific port and a specific communication protocol to communicate with other network computers, which is specified in the data structure including the table 500 shown in FIG. 5. These ports may include several network sockets, through which the instance of the application 440 performs network communication. Preferably, the network computers periodically send communication messages to each other on the network, transfer port/protocol information, and other information contained in the index list.
Preferably, all computers participating in the online session maintain their own copy of the table 500 index list. It should be admitted that the table 500 is only exemplary, and the launched main application 440 can use a wide range of data structure formats to memorize the client index number and session master ownership in other ways, which is more desirable. In addition, the session computer can also share one or more copies of the form.
The started application 440 can run in a variety of communication structures, depending on how the application 440 allocates ownership of the session master. In the first type of structure, as shown in FIG. 6, the launched application 440 assigns the ownership of a session master 600 to a single computer, such as a dedicated server computer 420. Therefore, this computer 420 is responsible for all tasks associated with the session master function specified by the started application program 440. Therefore, as far as the function of the session master is concerned, the application program 440 runs in a client-server communication structure, and the server computer 420 provides data to the client computer 410 in accordance with the responsibilities of the session master.
It should be admitted that any computer that participates in the online session of the application 440 can have the ownership of one or more session master tasks. For example, one of the client computers 410 is shown as having the session master 600a, which is used in Figure 6 The dotted line shows. This indicates that the client computer has already undertaken and is performing one or more session mastering tasks, and it will undertake or replace it with the nominal session master server computer 420. In other words, in a computer participating in an online session, there may be several instances of a session master. Each instance of a session master is assigned a specific responsibilities, and each session master task is assigned to a different network computer. Or multiple tasks are assigned to the same computer. For example, FIG. 6 shows a situation where there are two session masters 600 and 600a, each of which undertakes certain functions related to the online session of the application 440. The server computer 420 assumes some responsibilities, and the client computer 410 also assumes some responsibilities, which are determined by the application program. This is an integrated server structure, and the client computer 410 with the session master 600a is being used as an integrated server. An "integration server" refers to the following situation: all customers send information to a customer designated as an integration server, and the integration server disseminates the information to other customers. As an integrated server, customers can also have one or more session master tasks.
In another solution shown in FIG. 7, the application 440 has distributed the ownership of the session master 600 to several computers. In the example shown, two client computers 410 share the ownership of the session master 600. In this case, both computers can perform related session master functions, so the network computer in Figure 7 is a peer-to-peer structure. Regardless of the specific communication structure in which the application 440 runs, the online session of the application includes a variety of network participants, including network computers that run the application and interact according to the online session. If one of the participants in the online conversation wants to quit the conversation, it may cause the interruption of the other participants who are still in the conversation. According to one aspect of the present invention, the application 440 is configured to deal with a situation where a participant exits an online session, so as to minimize the interruption of the remaining participants.
This will be described in more detail below with reference to the flowchart shown in FIG. 8. FIG. 8 describes the management process of a participant exiting in an online session of the multi-user application 440. In the first operation represented by the block of flowchart No. 810, it is determined that a participant of the online session of the application has exited the online session. There are many ways to determine that a participant has exited the online session. In one embodiment, an instance of an application 440 on a network computer participating in an online session regularly causes the network computer to broadcast an update message to notify other network computers that it is still in the online session. If within a predetermined time, no update message sent from a specific network computer is received, then the network computer is considered to have exited the online session. During the creation of the online session, the instance of the application 440 on the computer that initiated the online session can assign the responsibility of determining that a participant has exited the online session to a specific computer, such as the session master computer.
In the next step represented by the block of flowchart No. 820, an instance of the application 440 in one of the computers broadcasts a notice message to all participants in the online conversation, notifying them of one participant ("Exited Participant" ) Has exited the online session. Only one of the network computers, such as the session master computer, broadcasts the announcement message to all participants. If the session master computer is the exiting computer, then one of the other network computers broadcasts the message, such as the computer whose index number immediately follows the session master computer. Preferably, the announcement message includes an index previously allocated by the network computer of the quitting participant. In this way, other participants can identify the withdrawn participants by referring to the index table discussed above with respect to FIG. 5.
Depending on whether the participant who exits the session is responsible for performing any session management functions that may affect other participants in the online session, the next step is different, as shown in the decision box numbered 830. Management functions include, for example, filtering communication messages, assigning identification indexes, saving scores, remembering the number of sessions, remembering items located in the online world, remembering the location of participants in the online world, and so on. If the participant who exits the session is responsible for performing any of these functions, decision block 830 yields a "yes" result, and the process proceeds to the operation represented by block 840 of flowchart number 840. In this operation, the application 440 reallocates the management responsibilities of the logged-out participant to the network computer of another participant who is still in the online session. Preferably, the redistribution of management responsibilities is performed by an instance of the application 440 on a specific computer, such as a computer whose index number immediately follows the index number of the computer that exits the online session. For example, the computer with the first index may have exited the session. The application instance on the computer with the next next index (as specified in table 500 as shown in FIG. 5) will execute the responsibilities of reassigning the computer that has exited.
The way the application 440 reallocates responsibilities can be changed. In one embodiment, the application program 440 automatically selects participants to re-assign responsibilities based on certain factors, some of which are related to the conditions of the participants' network computers. Conditions can include, for example, the communication environment, geographic location, hardware specifications of network computers, and user-specified preferences.
The communication environment relates to whether the network computer bandwidth performance of the participants is high, such as when passing through a cable modem or DSL. Under optimal circumstances, participants with higher bandwidth performance will be given a higher priority to assume the responsibilities of the exited participants. The geographic location of the participant is also a factor in deciding which participant to assign the responsibilities of the exited participant. For example, in order to minimize the waiting time for communication, a participant located in the center of other participants may be given higher priority. The network computer hardware specifications of the online conversation participants are also a factor. The application program 440 may give higher priority to a network computer with the highest adaptability of hardware performance to the redistributed responsibilities, such as a computer with powerful data processing performance.
In another embodiment of the operation of block 840 of the flowchart, the application 440 merely randomly reassigns the responsibilities of the logged-out participant to another one of the online conversation participants. The application 440 may also consider several preferences specified by the user. Some users can designate applications 440 without assigning them the responsibility of managing any application functions. The user can also specify that if another participant quits the online session, the responsibilities should be reassigned to a specific participant. In addition, the application 440 may also broadcast a message to all participants in the online conversation, asking whether any participants wish to take over the responsibilities previously assigned to the exited participants.
The next step is represented by the block of flowchart number 850. This operation occurs after the application 440 has reassigned the responsibilities of the exited participant. If the exited participant does not have any responsibilities that need to be reassigned, a "no" result will have been generated from decision box 830, and the operation in flowchart box 850 will also occur. In this operation, the application program 440 attempts to obtain a new participant to replace the logged-out participant. Preferably, this attempt is performed by an instance of the application 440 on a specific computer such as the session master computer. It should be admitted that the difference between this operation and the operation in block 840 of the flowchart is that this operation involves obtaining a substitute participant to replace the logged-out participant in the online session, rather than redistributing the management function of the logged-out participant .
For example, an online session might be an online rugby game, where each participant is a player on the same team. One of the participants may have taken on a number of management functions, scoring and timing the game. The same participant may also play the role of quarterback in the game. If the participant quits the online game during the game, then the application 440 in operation 840 reassigns the management functions (ie scoring and timekeeping responsibilities) of the quit participant to another participant, and then in operation 850 , Trying to acquire a new participant as a quarterback, replacing the role of a retired participant.
The way in which the application 440 attempts to obtain an alternative participant of the online conversation can be changed. In one embodiment, the application 440 automatically assigns a network computer instead of a person to replace the logged-out participant. The network computer will thus perform the function of the exited participant. In another embodiment, the application 440 maintains a list of network computers that may participate in an online conversation, and then sends a message to these computers inviting them to participate in the conversation. The application 440 can put the online session in a pause mode and obtain a substitute participant at the same time.
Preferably, a software development kit (SDK) is used when developing the application 440, which provides a target library and several communication message definitions used in the application 440. The software development kit includes an application program interface through which an application program developed using the SDK can run in a network system, such as the network system 400. The application program interface can reside in a central network server, such as the server 420, and a network computer with the application program 440 can log in to the server to run an online session of the application program. By using the target program and message type provided by the SDK, the developed application 440 can include the above-mentioned features. Preferably, the SDK includes a target program definition structure, which provides a customer-based definition of several target programs used by the application program 440. The target program definition includes multiple features, which are associated with each target program and are used by the application program to interact with several customers through a computer network.
Once the application 440 has been developed using the SDK, the application 440 can be loaded on one or more network computers, and an online session can be created according to several operations shown in the flowchart block of FIG. 9. In the first operation shown in the block of flowchart No. 910, a network computer loaded with the application program 440 is connected to a network computer that includes the application program interface software in the memory. For example, one or more client computers 410 in the network system 400 shown in FIG. 4 may load an application program 440 into the memory, and the server computer 420 may include an application program interface. In such a case, the client computer 410 establishes a communication connection with the server computer 410 through the network 430.
In the next operation represented by the block of flowchart No. 920, the application 440 registers several target programs according to the target program definitions available in the application program interface library. The application 440 also registers any message filters that will be used during the online session, as shown in the block of flowchart number 920.
In the next operation represented by the block of flowchart No. 950, the application 440 defines the session master and assigns the ownership of the session master to one of the network computers. The ownership of the session master can be assigned to one computer or multiple computers. The application program 440 also specifies whether the ownership of the session master is exclusive to a specific computer or whether the ownership can be transferred to other computers.
During this operation, the application 440 assigns the client index to each network computer that will participate in the online session, and also creates the above-mentioned index table. The application program 440 can be configured such that the first network computer to log in to the server computer will be the session master and also receive an initial index, such as an index of 1 or 0. It should be admitted that the initial index can be changed. Then, the subsequently logged-in network computer will receive the next available index. After the ownership of the session master or the session master has been created, the online session of the application program 440 is started, as shown in the block of flowchart No. 950.
As described above, the network computer shown in the block diagram of FIG. 4 includes several nodes of the computer network system 400. FIG. 10 is a block diagram of a computer in the system 400 of FIG. 4, showing several hardware components included in one of the computers. Those skilled in the art will understand that the devices 410 and 420 may both have a similar computer structure, or may have a structure consistent with the performance described herein.
Fig. 10 shows an exemplary computer 1000, which may include any one of the network computers, for example. Each computer 1000 runs under the control of a central processing unit (CPU) 1002, such as a "Pentium" microprocessor and associated integrated circuit chip, manufactured by Intel Corporation of Santa Clara, California. A computer user can input commands and data from a keyboard and computer mouse 1004, and can observe the input and computer output on a display 1006. Typically, the display is a video monitor or flat panel display. The computer 1000 also includes a direct access storage device (DASD) 1008, such as a hard disk drive. Typically, the memory 1010 includes volatile semiconductor random access memory (RAM). Preferably, each computer includes a program product reader 1012, which accepts a program product storage device 1014 from which the program product reader can read data (and it can also choose to write data to it) . The program product reader can include, for example, a disk drive, and the program product storage device can include a removable storage medium, such as a floppy disk, a CD-R disk, a CD-RW disk, or a DVD disk.
Each computer 1000 can communicate with other computers through a network interface 1018 using a computer network 1020 (such as the Internet or an intranet). The interface 1018 enables communication to be performed through a connection 1022 between the network 1020 and the computer. Typically, the network interface 1018 includes, for example, a network interface card (NIC) or a modem, allowing communication through a variety of networks.
The CPU 1002 runs under the control of program steps, and they are temporarily stored in the memory 1010 of the computer 1000. When these program steps are executed, the computer performs its functions. Therefore, these program steps implement the functions of the application program 440. These program steps can be received by the DASD 1008 through the program product storage device 1014 or through the network connection 1022. The program product storage driver 1012 can receive a program product 1014, read the program steps recorded therein, and transfer the program steps to the memory 1010 for execution by the CPU 1002. As described above, the program product storage device may include any of a variety of removable media on which computer-readable instructions have been recorded, including floppy disks and CD-ROM storage disks. Other suitable program product storage devices may include magnetic tape and semiconductor memory chips. In this way, several processing steps required for the operation according to the present invention can be included in one program product.
In addition, the program steps can also be stored in the operating memory 1010 after being received via the network 1020. In the network method, using several well-known methods that will be understood by those skilled in the art without further explanation, after the network communication has been established through the network connection 1022, the computer receives the data including the program steps through the network interface 1018. Stored in memory 1010. These program steps are then executed by the CPU 1002 to form a computer processing process.
It should be understood that all network computers in the network system 400 shown in FIG. 4 may have a structure similar to that shown in FIG. 10, so it is not difficult to understand that several details described for the computer 1000 in FIG. 10 are also applicable to the system. All computers in 400. It should be admitted that any one of these network computers can have other structures, as long as the computer can communicate with other computers through a network as shown in FIG. 4 and can support the functions described herein.
For example, referring to FIG. 11, the client computer 420 can include a computer entertainment system, such as a video game system 1100. FIG. 11 is a block diagram showing an exemplary hardware configuration of the video game system 1100.
The video game system 1100 includes a central processing unit (CPU) 1100, which is associated with a main memory 1105. The CPU 1100 runs under the control of several program steps, which are stored in the OS ROM 1160 or transferred from a game program storage medium to the main memory 1105. The CPU 1100 is configured to process information and execute instructions in accordance with these program steps.
The CPU 1100 is communicatively connected to an input/output processor (IOP) 1120 through a dedicated bus 1125. The IOP 1120 connects the CPU 1100 to an OS ROM 1160, which includes a non-volatile memory that stores a number of program instructions, such as an operating system. Preferably, these instructions are transmitted to the CPU through the IOP 1120 when the main unit 110 is started.
The CPU 1100 is communicatively connected to a graphics processing unit (GPU) 1110 through a dedicated bus 1115. The GPU 1110 is a graphics processor, which is configured to perform a number of graphics processing according to instructions received from the CPU 1100 to represent a number of images. For example, the GPU 1110 may present a graphic image according to several display lists generated and sent by the CPU 1100. The GPU can include a buffer for storing graphics data. The GPU 1110 outputs the image to the AV output device 175.
The IOP 1120 controls the data exchange between the CPU 1100 and multiple peripheral components in accordance with a number of instructions stored in the IOP memory 1130. The peripheral components may include one or more input controllers 1122, a memory card 1140, a USB 1145, and an IEEE1394 serial bus 1150. In addition, a bus 1155 is communicatively connected to the IOP 1120. The bus 1155 is linked to several additional components, including the OS ROM 1160, a sound processor unit (SPU) 1165, a disk control unit 1175, and a hard disk drive (HDD) 1180.
The SPU 1165 is configured to generate sounds such as music, sound effects, and voice in accordance with commands received from the CPU 1100 and IOP 1120. The SPU 1165 can include a sound buffer in which the waveform data is stored. The SPU 1165 generates sound signals and transmits these signals to the speakers.
The disk control unit 1175 is configured to control a program reader, and can include, for example, an optical disk drive, which accepts removable storage media, such as a floppy disk, a CD-ROM disk, a CD-R disk, and a CD-RW disk. A DVD disk and so on.
The memory card 1140 may include a storage medium to which the CPU 1100 can write and store data. Preferably, the memory card 1140 can be inserted into and removed from the IOP 1120. A user can use the memory card 1140 to store or save data. In addition, preferably, the video game system 1100 is also equipped with at least one hard disk drive (HDD) 1180 to which data can be written and stored.
Preferably, a data I/O interface, such as an IEEE 1394 serial bus 1150 or a universal serial bus (USB) 1145 interface, is communicatively connected to the IOP 1120 so that data can be transferred to and from the video game system 1100, such as The network 430 of FIG. 4.
A network user of an application, such as a game player, is acting as the integrated server (IS) of the application, thus maintaining the environment of the application, so when the IS user wants to log out, in the normal implementation of the application , The application will end. In this case, the system and method described above have been improved. As mentioned above, some applications (such as multi-user game applications) may also allow the function (and data) of the off-site user to be transferred from the off-site user to another user, it will continue to participate in the online session, and will take over IS Responsibilities. Typically, this type of handover is quite cumbersome and is unlikely to be completed smoothly. For example, in the case of a game environment, an exiting player may suddenly disappear from the game environment, thereby interrupting the game progress of other players. When a user has left the session, the multi-user application according to the present invention notifies all other user machines, so even if the user leaves and joins, the application can continue to be used. In order to make the application environment more attractive, you can also make appropriate adjustments. The disconnection function ensures proper IS operation and communication, and the notification occurs through it. In other words, an application server or application IS can broadcast a message to all customers in the application environment, notifying them that a user has left or has joined, and can ensure proper functions for these users when needed.
If a system has a network device as the above-mentioned integrated server (IS) to provide application data to other users, when an IS fails in the application environment or a user leaves, the countermeasure is to assign another user as a new IS . The application can automatically perform a replacement process, or send a broadcast message to all users and wait for an answer, thereby assigning a new IS. For automatic selection, the application can allocate a new IS based on the following factors: the bandwidth available to the user, the geographic location of the potential new IS, the designated priority that a user should consider as an IS, the technical indicators and available resources on the users machine , Or choose through a random process. If the application is designed to send a broadcast message, then the message will typically request a user to volunteer as a new IS.
In addition, after an IS fails, a new user who logs in to the system and may have been registered to the failed IS can be transferred to another IS, so that the currently unavailable IS is serving groups to reduce the workload. In this way, newcomers who wish to join an IS application environment can switch to another IS and another user group. In addition, the application can also decompose or dissolve the online conversation group managed by the unavailable IS in response to a faulty IS. Application developers who are configuring an application according to the operation of the present invention can choose these alternative methods.
If a single user leaves during an online session, the result may be more problematic. For example, in an online game environment, for the progress of the game, a certain minimum number of users (players) are required. According to the present invention, the response of the application program may be to send a message to other users in the network, inviting others to join an online session and participate in a multi-user application (such as a game). In addition, the application can also be configured to call an artificial intelligence module to perform the duties of the integrated server.
The present invention has been described above with respect to a currently preferred embodiment, so that people can understand the present invention. However, for systems and applications, there are many configurations that are not specifically introduced in this article, but these systems and applications can be used to implement the present invention. Therefore, the present invention should not be regarded as limited to the specific embodiments introduced herein, but should be understood as generally speaking, the present invention has wide applicability to multi-user applications. Therefore, all modifications, changes or equivalent arrangements and implementations within the scope of the appended claims should be regarded as within the scope of the present invention.
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| CN102763097A | Cited by | China | Search report |
| US9457270B2 | Cited by | United States of America | Applicant |
| CN100377530C | Cited by | China | Search report |
| CN101622041A | Cited by | China | Search report |
| CN103535008A | Cited by | China | Search report |
| CN104582807A | Cited by | China | Search report |
| US11285384B2 | Cited by | United States of America | Applicant |
| CN101778657A | Cited by | China | Search report |
115 members in 11 offices
Priority claims10
| Document | Office | Kind | Date |
|---|---|---|---|
| 38173602 | United States of America | P | |
| 38173602 | United States of America | P | |
| 60381736 | United States of America | – | |
| 10211128 | United States of America | – | |
| 21112802 | United States of America | A | |
| 21112802 | United States of America | A | |
| 10211128 | – | – | – |
| 60381736 | – | – | – |
| US20020211128 | – | – | – |
| US20020381736P | – | – | – |
Members115
| Document | Office | Kind | |
|---|---|---|---|
| US2003204566A1 | United States of America | A1 | |
| WO03091894A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU2003231076A1 | Australia | A1 | |
| US2003217135A1 | United States of America | A1 | |
| TW200307212A | Taiwan Province of China | A | |
| TW200307418A | Taiwan Province of China | A | |
| WO03100643A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU2003224728A1 | Australia | A1 | |
| KR20040096489A | Republic of Korea | A | |
| KR20040099256A | Republic of Korea | A | |
| CN1556958A | China | A | |
| EP1499987A1 | European Patent Office (EPO) | A1 | |
| EP1506491A1 | European Patent Office (EPO) | A1 | |
| CN1592899AThis record | China | A | |
| JP2005520265A | Japan | A | |
| EP1506491A4 | European Patent Office (EPO) | A4 | |
| JP2005531048A | Japan | A | |
| AT355561T | Austria | T | |
| ATE355561T1 | Austria | T1 | |
| US2006173958A1 | United States of America | A1 | |
| US2006190540A1 | United States of America | A1 | |
| KR100638071B1 | Republic of Korea | B1 | |
| KR100638073B1 | Republic of Korea | B1 | |
| TWI274486B | Taiwan Province of China | B | |
| EP1506491B1 | European Patent Office (EPO) | B1 | |
| US2007076729A1 | United States of America | A1 | |
| DE60312153D1 | Germany | D1 | |
| WO2007041417A1 | World Intellectual Property Organization (WIPO) | A1 | |
| JP3964905B2 | Japan | B2 | |
| ES2282619T3 | Spain | T3 | |
| DE60312153T2 | Germany | T2 | |
| US2008280686A1 | United States of America | A1 | |
| US2009006545A1 | United States of America | A1 | |
| US2009006604A1 | United States of America | A1 | |
| EP2045967A2 | European Patent Office (EPO) | A2 | |
| KR20090035419A | Republic of Korea | A | |
| US2009094370A1 | United States of America | A1 | |
| WO2009045475A1 | World Intellectual Property Organization (WIPO) | A1 | |
| JP2009093656A | Japan | A | |
| US2009113060A1 | United States of America | A1 | |
| TW200926719A | Taiwan Province of China | A | |
| TWI311265B | Taiwan Province of China | B | |
| CN101483586A | China | A | |
| TW200939716A | Taiwan Province of China | A | |
| EP2045967A3 | European Patent Office (EPO) | A3 | |
| US7613800B2 | United States of America | B2 | |
| EP1499987A4 | European Patent Office (EPO) | A4 | |
| CN100583078C | China | C | |
| EP2166729A1 | European Patent Office (EPO) | A1 | |
| US2010077087A1 | United States of America | A1 | |
| WO2010033620A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US7711847B2 | United States of America | B2 | |
| CN101715008A | China | A | |
| EP2198372A1 | European Patent Office (EPO) | A1 | |
| US7792902B2 | United States of America | B2 | |
| CN101861575A | China | A | |
| US7822809B2 | United States of America | B2 | |
| JP2010244509A | Japan | A | |
| US2010279767A1 | United States of America | A1 | |
| US7831666B2 | United States of America | B2 | |
| US2010285872A1 | United States of America | A1 | |
| US2010287239A1 | United States of America | A1 | |
| JP2010541476A | Japan | A | |
| US7877509B2 | United States of America | B2 | |
| US7930345B2 | United States of America | B2 | |
| KR101036099B1 | Republic of Korea | B1 | |
| US7962549B2 | United States of America | B2 | |
| EP2198372A4 | European Patent Office (EPO) | A4 | |
| EP2360874A1 | European Patent Office (EPO) | A1 | |
| EP2360875A1 | European Patent Office (EPO) | A1 | |
| US8060626B2 | United States of America | B2 | |
| JP4886829B2 | Japan | B2 | |
| US8131802B2 | United States of America | B2 | |
| EP2458817A1 | European Patent Office (EPO) | A1 | |
| EP2458818A1 | European Patent Office (EPO) | A1 | |
| US2012166651A1 | United States of America | A1 | |
| US8224985B2 | United States of America | B2 | |
| EP2198372B1 | European Patent Office (EPO) | B1 | |
| JP5054821B2 | Japan | B2 | |
| JP5097671B2 | Japan | B2 | |
| CN103023985A | China | A | |
| US8560707B2 | United States of America | B2 | |
| US2013304931A1 | United States of America | A1 | |
| TW201347493A | Taiwan Province of China | A | |
| CN1556958B | China | B | |
| US8793315B2 | United States of America | B2 | |
| EP2166729B1 | European Patent Office (EPO) | B1 | |
| US2014256449A1 | United States of America | A1 | |
| CN104069637A | China | A | |
| US8972548B2 | United States of America | B2 | |
| US2015180958A1 | United States of America | A1 | |
| TWI491229B | Taiwan Province of China | B | |
| CN104852972A | China | A | |
| TWI527415B | Taiwan Province of China | B | |
| TWI527416B | Taiwan Province of China | B | |
| US9516068B2 | United States of America | B2 | |
| EP2360874B1 | European Patent Office (EPO) | B1 | |
| EP2360875B1 | European Patent Office (EPO) | B1 | |
| US9729621B2 | United States of America | B2 | |
| US9762631B2 | United States of America | B2 |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Expiry of patent termCX01 | CX01 | |
| Succession or assignment of patent rightASS | ASS | |
| Transfer of patent application or patent right or utility modelC41 | C41 | |
| Grant of patent or utility modelGrantedC14 | C14 | |
| Entry into substantive examinationC10 | C10 | |
| PublicationC06 | C06 |
Numbers
- Publication
- 1592899
- Publication, DOCDB
- 1592899
- Publication, EPODOC
- CN1592899
- Application
- 38015471
- Application, DOCDB
- 03801547
- Application, EPODOC
- CN20038001547
Titles2
- Chinese
- 游戏玩家动态管理
- English
- Game player dynamic management
Classification
- CPC, 28
- H04L67/104
- G06F15/16
- H04L65/403
- A63F2300/408
- A63F2300/50
- A63F2300/535
- A63F2300/5533
- A63F2300/5546
- A63F2300/556
- H04L12/185
- H04L67/1048
- H04L67/14
- H04L67/1051
- H04L69/329
- H04L67/54
- H04L67/131
- A63F13/35
- A63F13/34
- A63F13/795
- A63F2300/534
- A63F13/79
- A63F2300/5566
- A63F13/335
- A63F13/358
- A63F2300/407
- A63F2300/208
- G06F15/173
- A63F13/45
- IPC, 5
- A63F13 12
- G06F15 00
- H04L12 18
- H04L29 06
- H04L29 08