JP2017037446A - Game server device and distribution processing method - Google Patents

Game server device and distribution processing method Download PDF

Info

Publication number
JP2017037446A
JP2017037446A JP2015157892A JP2015157892A JP2017037446A JP 2017037446 A JP2017037446 A JP 2017037446A JP 2015157892 A JP2015157892 A JP 2015157892A JP 2015157892 A JP2015157892 A JP 2015157892A JP 2017037446 A JP2017037446 A JP 2017037446A
Authority
JP
Japan
Prior art keywords
space
player
server device
game server
charge
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.)
Pending
Application number
JP2015157892A
Other languages
Japanese (ja)
Inventor
博史 野口
Hiroshi Noguchi
博史 野口
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015157892A priority Critical patent/JP2017037446A/en
Publication of JP2017037446A publication Critical patent/JP2017037446A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a game server device executing an online game by distribution processing so as to alleviate processing delay when a player of the online game shifts from a current game space to an adjacent space.SOLUTION: A stateful game server device 1 charging a split space that is one of predetermined units into which a game space is split comprises: an original data management unit 11 which stores original data for state data of players who exist in the space managed by the own server device; and a replica arrangement unit 12 which copies a replica of the state data to the other game server device 1 managing an adjacent space. The original data management unit 11 stores the replica of the state data of the player as an original data when detecting that a player in the adjacent space moves to the space managed by the own server device.SELECTED DRAWING: Figure 3

Description

本発明は、オンラインゲームを実行するゲームサーバ装置の分散処理の技術に関する。   The present invention relates to a technique for distributed processing of a game server device that executes an online game.

