Server, processing system, processing method and program

By using the estimated model generated by deep learning in multiple player terminals to predict player input content and compensate, the challenges in communication delay and gameplay in the prior art are solved, and efficient and smooth multiplayer communication is achieved.

CN114845789BActive Publication Date: 2025-05-06CYGAMES INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080085574.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-12-10
Filing Date
2020-12-07
Publication Date
2025-05-06
Estimated Expiration
2040-12-07

AI Technical Summary

Technical Problem

The prior art has challenges in improving communication latency and gameplay, especially in more action-oriented MMO games that require precise positioning, where the Lerp method may affect gameplay, and when compensated by distortion, the motion may be discontinuous and non-smooth.

Method used

By using deep learning in multiple player terminals to generate an estimation model, predict the player input content, and send correction information to compensate when the actual input is inconsistent with the predicted input, to update the state value of the operation object.

Benefits of technology

It realizes the problem of communication delay, while suppressing the adverse effects on gameplay, and improving the efficiency and smoothness of game communication.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114845789B_ABST
    Figure CN114845789B_ABST
Patent Text Reader

Abstract

The present invention provides a player terminal (10), comprising: a storage unit (11), storing state values ​​corresponding to each of a plurality of operation objects; a receiving unit (12), receiving player input; an estimation unit (13), generating an estimation result corresponding to a second timing later than the first timing based on an estimation model and each timing information corresponding to a first timing, the estimation model generating an estimation result of each timing information corresponding to a subsequent timing from each timing information representing the content of the player input received by each of a plurality of player terminals in a manner corresponding to a certain timing; a judgment unit (14), judging whether the content of the player input received in a manner corresponding to the second timing is consistent with the estimated content of the player input corresponding to the second timing represented by the estimation result; a correction information sending unit (15), when the judgment result indicates inconsistency, sending correction information representing the content of the accepted player input to an external device; a correction information acquisition unit (16), acquiring correction information sent by other player terminals; a compensation unit (17), compensating the estimation result based on the correction information; and an update unit (18), updating the state value of the operation object based on the estimation result.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a server, a processing system, a processing method and a program. Background Art

[0002] Communication protocols have generally been improved to improve efficiency by reducing the middle layers of the protocol stack. Although such an approach is generally applicable and very effective, it is difficult to achieve a substantial increase in speed and reduction in latency of tens of percentage points or more. In addition, although TCP / IP parameter optimization specific to specific applications such as the Web is widely adopted, parameter optimization does not lead to end-to-end optimization. For this reason, gameplay that relies on parameter optimization cannot be designed.

[0003] On the other hand, in games such as MMO (Massive Multiplayer Online) games and FPS (First Person Shooter) games, delta compression is widely used. In delta compression, if the current data has not changed from the previous data that has been sent, the current data is not sent. This delta compression is effective for sending and receiving data whose values ​​do not change frequently (such as status data, etc.). However, this delta compression is not effective as a compression technology for communicating data that is subject to such frequent changes in values ​​that differential information needs to be sent and received all the time (such as data related to the current position of a character, etc.). For this reason, it is a challenge to improve the efficiency of sending and receiving data whose values ​​change frequently (such as data related to the position of a character, etc.) in games.

[0004] One technique to solve this problem is a method for specifying / predicting the destination of a character's movement. Using this technique, the destination (position information) of the character's movement in the next frame is directly specified by the player himself / herself, or is predicted / supplemented by linear supplementation, etc. This technique reduces the amount of communication compared to continuously sending and receiving the content (moving direction, etc.) input by the player. For example, non-patent document 1 discloses a method for reducing latency, such as changing the gameplay so that a moving destination is specified instead of a moving direction when moving a character, and the following method: when the predicted coordinates are calculated at the beginning of the character's movement and sent to the server, if these predicted coordinates are incorrect, these coordinates are compensated (distorted (warp)). These are techniques commonly referred to as Lerp (linear interpolation).

[0005] Note that a technology related to the present invention is disclosed in Patent Document 1. Patent Document 1 discloses a technology for storing a data point group representing a plurality of touch positions at screen coordinates detected on a touch screen within a predetermined time period, determining a slope of a regression line and a rotation amount for rotating the slope of the regression line from the data point group, and determining control content of an operation object (character) based on the slope of the regression line and the rotation amount.

[0006] Prior art literature

[0007] Non-patent literature

[0008] Non-patent document 1: “[CEDEC 2010] What's Happening Behind the Scenes of NetGames? A Network Engineer's Perspective on the Key Principles of Game Design”, [Online], September 6, 2010, [Retrieved July 4, 2019], Internet<URL:https: / / www.4gamer.net / games / 105 / G010549 / 20100905002 / >

[0009] Patent Literature

[0010] Patent Document 1: Japanese Patent 6389581 Summary of the invention

[0011] Problem that the invention aims to solve

[0012] Lerp, while effective for less action-oriented MMO games, adversely affects gameplay in more action-oriented MMO games that require precise positioning. In addition, the method of compensating the prediction results by distortion also has the following problem: the movement is discontinuous and not smooth as seen by other players. Therefore, Lerp, while able to alleviate the problem of communication delay, may adversely affect gameplay.

[0013] The present invention addresses the challenge of providing techniques for alleviating the problem of communication delays while also suppressing adverse effects on gameplay.

[0014] Solutions for solving problems

[0015] The present invention provides a program for causing a computer in each of a plurality of player terminals that establish data communication with each other directly or via a server to function as:

[0016] A storage unit, used to store a state value corresponding to each operation object of the plurality of operation objects;

[0017] The receiving unit is used to receive player input;

[0018] an estimation unit for generating an estimation result corresponding to a second timing later than the first timing based on an estimation model and based on per-timing information corresponding to the first timing, wherein the estimation model is used to generate an estimation result of per-timing information corresponding to a subsequent timing based on per-timing information indicating content of a player input accepted by each of the plurality of player terminals in a manner corresponding to a certain timing;

[0019] a determination unit configured to determine whether the content of the player input accepted by the acceptance unit in a manner corresponding to the second timing is consistent with the estimated content of the player input corresponding to the second timing indicated by the estimation result;

[0020] a correction information sending unit, configured to send correction information indicating the content of the player input accepted by the acceptance unit to an external device when the judgment result generated by the judgment unit indicates inconsistency;

[0021] A correction information acquisition unit, used to acquire correction information sent by other player terminals;

[0022] a compensation unit, configured to compensate the estimation result based on the correction information; and

[0023] An updating unit is used to update the state value of the operation object based on the estimation result.

[0024] In addition, the present invention provides a server, comprising:

[0025] a tensor data generating unit for generating matrix data representing a state of a world coordinate system at intervals of a predetermined time period, and generating tensor data having the matrix data stored along a time axis, in which a data point group is associated with and mapped to a position of each operation object, the data point group representing a touch position at a screen coordinate detected on a touch screen of each of a plurality of player terminals in a manner corresponding to each of a plurality of timings at intervals of the predetermined time period;

[0026] a learning data generating unit for extracting learning data from the tensor data, in which matrix data corresponding to an Nth timing and matrix data corresponding to a timing after the Nth timing are associated; and

[0027] An estimation model generating unit is used to generate an estimation model through machine learning based on the learning data, wherein the estimation model is used to generate an estimation result of matrix data corresponding to a subsequent timing according to matrix data corresponding to a certain timing.

[0028] In addition, the present invention provides a processing method, comprising causing a computer in each of a plurality of player terminals that establish data communication with each other directly or via a server to perform the following operations:

[0029] storing a state value corresponding to each of the plurality of operation objects;

[0030] Accept player input;

[0031] generating an estimation result corresponding to a second timing later than the first timing based on an estimation model and based on per-timing information corresponding to the first timing, wherein the estimation model is used to generate an estimation result of per-timing information corresponding to a subsequent timing based on per-timing information indicating content of a player input accepted by each of the plurality of player terminals in a manner corresponding to a certain timing;

[0032] determining whether the content of the player input accepted in a manner corresponding to the second timing is consistent with the estimated content of the player input corresponding to the second timing indicated by the estimation result;

[0033] If the determination result indicates inconsistency, correction information indicating the content of the accepted player input is sent to the external device;

