The present invention relates to a data transmission system in which transmission data generated periodically is transmitted and a method therefor.
A network game system in which a large number of users of client computers are connected to a game server computer via a network to enjoy a game in a real-time manner is in operation.
Examples of such a network game may include a first person shooting game in which a person's image (avatar) used by a user (player) within a game is free to move within a virtual world of the game and fights an encountered avatar of another player or plays gun shooting with the encountered avatar in a real-time manner according to the player's operation.
In such a network game, all of avatars that exist within a range that can be displayed must be displayed on each of client computers.
In order to realize such a network game as described above, a position and the like of an avatar in a game virtual world need to be transmitted between the client computers and a game server via a network that causes a delay and a loss of transmission data in short cycles in a real-time manner.
The present invention has been made against such a backdrop as described above, and therefore an object thereof is to provide: a data transmission system improved for transmitting data, whose real-time property is regarded as being important and which is generated periodically, via a network that causes a delay and a loss of transmission data; and a method therefor.
In order to achieve the above-mentioned object, a data transmission system according to the present invention is a data transmission system for transmitting transmission data generated in each of predetermined cycles and prediction data for predicting transmission data in a cycle subsequent thereto based on one or more items of the transmission data from a transmission device to a reception device via a network, the network causing a delay and a loss with respect to the transmission data, the transmission device including: transmission data generation means for generating the transmission data; prediction data generation means for generating the prediction data; and transmission means for transmitting the generated transmission data and transmitting the generated prediction data by using a bandwidth of a difference between a bandwidth allocated on the network and a bandwidth of the transmission data, the reception device including: reception means for receiving the transmission data and the prediction data that have been transmitted; and reconstruction/estimation means for reconstructing or estimating, when the transmission data is lost, the lost transmission data by using the transmission data and the prediction data that have been received.
Preferably, the reception device further includes a delay compensation means for compensating for the delay that has occurred in the transmission data in the network.
Preferably, the transmission device further includes transmittability judgment means for judging whether or not the prediction data is transmittable based on the difference between the bandwidth allocated on the network and the bandwidth of the transmission data and the bandwidth necessary for transmitting the generated prediction data, and the transmission means transmits the prediction data if the prediction data is judged to be transmittable.
Preferably, the transmittability judgment means judges whether or not the prediction data is transmittable based on a token bucket scheme so as to prevent, even if the prediction data is transmitted, the bandwidth of the transmitted prediction data from exceeding the difference between the bandwidth allocated on the network and the bandwidth of the transmission data.
Preferably, the transmission device further includes transmission time judgment means for judging whether or not a time difference from transmission of the transmission data until transmission of the prediction data used for prediction using the transmission data is shorter than a predetermined threshold value (Δ), and the transmission means transmits the prediction data if the time difference until the transmission of the prediction data is shorter than the predetermined threshold value.
Preferably, the reception device further includes reception time judgment means for judging whether or not the transmission data in the subsequent cycle has been received by a time difference within a predetermined threshold value (f) from reception of the transmission data, and the estimation means estimates transmission data subsequent to the received transmission data if the transmission data in the subsequent cycle has not been received by the time difference within the predetermined threshold value.
Preferably, the reception device further includes forecast means for forecasting transmission data to be received in a future based on the received transmission data and the estimated transmission data or any one thereof.
Preferably, the transmission data indicates a position of a moving object in the each of the predetermined cycles.
The transmission data indicates, in a network game performed by moving one or more avatars, a position of each of the one or more avatars in the each of the predetermined cycles.
Further, a data transmission method according to the present invention is a data transmission method of transmitting transmission data generated in each of predetermined cycles and prediction data for predicting transmission data in a cycle subsequent thereto based on one or more items of the transmission data from a transmission device to a reception device via a network, the network causing a delay and a loss with respect to the transmission data, the data transmission method including: by the transmission device: generating the transmission data; generating the prediction data; and transmitting the generated transmission data and transmitting the generated prediction data by using a bandwidth of a difference between a bandwidth allocated on the network and a bandwidth of the transmission data; and by the reception device: receiving the transmission data and the prediction data that have been transmitted; and reconstructing or estimating, when the transmission data is lost, the lost transmission data by using the transmission data and the prediction data that have been received.
Further, a data transmission program according to the present invention is a data transmission program for transmitting transmission data generated in each of predetermined cycles and prediction data for predicting transmission data in a cycle subsequent thereto based on one or more items of the transmission data from a transmission device to a reception device via a network, the network causing a delay and a loss with respect to the transmission data, the data transmission program causing a computer to execute, in the transmission device: a transmission data generation step of generating the transmission data; a prediction data generation step of generating the prediction data; and a transmission step of transmitting the generated transmission data and transmitting the generated prediction data by using a bandwidth of a difference between a bandwidth allocated on the network and a bandwidth of the transmission data, the data transmission program further causing the computer to execute, in the reception device: a reception step of receiving the transmission data and the prediction data that have been transmitted; and a reconstruction/estimation step of reconstructing or estimating, when the transmission data is lost, the lost transmission data by using the transmission data and the prediction data that have been received.
According to the data transmission system and the method therefor according to the present invention, it is possible to satisfactorily transmit the data, whose real-time property is regarded as being important and which is generated periodically, via the network that causes the delay and the loss of the transmission data.
[Network Game System 1]
Hereinafter, description is made of an embodiment of the present invention.
As illustrated in
Note that hereinbelow, in the respective drawings, substantially the same components are denoted by the same reference symbol, and any one of the game client computers 3-1 to 3-n or a plurality of other such components is referred to merely as a game client computer 3 when indicated without being identified.
Further, the game server 2 and the game client computer 3 may be each referred to generically as a node.
[Hardware Configuration]
As illustrated in
That is, the game server 2 and the game client computer 3 each has hardware resources serving as a computer that can communicate with another node via the network 100.
[Software Configuration]
The server software 20 and the client software 30 are, for example, supplied to the game server 2 and the game client computer 3 via a storage medium 134 (
Note that in
As illustrated in
The server-side game software 200 includes an avatar position processing unit 202.
The server-side interface software 204 includes a position prediction information formation unit 208, a transmission unit 210, a token control unit 212, and a delay control unit 214.
The client software 30 is configured by client-side interface software 300, dead-reckoning processing software 310, and client-side game software 312.
The client-side interface software 300 includes a delay control unit 302, a reception unit 304, and a reconstruction/estimation unit 306.
By those components, the server software 20 and the client software 30 receive the player's operation with respect to the game client computer 3, and cause the input/output device 126 (
That is, the server software 20 and the client software 30 provide the player with a function for making progress in a network game such as a first person shooting game, in which a real-time property is regarded as being important.
[Server Software 20]
The server-side game software 200 causes the network game to make progress according to an operation performed by the player of the game client computer 3.
In the server-side game software 200, the avatar position processing unit 202 forms a position update information item x[n] that indicates a position of each user's avatar in the virtual space of the network game every constant cycle T (for example, every 1/10 seconds), and outputs the position update information item x[n] to the server-side interface software 204.
[Server-Side Interface Software 204]
In the server-side interface software 204, based on the position update information items x[n] as illustrated by the shaded circles in
A relationship between the position prediction information item y[n+1] at the subsequent time point and the position update information items x[n], x[n−1], . . . , and x[n−k] (k≧1) until that time point can be expressed as follows:
y[n+1]=f(x[n], x[n−1], . . . , x[n−k])
As illustrated in
The position prediction information item y[n+1] has the following functions (1) to (3).
(Function 1) As illustrated in
(Function 2) As illustrated in
(Function 3) As illustrated in
In order to obtain the position prediction information item y[n+1], the following methods (1) to (4) are available.
The position prediction information formation unit 208 uses any one of the following methods (1) to (4) to obtain the position prediction information item y[m].
(Method 1) 0th-Order Hold:
The position update information item x[n] is set as the position prediction information item y[n+1] (y[n+1]=x[n]) per se.
According to this method, if the position update information item x[n] is lost in the network 100, it is possible based on the position prediction information item y[n+1] to completely reconstruct the position update information item x[n].
In addition, when a burst error occurs in the network 100 and when the position update information items x[n], x[n−1], . . . , and x[n−k] are lost, it is possible based on the position prediction information item y[n+1] and the position update information item x[n−k−1] to extrapolate the position update information items x[n], x[n−1], . . . , and x[n−k].
Further, when the position update information item x[n+1] is lost in the network 100, it is possible based on the position prediction information item y[n+1] to predict the position update information item x[n+1].
(Method 2) Linear Extrapolation:
The position prediction information item y[n+1] is obtained by using the two position update information items x[n] and x[n−1].
When the position update information items x[n] and x[n−1] are obtained at time points nT and (n−1)T (=tn and tn−1), respectively, and it is assumed that the items x[n] and x[n−1] are represented as xn and xn−1, the position prediction information item y(t) at the time point t can be obtained by:
y(t)=Axn−1+Bxn,
A=(tn−t)/(tn−tn−1),
B=1−A=(t−tn−1)/(tn−tn−1)
According to this method, if the item x[n] or x[n−1] is lost, it is possible to completely reconstruct the item x[n] or x[n−1] that has been lost by using the item y[n+1] and the item x[n] or x[n−1] that has arrived.
However, if the items x[n] and x[n−1] are both lost, those items cannot be reconstructed completely.
In addition, when a burst error occurs in the network 100 and when the position update information items x[n], x[n−1], . . . , and x[n−k] are lost, it is possible based on the position prediction information item y[n+1] and the position update information item x[n−k−1] to extrapolate the position update information items x[n], x[n−1], . . . , and x[n−k].
In addition, when the position update information item x[n+1] is lost in the network 100, it is possible based on the position prediction information item y[n+1] to predict the position update information item x[n+1].
(Method 3) Cubic Spline Extrapolation:
In order to obtain the position prediction information item y(t) by smoothing a curve drawn by the position prediction information item y(t) obtained by extrapolation, the following expression is used.
y(t)=Axn−1+Bxn+Cx″n−1+Dx″n,
where x″n−1 and x″n are second-order derivatives in tn−1 and tn of y(t) and the following are satisfied:
C=(⅙)(A3−A)(tn−tn−1)2,
D=(⅙)(B3−B)(tn−tn−1)2
(Method 4) Linear Prediction:
The position prediction information item y[n+1] can be obtained by the following Expression 1.
In Expression 1, f is obtained by solving ATAf=Ad with A and d assumed as in the following Expression 2, and is obtained by f=A+d when it is assumed that a pseudo inverse matrix of A is A+ (see Non-Patent Document 8, in which details thereof are described)
As illustrated in
By using a band B−R remaining after the transmission of the position update information item x[n] via the network 100, which is illustrated in
The transmission of the position prediction information item y[m] via the network 100 is given a condition that a band used for the transmission of the position prediction information item y[m] must be smaller than B−R.
As illustrated in
Normally, the token bucket is realized in a software manner, and hence hardware that directly corresponds thereto does not need to exist.
When an amount of tokens accumulated and in token bucket reaches a data amount of the position prediction information item y[m] formed by the position prediction information formation unit 208, the token control unit 212 judges that the position prediction information item y[m] is transmittable, clears the token bucket, and controls the transmission unit 210 so as to transmit the position prediction information item y[m].
As apparent from the above-mentioned description, a capacity of the token bucket may be regarded as being the same in principle as the data amount of the position prediction information item y[m].
As illustrated in
For example, the token control unit 212 judges that a position prediction information item y[2] obtained based on position update information items x[0] and x[1] is transmittable at a time point T+u, i.e., u (u<T) seconds after the position update information item x[1] is transmitted.
However, in a case where the time offset u from the last position update information transmission time point is close enough to T, that is, immediately before the subsequent position update information transmission time point (2T), it is more advantageous to transmit a position prediction information item y[3] after waiting until the subsequent position update information item x[2] is transmitted at the time point 2T than to immediately transmit the position prediction information item y[2].
The reason therefor is that it is possible to transmit the position prediction information item y[3], which is information on a position at the subsequent stage, with a slight increase of waiting time instead of immediately transmitting the position prediction information item y[2], which is soon to become obsolete, and hence it is possible to make effective use of an available band.
After the transmission of the position update information item x[n], the delay control unit 214 compares the time offset u until the token control unit 212 judges that the position prediction information item y[n+1] is transmittable with a threshold value Δ, and if the time offset u is smaller than the threshold value Δ, transmits the formed position prediction information item y[n+1]. If the time offset u is equal to or larger than the threshold value Δ, the delay control unit 214 controls the transmission unit 210 so as to wait until a timing for the subsequent transmission of the position update information item x[n+1] before transmitting the item x[n+1] first and then transmitting the position prediction information item y[n+2].
The abscissa represents the threshold value Δ in milliseconds, while the ordinate is a relative value of a magnitude of the distortion with respect to a certain reference value.
The distortion, to be more specifically expressed, is a mean value of differences between an actual avatar position on the transmitting side and the position of the avatar which is acquired on the received side by receiving the position update information item within the waiting time threshold value or which is reconstructed/estimated on the receiving side by using the position prediction information item y[m] (EPP). It should be noted that the avatar exists not in the physical world but in the virtual world such as a game, and hence the position thereof is not normally expressed in the physical unit of meters or the like.
Therefore, the ordinate is not assigned the unit of length also in
Note that the above-mentioned relationship is determined based on a configuration of the network 100, a delay, a packet loss factor, and the like.
A graph of
Note that conditions for an experiment for obtaining the graph are indicated as in the following items (1) to (4).
(1) In order to test effectiveness of the position prediction information item y[m] in an actual online game, update information items for games, which are necessary to play popular first person shooting game (FPS) “bzflag[1] ” and “sauerbraten[2] ” for 10 minutes were collected.
Two clients actively participated in the FPS via a LAN that is low in loss and low in delay.
When the periodic position update information item x[n] from client2 reached client1, a filter was used to acquire the update information item for the game.
(2) A simulation of a network was performed by using a network simulator developed in advance with respect to a given acquired update information item for the game.
For a delay in the network, an independent and identically distributed (iid) delay model was used.
Each packet was given a network delay with a shifted-Gamma distribution iid perimeter of (κ, α, λ)=(40 ms, 3, 0.1).
As a result, a mean transmission delay became 70 ms.
With regard to a network loss, the following two loss models were used:
(i) An iid loss model exhibiting a loss factor of 0.1; and
(ii) A Markov loss model (Gilbert model) exhibiting two states of a loss factor of 0.1 and a burst loss length of 2.22.
(3) For the update information for the game, x and y of the avatar in the virtual world were transmitted from a transmitter to a recipient every 100 ms, each update information item was assumed to be 90 bytes, a change in end-to-end bandwidth was assumed to be 12 kbps to 15 kbps, and a bandwidth remaining after steady-state transmission of the position update information item x[n] was used for the position prediction information item y[m].
(4) On a receiving side, the dead-reckoning unit 310 projects the current position of the avatar.
A Euclidean distance between a position projected on a transmitting side and an actual position on the transmitting side serves as a scale for evaluation.
The transmission unit 210 stores the position update information item x[n] input from the avatar position processing unit 202 in a packet, and transmits the packet to the game client computer 3 via the network 100 according to a UDP.
The transmission unit 210 stores the position prediction information item y[m] input from the position prediction information formation unit 208 in a packet, and according to the above-mentioned control performed by the token control unit 212 and the delay control unit 214, transmits the packet to the game client computer 3 via the network 100 according to the UDP.
[Client Software 30]
In the client software 30, the reception unit 304 receives a series of position update information items x′[n] and position prediction information items y′[m] which are transmitted from the game server 2 via the network 100 and in which a delay and a packet loss have occurred.
As illustrated in
After reception of the position update information item x′[n], the delay control unit 302 waits a waiting time threshold value δ for the subsequent position update information item x′[n+1].
However, in a case where it becomes possible to accurately reconstruct the subsequent position update information item x′[n+1], which has not been received yet, by using the series of position update information items and position prediction information items that have been received so far, the reconstruction/estimation unit 306 may be urged to obtain the subsequent position update information item x′[n+1] without waiting for the reception of the subsequent position update information item x′[n+1].
In a case where the item x′[n+1] cannot be received even if the waiting time threshold value δ has been waited, in order that the position prediction information item y′[m] that has already been received and a past position update information item be used to make it possible to reconstruct/estimate the subsequent position, the reconstruction/estimation unit 306 is notified that the subsequent position update information item x′[n+1] could not be received within the period of time.
The reason why the above-mentioned branching is performed between the case of using the subsequent position update information item and the case of performing reconstruction/estimation after judging that the subsequent position update information item has been lost on the network depending on the waiting time after the reception of the last position update information item is as follows.
In a case where a waiting time v from reception of the last position update information item x′[1] until reception of the subsequent position update information item x′[2] may be set larger than T, even if a series of position update information items received until that time point and v become larger than T (that is, even if a time point at which the item x′[2] should have been received has been passed as long as there occurs no packet delay), a permissible period of time (for example, approximately 2T) may be waited instead of immediately judging that there occurs a packet loss.
In a case where the subsequent position update information item x′[2] is received during the waiting time for waiting longer than T as described above, there is an advantage in that a “true” value having no error can be obtained instead of using a predicted value.
However, if the waiting time becomes too long, a difference between the updated position at a time of reception on the receiving side (which was correct a while ago) and the current position on the transmitting side becomes large.
Therefore, there exists such a waiting time threshold value for the above-mentioned branching that the subsequent position update information item must be no longer waited for.
The abscissa represents the waiting time threshold value δ in milliseconds, while the ordinate is a relative value of a magnitude of the distortion with respect to a certain reference value.
The distortion, to be more specifically expressed, is a mean value of differences between an actual avatar position on the transmitting side and the position of the avatar which is acquired on the received side by receiving the position update information item within the waiting time threshold value or which is reconstructed/estimated on the receiving side by using the position prediction information item y[m] (EPP). It should be noted that, as described with reference to
The above-mentioned relationship is determined based on the configuration of the network 100, the delay, the packet loss factor, and the like.
A graph of
In the example of
The reconstruction/estimation unit 306 uses the position update information item x′[n] and the position prediction information item y′[m] that have been input from the reception unit 304 to perform reconstruction and estimation of data as illustrated in
The dead-reckoning processing software 310 performs correction of a delay time γn in the network 100 with respect to the position information item z[n], and outputs the resultant as a position information item x″[n+γn] to the client-side game software 312.
The client-side game software 312 uses the input position information item “[n+γn] to display the avatar of each player on the input/output device 126.
[Entire Operation of Network Game System 1]
Hereinafter, description is made of an entire operation of the network game system 1 illustrated in
On the game server 2 side, the server-side game software 200 (
As described with reference to
As described with reference to
As described with reference to
The transmission unit 210 stores the position update information item x[n] and the position prediction information item y[m] in the packet, and transmits the packet to the game client computer 3 according to the control performed by the token control unit 212 and the delay control unit 214.
On the game client computer 3 side, the reception unit 304 (
As described with reference to
Further, in the case where the reception unit 304 received the subsequent position update information item x′[n+1] within the waiting time threshold value δ, the delay control unit 302 controls the reception unit 304 so as to output the received information item to the reconstruction/estimation unit 306.
As described with reference to
The dead-reckoning processing software 310 performs the correction of the delay time γn in the network 100 with respect to the position information item z[n], and outputs the resultant as the position information item x″[n+γn].
The client-side game software 312 uses the input position information item “[n+γn] to display the avatar of each player on the input/output device 126.
1 . . . network game system
2 . . . game server
20 . . . server software
3 . . . game client computer
The present invention can be used for transmitting data such as data of the network game, in which the real-time property is regarded as being important, via the network in which a delay, a loss of packet, and the like occur.
Number | Date | Country | Kind |
---|---|---|---|
2007-099016 | Apr 2007 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2008/056091 | 4/5/2007 | WO | 00 | 3/4/2010 |