非特許文献1には、MMO(Massively Multiplayer Online)形式のオンラインゲームにて、ゲームの世界を地理的な構造に基づいて分割し、別のサーバプロセス、あるいはサーバマシンに処理を割り当てる空間分割法(空間の地理的分割)に関する技術が開示されている。非特許文献1には、1つのゲーム空間を上下左右に4等分して個々の分割された空間をサーバ1〜4が担当することの説明図がある。   Non-Patent Document 1 describes a spatial division method (MMO (Massively Multiplayer Online) type online game) that divides the game world based on the geographical structure and assigns processing to another server process or server machine ( Techniques relating to (geographic division of space) are disclosed. Non-Patent Document 1 describes that the servers 1 to 4 are in charge of each divided space by dividing one game space into four equal parts vertically and horizontally.

ユーザが操作するプレイヤー(ゲームキャラクタ)は、分割されたゲーム空間のいずれかに存在してプレイする。同じ分割空間に存在するすべてのプレイヤーのプレイに関する処理は、その分割空間を担当するサーバが担当する。空間分割法を用いることで、分割空間ごとの分散処理を実現し、リアルタイム処理の負荷全体を軽減することができる。   A player (game character) operated by the user exists in one of the divided game spaces and plays. The processing related to the play of all the players existing in the same divided space is handled by the server in charge of the divided space. By using the space division method, distributed processing for each divided space can be realized, and the entire load of real-time processing can be reduced.

中嶋謙互 著、「オンラインゲームを支える技術 壮大なプレイ空間の舞台裏」、技術評論社、p.236-238.Kensuke Nakajima, "Technology that Supports Online Games Behind the Scenes of a Spectacular Play Space," Technical Review, p.236-238.

プレイヤーが現在いる空間から隣の空間に移動する場合、そのプレイヤーのプレイに関する処理を担当するサーバが切り替わる。このような担当サーバの切り替えでは、プレイヤーの状態データを移行させるための処理遅延が発生し、プレイが一時的に中断する。リアルタイム性を強く要求するオンラインゲームでは、このような処理遅延やプレイの一時的中断はサービス品質の低下をもたらすという問題がある。しかし、非特許文献1にはこのような問題を解決する手段について、具体的には言及していない。   When a player moves from the current space to the adjacent space, the server in charge of processing related to the player's play is switched. In such switching of the responsible server, a processing delay for transferring the player state data occurs, and the play is temporarily interrupted. In an online game that strongly requires real-time performance, there is a problem that such processing delay and temporary interruption of play result in a decrease in service quality. However, Non-Patent Document 1 does not specifically mention means for solving such a problem.

そこで、本発明は、上記事情に鑑みて、分散処理でオンラインゲームを実行するゲームサーバ装置に関して、オンラインゲームのプレイヤーが現在いる空間から隣の空間に移動する際の処理遅延を緩和することを課題とする。   Therefore, in view of the above circumstances, the present invention relates to a game server device that executes an online game by distributed processing, and it is an object to reduce processing delay when an online game player moves from a current space to an adjacent space. And

前記課題を解決するために、請求項1に記載の発明は、ゲーム空間を所定の単位に分割した空間を担当するステートフル型のゲームサーバ装置であって、自身の担当する空間に存在するプレイヤーの状態データの原本を保存する原本データ管理部と、隣接する空間を担当する他のゲームサーバ装置へ、前記状態データのレプリカをコピーするレプリカ配置部と、を備え、前記原本データ管理部は、前記隣接する空間に居たプレイヤーが前記自身の担当する空間に移動したことを検出すると、当該プレイヤーの状態データのレプリカを原本として保存する、ことを特徴とする。   In order to solve the above-mentioned problem, the invention described in claim 1 is a stateful game server device in charge of a space obtained by dividing a game space into predetermined units, and the player of the player existing in the space in charge of the game space. An original data management unit that stores the original state data, and a replica placement unit that copies the state data replica to another game server device in charge of the adjacent space, the original data management unit includes: When it is detected that a player who is in an adjacent space has moved to the space in charge of the player, a replica of the player's state data is stored as an original.

また、請求項5に記載の発明は、ゲーム空間を所定の単位に分割した空間を担当するステートフル型のゲームサーバ装置における分散処理方法であって、前記ゲームサーバ装置が、自身の担当する空間に存在するプレイヤーの状態データの原本を保存するステップと、隣接する空間を担当する他のゲームサーバ装置へ、前記状態データのレプリカをコピーするステップと、前記隣接する空間に居たプレイヤーが前記自身の担当する空間に移動したことを検出すると、当該プレイヤーの状態データのレプリカを原本として保存するステップと、を実行する、ことを特徴とする。   The invention according to claim 5 is a distributed processing method in a stateful type game server device that takes charge of a space obtained by dividing the game space into predetermined units, and the game server device is assigned to the space that it is in charge of. Storing the original state data of the existing player, copying a replica of the state data to another game server device in charge of the adjacent space, and a player in the adjacent space When it is detected that the player has moved to the space in charge, a step of storing a replica of the state data of the player as an original is executed.

請求項1,5に記載の発明によれば、プレイヤーが隣接空間に移動した場合、ゲームサーバ装置間で当該プレイヤーの状態データを移行させる代わりに、隣接空間を担当するゲームサーバ装置が、すでにコピー済みのレプリカを原本に切り替えてプレイヤーの処理を継続することができる。よって、状態データの移行に伴う処理遅延やプレイの一時中断を回避しサービス品質の低下をもたらすことはない。
したがって、分散処理でオンラインゲームを実行するゲームサーバ装置に関して、オンラインゲームのプレイヤーが現在いる空間から隣の空間に移動する際の処理遅延を緩和することができる。
According to the first and fifth aspects of the present invention, when the player moves to the adjacent space, the game server device in charge of the adjacent space is already copied instead of transferring the state data of the player between the game server devices. The player can continue processing by switching the completed replica to the original. Therefore, the processing delay and the play interruption associated with the state data transfer are avoided, and the service quality is not deteriorated.
Therefore, regarding a game server device that executes an online game by distributed processing, it is possible to reduce processing delay when the player of the online game moves from the current space to the adjacent space.

また、請求項2に記載の発明は、請求項1に記載のゲームサーバ装置であって、前記レプリカ配置部は、前記プレイヤーの現在位置から所定の距離に及ぶ範囲を含む空間を担当するゲームサーバ装置へ、当該プレイヤーの状態データのレプリカをコピーする、ことを特徴とする。   The invention according to claim 2 is the game server device according to claim 1, wherein the replica placement unit is in charge of a space including a range extending a predetermined distance from the current position of the player. A replica of the player's state data is copied to the device.

請求項2に記載の発明によれば、状態データのレプリカの配置先を絞り込むことができるため、レプリケーション負荷を小さくすることができる。   According to the second aspect of the present invention, it is possible to narrow down the arrangement destination of the replica of the state data, so that the replication load can be reduced.

また、請求項3に記載の発明は、請求項1に記載のゲームサーバ装置であって、前記レプリカ配置部は、前記プレイヤーの速度ベクトルから、次に移動する空間を予測し、当該予測した空間を担当するゲームサーバ装置へ、当該プレイヤーの状態データのレプリカをコピーする、ことを特徴とする。   The invention according to claim 3 is the game server device according to claim 1, wherein the replica placement unit predicts a space to move next from the velocity vector of the player, and the predicted space. A replica of the state data of the player is copied to the game server device in charge.

請求項3に記載の発明によれば、状態データのレプリカの配置先を絞り込むことができるため、レプリケーション負荷を小さくすることができる。   According to the third aspect of the present invention, it is possible to narrow down the arrangement destinations of the replicas of the state data, so that the replication load can be reduced.

また、請求項4に記載の発明は、請求項1から請求項3のいずれか一項に記載のゲームサーバ装置であって、自身のゲームサーバ装置の負荷を監視する負荷監視部と、前記負荷が所定の値を超えた場合には、自身の担当する空間を細分割して、当該細分割した空間の一つを新たなゲームサーバ装置に割り当てる空間分割部と、前記細分割前の空間に隣接する空間を担当する他のゲームサーバ装置に、前記細分割を反映した空間情報を通知する空間分割通知部と、前記細分割前の空間を担当する他のゲームサーバ装置から前記空間情報を受信した場合、自身の担当する空間の境界情報を更新する境界情報算出部と、をさらに備える、ことを特徴とする。   The invention according to claim 4 is the game server device according to any one of claims 1 to 3, wherein the load monitoring unit monitors the load of the game server device of the game server device, and the load When the value exceeds a predetermined value, the space that the user is in charge of is subdivided and one of the subdivided spaces is assigned to a new game server device, and the space before the subdivision The space division notifying unit for notifying the other game server device in charge of the adjacent space of the space information reflecting the subdivision, and receiving the space information from the other game server device in charge of the space before the subdivision In this case, a boundary information calculation unit that updates boundary information of a space that the user is in charge of is further provided.

請求項4に記載の発明によれば、空間の細分割によって、過負荷となったゲームサーバ装置に対して、新たなゲームサーバ装置が負荷を分担することができるため、システムのダウンを回避することができる。   According to the invention described in claim 4, since the new game server device can share the load with respect to the overloaded game server device due to the subdivision of the space, the down of the system is avoided. be able to.

本発明によれば、分散処理でオンラインゲームを実行するゲームサーバ装置に関して、オンラインゲームのプレイヤーが現在いる空間から隣の空間に移動する際の処理遅延を緩和することができる。   ADVANTAGE OF THE INVENTION According to this invention, regarding the game server apparatus which performs an online game by distributed processing, the processing delay at the time of the player of an online game moving to the adjacent space from the present space can be relieved.

本実施形態の分散処理システム全体の構成図である。It is a block diagram of the whole distributed processing system of this embodiment. サーバ−空間対応テーブルのデータ構造を示す図である。It is a figure which shows the data structure of a server-space correspondence table. 本実施形態のゲームサーバ装置の機能構成図である。It is a functional lineblock diagram of the game server device of this embodiment. プレイヤー状態(原本)に対して、プレイヤー状態(レプリカ)を隣接空間に配置することを説明する図である。It is a figure explaining arrange | positioning a player state (replica) in adjacent space with respect to a player state (original). レプリカ判定距離に基づいて、プレイヤー状態(レプリカ)を隣接空間に配置することを説明する図である。It is a figure explaining arrange | positioning a player state (replica) in adjacent space based on a replica determination distance. プレイヤーの速度ベクトルに基づいて、プレイヤー状態(レプリカ)を隣接空間に配置することを説明する図である。It is a figure explaining arrange | positioning a player state (replica) in adjacent space based on a player's velocity vector. 過負荷のサーバが担当する空間の細分割を説明する図である。It is a figure explaining the subdivision of the space which an overloaded server takes charge of. 空間の細分割に応じた境界情報、および、プレイヤー状態のレプリカの配置を説明する図である。It is a figure explaining the arrangement | positioning of the boundary information according to the subdivision of space, and the replica of a player state. プレイヤーの隣接空間への移動に関する処理を示すフローチャートである。It is a flowchart which shows the process regarding the movement to the adjacent space of a player. 空間の細分割に関する処理を示すフローチャートである。It is a flowchart which shows the process regarding the subdivision of space.

本発明を実施するための形態(実施形態)について、図面を参照しながら詳細に説明する。   EMBODIMENT OF THE INVENTION The form (embodiment) for implementing this invention is demonstrated in detail, referring drawings.

(全体構成)
図1に示すように、本実施形態の分散処理システムは、本実施形態のゲームサーバ装置1(図2参照)となる複数のサーバ1−1,1−2,・・・,1−nと、振り分け装置2−1,2−2,・・・,2−nと、ロードバランサ3と、を備えている。サーバ1−1,1−2,・・・,1−nと、振り分け装置2−1,2−2,・・・,2−nと、ロードバランサ3と、図1中のクライアント4−1,・・・,4−nとは、ネットワーク(図示せず)を介して通信可能に接続されている。
(overall structure)
As shown in FIG. 1, the distributed processing system of the present embodiment includes a plurality of servers 1-1, 1-2,..., 1-n serving as the game server device 1 (see FIG. 2) of the present embodiment. , 2-n and a load balancer 3 are provided. , 1-n, distribution devices 2-1, 2-2,..., 2-n, load balancer 3, and client 4-1 in FIG. ,..., 4-n are communicably connected via a network (not shown).

サーバ1−1,1−2,・・・,1−nは、MMO形式のオンラインゲームを実現するアプリケーションを有し、オンラインゲームのゲームイベントに関する処理を実行するステートフル型のサーバである。オンラインゲームのゲーム空間(説明の便宜上、2次元とするが、1次元、3次元のゲーム空間にも本発明を適用可。)は、空間分割法によって所定の単位に分割されている。サーバ1−1,1−2,・・・,1−nの各々は、分割されたゲーム空間の各々を担当する。図1には、1つのゲーム空間が空間A,B,C,D,・・・に分割されており、サーバ1−1,1−2,・・・,1−nが、分割された空間A,B,C,D,・・・のうち1つを担当する様子が示されている。   The servers 1-1, 1-2,..., 1 -n are stateful servers that have an application that realizes an online game in the MMO format and execute processing related to game events of the online game. A game space of an online game (for convenience of explanation, it is assumed to be two-dimensional, but the present invention can also be applied to a one-dimensional and three-dimensional game space) is divided into predetermined units by a space division method. Each of the servers 1-1, 1-2,..., 1-n is in charge of each of the divided game spaces. In FIG. 1, one game space is divided into spaces A, B, C, D,..., And the servers 1-1, 1-2,. A state of taking charge of one of A, B, C, D,... Is shown.

サーバ1−1,1−2,・・・,1−nの各々は、自身の担当する空間に存在するプレイヤーに関するさまざまな処理を実行する。例えば、当該処理には、クライアント4−1,・・・,4−nからのプレイヤー操作要求に応じた処理、プレイヤー同士の相互干渉(例:チャット、アイテム交換)に関する処理がある。担当空間内のプレイヤーの位置はプレイヤー操作要求に従って随時変化する(周知)。また、本実施形態では、従来と同様に処理遅延緩和のために、異なる担当空間に存在するプレイヤー同士の相互干渉は処理の対象外とするが、処理遅延の問題を解消できればこの限りではない。   Each of the servers 1-1, 1-2,..., 1 -n executes various processes related to the players that exist in the space that it is responsible for. For example, the process includes a process in response to a player operation request from the clients 4-1,..., 4-n and a process related to mutual interference between players (eg, chat, item exchange). The position of the player in the assigned space changes from time to time according to the player operation request (well known). Further, in the present embodiment, mutual interference between players existing in different assigned spaces is excluded from processing in order to reduce processing delay as in the conventional case, but this is not limited as long as the problem of processing delay can be solved.

サーバ1−1,1−2,・・・,1−nの各々は、互いに最新情報をやり取りして同期することができる。最新情報には、サーバ1−1,1−2,・・・,1−nのIP(Internet Protocol)アドレスや、後記のサーバ−空間対応テーブルT1がある。上記のように、空間という連続した情報と、サーバ1−1,1−2,・・・,1−nの各々とを対応させる構成をとるため、従来のように、サーバ増減を行ってもその増減に伴う影響範囲を、関連する少数のサーバのみにとどめることができる。   Each of the servers 1-1, 1-2,..., 1 -n can exchange and synchronize with the latest information. The latest information includes IP (Internet Protocol) addresses of the servers 1-1, 1-2,..., 1-n, and a server-space correspondence table T1 described later. As described above, in order to adopt a configuration in which continuous information of space is associated with each of the servers 1-1, 1-2,. The range of influence accompanying the increase / decrease can be limited to only a small number of related servers.

図1中のクライアント4−1,・・・,4−nは、オンラインゲームのユーザからの入力を受け付け、ゲーム空間上のプレイヤーを操作する計算機である。クライアント4−1,・・・,4−nは、ユーザからの入力を受け付けると、ゲーム空間上のプレイヤーの現在位置をキーとして含むプレイヤー操作要求をロードバランサ3に送信する。なお、プレイヤーの現在位置は、KVS(Key Value Store)システムにおけるプレイヤー(Value)のキー(Key)となる。   Clients 4-1,..., 4-n in FIG. 1 are computers that accept input from users of online games and operate players in the game space. Upon receiving an input from the user, the clients 4-1,..., 4-n transmit a player operation request including the current position of the player in the game space as a key to the load balancer 3. Note that the current position of the player is a key of the player (Value) in the KVS (Key Value Store) system.

ロードバランサ3は、クライアント4−1,・・・,4−nから受信したプレイヤー操作要求を、例えば、ラウンドロビンによって、振り分け装置2−1,2−2,・・・,2−nのいずれかにランダムに送信する。   The load balancer 3 sends the player operation request received from the clients 4-1,..., 4-n to any of the distribution devices 2-1, 2-2,. Send it randomly.

振り分け装置2−1,2−2,・・・,2−nは、ロードバランサ3から受信したプレイヤー操作要求をサーバ1−1,1−2,・・・,1−nに振り分ける。振り分け装置2−1,2−2,・・・,2−nの各々は、サーバ−空間対応テーブルT1を有している。振り分け装置2−1,2−2,・・・,2−nはそれぞれ、同期処理をとることで、各自のサーバ−空間対応テーブルT1を同じにすることができる。   The distribution devices 2-1, 2-2,..., 2-n distribute the player operation requests received from the load balancer 3 to the servers 1-1, 1-2,. Each of the sorting devices 2-1, 2-2,..., 2-n has a server-space correspondence table T1. The distribution devices 2-1, 2-2,..., 2-n can make their server-space correspondence tables T 1 the same by performing synchronization processing.

図2に示すように、サーバ−空間対応テーブルT1は、空間名、空間左上頂点座標、空間縦長さ、空間横長さ、担当サーバといった欄を設定する。サーバ−空間対応テーブル50は、ゲーム空間を分割した空間ごとに作成されたレコードを有し、各レコードについて、前記欄の値を格納している。   As shown in FIG. 2, the server-space correspondence table T1 sets fields such as space name, space upper left vertex coordinate, space vertical length, space horizontal length, and server in charge. The server-space correspondence table 50 has a record created for each space obtained by dividing the game space, and stores the value of the field for each record.

「空間名」の欄には、ゲーム空間を上下左右の所定の単位に分割した該当空間の名称が格納される。
「空間左上頂点座標」の欄には、分割された該当空間の左上頂点の座標値が格納される。
「空間縦長さ」の欄には、分割された該当空間の縦方向の長さを示す値が格納される。
「空間横長さ」の欄には、分割された該当空間の横方向の長さを示す値が格納される。
「担当サーバ」の欄には、分割された該当空間担当するサーバの識別番号が格納される。
なお、サーバ−空間対応テーブルT1の空間名、空間左上頂点座標、空間縦長さ、空間横長さは、分割した空間ごとの「空間情報」を構成する。
In the “space name” column, the name of the corresponding space obtained by dividing the game space into predetermined units in the vertical and horizontal directions is stored.
In the “space upper left vertex coordinate” field, the coordinate value of the upper left vertex of the divided space is stored.
In the “space length” column, a value indicating the length in the vertical direction of the divided space is stored.
A value indicating the horizontal length of the divided space is stored in the “space horizontal length” column.
In the “server in charge” column, the identification number of the server in charge of the divided space is stored.
Note that the space name, space upper left vertex coordinate, space vertical length, and space horizontal length of the server-space correspondence table T1 constitute “space information” for each divided space.

振り分け装置2−1,2−2,・・・,2−nは、ロードバランサ3から受信したプレイヤー操作要求に含まれるキーを読み取り、プレイヤーの現在位置を把握し、サーバ−空間対応テーブルT1を参照して、プレイヤーの現在位置を含む空間を担当するサーバを特定し、特定したサーバにプレイヤー操作要求を振り分けることができる。   The distribution devices 2-1, 2-2,..., 2-n read the key included in the player operation request received from the load balancer 3, grasp the current position of the player, and store the server-space correspondence table T 1. By referring to the server, the server in charge of the space including the current position of the player can be identified, and the player operation request can be distributed to the identified server.

(ゲームサーバ装置1の構成)
図3に示すように、本実施形態のゲームサーバ装置1は、処理部10、通信部20、および、記憶部30を備える。
(Configuration of game server device 1)
As shown in FIG. 3, the game server device 1 of this embodiment includes a processing unit 10, a communication unit 20, and a storage unit 30.

通信部20は、通信回線を介して情報を送受信する通信インターフェースによって構成され、内部バスなどを介して処理部10に接続されている。処理部10は、他のゲームサーバ装置1や、振り分け装置2−1,2−2,・・・,2−nと、情報の送受信を行うことができる。   The communication unit 20 includes a communication interface that transmits and receives information via a communication line, and is connected to the processing unit 10 via an internal bus or the like. The processing unit 10 can transmit / receive information to / from other game server devices 1 and the distribution devices 2-1, 2-2,.

記憶部30は、例えば、ハードディスク、フラッシュメモリ、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置である。記憶部30は、オンラインゲームを実現するためのアプリケーションを記憶している(図示略)。また、記憶部30は、複数のゲームサーバ装置1間で実行される分散処理を実現するためのプログラム(分散処理プログラム)を記憶している(図示略)。また、記憶部30は、例えば、振り分け装置2−1,2−2,・・・,2−nのサーバ−空間対応テーブルT1と同じサーバ−空間対応テーブルT1、自身の担当空間の境界情報T2、自身の担当空間内に存在するプレイヤーの状態データの原本(D1)、自身の担当空間に隣接する空間に存在するプレイヤーの状態データのレプリカ(D2)を記憶している。   The storage unit 30 is a storage device such as a hard disk, a flash memory, a ROM (Read Only Memory), and a RAM (Random Access Memory). The storage unit 30 stores an application for realizing an online game (not shown). The storage unit 30 stores a program (distributed processing program) for realizing distributed processing executed between the plurality of game server devices 1 (not shown). In addition, the storage unit 30 includes, for example, the same server-space correspondence table T1 as the server-space correspondence table T1 of the sorting devices 2-1, 2-2,. The original state data (D1) of the player's state data existing in his / her assigned space and the player's state data replica (D2) existing in the space adjacent to his / her assigned space are stored.

自身の担当空間の境界情報T2は、自身の担当空間と隣接空間との境界を、隣接空間ごとに示す情報である。境界情報T2は、サーバ−空間対応テーブルT1の内容に基づいて作成することができる。隣接空間が自身の担当空間の上下左右に位置する場合には、境界は線であり、境界を、ゲーム空間の座標の点集合で表現することができる。また、隣接空間が自身の担当空間の右上、右下、左下、左上に位置する場合には、境界は点であり、境界を、ゲーム空間の1座標で表現することができる。   The boundary information T2 of the own assigned space is information indicating the boundary between the assigned assigned space and the adjacent space for each adjacent space. The boundary information T2 can be created based on the contents of the server-space correspondence table T1. When the adjacent space is positioned on the top, bottom, left, and right of its own assigned space, the boundary is a line, and the boundary can be represented by a set of points in the game space coordinates. Further, when the adjacent space is located at the upper right, lower right, lower left, or upper left of its own assigned space, the boundary is a point, and the boundary can be expressed by one coordinate of the game space.

処理部10は、ゲームサーバ装置1が実行する処理の全体を司る。処理部10は、例えば、記憶部30が記憶するプログラムをCPU(Central Processing Unit)が記憶部30のRAMに展開して実行することによって実現される。処理部10は、原本データ管理部11と、レプリカ配置部12と、負荷監視部13と、空間分割部14と、空間分割通知部15と、境界情報算出部16と、いった機能部を備えている。   The processing unit 10 governs the entire processing executed by the game server device 1. The processing unit 10 is realized, for example, by a CPU (Central Processing Unit) developing and executing a program stored in the storage unit 30 on the RAM of the storage unit 30 and executing the program. The processing unit 10 includes functional units such as an original data management unit 11, a replica placement unit 12, a load monitoring unit 13, a space division unit 14, a space division notification unit 15, and a boundary information calculation unit 16. ing.

原本データ管理部11は、ゲームサーバ装置1自身が担当する空間に存在するプレイヤーの状態データの原本を保存する。ゲームサーバ装置1の記憶部30に記憶される状態データの原本(D1)は、ゲームサーバ装置1自身の担当空間に存在するプレイヤーのものである。自身の担当空間に存在するプレイヤーが他の空間に移動した場合には、原本データ管理部11は、当該プレイヤーの状態データの原本をレプリカに切り替えて記憶部30に保存する。また、原本データ管理部11は、隣接する空間に居たプレイヤーが自身の担当する空間に移動したことを検出すると、当該プレイヤーの状態データの原本を記憶部30に記憶する。このとき、原本データ管理部11は、事前に保存していた当該プレイヤーの状態データのレプリカを用いる。   The original data management unit 11 stores an original of player state data existing in a space that the game server device 1 itself is in charge of. The original state data (D1) stored in the storage unit 30 of the game server device 1 belongs to the player existing in the space in charge of the game server device 1 itself. When a player existing in his / her assigned space moves to another space, the original data management unit 11 switches the original state data of the player to a replica and stores it in the storage unit 30. In addition, when the original data management unit 11 detects that a player in an adjacent space has moved to the space that he / she is in charge of, the original data management unit 11 stores the original state data of the player in the storage unit 30. At this time, the original data management unit 11 uses a replica of the player's state data stored in advance.

レプリカ配置部12は、ゲームサーバ装置1自身が担当する空間に存在するプレイヤーに関して、当該プレイヤーの状態データのレプリカを、隣接する空間を担当する他のゲームサーバ装置1へコピー(配置)する。ゲームサーバ装置1の記憶部30に記憶される状態データのレプリカ(D2)は、ゲームサーバ装置1自身の担当空間に隣接する空間に存在するプレイヤーのものである。   The replica placement unit 12 copies (places) a replica of the player's state data to another game server device 1 that is in charge of the adjacent space for the player that exists in the space that the game server device 1 itself is in charge of. The replica (D2) of the state data stored in the storage unit 30 of the game server device 1 is that of a player that exists in a space adjacent to the assigned space of the game server device 1 itself.

負荷監視部13は、ゲームサーバ装置1自身の負荷を監視する。負荷監視部13が監視する負荷は、例えば、CPU使用率やメモリ使用量があるが、これらに限定されない。   The load monitoring unit 13 monitors the load of the game server device 1 itself. Examples of the load monitored by the load monitoring unit 13 include, but are not limited to, a CPU usage rate and a memory usage amount.

空間分割部14は、負荷監視部13が監視する負荷が、所定の値を超えた場合には、自身の担当する空間を細分割して、当該細分割した空間の一つを新たなゲームサーバ装置1に割り当てる。空間分割部14は、担当空間の細分割を反映するように自身のサーバ−空間対応テーブルT1の内容を書き換える。よって、空間分割部14は、空間情報も細分割を反映するように書き換える。   When the load monitored by the load monitoring unit 13 exceeds a predetermined value, the space dividing unit 14 subdivides the space in charge of the space dividing unit 14 and sets one of the subdivided spaces as a new game server. Assign to device 1. The space division unit 14 rewrites the contents of its own server-space correspondence table T1 to reflect the subdivision of the assigned space. Therefore, the space division unit 14 rewrites the spatial information to reflect the subdivision.

空間分割通知部15は、空間分割部14による細分割前の空間に隣接する空間を担当する他のゲームサーバ装置1に、この細分割を反映した空間情報を通知する。   The space division notification unit 15 notifies the other game server device 1 in charge of the space adjacent to the space before the subdivision by the space division unit 14 of the space information reflecting this subdivision.

境界情報算出部16は、細分割前の空間を担当する他のゲームサーバ装置1の空間分割通知部15から通知された空間情報を受信した場合、受信した空間情報に基づいて、自身の担当する空間の境界情報を更新する。   When the boundary information calculation unit 16 receives the spatial information notified from the space division notification unit 15 of the other game server device 1 that is in charge of the space before subdivision, the boundary information calculation unit 16 is responsible for the space information based on the received spatial information. Update space boundary information.

(プレイヤーの隣接空間への移動に関する詳細)
ゲームサーバ装置1は、自身の担当空間に存在するプレイヤーの状態データ原本を有する。図4には、ゲーム空間を、空間A〜空間K、・・・に分割し、ゲームサーバ装置1に対応するサーバ1〜サーバ11、・・・が各空間を担当した場合において、サーバ6が担当する空間FにプレイヤーA、B(丸印で表現)が存在する様子が示されている。サーバ6の原本データ管理部11は、プレイヤーAのプレイヤー状態a(原本)と、プレイヤーBのプレイヤー状態b(原本)とを保存している。なお、「プレイヤー状態」という語は、「プレイヤーの状態データ」と同義である。
(Details about players moving to adjacent spaces)
The game server device 1 has original state data of players existing in its own assigned space. In FIG. 4, when the game space is divided into space A to space K,... And the servers 1 to 11,. A state in which players A and B (represented by circles) exist in the space F in charge is shown. The original data management unit 11 of the server 6 stores a player state a (original) of the player A and a player state b (original) of the player B. The term “player status” is synonymous with “player status data”.

ここで、サーバ6は、境界情報T2を用いて、空間Fに隣接する空間A,B,C,E,G,I,J,Kを迅速に特定することができる。サーバ6のレプリカ配置部12は、空間A,B,C,E,G,I,J,Kを担当するサーバ1,2,3,5,7,9,10,11へ、プレイヤー状態a,bのレプリカをコピーする。   Here, the server 6 can quickly specify the spaces A, B, C, E, G, I, J, and K adjacent to the space F using the boundary information T2. The replica arrangement unit 12 of the server 6 sends the player states a, B to the servers 1, 2, 3, 5, 7, 9, 10, 11 in charge of the spaces A, B, C, E, G, I, J, and K. Copy replica of b.

例えば、プレイヤーAが空間Fから空間Gに移動した場合、空間Gを担当するサーバ7の原本データ管理部11は、プレイヤーAを検出すると、既にコピー済みのプレイヤー状態aのレプリカを原本として保存する。これにより、従来行われていた、プレイヤーAの移動に伴うサーバ6,7間の状態データ移行処理を省略することができる。よって、サーバ7は、プレイヤーAに対する処理を迅速に開始することができ、空間移動時のゲーム中断時間を大幅に短縮することができる。   For example, when the player A moves from the space F to the space G, when the original data management unit 11 of the server 7 in charge of the space G detects the player A, it stores the already copied replica of the player state a as the original. . Thereby, the state data transfer process between the servers 6 and 7 accompanying the movement of the player A, which has been conventionally performed, can be omitted. Therefore, the server 7 can quickly start the process for the player A, and can significantly reduce the game interruption time during the space movement.

また、プレイヤーAの移動元となる空間Fは、移動先の空間Gから見て新たな隣接空間となる。このため、サーバ6は、プレイヤーAのプレイヤー状態aの原本をレプリカとして継続利用する。このとき、サーバ7のレプリカ配置部12が、サーバ6に対し、プレイヤー状態aの原本をレプリカとして保存するように指示する。   In addition, the space F that is the movement source of the player A becomes a new adjacent space as viewed from the movement destination space G. For this reason, the server 6 continues to use the original of the player state “a” of the player A as a replica. At this time, the replica placement unit 12 of the server 7 instructs the server 6 to store the original player state a as a replica.

上記のように、隣接空間のすべてにレプリカを配置(コピー)すると、レプリケーション負荷が非常に大きいため、ゲームサーバ装置1の処理に相応の影響が生じる可能性が有る。このため、プレイヤーの移動先を予測してレプリカの配置先を絞り込む方法が考えられる。   As described above, when replicas are placed (copied) in all adjacent spaces, the replication load is very large, and there is a possibility that a corresponding influence will occur on the processing of the game server device 1. For this reason, a method of narrowing down the replica placement destination by predicting the player's destination is conceivable.

(レプリカの配置先の絞り込み方法1)
例えば、プレイヤーの現在位置から所定の距離に及ぶ範囲を含む空間にのみレプリカを配置する。レプリケーションに要する時間内にプレイヤーが移動可能となる距離(開発者が予め規定)に対して、この距離よりも大きいという条件を満たす任意の距離をレプリカ配置の判定基準となるレプリカ判定距離として設定する。
(Restriction method 1 for replica placement)
For example, the replica is arranged only in a space including a range extending a predetermined distance from the current position of the player. For the distance that the player can move within the time required for replication (specified by the developer in advance), an arbitrary distance that satisfies the condition of being larger than this distance is set as a replica determination distance that is a criterion for replica placement. .

そして、プレイヤーの位置から隣接空間との境界までの距離を逐次算出し、レプリカ判定距離と比較して、境界がレプリカ判定距離内にある場合に、当該隣接空間を担当するサーバへレプリカをコピーする。換言すれば、
プレイヤーの位置座標:(Xp,Yp)
レプリカ判定距離:r
各空間の境界を構成する座標:(Xs,Ys)
レプリカ配置判定式:(Xp−Xs) + (Yp−Ys) < r
とした場合、
上記レプリカ判定式を満たす(Xs,Ys)を持つ隣接空間にレプリカを配置する。なお、上下の隣接空間に対しては、Xp−Xs=0として上記レプリカ配置判定式を用いる。また、左右の隣接空間に対しては、Yp−Ys=0として上記レプリカ配置判定式を用いる。
Then, the distance from the player position to the boundary with the adjacent space is sequentially calculated, and compared with the replica determination distance, when the boundary is within the replica determination distance, the replica is copied to the server in charge of the adjacent space. . In other words,
Player position coordinates: (Xp, Yp)
Replica determination distance: r
Coordinates constituting the boundary of each space: (Xs, Ys)
Replica arrangement determination formula: (Xp−Xs) 2 + (Yp−Ys) 2 <r 2
If
A replica is arranged in an adjacent space having (Xs, Ys) that satisfies the replica determination formula. For the upper and lower adjacent spaces, the above replica arrangement determination formula is used with Xp−Xs = 0. For the left and right adjacent spaces, the above-described replica arrangement determination formula is used with Yp−Ys = 0.

図5によれば、プレイヤーAが空間F内の図5に示す位置に配置されているとすると、プレイヤーAの現在位置からレプリカ判定距離に及ぶ範囲を含む空間は、空間B,C,Gとなる。このため、空間Fを担当するサーバ6のレプリカ配置部12は、空間B,C,Gを担当するサーバ2,3,7のみへ、プレイヤー状態aのレプリカをコピーする。
また、プレイヤーBが空間F内の図5に示す位置に配置されているとすると、プレイヤーBの現在位置からレプリカ判定距離に及ぶ範囲を含む空間は、空間A,B,Eとなる。このため、空間Fを担当するサーバ6のレプリカ配置部12は、空間A,B,Eを担当するサーバ1,2,5のみへ、プレイヤー状態aのレプリカをコピーする。
According to FIG. 5, if the player A is arranged in the position shown in FIG. 5 in the space F, the space including the range extending from the current position of the player A to the replica determination distance is represented by spaces B, C, and G. Become. Therefore, the replica placement unit 12 of the server 6 in charge of the space F copies the replica of the player state a only to the servers 2, 3, and 7 in charge of the spaces B, C, and G.
Further, assuming that the player B is arranged in the position shown in FIG. 5 in the space F, the spaces including the range extending from the current position of the player B to the replica determination distance are spaces A, B, and E. Therefore, the replica placement unit 12 of the server 6 in charge of the space F copies the replica of the player state a only to the servers 1, 2, and 5 in charge of the spaces A, B, and E.

(レプリカの配置先の絞り込み方法2)
例えば、プレイヤーの位置を所定周期ごとに保持し、保持した位置の履歴から速度ベクトルを算出し、速度ベクトルを元にして、移動が継続した場合にプレイヤーの移動先となる空間を特定し、その特定した空間の境界に到達するまでにかかる時間を算出する。
(Method 2 for narrowing down replica placement locations)
For example, the player's position is held every predetermined period, the velocity vector is calculated from the history of the held position, and the space to which the player moves when the movement continues based on the velocity vector is determined. Calculate the time it takes to reach the boundary of the identified space.

そして、この算出した時間がレプリケーションに要する時間以下である場合に、移動先となる隣接空間を担当するサーバへレプリカをコピーする。換言すれば、
プレイヤーの位置座標:(Xp,Yp)
プレイヤーの速度ベクトル:(Vx,Vy)
レプリケーションに要する時間:t
速度ベクトルと交わる、空間の境界の点の座標:(Xs,Ys)
とした場合、
レプリカ配置判定式(左右方向の隣接空間到達時例):|Xs−Xp|/Vx<tを満たすとき、または、
レプリカ配置判定式(上下方向の隣接空間到達時例):|Ys−Yp|/Vy<tを満たすとき、該当隣接空間にレプリカを配置する。
When the calculated time is equal to or shorter than the time required for replication, the replica is copied to the server in charge of the adjacent space serving as the movement destination. In other words,
Player position coordinates: (Xp, Yp)
Player velocity vector: (Vx, Vy)
Time required for replication: t
Coordinates of space boundary points that intersect the velocity vector: (Xs, Ys)
If
Replica arrangement determination formula (example of arrival in adjacent space in the left-right direction): When | Xs−Xp | / Vx <t is satisfied, or
Replica placement determination formula (example when reaching the adjacent space in the vertical direction): When satisfying | Ys−Yp | / Vy <t, a replica is placed in the corresponding adjacent space.

図6によれば、プレイヤーAが空間F内の図6に示す位置に配置されているとすると、プレイヤーAの速度ベクトルは、空間Bとの境界と交わる。このため、空間Fを担当するサーバ6のレプリカ配置部12は、レプリカ配置判定式(上下方向の隣接空間到達時例)を満たすタイミングで、空間Bを担当するサーバ2のみへ、プレイヤー状態aのレプリカをコピーする。
また、プレイヤーBが空間F内の図6に示す位置に配置されているとすると、プレイヤーBの速度ベクトルは、空間Gとの境界と交わる。このため、空間Fを担当するサーバ6のレプリカ配置部12は、レプリカ配置判定式(左右方向の隣接空間到達時例)を満たすタイミングで、空間Gを担当するサーバ7のみへ、プレイヤー状態bのレプリカをコピーする。
According to FIG. 6, assuming that the player A is arranged at the position shown in FIG. 6 in the space F, the velocity vector of the player A intersects with the boundary with the space B. For this reason, the replica placement unit 12 of the server 6 in charge of the space F only sends the player state a to the server 2 in charge of the space B at a timing that satisfies the replica placement determination formula (example when reaching the adjacent space in the vertical direction). Copy a replica.
Further, assuming that the player B is disposed in the position shown in FIG. 6 in the space F, the velocity vector of the player B intersects with the boundary with the space G. For this reason, the replica placement unit 12 of the server 6 in charge of the space F sends only the server 7 in charge of the space G in the player state b at a timing that satisfies the replica placement determination formula (example of arrival in the adjacent space in the left-right direction). Copy a replica.

(プレイヤーの移動に伴う負荷の偏りに関する詳細)
プレイヤーは(イベントの進行具合などの考慮しなければ)分割されたゲーム空間を自由に移動することができる。このため、サーバ間での負荷の偏りが発生する可能性があり、特定の空間に多数のプレイヤーが集中し、その空間を担当するサーバが過負荷になり、システムがダウンするおそれがある。また、プレイヤーの位置は、プレイヤー操作要求によって随時変化する。このため、各サーバの担当空間を上記のように上下左右に均一に分割して設定するのではなく、負荷を予測して、負荷に応じて空間の大きさや形状をアレンジするように設定することは困難である。
(Details regarding load bias due to player movement)
The player can move freely in the divided game space (unless the event progress is taken into consideration). For this reason, there is a possibility that the load is unbalanced among the servers, a large number of players are concentrated in a specific space, the server in charge of the space is overloaded, and the system may be down. Further, the position of the player changes at any time according to a player operation request. For this reason, instead of setting the server's assigned space uniformly in the vertical and horizontal directions as described above, predict the load and set the size and shape of the space according to the load. It is difficult.

そこで、ゲームサーバ装置1は、負荷監視部13によって、担当空間ごとの負荷を監視し、プレイヤーの移動などによって負荷が閾値を超えた場合には、空間分割部14によって担当空間を細分割する。例えば、空間を細分割する方法の一例として、2次元座標で示される領域の面積が半分になるように、縦または横に空間を細分割する。
図7には、空間Bを担当するサーバ2が、プレイヤーが空間Bに集中し過負荷になったため、空間分割部14によって空間Bを縦に細分割する様子が図示されている。空間Bは細分割されて、左半分は空間B1、右半分は空間B2となる。
Therefore, the game server device 1 monitors the load for each assigned space by the load monitoring unit 13, and subdivides the assigned space by the space dividing unit 14 when the load exceeds a threshold due to movement of the player or the like. For example, as an example of a method for subdividing the space, the space is subdivided vertically or horizontally so that the area of the region indicated by the two-dimensional coordinates is halved.
FIG. 7 illustrates a state in which the server 2 in charge of the space B subdivides the space B vertically by the space dividing unit 14 because the player concentrates on the space B and is overloaded. Space B is subdivided so that the left half is space B1 and the right half is space B2.

細分割された空間Bについて、空間B1はサーバ2が引き継ぐ一方、空間B2は新たなサーバ2aを増設し割り当てる。サーバ2は、新たなサーバ2aに所定のデータを移行して、サーバ2aに処理を引き継がせる。このデータには、空間B2に存在するプレイヤーの状態データが含まれる。また、サーバ2は、自身のサーバ−空間対応テーブルT1を更新して、空間B1の領域のこと、空間B1を担当するサーバ2のこと、空間B2の領域のこと、空間B2を担当するサーバ2aのことを反映させる。その結果、空間B1,B2に対応する空間情報が生成される。
また、サーバ2は、振り分け装置2−1,2−2,・・・,2−nに対して、振り分け装置2−1,2−2,・・・,2−nのサーバ−空間対応テーブルT1を更新するように要求して、空間B1の領域のこと、空間B1を担当するサーバ2のこと、空間B2の領域のこと、空間B2を担当するサーバ2aのことを反映させる。
Regarding the subdivided space B, the server B 2 takes over the space B1, while the space B2 is allocated by adding a new server 2a. The server 2 migrates predetermined data to the new server 2a and causes the server 2a to take over the processing. This data includes the state data of the players existing in the space B2. Further, the server 2 updates its own server-space correspondence table T1, and indicates the area of the space B1, the server 2 in charge of the space B1, the area of the space B2, and the server 2a in charge of the space B2. Reflect that. As a result, spatial information corresponding to the spaces B1 and B2 is generated.
In addition, the server 2 is a server-space correspondence table of the distribution devices 2-1, 2-2,..., 2-n with respect to the distribution devices 2-1, 2-2,. A request to update T1 is made to reflect the area of space B1, the server 2 in charge of space B1, the area of space B2, and the server 2a in charge of space B2.

細分割される前の空間(図7の空間B)に隣接する空間(図7の空間A,C,D)を担当するゲームサーバ装置1のなかには、自身が担当する空間に存在するプレイヤーの移動先が増加するものが存在する(図7の空間D)。このため、移動先が増加するゲームサーバ装置1は、当該移動先の増加を即座に認識して、レプリカの再配置を行う必要がある。このことを踏まえて、細分割される前の空間Bを担当するサーバ2の空間分割通知部15は、隣接空間(A,C,D)を担当するサーバ(1,3,4)へ、細分割を反映した空間情報を通知する。空間分割通知部15の通知内容は、例えば、追加された新たなサーバ(図7のサーバ2a)の担当空間(図7の空間B2)の形状が長方形であれば、当該長方形の頂点の座標などを含む。   In the game server device 1 in charge of the space (spaces A, C, and D in FIG. 7) adjacent to the space before the subdivision (space B in FIG. 7), the movement of the player existing in the space that the user is in charge of There is something that increases ahead (space D in FIG. 7). For this reason, the game server device 1 in which the movement destination increases needs to immediately recognize the increase in the movement destination and rearrange the replicas. Based on this, the space division notifying unit 15 of the server 2 that is in charge of the space B before being subdivided is sent to the server (1, 3, 4) that is in charge of the adjacent space (A, C, D). Notify the spatial information reflecting the division. The notification content of the space division notification unit 15 is, for example, if the shape of the assigned space (space B2 in FIG. 7) of the added new server (server 2a in FIG. 7) is a rectangle, etc. including.

細分割された空間の隣接空間を担当するゲームサーバ装置1は、境界情報算出部16によって、細分割される前の空間を担当するゲームサーバ装置1の空間分割通知部15からの通知内容に基づいて、自身の境界情報を更新する。図8によれば、細分割された空間B1,B2に隣接する空間Dを担当するサーバ4は、境界情報算出部16によって、空間Dの境界情報(サーバ4の記憶部30が記憶する境界情報T2)を、隣接空間B1,B2、および、これらの空間の境界線を構成する座標を特定するように更新する。   The game server device 1 in charge of the adjacent space of the subdivided space is based on the notification content from the space division notification unit 15 of the game server device 1 in charge of the space before subdivision by the boundary information calculation unit 16. Update its own boundary information. According to FIG. 8, the server 4 in charge of the space D adjacent to the subdivided spaces B1 and B2 causes the boundary information calculation unit 16 to perform boundary information on the space D (boundary information stored in the storage unit 30 of the server 4). T2) is updated to identify the adjacent spaces B1, B2 and the coordinates that make up the boundary of these spaces.