[0034] Obtaining correction information sent by other player terminals;

[0035] compensating the estimation result based on the correction information; and

[0036] The state value of the operation object is updated based on the estimation result.

[0037] In addition, the present invention provides a processing system, including a server and a plurality of player terminals,

[0038] Wherein, each of the player terminals has:

[0039] A storage unit, used to store a state value corresponding to each operation object of the plurality of operation objects;

[0040] The receiving unit is used to receive player input;

[0041] an estimation unit for generating an estimation result corresponding to a second timing later than the first timing based on an estimation model and based on per-timing information corresponding to the first timing, the estimation model for generating an estimation result of per-timing information corresponding to a subsequent timing based on per-timing information indicating content of a player input accepted by each of the plurality of player terminals in a manner corresponding to a certain timing;

[0042] a determination unit configured to determine whether the content of the player input accepted by the acceptance unit in a manner corresponding to the second timing is consistent with the estimated content of the player input corresponding to the second timing indicated by the estimation result;

[0043] a correction information sending unit, configured to send correction information indicating the content of the player input accepted by the acceptance unit to an external device when the judgment result generated by the judgment unit indicates inconsistency;

[0044] A correction information acquisition unit, used to acquire correction information sent by other player terminals;

[0045] a compensation unit, configured to compensate the estimation result based on the correction information; and

[0046] an updating unit, configured to update a state value of the operation object based on the estimation result, and

[0047] The server has a sending unit, and the sending unit is used to send the received correction information to the other player terminals when receiving the correction information from the player terminal.

[0048] Effects of the Invention

[0049] According to the present invention, a technique for alleviating the problem of communication delay while also suppressing adverse effects on gameplay is achieved. BRIEF DESCRIPTION OF THE DRAWINGS

[0050] Figure 1 is an example of a functional block diagram of the game system according to the present embodiment.

[0051] Figure 2 is a diagram showing an example of the hardware structure of a player terminal according to the present embodiment.

[0052] Figure 3 is a diagram showing an example of the hardware configuration of the server according to the present embodiment.

[0053] Figure 4 is an example of a functional block diagram of the server according to the present embodiment.

[0054] Figure 5It is a diagram for explaining the processing according to the present embodiment.

[0055] Figure 6 It is a diagram for explaining the processing according to the present embodiment.

[0056] Figure 7 It is a diagram for explaining the processing according to the present embodiment.

[0057] Figure 8 It is a diagram for explaining the processing according to the present embodiment.

[0058] Fig. 9 It is a diagram for explaining the processing according to the present embodiment.

[0059] Fig.10 It is a diagram for explaining the processing according to the present embodiment.

[0060] Fig.11 is an example of a functional block diagram of a player terminal according to the present embodiment.

[0061] Fig.12 is a diagram schematically showing an example of information processed by a player terminal according to the present embodiment.

[0062] Fig.13 is a flowchart showing an example of the flow of processing in the player terminal according to the present embodiment.

[0063] Fig.14 is a flowchart showing an example of the flow of processing in the player terminal according to the present embodiment.

[0064] Fig.15 It is a diagram for explaining the processing according to the present embodiment.

[0065] Fig.16 It is a diagram for explaining the processing according to the present embodiment. DETAILED DESCRIPTION

[0066] <Game System Overview>

[0067] First, the overview of the game system according to the present embodiment will be described. Figure 1 As shown, the game system according to the present embodiment has a plurality of player terminals 10 and a server 20. The player terminals 10 and the server 20 are connected to each other via a communication network 30. The player terminals 10 are terminals operated by individual players, and their representatives are, but not limited to, smartphones, tablet terminals, mobile phones, or personal computers, etc. The plurality of player terminals 10 can establish data communication with each other directly or via the server 20. The game system according to the present embodiment is suitable for, for example, MMO games.

[0068] In the present embodiment, an estimation model for estimating input contents to be input by a typical player in the near future (e.g., one to a dozen frames later) is generated by applying deep learning to game logs accumulated in large quantities in MMO games, etc. Then, each of the plurality of player terminals 10 estimates the future input contents to be input by each of the plurality of players based on the same estimation model. Of course, the estimation results generated by the plurality of player terminals 10 have the same contents.

[0069] Then, if the content actually input by the player to his / her own terminal is different from the estimated result, the player terminal 10 transmits the content actually input by the player to his / her own terminal (estimated result correction information) to other player terminals 10 directly or through the server 20. If the content actually input by the player to his / her own terminal is the same as the estimated result, the player terminal 10 does not transmit the content actually input by the player to his / her own terminal to other player terminals 10.

[0070] When each player terminal 10 receives estimation result correction information sent by other player terminals 10, it controls (moves, etc.) the character to be controlled by the player terminal 10 based on the received information, and when no estimation result correction information is received, it controls the character based on the estimation result.

[0071] In this way, the game system according to the present embodiment performs "synchronous prediction" in which a plurality of player terminals 10 simultaneously estimate future input contents to be input by each of a plurality of players based on the same estimation model. Then, only when a player inputs contents different from the prediction result to his / her own player terminal 10, the input contents are notified to other player terminals 10. The game system according to the present embodiment realizes a multiplayer game communication method with high efficiency, low latency, and high resistance to packet loss.

[0072] <Hardware Structure>

[0073] Next, the hardware configuration of the player terminal 10 and the server 20 will be described.

[0074] "Player Terminal 10"

[0075] First, the hardware structure of the player terminal 10 will be described. Figure 2 1 is a block diagram showing the hardware structure of the player terminal 10. Figure 2 As shown, the player terminal 10 has: a processor 1A; a memory 2A; an input / output interface 3A; a peripheral circuit 4A; a bus 5A; a touch screen 6A; and a communication unit 7A. The peripheral circuit 4A includes various modules. Note that the peripheral circuit 4A does not need to be provided.

[0076] The functional units provided in the player terminal 10 are implemented by any combination of the following: hardware, such as a processor 1A, a memory 2A, an input / output I / F 3A, and a module (touch screen 6A, communication unit 7A, etc.) connected to the input / output I / F 3A; and a program (software) stored in a built-in memory (ROM, hard disk, etc.) and loaded into a RAM, etc. In addition, it will be understood by those skilled in the art that there may be various variations of the method and apparatus for implementing the functional units. Note that the programs stored in the built-in memory include not only programs pre-stored when the processing device is shipped from the factory, but also programs downloaded from a server on the Internet, etc.

[0077] The bus 5A is a data transmission path that enables the processor 1A, the memory 2A, the peripheral circuit 4A, and the input / output I / F (interface) 3A to send / receive data relative to each other. The processor 1A is a computing processing device such as a CPU (central processing unit), a GPU (graphics processing unit), or an NPU (neural network processing unit). The memory 2A is a memory such as a RAM (random access memory) or a ROM (read-only memory). An input device (touch screen 6A, a microphone or a physical button, etc.), an output device (touch screen 6A or a speaker, etc.), and a communication unit 7A for connecting to a network such as the Internet are connected to the input / output I / F 3A. The processor 1A can issue instructions to each module and perform calculations based on the calculation results from these modules.

[0078] Note that the touch screen 6A is composed of a display that displays an image and a position input sensor. When the touch screen 6A is touched, the position input sensor outputs a signal (detection result) based on the touched position. The signal output from the touch screen 6A is input to the processor 1A via the input / output I / F 3A. The processor 1A executes a program for converting the signal output from the touch screen 6A into coordinates in an arbitrary coordinate system, thereby converting the signal output from the touch screen 6A into coordinates in the coordinate system. The above-mentioned coordinate system is, for example, a coordinate system having an origin at an arbitrary point on the touched surface of the touch screen 6A and having an X-axis and a Y-axis defined in an arbitrary direction parallel to the surface. In the following, for convenience, the coordinates in the coordinate system will be referred to as "screen coordinates". Examples of position input sensors include capacitive sensors and resistive sensors.

[0079] Here, touch operation refers to: an operation used to make an object (finger, etc.) contact or approach the position input sensor so that the position input sensor can detect the object in contact or approaching it; an operation used to change the position of the object in contact or approaching the position input sensor while maintaining the object in contact or approaching the position input sensor; and an operation used to move the object away from the position input sensor so that the position input sensor exits detection.