隣接空間の数が増加した空間を担当するゲームサーバ装置1は、レプリカ配置部12によって、空間情報および境界情報に基づいて、細分割された空間の各々へ、自身の空間に存在するプレイヤーの状態データのレプリカを配置する。よって、細分割された空間に対してもプレイヤー移動時の処理の引き継ぎは、すでに説明したレプリカから原本への切り替えによって、迅速に行うことができる。図8には、サーバ4が、担当の空間Dのプレイヤー状態p(原本)のレプリカを、細分割された空間B1,B2に配置する様子が示されている。   The game server device 1 in charge of the space in which the number of adjacent spaces has increased is determined by the replica placement unit 12 based on the space information and the boundary information, to each of the subdivided spaces, and the state of the player existing in its own space Place a replica of the data. Therefore, even when the player is moving the subdivided space, the process can be taken over quickly by switching from the replica described above to the original. FIG. 8 shows how the server 4 arranges replicas of the player state p (original) of the space D in charge in the subdivided spaces B1 and B2.

また、空間の細分割があっても、隣接空間の数が増加していないゲームサーバ装置1は、細分割によって隣接ではなくなった空間に存在するプレイヤーの状態データのレプリカを廃棄する。図8には明示していないが、細分割前の空間Bは、空間A,Cに隣接していたが、空間Bを空間B1,B2に細分割することで、空間B2は、もはや、空間A,Cに隣接しなくなった。このため、細分割前の空間Bに存在しており、細分割後の空間B2に存在するプレイヤーについては、空間B2を担当するサーバ2aのレプリカ配置部12は、対応の状態データを空間A,Cに配置しないように処理する。   In addition, even if there is a subdivision of the space, the game server device 1 in which the number of adjacent spaces has not increased discards a replica of the player's state data that exists in the space that is no longer adjacent due to the subdivision. Although not explicitly shown in FIG. 8, the space B before the subdivision was adjacent to the spaces A and C. However, by subdividing the space B into the spaces B1 and B2, the space B2 is no longer a space. It is no longer adjacent to A and C. Therefore, for a player that exists in the space B before subdivision and exists in the space B2 after subdivision, the replica placement unit 12 of the server 2a in charge of the space B2 sends the corresponding state data to the space A, Process so as not to place in C.

これまでに説明した機能は、ミドルウェアで実装可能であり、アプリケーションの種別によらず、汎用的に利用可能であるという利点がある。   The functions described so far can be implemented by middleware, and have the advantage that they can be used universally regardless of the type of application.

(処理)
次に、本実施形態のゲームサーバ装置の処理について説明する。
図9は、プレイヤーの隣接空間への移動に関する処理を示すフローチャートである。この処理は、ステップS1から開始する。
(processing)
Next, processing of the game server device of this embodiment will be described.
FIG. 9 is a flowchart showing processing relating to the movement of the player to the adjacent space. This process starts from step S1.

ステップS1にて、ゲームサーバ装置1は、原本データ管理部11によって、自身の担当空間に存在する担当のプレイヤーに関して、このプレイヤーの状態データの原本を記憶部30に保存する。また、ゲームサーバ装置1は、原本データ管理部11によって、クライアントから随時取得するプレイヤー操作要求に応じてプレイヤーの動作処理を実行するとともに、当該プレイヤーの状態データの原本を更新する。   In step S <b> 1, the game server device 1 stores the original state data of the player in the storage unit 30 with respect to the player in charge in the own space by the original data management unit 11. In addition, the game server device 1 executes the player's operation process in response to a player operation request acquired from the client as needed by the original data management unit 11, and updates the original state data of the player.