[0080] "Server 20"

[0081] Next, the hardware structure of the server 20 will be described. Figure 3 2 is a block diagram showing the hardware structure of the server 20. Figure 3 As shown, the server 20 has: a processor 1A; a memory 2A; an input / output interface 3A; a peripheral circuit 4A; a bus 5A; etc. The peripheral circuit 4A includes various modules. Note that the peripheral circuit 4A may not be provided.

[0082] The functional units provided in the server 20 are implemented by any combination of the following: hardware, such as a processor 1A, a memory 2A, an input / output I / F 3A, and a module connected to the input / output I / F 3A; and a program (software) stored in a built-in memory (ROM, hard disk, etc.) and loaded into a RAM, etc. In addition, it will be understood by those skilled in the art that there are various variations of the method and device for implementing the functional units. Note that the programs stored in the built-in memory include not only programs pre-stored when the processing device is shipped from the factory, but also programs downloaded from a server on the Internet, etc. Since the processor 1A, the memory 2A, the input / output interface 3A, the peripheral circuit 4A, and the bus 5A are described in detail above, their description will be omitted here.

[0083] <Functional Structure>

[0084] Next, the functional structures of the player terminal 10 and the server 20 will be described. Here, the functional structures of the player terminal 10 and the server 20 will be described in two separate steps: "generation of an estimation model for estimating a player's input" and "control of a game by using the estimation model".

[0085] "Generation of an estimation model for estimating player input"

[0086] The generation of the estimation model is implemented by the server 20. The estimation model generation process will be described in detail below. Note that the learning data generation process and the estimation model generation process based on the learning data described below are implemented, for example, by the work of game developers during game development. In addition, the estimation model can be updated based on the data input by the player during the game operation. More specifically, the data input by the player can be accumulated during the actual game operation, the learning data can be generated from the accumulated data, and a new estimation model can be generated and updated based on the learning data. Figure 4 An example of a functional block diagram of the server 20 is shown. As shown in the figure, the server 20 has: a storage unit 21; a tensor data generation unit 22; a learning data generation unit 23; an estimation model generation unit 24; and a transmission unit 25.

[0087] The tensor data generating unit 22 generates matrix data in a manner corresponding to each of a plurality of timings at intervals of a predetermined time period (hereinafter, referred to as "per-timing matrix data" in some cases), and generates tensor data in which the per-timing matrix data of each predetermined time period is arranged along the time axis. Then, the tensor data generating unit 22 stores the generated tensor data in the storage unit 21. The processing using the tensor data generating unit 22 will be described in detail below. Although the "predetermined time period" is described as a "frame" below, this is merely an example, and the predetermined time period is not limited to the frame.

[0088] The present embodiment assumes that the player input via the touch screen 6A is processed and the operation object (player character, etc.) is controlled based on the technology disclosed in Patent Document 1. More specifically, in the game system according to the present embodiment, the value (screen coordinate) of the touch point detected on the touch screen 6A of each player terminal 10 is observed separately for each certain time interval (such as frame time, etc.). Then, the set of the values ​​of the touch points observed at each time interval is stored in a buffer as an independent array for each time interval.

[0089] Although "a time interval" is described below as "a time interval corresponding to a frame", this is merely an example, and the time interval is not limited to a frame. In game applications, the frame rate is typically 60fps or 30fps. In the case of, for example, 30fps, the length of the time interval corresponding to a frame is approximately 33ms. In the case of a capacitive touch screen that senses at, for example, a frequency of 100Hz, the values ​​of multiple touch points are observed in one frame (in one time interval). In this embodiment, a set of values ​​of the touch points is observed at each time interval corresponding to a frame, and the set of values ​​is stored in a buffer as an array at each time interval and in the order in which the values ​​are observed in the time interval. The set of horizontal axis values ​​X of the touch points and the set of vertical axis values ​​Y of the touch points can be defined as the following equations (1) and (2), respectively.

[0090] {Mathematical formula 1}

[0091]

[0092] {Mathematical formula 2}

[0093]

[0094] Here, x a,bRepresents the bth observed value in the set of horizontal axis values ​​of the touch point observed in the time interval corresponding to the ath frame. The values ​​in each frame are sorted in ascending order of observation time, and the bth value is the value observed after the (b-1)th value and before the (b+1)th value.

[0095] Similarly, y a,b Represents the bth observed value in the set of vertical axis values ​​of the touch point observed in the time interval corresponding to the ath frame. The values ​​in each frame are sorted in ascending order of observation time, and the bth value is the value observed after the (b-1)th value and before the (b+1)th value.

[0096] Note that the number of touch points observed in the time interval corresponding to each frame is not always the same. For this reason, the value of the variable m can be different for each value of a. Each set of values ​​is grouped together frame by frame in the form of a two-dimensional array.

[0097] Hereinafter, a set of values ​​of touch points observed in a time interval corresponding to one frame on the touch screen 6A of one player terminal 10 is referred to as a "data point group". The data point group observed in a time interval corresponding to the first frame on the touch screen 6A of the first player terminal 10 is different from the data point group observed in a time interval corresponding to the first frame on the touch screen 6A of the second player terminal 10. In addition, the data point group observed in a time interval corresponding to the first frame on the touch screen 6A of the first player terminal 10 is different from the data point group observed in a time interval corresponding to the second frame on the touch screen 6A of the first player terminal 10.

[0098] The storage unit 21 stores the history of the data point group observed at each of the plurality of player terminals 10. Furthermore, the tensor data generation unit 22 generates tensor data through the following processes 1 to 3 using the data of the history.

[0099] ·"(Processing 1) Generates a world coordinate system matrix M for each player terminal 10 and for each frame, wherein the world coordinate system matrix M represents: a group of data points observed on the touch screen 6A of the player terminal 10 in a time interval corresponding to the frame; and the position of an operating object (player character, etc.) whose action (movement, etc.) is controlled based on the group of data points."

[0100] "(Process 2) Synthesize the world coordinate system matrix M generated for each frame for the player terminal 10 to generate matrix data for each timing".

[0101] "(Process 3) Store each timing matrix data along the time axis to generate tensor data".

[0102] First, the process 1 will be described. In the present embodiment, the world coordinate system matrix M represents a group of data points observed on the touch screen 6A of each player terminal 10 in a time interval corresponding to each frame, and the position of an operation object (player character, etc.) whose action (movement, etc.) is controlled based on the group of data points.

[0103] The "world coordinate system matrix M" has rows and columns corresponding to the x-axis and y-axis in the world coordinate system of the 3D game space (the x-axis and y-axis are horizontal axes and the z-axis is a vertical axis), and the value of the component of the qth row and rth column represents the coordinate (x q ,y r ). The tensor data generating unit 22 maps the data point group observed on the touch screen 6A of each player terminal 10 in the time interval corresponding to each frame to a predetermined position on the 2D map overlooking the 3D game space, thereby generating a world coordinate system matrix M representing the mapping state using the value of each component. The predetermined position to which the data point group is mapped is a position corresponding to an operation object (player character, etc.) whose action (movement, etc.) is controlled based on the data point group, and examples of the position include a position where the operation object exists, a position around it, etc.

[0104] The world coordinate system matrix M can be defined as the following equation (3).

[0105] {Mathematical formula 3}

[0106]

[0107] Here, p q,r Indicates whether the element (point) of the data point group exists at the coordinate (x q ,y r ) corresponding to the location. For example, if there are elements of the data point group, then p q,r The value of is set to a number from 0 (exclusive) to 1 (inclusive), and if there is no element of the data point group, p can be q,r The world coordinate system matrix M can be simply implemented so that if there are elements of the data point group, then p q,r The value of is set to 1. However, other implementations are possible by setting values ​​reflecting the characteristics of the operation object whose action is controlled based on the data point group, such as type and state (health value, level, attack power or defense power, etc.), thereby implementing the world coordinate system matrix M that further represents these characteristics. For example, p corresponding to the position where the element of the data point group exists q,r The value of may be a value normalized by the maximum health value of the operation object, or a value expressing the strength of the operation object as an indicator, etc.

[0108] In this embodiment, since learning for generating an estimation model is performed by assuming, for example, GAN (Generative Adversarial Network), the values ​​of n and m representing the size of the matrix are uniquely fixed in the system. This enables appropriate machine learning.