次に、ステップS2にて、ゲームサーバ装置1は、レプリカ配置部12によって、自身の担当空間の隣接空間に、担当プレイヤーの状態データのレプリカをコピーする。このとき、既に説明したように、レプリカ配置部12は、レプリカ判定距離やプレイヤーの速度ベクトルを用いてレプリカの配置先を絞り込むことができる。また、ゲームサーバ装置1は、レプリカ配置部12によって、当該プレイヤーの状態データの原本の更新に応じて、当該プレイヤーの状態データのレプリカを更新し、隣接空間にコピーする。   Next, in step S <b> 2, the game server device 1 uses the replica placement unit 12 to copy a replica of the state data of the player in charge to the adjacent space of the player's assigned space. At this time, as already described, the replica placement unit 12 can narrow down the replica placement destinations using the replica determination distance and the velocity vector of the player. In addition, the game server device 1 updates the replica of the state data of the player by the replica placement unit 12 in accordance with the update of the original state data of the player and copies it to the adjacent space.

次に、ステップS3にて、ゲームサーバ装置1は、担当のプレイヤーが隣接空間へ移動したか否かを判定する。移動した場合(ステップS3でYes)、当該プレイヤーはもはや担当外になったことを意味し、ステップS4に進む。一方、移動していない場合、(ステップS3でNo)、ゲームサーバ装置1が当該プレイヤーの担当を継続することを意味し、ステップS1に戻る。   Next, in step S3, the game server device 1 determines whether or not the player in charge has moved to the adjacent space. If it has moved (Yes in step S3), it means that the player is no longer in charge, and the process proceeds to step S4. On the other hand, when it is not moving (No in step S3), it means that the game server device 1 continues to be in charge of the player, and the process returns to step S1.