[0109] Next, a method for mapping a data point group observed on the touch screen 6A of the player terminal 10 to a position corresponding to an operation object on a 2D map overlooking a 3D game space will be described.

[0110] like Figure 5 As shown in (A), the data point group is observed as coordinates (screen coordinates) on the physical touch screen 6A. In view of this, first, as Figure 5 As shown in (B), the tensor data generation unit 22 maps the screen coordinates to the world coordinate system of the 3D game space. For example, based on the position and orientation of the camera, the data point group observed on the touch screen 6A is mapped to the world coordinate system of the 3D game space. Figure 5 As shown in (B), Figure 5 The data point group observed when the camera is located at the back of the operation object as shown in (A) is mapped to the back of the operation object. Through this mapping, the data point group at the screen coordinates as the inherent values ​​of the player terminal 10 is mapped to the world coordinate system of the 3D game space. The coordinate transformation process map can be defined as the following formula (4).

[0111] {Mathematical formula 4}

[0112] map(x,y)→x w ,y w …Formula (4)

[0113] Here, x and y are the x and y coordinates of the screen coordinates, respectively, and x w and w are the x and y coordinates of the world coordinates respectively.

[0114] Then, if Figure 6 and Figure 7 As shown, the tensor data generating unit 22 maps the data point group mapped to the world coordinate system of the 3D game space to the position corresponding to the operation object on the 2D map overlooking the 3D game space. The mapping is achieved by moving the data point group (such as rotating and / or sliding the data point group). For example, the content of the movement can be determined based on the direction of the camera, the distance between the camera and the operation object, etc.

[0115] Note that the mapping requires a clever way to ensure that the control content of the operation object calculated based on the data point group observed on the touch screen 6A is the same as the control content of the operation object calculated based on the data point group after mapping. For example, it is necessary that the state (shape, orientation, etc.) of the data point group observed on the touch screen 6A has a predetermined correspondence (e.g., consistent) with the state (shape, orientation, etc.) of the data point group after being mapped to the coordinate system of the 2D map. In this case, since it is ensured that the vectors calculated based on the data point group are the same before and after mapping, it is also ensured that the control content of the operation objects (player characters, etc.) based on these data point groups is the same before and after mapping.

[0116] Here, a specific example of the relevant mapping will be described. For example, the tensor data generation unit 22 reflects the data point group mapped to the world coordinate system of the 3D game space to the local coordinate system of the operation object (the coordinate axis calculated relative to the origin set at an arbitrary position of the operation object), thereby mapping the data point group to the position corresponding to the operation object in the local coordinate system (for example, directly above the operation object). This mapping process transpose from the world coordinate system to the local coordinate system can be defined as the following formula (5).

[0117] {Mathematical formula 5}

[0118] transpose(x w ,y w )→x l ,y l …Formula (5)

[0119] Here, x w and w are the x and y coordinates of the point in world coordinates, and x l and l are the x-coordinate and y-coordinate of the point in the local coordinates respectively. The mapping process transpose can be performed as follows in a game engine is implemented in .

[0120] Step 1: Project the direction vector of the camera onto the world coordinate xz plane, and further normalize the direction vector to a unit vector of length 1 (apply the normalized function).

[0121] var cameraForward=Vector3.Scale(mainCamera.forward,new Vector3(1,0,1)).normalized;

[0122] Note that for Vector3.Scale(mainCamera.forward,new Vector3(1,0,1)) the y coordinate is pre-multiplied by 0.

[0123] Step 2: Map the vector calculated based on the data point group (movingTo: right direction corresponds to the positive direction of the x-axis, and upward direction corresponds to the positive direction of the z-axis) to the xz plane of the local coordinates of the operation object. Patent document 1 discloses the calculation of a vector based on a data point group.

[0124] var move=transform.InverseTransformDirection(movingTo.z*cameraForward+movingTo.x*new Vector3(cameraForward.z,0,-1*cameraForward.x));

[0125] Note that new Vector3(cameraForward.z,0,-1*cameraForward.x) rotates cameraForward -90 degrees on the xz plane so that the finger operation in the upward direction can correspond to the operation in the depth direction of the world coordinates.

[0126] According to the above specific example, since the vectors calculated from the data point group are the same before and after mapping, the disadvantage that the values ​​of the angle and speed calculated from the data point group change before and after mapping can be suppressed.

[0127] Next, the process 2 will be described. The process 1 generates a world coordinate system matrix M for each player terminal 10 and for each frame, the world coordinate system matrix M representing: a data point group observed on the touch screen 6A of the player terminal 10 in a time interval corresponding to the frame; and the position of the operating object whose action is controlled based on the data point group.

[0128] In process 2, the tensor data generation unit 22 synthesizes multiple world coordinate system matrices M, which represent: data point groups observed on multiple player terminals 10 in the time interval corresponding to the same frame; and the positions of operating objects whose actions are controlled based on the data point groups. This results in the generation of a world coordinate system matrix M (per timing matrix data), which represents all data point groups observed on multiple player terminals 10 in the time interval corresponding to the frame, and the positions of all operating objects whose actions are controlled based on these data point groups. The tensor data generation unit 22 generates per timing matrix data corresponding to each frame in the multiple frames by applying the relevant processing to each frame in the multiple frames. The operator used to synthesize the two world coordinate system matrices M and M' can be defined as the following formula (6).

[0129] {Mathematical formula 6}

[0130]

[0131] Here, max(u,v) is a function that returns the larger value of u and v. In other words, the operator in formula (6), when given two matrices of exactly the same size, generates a new matrix having the larger value of the values ​​corresponding to the same rows and columns. Note that as an application, there are possible implementation methods for treating the values ​​in the matrix as bits and calculating the bitwise OR of the bits, or adding integers by saturation calculation.

[0132] In Process 3 , the tensor data generating unit 22 generates tensor data by storing the per-timing matrix data generated in such a manner as to correspond to each of the plurality of frames along the time axis.

[0133] Note that the entire game space may be represented by one per-timing matrix data, or alternatively, the entire game space may be divided into a plurality of partitions such that each partition may be represented by one per-timing matrix data. Figure 8 As shown, the entire game space can be divided into a finite number of partitions of standardized size. Then, per-timing matrix data can be generated for each partition. Fig. 9 The concept of storing tensor data of per-timing matrix data generated for each partition along the time axis is shown.

[0134] Return to reference Figure 4, the learning data generating unit 23 extracts the following learning data from the tensor data generated by the tensor data generating unit 22, in which the per-timing matrix data corresponding to the Nth frame (Nth timing) is associated with the per-timing matrix data corresponding to the frame after the Nth frame. For example, the learning data generating unit 23 can extract the following learning data from the tensor data, in which the per-timing matrix data corresponding to the Nth frame is associated with the respective per-timing matrix data corresponding to the frames from the (N+1)th frame to the (N+K)th frame (where K is an integer equal to or greater than 2). The learning data generating unit 23 stores the extracted learning data in the storage unit 21.

[0135] The estimation model generation unit 24 generates an estimation model for generating an estimation result of each timing matrix data corresponding to a subsequent frame from each timing matrix data corresponding to a certain frame by machine learning (generative adversarial network (GAN) etc.) based on the learning data generated by the learning data generation unit 23. Then, the estimation model generation unit 24 stores the generated estimation model in the storage unit 21.

[0136] Here, we will use Fig.10 The concept of machine learning performed by the estimation model generation unit 24 will be explained. Fig.10 (A) and Fig.10 (B) shows a 2D map overlooking the 3D game space. Fig.10 (A) shows the state of the Nth frame, and Fig.10 (B) shows the state of the subsequent frame. These figures show three operation objects and data point groups corresponding to each operation object observed on three player terminals 10 in time intervals corresponding to each frame. The data point groups are mapped to the positions of each operation object by the above method.

[0137] Fig.10 (C) and Fig.10 (D) shows that in order to Fig.10 (A) and Fig.10 The contents of each timing matrix data produced by representing the state of the data point group in (B) are shown in Table 1. A block in each table corresponds to a component p of each timing matrix data. q,r Correspondingly, and the component p q,r The value of is represented by the state of the block. In addition, the component p q,r The value of indicates whether the element of the data point group is located in the corresponding square.