ステップS4にて、ゲームサーバ装置1は、レプリカ配置部12によって、プレイヤーの移動先となる隣接空間を担当する他のゲームサーバ装置1に対して、事前にコピーした、移動先のレプリカを原本として切り替えるように指示する。他のゲームサーバ装置1はこの指示に応じて、既に保存している対象プレイヤーの状態データのレプリカを原本として使用し、対象プレイヤーの動作処理を開始する。また、他のゲームサーバ装置1のレプリカ配置部12は、ゲームサーバ装置1に対し、対象プレイヤーの状態データの原本をレプリカとして保存するように指示する。   In step S4, the game server device 1 uses the replica placement unit 12 as an original copy of the destination replica copied in advance to another game server device 1 in charge of the adjacent space to which the player moves. Instruct to switch. In response to this instruction, the other game server device 1 uses the already-stored replica of the target player's state data as the original, and starts the operation process of the target player. Further, the replica placement unit 12 of the other game server device 1 instructs the game server device 1 to store the original state data of the target player as a replica.

ステップS5にて、ゲームサーバ装置1は、原本データ管理部11によって、他のゲームサーバ装置1のレプリカ配置部12からの指示に応じて、もはや担当外となったプレイヤーの状態の原本をレプリカとして記憶部30に保存する。   In step S5, the game server device 1 uses the original data management unit 11 as a replica in accordance with an instruction from the replica placement unit 12 of the other game server device 1 as a replica. Save in the storage unit 30.

図9の処理によれば、プレイヤーが隣接空間に移動した場合、ゲームサーバ装置間で当該プレイヤーの状態データを移行させる代わりに、隣接空間を担当するゲームサーバ装置が、すでにコピー済みのレプリカを原本に切り替えてプレイヤーの処理を継続することができる。よって、状態データの移行に伴う処理遅延やプレイの一時中断を回避しサービス品質の低下をもたらすことはない。
したがって、分散処理でオンラインゲームを実行するゲームサーバ装置に関して、オンラインゲームのプレイヤーが現在いる空間から隣の空間に移動する際の処理遅延を緩和することができる。
According to the processing of FIG. 9, when a player moves to an adjacent space, the game server device in charge of the adjacent space copies the original copy that has already been copied, instead of transferring the state data of the player between the game server devices. The player's processing can be continued by switching to. Therefore, the processing delay and the play interruption associated with the state data transfer are avoided, and the service quality is not deteriorated.
Therefore, regarding a game server device that executes an online game by distributed processing, it is possible to reduce processing delay when the player of the online game moves from the current space to the adjacent space.