[0138] The estimation model generation unit 24 may be configured to generate a Fig.10 (C) and Fig.10The form shown in (D) graphically displays the matrix data per timing stored as learning data, converts the data into bitmap data, and performs machine learning based on the obtained drawing file.

[0139] In this way, the learning process in this embodiment represents the change in input content (change in data point group) between two frames as a “change in pattern ( Fig.10 (C) → Fig.10 (D))", and let the neural network learn the change. As a result, given a certain pattern ( Fig.10 (C)), the next pattern can be automatically generated ( Fig.10 This means predicting the input content in subsequent frames based on the input content in one frame.

[0140] In this embodiment, machine learning can be repeated while thinning out the number of data point groups, for example. By doing so, future situations can be predicted at high speed and high accuracy by sharing only a very small amount of touch data between clients.

[0141] The learn function, which is a function for learning by using GAN, receives a learning data bucket B corresponding to a specific partition c. c , and outputs a model G for predicting the operation to be performed in partition c c The learn function is defined as the following formula (7).

[0142] {Mathematical formula 7}

[0143] learn(B c ) → G c …Formula (7)

[0144] Assuming that all buckets owned by the system are B, then the learning data bucket B corresponding to a specific partition C c It can be defined as the following formula (8).

[0145] {Mathematics 8}

[0146] B c =(M1, M2, M3, ...M d )…Formula (8)

[0147] Here, M i is the per-timing matrix data corresponding to the i-th frame in partition c. The learn function uses M e and M e+f A group of as input to GAN (where f is an integer equal to or greater than 1).

[0148] Note that you can also eEliminate any number of data points to generate M e ', then use M e ' and M e+f This allows the input content in future frames to be inferred based on a smaller number of data points.

[0149] The predict function used as the estimation model generated by the estimation model generation unit 24 is a function that estimates each timing matrix data corresponding to a subsequent frame when each timing matrix data corresponding to a certain frame is input, and can be defined as the following equation (9).

[0150] {Mathematical formula 9}

[0151] predict(M c ,n)→M' c …Formula (9)

[0152] Here, M c is the per-timing matrix data corresponding to a certain frame in partition c, n is the frame number of the future frame to be predicted, and M c ' is the estimated per-timing matrix data corresponding to "the frame n frames after a certain frame".

[0153] Return to reference Figure 4 , the sending unit 25 sends the estimation model stored in the storage unit 21 to the plurality of player terminals 10. For example, the server 20 may manage the position of each of the plurality of operation objects. In addition, the sending unit 25 may send the estimation model corresponding to the partition in which each of the plurality of operation objects exists to the player terminal 10 for controlling the operation objects.

[0154] For example, according to the fact that the operation object moves from the first partition to the second partition, the transmission unit 25 may transmit the estimation model corresponding to the second partition to the predetermined player terminal 10 .

[0155] In addition, the server 20 can predict the input content in the frame several frames later based on the above estimation model, and predict the position of each operation object in the multiple operation objects several frames later based on the prediction result. In addition, according to the prediction result indicating that the operation object will move from the first partition to the second partition, the sending unit 25 can send the estimation model corresponding to the second partition to the predetermined player terminal 10.

[0156] "Control of games by using estimation models"

[0157] Fig.11An example of a functional block diagram of the player terminal 10 is shown. As shown in the figure, the player terminal 10 has: a storage unit 11; a receiving unit 12; an estimation unit 13; a determination unit 14; a correction information transmission unit 15; a correction information acquisition unit 16; a compensation unit 17; and an update unit 18.

[0158] The storage unit 11 stores the estimation model sent by the server 20. In addition, the storage unit 11 stores various information related to the game. Fig.12 As shown, the storage unit 11 stores the state value corresponding to each operation object in the plurality of operation objects. The action of each operation object in the plurality of operation objects is controlled by each player terminal in the plurality of player terminals 10. The state value includes, but is not limited to, the position in the game space, the life value, etc. Based on these state values, the player terminal 10 generates a screen to be displayed on its own display, and displays the screen on its own display. More specifically, the player terminal 10 generates a game screen in which each operation object in the plurality of operation objects is arranged at a position represented by the state value, and displays the game screen on its own display.

[0159] The receiving unit 12 receives input from the player. For example, the receiving unit 12 receives touch input via the touch screen 6A, input via a physical button, etc. The receiving unit 12 observes the value (screen coordinate) of the touch point detected on the touch screen 6A separately for each certain time interval (such as a frame time, etc.). Then, the receiving unit 12 stores the set of values ​​of the touch point observed at each time interval (data point group) in a buffer as an independent array for each time interval.

[0160] Based on the estimation model and each timing information corresponding to the first frame (first timing), the estimation unit 13 generates an estimation result corresponding to a second frame (second timing) later than the first frame (first timing), wherein the estimation model is used to generate an estimation result of each timing information corresponding to a subsequent frame (subsequent timing) based on each timing information representing the content of the player input accepted by each player terminal among multiple player terminals 10 in a manner corresponding to a certain frame (a certain timing).

[0161] The estimation model processed by the estimation unit 13 is an estimation model generated by the server 20 , that is, an estimation model received from the server 20 and stored in the storage unit 11 .

[0162] Each timing information has the same format as the above-mentioned each timing matrix data, and indicates a data point group received by each player terminal 10 actually participating in the game at this time in a manner corresponding to a certain frame, and the position of the operation object whose action is controlled based on the data point group. The "data point group received in a manner corresponding to a certain frame" is a data point group received in order to control the operation object in the frame.

[0163] The estimation unit 13 may generate estimation results for frames one to a dozen frames ago, for example.

[0164] Note that the estimation unit 13 implemented in each of the plurality of player terminals 10 produces the same estimation result based on the same estimation model.

[0165] The judgment unit 14 judges whether the content (data point group) of the player input accepted by the acceptance unit 12 in a manner corresponding to the second frame is consistent with the estimated content (data point group) of the player input corresponding to the second frame represented as the estimation result. Note that the consistency here may be completely consistent, or a predefined "slight deviation" may be permitted. For example, the data point group may be vectorized by using the technology disclosed in Patent Document 1 (Japanese Patent 6389581), and a deviation of ±1 degree may be permitted.

[0166] If the judgment result generated by the judgment unit 14 indicates inconsistency, the correction information transmission unit 15 transmits correction information indicating the content of the player input accepted by the acceptance unit 12 to the external device. For example, the correction information transmission unit 15 may transmit the correction information to the server 20. In this case, the server 20 transmits the received correction information to the other player terminals 10. Alternatively, the correction information transmission unit 15 may directly transmit the correction information to the other player terminals 10 without the intervention of the server 20.

[0167] The correction information acquisition unit 16 acquires correction information transmitted from other player terminals 10 .

[0168] The compensation unit 17 compensates the estimation result based on the correction information acquired by the correction information acquisition unit 16. The correction information includes at least the correct input content and information for identifying the operation object whose behavior is controlled based on the input.

[0169] The updating unit 18 updates the state value of the operation object based on the estimation result (refer to Fig.12 ). In the case where the estimation result is compensated by the compensation unit 17, the update unit 18 can update the state value of the operation object based on the compensated estimation result or the correction information acquired by the correction information acquisition unit 16. In addition, the update unit 18 can update the state value of the operation object based on the content of the player input accepted by the acceptance unit 12. Note that the process for determining the control content (movement direction, etc.) of the operation object from the data point group is described in Patent Document 1 (Japanese Patent 6389581) and will not be described here.

[0170] Next, we will use Fig.13 and Fig.14An example of the flow of processing in the player terminal 10 is described with reference to a flowchart of FIG. Although not shown in the figure, for example, immediately after the player terminal 10 logs in to the server 20 and participates in the game, the estimation model determined based on the initial position of the operation object to be controlled by the player terminal 10 and the like are Fig.12 The state value and the like corresponding to each of the plurality of operation objects shown are transmitted from the server 20 to the player terminal 10. The player terminal 10 stores the received information in the storage unit 11. Then, the player terminal 10 performs the following processing.

[0171] First, if Fig.13 As shown, the player terminal 10 acquires each timing information corresponding to a certain frame (S101). Immediately after participating in the game, the player terminal 10 may acquire each timing information from the server 20.