また、レプリカ判定距離やプレイヤーの速度ベクトルを用いて、状態データのレプリカの配置先を絞り込むことができるため、レプリケーション負荷を小さくすることができる。   Further, the replica placement distance can be narrowed down by using the replica determination distance and the player velocity vector, so that the replication load can be reduced.

図10は、空間の細分割に関する処理を示すフローチャートである。この処理は、ステップS11から開始する。   FIG. 10 is a flowchart showing processing relating to space subdivision. This process starts from step S11.

ステップS11にて、ゲームサーバ装置1は、負荷監視部13によって、ゲームサーバ装置1自身の負荷を監視する。   In step S <b> 11, the game server device 1 monitors the load of the game server device 1 itself by the load monitoring unit 13.

次に、ステップS12にて、ゲームサーバ装置1は、負荷監視部13によって、ゲームサーバ装置1自身の負荷が、予め設定した閾値(例えば、ゲームサーバ装置1の記憶部30に記憶されている)を超えたか否かを判定する。負荷が閾値を超えた場合(ステップS12でYes)、ゲームサーバ装置1が過負荷状態であることを意味し、ステップS13に進む。一方、負荷が閾値を超えていない場合(ステップS12でNo)、ゲームサーバ装置1が過負荷状態はないことを意味し、ステップS11に戻る。   Next, in step S12, the game server device 1 uses the load monitoring unit 13 to load the game server device 1 itself with a preset threshold value (for example, stored in the storage unit 30 of the game server device 1). It is determined whether or not the number is exceeded. If the load exceeds the threshold (Yes in Step S12), it means that the game server device 1 is in an overload state, and the process proceeds to Step S13. On the other hand, if the load does not exceed the threshold value (No in step S12), it means that the game server device 1 is not overloaded, and the process returns to step S11.

ステップS13にて、ゲームサーバ装置1は、空間分割部14によって、自身の担当空間を細分割する。このとき、ゲームサーバ装置1は、細分割した空間の一つを引き続き担当し、残りを新たなゲームサーバ装置1に割り当てる。   In step S <b> 13, the game server device 1 subdivides its own assigned space by the space dividing unit 14. At this time, the game server device 1 continues to take charge of one of the subdivided spaces and allocates the rest to the new game server device 1.

ステップS14にて、ゲームサーバ装置1は、空間分割部14によって、自身のサーバ−空間対応テーブルT1の内容を更新して、空間分割部14による細分割を反映する。このとき、細分割された空間の空間情報が生成される。また、ゲームサーバ装置1は、振り分け装置2−1,2−2,・・・,2−nに対して、振り分け装置2−1,2−2,・・・,2−nのサーバ−空間対応テーブルT1を更新するように要求する。振り分け装置2−1,2−2,・・・,2−nの各々は、自身のサーバ−空間対応テーブルT1を更新して、上記の細分割を反映する。   In step S <b> 14, the game server device 1 updates the contents of its own server-space correspondence table T <b> 1 by the space dividing unit 14 to reflect the subdivision by the space dividing unit 14. At this time, spatial information of the subdivided space is generated. In addition, the game server device 1 has a server space of the sorting devices 2-1, 2-2,..., 2-n with respect to the sorting devices 2-1, 2-2,. Request to update the correspondence table T1. Each of the distribution devices 2-1, 2-2,..., 2-n updates its own server-space correspondence table T 1 to reflect the above subdivision.

ステップS15にて、ゲームサーバ装置1は、空間分割通知部15によって、細分割前の担当空間の隣接空間を担当する隣接サーバへ細分割後の空間情報を通知する。通知を受けた隣接サーバの境界情報算出部16は、通知内容に応じて自身の境界情報を更新する。   In step S <b> 15, the game server device 1 notifies the space information after subdivision to the adjacent server in charge of the adjacent space of the assigned space before subdivision by the space division notification unit 15. The boundary information calculation unit 16 of the adjacent server that has received the notification updates its boundary information according to the notification content.

ステップS16にて、ゲームサーバ装置1は、レプリカ配置部12によって、空間分割部14による細分割に応じて、担当しているプレイヤーの状態データのレプリカを、隣接空間にコピーする。また、ゲームサーバ装置1は、レプリカ配置部12によって、当該プレイヤーの状態データの原本の更新に応じて、当該プレイヤーの状態データのレプリカを更新し、隣接空間にコピーする。   In step S <b> 16, the game server device 1 causes the replica placement unit 12 to copy a replica of the state data of the player in charge to the adjacent space in accordance with the subdivision by the space division unit 14. In addition, the game server device 1 updates the replica of the state data of the player by the replica placement unit 12 in accordance with the update of the original state data of the player and copies it to the adjacent space.

図10の処理によれば、空間の細分割によって、過負荷となったゲームサーバ装置に対して、新たなゲームサーバ装置が負荷を分担することができるため、システムのダウンを回避することができる。   According to the process of FIG. 10, since the new game server device can share the load with respect to the game server device that is overloaded due to the subdivision of the space, it is possible to avoid a system down. .

(変形例)
レプリカ配置部12は、1つの隣接空間に対して、状態データのレプリカを、1つだけでなく2以上配置することができる。
また、本実施形態の空間分割部14は、1つの空間を2だけでなく、3以上に細分割することができる。この場合、分割する方向は、縦や横に限らず、斜め、折れ線、曲線で分割することもできる。
(Modification)
The replica placement unit 12 can place not only one state data replica but two or more state data in one adjacent space.
In addition, the space dividing unit 14 of the present embodiment can subdivide one space into not only two but also three or more. In this case, the dividing direction is not limited to the vertical and horizontal directions, and can be divided by diagonal lines, broken lines, and curved lines.

本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
本実施形態で説明したソフトウェアをハードウェアとして実現することもでき、ハードウェアをソフトウェアとして実現することもできる。
その他、ハードウェア、ソフトウェア、フローチャートなどについて、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
A technique obtained by appropriately combining various techniques described in the present embodiment can also be realized.
The software described in this embodiment can be realized as hardware, and the hardware can also be realized as software.
In addition, hardware, software, flowcharts, and the like can be changed as appropriate without departing from the spirit of the present invention.

1 ゲームサーバ装置
2−1〜2−n 振り分け装置
3 ロードバランサ
4−1〜4−n クライアント
10 処理部
11 原本データ管理部
12 レプリカ配置部
13 負荷監視部
14 空間分割部
15 空間分割通知部
16 境界情報算出部
20 通信部
30 記憶部
T1 サーバ−空間対応テーブル
T2 境界情報
D1 状態データの原本
D2 状態データのレプリカ
DESCRIPTION OF SYMBOLS 1 Game server apparatus 2-1 to 2-n Distribution apparatus 3 Load balancer 4-1 to 4-n Client 10 Processing part 11 Original data management part 12 Replica arrangement | positioning part 13 Load monitoring part 14 Space division part 15 Space division notification part 16 Boundary information calculation unit 20 Communication unit 30 Storage unit T1 Server-space correspondence table T2 Boundary information D1 Original of state data D2 Replica of state data

Claims (5)