[0172] In addition, the estimation unit 13 of the player terminal 10 generates an estimation result of each timing information corresponding to each subsequent frame (for example, 1 to 15 frames later) based on the estimation model stored in the storage unit 11 and the each timing information acquired in S101 (S102). Then, the estimation unit 13 stores the generated estimation result in the storage unit 11 (S103). Thereafter, the player terminal 10 returns to S101 and repeats the generation and storage of the estimation result of each timing information.

[0173] In addition, if Fig.14 As shown, when the judgment unit 14 acquires the estimation result of each timing information corresponding to a certain frame from the storage unit 11 (S201) and acquires the information indicating the content of the player input accepted by the acceptance unit 12 in a manner corresponding to the frame (S202), the judgment unit 14 judges whether the content of the player input accepted in a manner corresponding to the timing is consistent with the estimated content of the player input corresponding to the timing indicated by the estimation result (S203). Note that the processing order in S201 and S202 is not limited to the above order.

[0174] Then, in the case where the judgment result indicates inconsistency (No in S204), the compensation unit 17 compensates the estimation result acquired in S201 based on the information indicating the content of the player input acquired in S202 (S205). In addition, the correction information transmission unit 15 transmits the correction information indicating the content of the player input accepted by the acceptance unit 12 to the external device (S206). Note that the processing order in S205 and S206 is not limited to the above order.

[0175] If the processing in S204 results in "yes", the processing in S207 is further executed after S206. In S207, it is determined whether the correction information transmitted by the other player terminals 10 in a manner corresponding to the frame has been acquired by the correction information acquisition unit 16.

[0176] In the case where the correction information is acquired (Yes in S207 ), the compensation unit 17 compensates the estimation result acquired in S201 based on the acquired correction information ( S208 ).

[0177] If the processing in S207 results in "yes", the processing in S209 is further executed after S208. In S209, the updating unit 18 updates the state value corresponding to each of the plurality of operation objects stored in the storage unit 11 based on at least one of the estimation result acquired in S201, the information indicating the content of the player input acquired in S202, the estimation result after compensation in S205 and / or S208, and the correction information sent by the other player terminal 10 (refer to Fig.12 ). Then, the player terminal 10 updates the game screen on the display based on the updated state value.

[0178] In the subsequent step S210, in the case where the estimation result is compensated by the compensation unit 17 in at least one of the steps S205 and S208, the estimation unit 13 obtains the compensated estimation result. On the other hand, in the case where the estimation result has not been compensated, the estimation unit 13 obtains the estimation result that has not been compensated. In step S101, the estimation unit 13 obtains the obtained estimation result after compensation or before compensation as each timing information corresponding to a certain frame. Then, the estimation unit 13 generates a new estimation result based on the each timing information (S102).

[0179] <Modification>

[0180] Next, a variation will be described. In addition to the content of the player input and the position of the operation object in the game space, each timing matrix data can also represent other information that can affect the content of the player input. For example, each timing matrix data can also represent: the characteristics of the operation object, such as type and state (life value, level, attack power, defense power, etc.); the position of non-operation objects (characters whose actions are controlled by the computer, obstacles that block movement such as mountains, oceans and buildings, etc.) in the game space; and the characteristics of non-operation objects, such as type and state (life value, level, attack power, defense power, etc.). This information can be obtained using the component p of each timing matrix data. q,r The value of is represented by .

[0181] When you want to use a graphic to show each timing matrix data, such as Fig.15As shown, for example, by color ( Fig.15 (C)), brightness, or adding a point to a predetermined position ( Fig.15 (D)) etc. to represent the component p q,r different values ​​of .

[0182] According to such a modification, the input contents of several frames later can be estimated by taking into account various information that can affect the contents of the player's input. As a result, the estimation accuracy is improved.

[0183] Another modification will be described. The tensor data generating unit 22 may generate matrix data representing the state of the world coordinate system for each predetermined time period, in which, instead of the data point group, the encoded information obtained by encoding the vector calculated from the data point group is associated with the position of each operation object and mapped to the position. For example, Fig.16 As shown, the encoded information may represent a vector calculated from a data point group based on the orientation and size of the convex shape. As in the above modification, the encoded information assigned with the above various information may be mapped by color, brightness, addition of points to predetermined positions, and the like.

[0184] The function encode for encoding the situation information in the game (for example, characteristics of the operation object such as type and state (health value, level, attack power, defense power, etc.)) can be defined as the following formula (10).

[0185] {Mathematics 10}

[0186] encode(S,M)→M'…Formula (10)

[0187] Here, S is situation information in the game, and M is a world coordinate system matrix corresponding to a certain frame of a certain player terminal 10 .

[0188] <Effect>

[0189] Next, the effect of the present embodiment will be described. In order to achieve 30fps, for example, in the case of a method in which all input contents accepted by each player terminal 10 are sent to other player terminals 10, it is necessary to send and receive UDP packets at "30Hz (30 round trips per second)". In contrast, in order to achieve 30fps, for example, in a method in which only incorrectly predicted input contents among the input contents accepted by each player terminal 10 are sent to other player terminals 10 according to the present embodiment, the frequency of sending and receiving UDP packets can be reduced to "30Hz or lower". If the prediction is 100% incorrect, the frequency is 30Hz, and if the prediction is at least partially correct, the frame rate is less than 30fps. It is rare and almost impossible for the prediction to be 100% incorrect continuously. Using such a game system according to the present embodiment, a multiplayer game communication method with high efficiency, low latency and high resistance to packet loss can be realized.

[0190] The biggest advantage of this embodiment is "non-destructiveness", which can reduce the amount of data communication without changing the existing game content. In addition to this non-destructiveness, this embodiment also has the following advantages.

[0191] - High packet loss rate: Since the communication frequency and the communication volume itself can be reduced, more action-oriented multiplayer games can be achieved in MMO games on smartphones that suffer more packet loss and have more limited bandwidth.

[0192] - High resistance to packet loss: Since the frequency of sending packets itself can be reduced, this embodiment is inherently resistant to packet loss. In addition, if this embodiment contributes more space to the network bandwidth, countermeasures against packet loss can be easily introduced, such as increasing the frequency of communication or sending the history of previous actions in a single communication.

[0193] - Application to anti-cheating measures: Since the model only sends packets corresponding to differences from which the prediction based on the estimation model has deviated, this embodiment can produce characteristics suitable for cheating prevention and long-term large-scale operations based on continuous machine learning.

[0194] -Can be consistently integrated with incremental compression: This embodiment can be appropriately used depending on the purpose and situation, such as using incremental compression suitable for sending / receiving status information to send / receive status information, and using this embodiment suitable for compression of mobile information to compress mobile information, etc.

[0195] In addition, intuitively, the present embodiment is a technology that can be used as a "communication buffer for storing several frames of input content to automatically compensate for uncommunicated content." Therefore, the present embodiment can be implemented as an upper layer using existing communication middleware (such as Photon and monobit, etc.). In addition, the present embodiment can be combined consistently with compression of status information using existing delta compression.

[0196] In this specification, "acquisition" means at least one of the following: based on user input or program instructions, "the player's own device retrieves data stored in other devices or storage media (active acquisition)"; and based on user input or program instructions, "the player's own device allows input of data output from other devices (passive acquisition)". Examples of active acquisition include: the player's own device sends a request or query to other devices and receives data; the player's own device accesses other devices or storage media and reads data; and so on. Examples of passive acquisition include: the player's own device waits in a manner capable of receiving data sent from an external device, and receives data sent from the external device; the player's own device receives data distributed (or sent, pushed notification, etc.) from an external device; the player's own device selectively receives data or information from the received data or information; and the player's own device "edits data (converts data into text, sorts data, extracts part of data, or changes the file format of data, etc.) to generate new data, and then acquires the relevant new data".

[0197] A part or all of the above-mentioned embodiments may be described as, but not limited to, the following appendix.

[0198] 1. A program for causing a computer in each of a plurality of player terminals that establish data communication with each other directly or via a server to function as:

[0199] A storage unit, used to store a state value corresponding to each operation object of the plurality of operation objects;

[0200] The receiving unit is used to receive player input;