ゲーム空間を所定の単位に分割した空間を担当するステートフル型のゲームサーバ装置であって、
自身の担当する空間に存在するプレイヤーの状態データの原本を保存する原本データ管理部と、
隣接する空間を担当する他のゲームサーバ装置へ、前記状態データのレプリカをコピーするレプリカ配置部と、を備え、
前記原本データ管理部は、
前記隣接する空間に居たプレイヤーが前記自身の担当する空間に移動したことを検出すると、当該プレイヤーの状態データのレプリカを原本として保存する、
ことを特徴とするゲームサーバ装置。
A stateful game server device in charge of a space obtained by dividing a game space into predetermined units,
An original data management unit for storing original state data of players existing in the space in charge of the player,
A replica placement unit that copies a replica of the state data to another game server device in charge of an adjacent space;
The original data management unit
When it is detected that the player in the adjacent space has moved to the space in charge of the player, a replica of the player's state data is stored as an original,
The game server apparatus characterized by the above-mentioned.
前記レプリカ配置部は、前記プレイヤーの現在位置から所定の距離に及ぶ範囲を含む空間を担当するゲームサーバ装置へ、当該プレイヤーの状態データのレプリカをコピーする、
ことを特徴とする請求項1に記載のゲームサーバ装置。
The replica placement unit copies a replica of the player's state data to a game server device in charge of a space including a range extending a predetermined distance from the current position of the player.
The game server device according to claim 1.
前記レプリカ配置部は、前記プレイヤーの速度ベクトルから、次に移動する空間を予測し、当該予測した空間を担当するゲームサーバ装置へ、当該プレイヤーの状態データのレプリカをコピーする、
ことを特徴とする請求項1に記載のゲームサーバ装置。
The replica placement unit predicts a space to move next from the velocity vector of the player, and copies a replica of the player's state data to the game server device in charge of the predicted space.
The game server device according to claim 1.
自身のゲームサーバ装置の負荷を監視する負荷監視部と、
前記負荷が所定の値を超えた場合には、自身の担当する空間を細分割して、当該細分割した空間の一つを新たなゲームサーバ装置に割り当てる空間分割部と、
前記細分割前の空間に隣接する空間を担当する他のゲームサーバ装置に、前記細分割を反映した空間情報を通知する空間分割通知部と、
前記細分割前の空間を担当する他のゲームサーバ装置から前記空間情報を受信した場合、自身の担当する空間の境界情報を更新する境界情報算出部と、をさらに備える、
ことを特徴とする請求項1から請求項3のいずれか一項に記載のゲームサーバ装置。
A load monitoring unit for monitoring the load of its own game server device;
When the load exceeds a predetermined value, a space division unit that subdivides the space in charge of the load and allocates one of the subdivided spaces to a new game server device;
A space division notifying unit for notifying the other game server device in charge of the space adjacent to the space before the subdivision of the space information reflecting the subdivision;
A boundary information calculation unit that updates the boundary information of the space in charge when the space information is received from another game server device in charge of the space before the subdivision;
The game server device according to claim 1, wherein the game server device is a game server device.
ゲーム空間を所定の単位に分割した空間を担当するステートフル型のゲームサーバ装置における分散処理方法であって、
前記ゲームサーバ装置が、
自身の担当する空間に存在するプレイヤーの状態データの原本を保存するステップと、
隣接する空間を担当する他のゲームサーバ装置へ、前記状態データのレプリカをコピーするステップと、
前記隣接する空間に居たプレイヤーが前記自身の担当する空間に移動したことを検出すると、当該プレイヤーの状態データのレプリカを原本として保存するステップと、を実行する、
ことを特徴とする分散処理方法。
A distributed processing method in a stateful game server device in charge of a space obtained by dividing a game space into predetermined units,
The game server device is
A step of saving the original state data of the player existing in the space that he is in charge of;
Copying the state data replica to another game server device in charge of the adjacent space;
When it is detected that the player in the adjacent space has moved to the space in charge of the player, a step of storing a replica of the player's state data as an original is performed.
A distributed processing method.
JP2015157892A 2015-08-10 2015-08-10 Game server device and distribution processing method Pending JP2017037446A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015157892A JP2017037446A (en) 2015-08-10 2015-08-10 Game server device and distribution processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015157892A JP2017037446A (en) 2015-08-10 2015-08-10 Game server device and distribution processing method

Publications (1)

Publication Number Publication Date
JP2017037446A true JP2017037446A (en) 2017-02-16

Family

ID=58048550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015157892A Pending JP2017037446A (en) 2015-08-10 2015-08-10 Game server device and distribution processing method

Country Status (1)

Country Link
JP (1) JP2017037446A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110433496A (en) * 2019-08-14 2019-11-12 咪咕互动娱乐有限公司 Cloud game resource allocation method, electronic equipment and storage medium
JP6838187B1 (en) * 2020-05-29 2021-03-03 株式会社Cygames Server, game system and processing method
KR20210097205A (en) * 2018-12-20 2021-08-06 소니 인터랙티브 엔터테인먼트 엘엘씨 massively multiplayer compute
JP2021524108A (en) * 2018-05-14 2021-09-09 上海掌門科技有限公司Shanghai Zhangmen Science And Technology Co., Ltd. How to handle application partitions, devices and computer readable storage media
JP2022521012A (en) * 2019-02-21 2022-04-04 ソニー・インタラクティブエンタテインメント エルエルシー Transactional memory synchronization
CN114979164A (en) * 2022-04-14 2022-08-30 网易(杭州)网络有限公司 Virtual room allocation method and device and electronic equipment
WO2023047743A1 (en) * 2021-09-23 2023-03-30 株式会社セガ Information processing device and execution switching system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328125A (en) * 1998-05-15 1999-11-30 Dainippon Printing Co Ltd Virtual space share system
JP2005234633A (en) * 2004-02-17 2005-09-02 Sony Corp Service extension method
JP2007528762A (en) * 2004-02-05 2007-10-18 エヌエイチエヌ コーポレーション Data distribution processing method and data distribution processing system for online game server
JP2013208426A (en) * 2012-03-22 2013-10-10 Emprie Technology Development LLC Load balancing for game

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328125A (en) * 1998-05-15 1999-11-30 Dainippon Printing Co Ltd Virtual space share system
JP2007528762A (en) * 2004-02-05 2007-10-18 エヌエイチエヌ コーポレーション Data distribution processing method and data distribution processing system for online game server
JP2005234633A (en) * 2004-02-17 2005-09-02 Sony Corp Service extension method
JP2013208426A (en) * 2012-03-22 2013-10-10 Emprie Technology Development LLC Load balancing for game

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
永石博憲他3名: "放送型サイバースペースにおけるアバタの移動特性を考慮した空間モデルデータのプリフェッチ方式", 情報処理学会研究報告, vol. 第2005巻,第68号, JPN6014018406, 15 July 2005 (2005-07-15), JP, pages 699 - 704 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021524108A (en) * 2018-05-14 2021-09-09 上海掌門科技有限公司Shanghai Zhangmen Science And Technology Co., Ltd. How to handle application partitions, devices and computer readable storage media
JP7259037B2 (en) 2018-12-20 2023-04-17 ソニー・インタラクティブエンタテインメント エルエルシー massive multiplayer compute
KR102617739B1 (en) * 2018-12-20 2023-12-27 소니 인터랙티브 엔터테인먼트 엘엘씨 Massive Multiplayer Compute
KR20210097205A (en) * 2018-12-20 2021-08-06 소니 인터랙티브 엔터테인먼트 엘엘씨 massively multiplayer compute
JP2022513869A (en) * 2018-12-20 2022-02-09 ソニー・インタラクティブエンタテインメント エルエルシー Massive Multiplayer Comp
US11628356B2 (en) 2018-12-20 2023-04-18 Sony Interactive Entertainment LLC Massive multi-player compute
JP7308964B2 (en) 2019-02-21 2023-07-14 ソニー・インタラクティブエンタテインメント エルエルシー transactional memory synchronization
JP2022521012A (en) * 2019-02-21 2022-04-04 ソニー・インタラクティブエンタテインメント エルエルシー Transactional memory synchronization
CN110433496A (en) * 2019-08-14 2019-11-12 咪咕互动娱乐有限公司 Cloud game resource allocation method, electronic equipment and storage medium
CN110433496B (en) * 2019-08-14 2023-07-07 咪咕互动娱乐有限公司 Cloud game resource allocation method, electronic device and storage medium
WO2021241476A1 (en) * 2020-05-29 2021-12-02 株式会社Cygames Server, game system, and processing method
JP2021186224A (en) * 2020-05-29 2021-12-13 株式会社Cygames Server, game system, and processing method
JP6838187B1 (en) * 2020-05-29 2021-03-03 株式会社Cygames Server, game system and processing method
WO2023047743A1 (en) * 2021-09-23 2023-03-30 株式会社セガ Information processing device and execution switching system
CN114979164A (en) * 2022-04-14 2022-08-30 网易(杭州)网络有限公司 Virtual room allocation method and device and electronic equipment
CN114979164B (en) * 2022-04-14 2023-11-17 网易(杭州)网络有限公司 Virtual room distribution method and device and electronic equipment

Similar Documents

Publication Publication Date Title
JP2017037446A (en) Game server device and distribution processing method
EP3069263B1 (en) Session idle optimization for streaming server
US20060217201A1 (en) Handling of players and objects in massive multi-player on-line games
US10130885B1 (en) Viewport selection system
RU2701118C2 (en) Multimode server data processing center administration
Lee et al. A scalable dynamic load distribution scheme for multi-server distributed virtual environment systems with highly-skewed user distribution
Bezerra et al. A load balancing scheme for massively multiplayer online games
US20060258462A1 (en) System and method of seamless game world based on server/client
EP3087722B1 (en) Peer-to-peer network prioritizing propagation of objects through the network
WO2014082052A4 (en) Scaling computing clusters
CN103701916A (en) Dynamic load balancing method of distributed storage system
US10402014B2 (en) Input control assignment
Denault et al. Triangle-based obstacle-aware load balancing for massively multiplayer games
JP6569692B2 (en) Management server, communication system, management server control method, and program
CN113546416A (en) Game scene processing method and device, computer equipment and storage medium
JP2007164252A (en) System managing object in virtual space
JP6383336B2 (en) Server management apparatus and server management method
JP2015176350A (en) Cache management device and communication device
US11161045B1 (en) Content item forking and merging
Van Den Bossche et al. A platform for dynamic microcell redeployment in massively multiplayer online games
KR20230034182A (en) Spectator system in online games
Hu et al. P2P consistency support for large-scale interactive applications
Kohana et al. Dynamic data allocation scheme for multi-server web-based MORPG system
Brown et al. Aura projection for scalable real-time physics
JP5745445B2 (en) Management device and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181019

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20181211