[0201] an estimation unit for generating an estimation result corresponding to a second timing later than the first timing based on an estimation model and based on per-timing information corresponding to the first timing, wherein the estimation model is used to generate an estimation result of per-timing information corresponding to a subsequent timing based on per-timing information indicating content of a player input accepted by each of the plurality of player terminals in a manner corresponding to a certain timing;

[0202] a determination unit configured to determine whether the content of the player input accepted by the acceptance unit in a manner corresponding to the second timing is consistent with the estimated content of the player input corresponding to the second timing indicated by the estimation result;

[0203] a correction information sending unit, configured to send correction information indicating the content of the player input accepted by the acceptance unit to an external device when the judgment result generated by the judgment unit indicates inconsistency;

[0204] A correction information acquisition unit, used to acquire correction information sent by other player terminals;

[0205] a compensation unit, configured to compensate the estimation result based on the correction information; and

[0206] An updating unit is used to update the state value of the operation object based on the estimation result.

[0207] 2. The procedure according to 1,

[0208] Wherein, when the compensation unit compensates the estimation result, the updating unit updates the state value of the operation object based on the correction information or the compensated estimation result.

[0209] 3. The procedure according to 1 or 2,

[0210] wherein, when the compensation unit compensates the estimation result, the estimation unit generates a new estimation result based on the estimation model and the compensated estimation result, and

[0211] In a case where the compensation unit does not compensate the estimation result, the estimation unit generates a new estimation result based on the estimation model and the uncompensated estimation result.

[0212] 4. The procedure according to any one of 1 to 3,

[0213] The timing information is matrix data having rows and columns corresponding to the x-axis and y-axis in the world coordinate system of the game space, and in the matrix data, the value of the component in the qth row and the rth column represents the coordinate (x q ,y r ) state, the matrix data represents the position of each operation object in the game space and the content of the player input corresponding to each operation object.

[0214] 5. The procedure according to 4,

[0215] The matrix data represents a group of data points at screen coordinates detected on the touch screen of the player terminal as content of player input corresponding to each operation object.

[0216] 6. The procedure according to 4,

[0217] The matrix data represents information obtained by encoding vectors calculated from a group of data points at screen coordinates detected on the touch screen of the player terminal as content of player input corresponding to each operation object.

[0218] 7. The procedure according to any one of 4 to 6,

[0219] The matrix data represents the state of the world coordinate system in which information representing the content of the player input corresponding to each operation object is associated with and mapped to the position of each operation object.

[0220] 8. The procedure according to any one of 4 to 7,

[0221] In which, the estimation model is generated by machine learning based on learning data, the learning data is extracted from tensor data storing the matrix data along a time axis, and in the learning data, the matrix data corresponding to the Nth timing and the matrix data corresponding to the timing after the Nth timing are associated.

[0222] 9. The procedure according to 8,

[0223] In which, the estimation model is generated by machine learning based on learning data, the learning data is extracted from tensor data storing the matrix data along the time axis, and in the learning data, the matrix data corresponding to the Nth timing and the respective matrix data corresponding to each timing from the N+1th timing to the N+Kth timing are associated, where K is an integer equal to or greater than 2.

[0224] 10. The procedure according to any one of 1 to 9,

[0225] In addition to indicating the content of the player's input, each timing information also indicates at least one of the position of the operation object in the game space, the position of the non-operation object in the game space, the characteristics of the operation object and the characteristics of the non-operation object.

[0226] 11. The procedure according to any one of 1 to 10,

[0227] The estimation unit implemented in each of the plurality of player terminals generates the estimation result based on the same estimation model.

[0228] 12. A server, comprising:

[0229] a tensor data generating unit for generating matrix data representing a state of a world coordinate system at intervals of a predetermined time period, and generating tensor data having the matrix data stored along a time axis, in which a data point group is associated with and mapped to a position of each operation object, the data point group representing a touch position at a screen coordinate detected on a touch screen of each of a plurality of player terminals in a manner corresponding to each of a plurality of timings at intervals of the predetermined time period;

[0230] a learning data generating unit for extracting learning data from the tensor data, in which matrix data corresponding to an Nth timing and matrix data corresponding to a timing after the Nth timing are associated; and

[0231] An estimation model generating unit is used to generate an estimation model through machine learning based on the learning data, wherein the estimation model is used to generate an estimation result of matrix data corresponding to a subsequent timing according to matrix data corresponding to a certain timing.

[0232] 13. The server according to 12,

[0233] In which, the learning data generation unit extracts learning data from the tensor data, in which the matrix data corresponding to the Nth timing and the respective matrix data corresponding to each timing from the N+1th timing to the N+Kth timing are associated, where K is an integer equal to or greater than 2.

[0234] 14. The server according to 12 or 13,

[0235] The tensor data generating unit generates matrix data representing the state of a world coordinate system at intervals of the predetermined time period, and generates tensor data storing the matrix data along the time axis, wherein in the world coordinate system, instead of the data point group, the encoded information obtained by encoding the vector calculated based on the data point group is associated with the position of each operation object and mapped to the position of each operation object.

[0236] 15. A processing method, comprising causing a computer in each of a plurality of player terminals that establish data communication with each other directly or via a server to perform the following operations:

[0237] storing a state value corresponding to each of the plurality of operation objects;

[0238] Accept player input;

[0239] generating an estimation result corresponding to a second timing later than the first timing based on an estimation model and based on per-timing information corresponding to the first timing, wherein the estimation model is used to generate an estimation result of per-timing information corresponding to a subsequent timing based on per-timing information indicating content of a player input accepted by each of the plurality of player terminals in a manner corresponding to a certain timing;

[0240] determining whether the content of the player input accepted in a manner corresponding to the second timing is consistent with the estimated content of the player input corresponding to the second timing indicated by the estimation result;

[0241] If the determination result indicates inconsistency, correction information indicating the content of the accepted player input is sent to the external device;

[0242] Obtaining correction information sent by other player terminals;

[0243] compensating the estimation result based on the correction information; and

[0244] The state value of the operation object is updated based on the estimation result.

[0245] 16. A processing system comprising a server and a plurality of player terminals,

[0246] Wherein, each of the player terminals has:

[0247] A storage unit, used to store a state value corresponding to each operation object of the plurality of operation objects;

[0248] The receiving unit is used to receive player input;

[0249] an estimation unit for generating an estimation result corresponding to a second timing later than the first timing based on an estimation model and based on per-timing information corresponding to the first timing, the estimation model for generating an estimation result of per-timing information corresponding to a subsequent timing based on per-timing information indicating content of a player input accepted by each of the plurality of player terminals in a manner corresponding to a certain timing;

[0250] a determination unit configured to determine whether the content of the player input accepted by the acceptance unit in a manner corresponding to the second timing is consistent with the estimated content of the player input corresponding to the second timing indicated by the estimation result;

[0251] a correction information sending unit, configured to send correction information indicating the content of the player input accepted by the acceptance unit to an external device when the judgment result generated by the judgment unit indicates inconsistency;

[0252] A correction information acquisition unit, used to acquire correction information sent by other player terminals;

[0253] a compensation unit, configured to compensate the estimation result based on the correction information; and

[0254] an updating unit, configured to update a state value of the operation object based on the estimation result, and

[0255] The server has a sending unit, and the sending unit is used to send the received correction information to the other player terminals when receiving the correction information from the player terminal.

[0256] 17. The processing system according to 16,

[0257] Wherein, the server further includes:

[0258] a tensor data generating unit for generating matrix data representing a state of a world coordinate system at intervals of a predetermined time period, and generating tensor data having the matrix data stored along a time axis, in which a data point group is associated with and mapped to a position of each operation object, the data point group representing a touch position at a screen coordinate detected on a touch screen of each of a plurality of player terminals in a manner corresponding to each of a plurality of timings at intervals of the predetermined time period;

[0259] a learning data generating unit for extracting learning data from the tensor data, in which matrix data corresponding to an Nth timing and matrix data corresponding to an N+1th timing immediately after the Nth timing are associated; and

[0260] an estimation model generating unit, configured to generate an estimation model by machine learning based on the learning data, the estimation model being configured to generate an estimation result of matrix data corresponding to a subsequent timing according to matrix data corresponding to a certain timing, and

[0261] The transmitting unit transmits the same estimation model to the plurality of player terminals.

[0262] Although the present invention has been described above with reference to the embodiments (and examples), the present invention is not limited to the above-described embodiments (and examples). Various modifications that can be understood by those skilled in the art can be made to the structure and details of the present invention within the scope of the present invention.

[0263] This application claims priority based on Japanese Patent Application No. 2019-222683 filed on December 10, 2019, and incorporates the entire disclosure thereof herein.

[0264] Description of Reference Numerals

[0265] 1A Processor

[0266] 2A Memory

[0267] 3A Input / Output I / F

[0268] 4A Peripheral Circuit

[0269] 5A Bus

[0270] 6A Touch Screen

[0271] 7A Communication Unit

[0272] 10 Player Terminal

[0273] 11 Storage Unit

[0274] 12 Receiving Unit

[0275] 13 Estimation Unit

[0276] 14 Judgment Unit

[0277] 15 Calibration information sending unit

[0278] 16. Calibration information acquisition unit

[0279] 17 Compensation unit

[0280] 18 Update Unit

[0281] 20 Servers

[0282] 21 Storage Unit

[0283] 22 Tensor data generation unit

[0284] 23 Learning Data Generation Unit

[0285] 24 Estimation Model Generation Unit

[0286] 25 Sending Unit

[0287] 30 Communication Network

Claims

1. A computer program product, comprising a computer program, which, when executed by a computer in each of a plurality of player terminals establishing data communication with each other directly or via a server, implements a method comprising the following steps: A storing step for storing a state value corresponding to each of a plurality of operation objects controlled by the player terminal; The accept step is used to accept player input; an estimation step for generating an estimation result corresponding to a second timing later than the first timing based on an estimation model and based on per-timing information corresponding to the first timing, wherein the estimation model is used to generate an estimation result of per-timing information corresponding to a subsequent timing based on per-timing information indicating content of a player input accepted by each of the plurality of player terminals in a manner corresponding to a certain timing; a judging step for judging whether the content of the player input accepted in the accepting step in a manner corresponding to the second timing is consistent with the estimated content of the player input corresponding to the second timing indicated by the estimation result; a correction information sending step for sending correction information indicating the content of the player input accepted in the accepting step to an external device when the judgment result generated in the judging step indicates inconsistency; A correction information acquisition step, for acquiring correction information sent by other player terminals; a compensation step for compensating the estimation result based on the correction information sent by other player terminals acquired in the correction information acquisition step; and The updating step is used to update the state value of the operation object based on the compensated estimation result.

2. The computer program product according to claim 1, in, In a case where the estimation result is compensated in the compensation step, the state value of the operation object is updated based on the correction information or the compensated estimation result in the updating step.

3. A computer program product according to claim 1 or 2, in, In the case where the estimation result is compensated in the compensating step, a new estimation result is generated in the estimating step based on the estimation model and the compensated estimation result, and In a case where the estimation result is not compensated in the compensating step, a new estimation result is generated in the estimating step based on the estimation model and the uncompensated estimation result.

4. The computer program product according to claim 1 or 2, in, Each timing information is matrix data having rows and columns corresponding to the x-axis and y-axis in the world coordinate system of the game space, and in the matrix data, the value of the component in the qth row and the rth column represents the coordinate (x q ,y r ) state, the matrix data represents the position of each operation object in the game space and the content of the player input corresponding to each operation object.

5. The computer program product according to claim 4, in, The matrix data represents a data point group at the screen coordinates detected on the touch screen of the player terminal as the content of the player input corresponding to each operation object.

6. The computer program product according to claim 4, in, The matrix data represents information obtained by encoding vectors calculated from a group of data points at screen coordinates detected on the touch screen of the player terminal as content of player input corresponding to each operation object.

7. The computer program product according to claim 4, in, The matrix data represents a state of the world coordinate system in which information representing the content of a player input corresponding to each operation object is associated with and mapped to the position of each operation object.

8. The computer program product according to claim 4, in, The estimation model is generated by machine learning based on learning data, wherein the learning data is extracted from tensor data storing the matrix data along a time axis, and in the learning data, the matrix data corresponding to the Nth timing and the matrix data corresponding to the timing after the Nth timing are associated.

9. The computer program product according to claim 8, in, The estimation model is generated by machine learning based on learning data, wherein the learning data is extracted from tensor data storing the matrix data along a time axis, and in the learning data, the matrix data corresponding to the Nth timing and the respective matrix data corresponding to each timing from the N+1th timing to the N+Kth timing are associated, where K is an integer equal to or greater than 2.

10. The computer program product according to claim 1 or 2, in, In addition to indicating the content of the player's input, the timing information further indicates at least one of the position of the operation object in the game space, the position of the non-operation object in the game space, the characteristics of the operation object, and the characteristics of the non-operation object.

11. The computer program product according to claim 1 or 2, in, The estimation result is generated based on the same estimation model in the estimation step implemented in each of the plurality of player terminals.

12. A processing method, comprising causing a computer in each of a plurality of player terminals that establish data communication with each other directly or via a server to perform the following operations: storing a state value corresponding to each of a plurality of operation objects controlled by the player terminal; Accept player input; generating an estimation result corresponding to a second timing later than the first timing based on an estimation model and based on per-timing information corresponding to the first timing, wherein the estimation model is used to generate an estimation result of per-timing information corresponding to a subsequent timing based on per-timing information indicating content of a player input accepted by each of the plurality of player terminals in a manner corresponding to a certain timing; determining whether the content of the player input accepted in a manner corresponding to the second timing is consistent with the estimated content of the player input corresponding to the second timing indicated by the estimation result; If the determination result indicates inconsistency, correction information indicating the content of the accepted player input is sent to the external device; Obtaining correction information sent by other player terminals; Compensating the estimation result based on the correction information sent by other player terminals; and The state value of the operation object is updated based on the compensated estimation result.

13. A processing system comprising a server and a plurality of player terminals, in, Each of the player terminals has: a storage unit for storing a state value corresponding to each of a plurality of operation objects controlled by the player terminal; The receiving unit is used to receive player input; an estimation unit for generating an estimation result corresponding to a second timing later than the first timing based on an estimation model and based on per-timing information corresponding to the first timing, the estimation model for generating an estimation result of per-timing information corresponding to a subsequent timing based on per-timing information indicating content of a player input accepted by each of the plurality of player terminals in a manner corresponding to a certain timing; a determination unit configured to determine whether the content of the player input accepted by the acceptance unit in a manner corresponding to the second timing is consistent with the estimated content of the player input corresponding to the second timing indicated by the estimation result; a correction information sending unit, configured to send correction information indicating the content of the player input accepted by the acceptance unit to an external device when the judgment result generated by the judgment unit indicates inconsistency; A correction information acquisition unit, used to acquire correction information sent by other player terminals; a compensation unit, configured to compensate the estimation result based on the correction information sent by other player terminals acquired by the correction information acquisition unit; as well as an updating unit, configured to update the state value of the operation object based on the compensated estimation result, and The server has a sending unit, and the sending unit is used to send the received correction information to the other player terminals when receiving the correction information from the player terminal.

14. The processing system according to claim 13, in, The server also includes: a tensor data generating unit for generating matrix data representing a state of a world coordinate system at intervals of a predetermined time period, and generating tensor data having the matrix data stored along a time axis, in which a data point group is associated with and mapped to a position of each operation object, the data point group representing a touch position at a screen coordinate detected on a touch screen of each of a plurality of player terminals in a manner corresponding to each of a plurality of timings at intervals of the predetermined time period; a learning data generating unit for extracting learning data from the tensor data, in which matrix data corresponding to an Nth timing and matrix data corresponding to an N+1th timing immediately after the Nth timing are associated; and an estimation model generating unit, configured to generate an estimation model by machine learning based on the learning data, the estimation model being configured to generate an estimation result of matrix data corresponding to a subsequent timing according to matrix data corresponding to a certain timing, and The transmitting unit transmits the same estimation model to the plurality of player terminals.

Citation Information

Patent Citations

  • Production of pigment paste for water dilution type paint

    JP1988089581A

  • Latency compensation for user input prediction using machine learning

    CN114730391A