WO2021117660A1 - サーバ、処理システム、処理方法及びプログラム - Google Patents

サーバ、処理システム、処理方法及びプログラム Download PDF

Info

Publication number
WO2021117660A1
WO2021117660A1 PCT/JP2020/045411 JP2020045411W WO2021117660A1 WO 2021117660 A1 WO2021117660 A1 WO 2021117660A1 JP 2020045411 W JP2020045411 W JP 2020045411W WO 2021117660 A1 WO2021117660 A1 WO 2021117660A1
Authority
WO
WIPO (PCT)
Prior art keywords
timing
data
unit
player
estimation result
Prior art date
Application number
PCT/JP2020/045411
Other languages
English (en)
French (fr)
Inventor
修一 倉林
Original Assignee
株式会社Cygames
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社Cygames filed Critical 株式会社Cygames
Priority to CN202080085574.7A priority Critical patent/CN114845789A/zh
Publication of WO2021117660A1 publication Critical patent/WO2021117660A1/ja
Priority to US17/836,324 priority patent/US20220297001A1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • A63F13/2145Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads the surface being also a display device, e.g. touch screens
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/426Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving on-screen location information, e.g. screen coordinates of an area at which the player is aiming with a light gun
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/44Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment involving timing of operations, e.g. performing an action within a time slot
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/69Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/58Controlling game characters or game objects based on the game progress by computing conditions of game characters, e.g. stamina, strength, motivation or energy level

Definitions

  • the present invention relates to a server, a processing system, a processing method and a program.
  • the improvement of the communication protocol was generally made more efficient by reducing the intermediate layer of the protocol stack. Although these methods are universally applicable and highly effective, it is difficult to achieve dramatic speed improvements and reductions of tens of percent or more.
  • TCP / IP parameter optimization specialized for a specific application such as the Web is widely performed, end-to-end optimization cannot be performed, so that the game is dependent on parameter optimization. The design could not be done.
  • delta compression is widely used in games such as MMO (Massively Multiplayer Online) and FPS (First Person Shooter).
  • Delta compression means that data is not transmitted when it has not changed from the data transmitted immediately before. This delta compression is effective for sending and receiving data with little change in value such as status.
  • this delta compression is not effective as a compression technique for communicating data that requires constant transmission / reception of difference information because the value changes frequently, for example, the current position of a character. [0] Therefore, in the game, it has been an issue to improve the efficiency of transmission / reception of data whose values frequently change such as the position of a character.
  • Non-Patent Document 1 describes a method of changing the game characteristics so that the movement of a character specifies a movement destination instead of a movement direction in order to reduce the delay, and a server that calculates predicted coordinates at the start of movement. If the prediction result is incorrect while sending to, the method of correcting (warping) the coordinates is disclosed. These are techniques generally called Lerp (linear interpolation).
  • Patent Document 1 stores a data point group indicating a plurality of touch positions on the screen coordinates detected by the touch panel within a predetermined time, and rotates the slope of the regression line and the slope of the regression line from the data point group.
  • Lerp is effective for MMOs with low action, but it affects the game with MMOs with high action such as precise positioning.
  • the method of correcting the prediction result by warp has a problem that the movement becomes jerky when viewed from other players.
  • the problem of communication delay can be alleviated, but it may affect the game performance.
  • An object of the present invention is to provide a technique for reducing the problem of communication delay while suppressing the influence on the game.
  • Computers for each of multiple player terminals that communicate data with each other directly or via a server
  • a storage unit that stores state values corresponding to each of multiple operation target objects, Reception desk that accepts player input,
  • An estimation model that generates an estimation result of the timing-by-timing information corresponding to the subsequent timing from the timing-by-timing information indicating the contents of the player input received by each of the plurality of player terminals corresponding to a certain timing, and the first timing.
  • An estimation unit that generates the estimation result corresponding to the second timing after the first timing based on the corresponding information for each timing.
  • a determination unit that determines whether the content of the player input received by the reception unit corresponding to the second timing matches the estimated content of the player input corresponding to the second timing shown in the estimation result.
  • the correction information transmission unit that transmits the correction information indicating the content of the player input received by the reception unit to the external device
  • Correction information acquisition unit that acquires the correction information transmitted by the other player terminal
  • a correction unit that corrects the estimation result based on the correction information
  • a correction unit that corrects the estimation result.
  • An update unit that updates the state value of the operation target object based on the estimation result.
  • a program is provided to function as.
  • World coordinates in which a group of data points indicating touch positions on screen coordinates detected on the touch panel of each of a plurality of player terminals corresponding to each of a plurality of timings at a predetermined time are mapped in association with the positions of the operation target objects.
  • a tensor data generation unit that generates matrix data indicating the state of the system at the predetermined time intervals and stores the matrix data along the time axis to generate tensor data.
  • a learning data generation unit that extracts learning data in which the matrix data corresponding to the Nth timing and the matrix data corresponding to the timing after the Nth timing are associated with each other from the tensor data.
  • An estimation model generation unit that generates an estimation model that generates an estimation result of the matrix data corresponding to the subsequent timing from the matrix data corresponding to a certain timing by machine learning based on the learning data.
  • a server with is provided.
  • the computers of each of the multiple player terminals that communicate data with each other directly or via a server Stores state values corresponding to each of multiple operation target objects, Accepts player input, An estimation model that generates an estimation result of the timing-by-timing information corresponding to the subsequent timing from the timing-by-timing information indicating the contents of the player input received by each of the plurality of player terminals corresponding to a certain timing, and the first timing. Based on the corresponding information for each timing, the estimation result corresponding to the second timing after the first timing is generated, and the estimation result is generated. It is determined whether the content of the player input received corresponding to the second timing matches the estimated content of the player input corresponding to the second timing shown in the estimation result.
  • the correction information indicating the contents of the received player input is transmitted to the external device, and the result is transmitted.
  • the correction information transmitted by the other player terminal is acquired, and the correction information is acquired.
  • the estimation result is corrected based on the correction information, and the estimation result is corrected.
  • a processing method for updating the state value of the operation target object based on the estimation result is provided.
  • the player terminal has a plurality of player terminals and a server
  • the player terminal is A storage unit that stores state values corresponding to each of multiple operation target objects
  • the reception section that accepts player input and An estimation model that generates an estimation result of the timing-by-timing information corresponding to the subsequent timing from the timing-by-timing information indicating the contents of the player input received by each of the plurality of player terminals corresponding to a certain timing, and the first timing.
  • An estimation unit that generates the estimation result corresponding to the second timing after the first timing based on the corresponding information for each timing, and an estimation unit.
  • a determination unit that determines whether the content of the player input received by the reception unit corresponding to the second timing matches the estimated content of the player input corresponding to the second timing shown in the estimation result. , When the judgment result of the judgment unit does not match, the correction information transmission unit that transmits the correction information indicating the content of the player input received by the reception unit to the external device, and the correction information transmission unit.
  • a correction information acquisition unit that acquires the correction information transmitted by the other player terminal, and A correction unit that corrects the estimation result based on the correction information, An update unit that updates the state value of the operation target object based on the estimation result, Have,
  • the server receives the correction information from the player terminal, the server is provided with a processing system having a transmission unit that transmits the received correction information to another player terminal.
  • the game system of the present embodiment has a plurality of player terminals 10 and a server 20.
  • the player terminal 10 and the server 20 are connected to each other via the communication network 30.
  • the player terminal 10 is a terminal operated by each player, and examples thereof include, but are not limited to, smartphones, tablet terminals, mobile phones, and personal computers.
  • the plurality of player terminals 10 can communicate data with each other directly or via the server 20.
  • the game system of this embodiment is suitable for, for example, an MMO.
  • deep learning is applied to a large amount of game logs accumulated in an MMO or the like, and an estimation model that estimates the input contents of a general player in the extremely near future (for example, one frame to a dozen frames ahead) is used. Generate. Then, each of the plurality of player terminals 10 estimates the future input contents of each of the plurality of players based on the same estimation model. As a matter of course, the estimation results of the plurality of player terminals 10 have the same contents.
  • each player terminal 10 inputs the content actually input by the player to the own terminal (information for correcting the estimation result). , Is transmitted to another player terminal 10 via the server 20 or directly.
  • each player terminal 10 transmits the content actually input by the player to the own terminal to the other player terminal 10. do not.
  • each player terminal 10 When each player terminal 10 receives information for correcting the estimation result transmitted by another player terminal 10, each player terminal 10 controls (moves, etc.) the character controlled by the player terminal 10 based on the information, and corrects the estimation result. If no information is received, the character is controlled based on the estimation result.
  • the plurality of player terminals 10 perform "synchronous prediction" in which the future input contents of each of the plurality of players are simultaneously estimated based on the same estimation model. Then, only when the player inputs a content different from the prediction result into each player terminal 10, the content is notified to the other player terminals 10. According to the game system of the present embodiment as described above, a multiplayer communication method having high efficiency, low delay, and resistance to packet loss is realized.
  • FIG. 2 is a block diagram illustrating a hardware configuration of the player terminal 10.
  • the player terminal 10 includes a processor 1A, a memory 2A, an input / output interface 3A, a peripheral circuit 4A, a bus 5A, a touch panel 6A, a communication unit 7A, and the like.
  • the peripheral circuit 4A includes various modules. It is not necessary to have the peripheral circuit 4A.
  • the functional unit included in the player terminal 10 includes hardware such as a processor 1A, a memory 2A, an input / output I / F3A, a module (touch panel 6A, a communication unit 7A, etc.) connected to the input / output I / F3A, and a built-in memory (ROM). , Hard disk, etc.), and is realized by any combination with a program (software) stored in RAM, etc. And, it is understood by those skilled in the art that there are various modifications of the realization method and the device.
  • the programs stored in the built-in memory include programs stored in advance from the shipping stage of the processing device, as well as programs downloaded from a server or the like on the Internet.
  • the bus 5A is a data transmission path for the processor 1A, the memory 2A, the peripheral circuits 4A, and the input / output I / F (interface) 3A to send and receive data to and from each other.
  • the processor 1A is, for example, an arithmetic processing unit such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), or an NPU (Neural network Processing Unit).
  • the memory 2A is, for example, a memory such as a RAM (RandomAccessMemory) or a ROM (ReadOnlyMemory).
  • An input device touch panel 6A, microphone, physical button, etc.
  • an output device touch panel 6A, speaker, etc.
  • a communication unit 7A for connecting to a network such as the Internet, etc. are connected to the input / output I / F3A. ..
  • the processor 1A can issue commands to each module and perform calculations based on the calculation results thereof.
  • the touch panel 6A is composed of a display for displaying an image and a position input sensor.
  • the position input sensor outputs a signal (detection result) based on the touched position.
  • the signal output from the touch panel 6A is input to the processor 1A via the input / output I / F3A.
  • the processor 1A executes a program that converts the signal output from the touch panel 6A into coordinates in an arbitrary coordinate system, and converts the signal output from the touch panel 6A into the coordinates in the coordinate system.
  • the coordinate system is, for example, a coordinate system in which an arbitrary point on the touched surface of the touch panel 6A is set as the origin, and the X-axis and the Y-axis are defined in an arbitrary direction parallel to the surface.
  • the coordinates in the coordinate system will be described as "screen coordinates" for convenience.
  • Examples of the position input sensor include a capacitance type and a resistance film type.
  • the touch operation refers to a state in which an object (finger, etc.) is brought into contact with or close to the position input sensor to detect the contact or proximity of the object with the position input sensor, or the object is brought into contact with or close to the position input sensor. It refers to an operation of changing the position where an object is brought into contact with or close to a position input sensor while being maintained, or an operation of moving an object away from a position input sensor to cancel detection by the position input sensor.
  • FIG. 3 is a block diagram illustrating a hardware configuration of the server 20.
  • the server 20 includes a processor 1A, a memory 2A, an input / output interface 3A, a peripheral circuit 4A, a bus 5A, and the like.
  • the peripheral circuit 4A includes various modules. It is not necessary to have the peripheral circuit 4A.
  • the functional unit included in the server 20 is stored in hardware such as a processor 1A, a memory 2A, an input / output I / F3A, a module connected to the input / output I / F3A, and an internal memory (ROM, hard disk, etc.), and is stored in a RAM or the like. It is realized by any combination with the program (software) loaded in. And, it is understood by those skilled in the art that there are various modifications of the realization method and the device.
  • the programs stored in the built-in memory include programs stored in advance from the shipping stage of the processing device, as well as programs downloaded from a server or the like on the Internet.
  • the details of the processor 1A, the memory 2A, the input / output interface 3A, the peripheral circuits 4A, and the bus 5A are as described above, and thus the description thereof will be omitted here.
  • the generation of the estimation model is realized by the server 20.
  • the estimation model generation process will be described in detail.
  • the learning data generation process and the estimation model generation process based on the learning data described below are realized, for example, by the work of the game developer at the time of game development.
  • the estimation model may be updated based on the data input from the player during the operation of the game. That is, the data input from the player during the actual operation of the game may be accumulated, the learning data may be generated from the accumulated data, and a new estimation model may be generated and updated based on the learning data. ..
  • FIG. 4 shows an example of a functional block diagram of the server 20.
  • the server 20 includes 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.
  • the tensor data generation unit 22 generates matrix data (hereinafter, may be referred to as “timing-based matrix data”) corresponding to each of a plurality of timings at predetermined time intervals, and uses the timing-based matrix data at predetermined time intervals as the time axis. Generate the tensor data stored according to. Then, the tensor data generation unit 22 stores the generated tensor data in the storage unit 21.
  • timing-based matrix data matrix data
  • the tensor data generation unit 22 stores the generated tensor data in the storage unit 21.
  • “every predetermined time” will be described as “every frame", but this is merely an example and is not limited thereto.
  • the player input via the touch panel 6A is processed and the operation target object (player character or the like) is controlled.
  • the touch point values (screen coordinates) detected by the touch panel 6A of each player terminal 10 are observed by being divided into fixed time intervals such as a frame rate. Has been done. Then, the set of touch point values observed in each time interval is stored in the buffer as an independent array for each time interval.
  • one time interval will be described as “one frame time interval”, but this is just an example and is not limited to this. In game applications, it is usually 60 fps or 30 fps. For example, in the case of 30 fps, the length of the time interval of one frame is about 33 milliseconds.
  • a capacitive touch panel that senses at 100 Hz
  • the values of a plurality of touch points are observed within one frame (within one time interval).
  • a set of touch point values observed in that time interval is stored in a buffer as an array in the order of observation.
  • the set x of the values on the horizontal axis of the touch point and the set y of the values on the vertical axis of the touch point can be defined as the following equations (1) and (2), respectively.
  • x a and b indicate the b-th observed value in the set of values on the horizontal axis of the touch point observed in the time interval of the ath frame.
  • the values in each frame are sorted in ascending order according to the observed time, and the b-th value is the value observed after the (b-1) th and before the (b + 1) th. ..
  • ya and b indicate the b-th observed value in the set of values on the vertical axis of the touch points observed in the time interval of the ath frame.
  • the values in each frame are sorted in ascending order according to the observed time, and the b-th value is the value observed after the (b-1) th and before the (b + 1) th. ..
  • the value of the variable m may differ depending on the value of a.
  • the set of each value is grouped by frame to form a two-dimensional array.
  • a set of touch point values observed in a time interval of one frame on the touch panel 6A of one player terminal 10 is referred to as a "data point group".
  • a group of data points observed in the time interval of the first frame on the touch panel 6A of the first player terminal 10 and a group of data points observed in the time interval of the first frame on the touch panel 6A of the second player terminal 10. Is a group of data points different from.
  • the storage unit 21 stores the history of the data point group observed by each of the plurality of player terminals 10. Then, the tensor data generation unit 22 generates tensor data by the following processes 1 to 3 using the history data.
  • the world frame matrix M controls the data point group observed by the touch panel 6A of each player terminal 10 in the time interval of each frame, and the action (movement, etc.) based on each data point group. Indicates the position of the target object (player character, etc.).
  • the "world frame matrix M" corresponds to the x-axis and the y-axis in the world coordinate system of the game space in which the rows and columns are 3D (the x-axis and the y-axis are the horizontal axes and the z-axis is the vertical axis). Then, the values of the components in the qth row and the rth column indicate the state of the coordinates (x q , y r) in the world coordinate system.
  • the tensor data generation unit 22 maps the data point group observed by the touch panel 6A of each player terminal 10 in the time interval of each frame to a predetermined position on the 2D map overlooking the 3D game space, and the value of each component.
  • the predetermined position for mapping the data point group is a position corresponding to an operation target object (player character, etc.) whose action (movement, etc.) is controlled based on the data point group.
  • the surroundings, etc. are exemplified.
  • the world frame matrix M can be defined as the following equation (3).
  • p q and r indicate whether or not an element (point) of the data point group exists at the point of the coordinates (x q , y r) in the world coordinate system.
  • the values of p q and r may be set to a numerical value larger than zero and 1 or less, and when the element of the data point group does not exist , the values of p q and r may be set to zero.
  • the implementation in which the values of p q and r are set to 1 can be considered, but in addition, the type of the operation target object whose behavior is controlled based on the data point group.
  • a value that reflects characteristics such as or state hit point, level, attack power, defense power, etc.
  • a world frame matrix M that further indicates them.
  • the values of pq and r corresponding to the positions where the elements of the data point group exist are normalized by the maximum value of the hit points of the operation target object, the value obtained by indexing the strength of the operation target object, and the like. May be.
  • the data point group is observed as the coordinates (screen coordinates) on the physical touch panel 6A. Therefore, first, the tensor data generation unit 22 maps the screen coordinates to the world coordinate system of the 3D game space, as shown in FIG. 5 (B). For example, the data point group observed on the touch panel 6A is mapped to the world coordinate system of the 3D game space based on the camera position and orientation. The data point group observed with the camera located behind the operation target object as shown in FIG. 5 (A) is mapped behind the operation target object as shown in FIG. 5 (B). By this mapping, the data point group of the screen coordinates, which is a value peculiar to the player terminal 10, is mapped to the world coordinate system of the 3D game space.
  • This coordinate transformation processing map can be defined as the following equation (4).
  • x and y are the x-coordinate and the y-mark of the screen coordinate
  • x- w and y- w are the x-coordinate and the y-coordinate of the world coordinate.
  • the tensor data generation unit 22 operates the data point group mapped to the world coordinate system of the 3D game space on the 2D map overlooking the 3D game space. Map to the position corresponding to the object.
  • the mapping is realized, for example, by rotating and / or sliding the data point group.
  • the movement content may be determined based on the orientation of the camera, the distance between the camera and the object to be operated, and the like.
  • the control content of the operation target object calculated from the data point group observed on the touch panel 6A and the control content of the operation target object calculated from the data point group after mapping are the same.
  • Such a device is required.
  • the state (shape, orientation, etc.) of the data point group observed on the touch panel 6A and the state (shape, orientation, etc.) of the data point group after mapping to the coordinate system of the 2D map have a predetermined correspondence relationship (for example). Must match).
  • the identity of the vector calculated from the data point group before and after mapping is ensured, the identity of the control contents of the operation target object (player character, etc.) based on this data point group is also ensured. ..
  • the tensor data generation unit 22 relatively calculates a group of data points mapped to the world coordinate system of the 3D game space in the local coordinate system of the operation target object (with an arbitrary position of the operation target object as the origin). It is reflected in the coordinate axis), and the data point group is mapped to the position corresponding to the operation target object (directly above the operation target object, etc.) in the local coordinate system.
  • the transpose of the mapping process from the world coordinate system to the local coordinate system can be defined by the following equation (5).
  • mapping process transpose can be implemented, for example, in Unity (registered trademark), which is a game engine, as follows.
  • Step1 Project the direction vector of the camera onto the world coordinate xz plane, and further normalize it to a unit vector of length 1 (application of the normalized function).
  • var cameraForward Vector3.Scale (mainCamera.forward, new Vector3 (1, 0, 1)). Normalized; For Vector3.Scale (mainCamera.forward, new Vector3 (1, 0, 1)), multiply the Y coordinate by 0.
  • Step2 The vector calculated based on the data point group (movingTo: the right direction is the x-axis positive direction and the upward direction is the z-axis positive direction) is mapped onto the xz plane of the local coordinates of the operation target object.
  • the calculation of the vector based on the data point group is disclosed in Patent Document 1.
  • var move transform.InverseTransformDirection (movingTo.z * cameraForward + movingTo.x * new Vector3 (cameraForward.z, 0, -1 * cameraForward.x));
  • new Vector3 rotates cameraForward by -90 degrees on the xz plane, and the upward finger operation corresponds to the backward operation of the world coordinates. To do so.
  • process 2 An operation in which the action is controlled based on the data point group observed by the touch panel 6A of each player terminal 10 and each data point group in the time interval of each frame by the process 1 for each player terminal 10 and each frame.
  • a world frame matrix M indicating the position of the target object is generated.
  • the tensor data generation unit 22 is the position of the data point group observed by each of the plurality of player terminals 10 in the same l-frame time interval and the operation target object whose action is controlled based on each data point group.
  • a plurality of world frame matrices M indicating are synthesized.
  • Matrix M matrix data for each timing
  • the tensor data generation unit 22 generates the matrix data for each timing corresponding to each of the plurality of frames by performing the processing corresponding to each of the plurality of frames.
  • max (u, v) is a function that returns the larger value of u and v. That is, the operator of equation (6) generates a new matrix in which the larger of the values corresponding to the same row and column is given, given two matrices of exactly the same size. is there.
  • a method of treating the value in the matrix as a bit and calculating the bit OR, or a method of implementing it as an addition with a saturation operation of an integer value can be considered.
  • the tensor data generation unit 22 stores the timing-by-timing matrix data generated corresponding to each of the plurality of frames along the time axis, and generates the tensor data.
  • the entire game space may be represented by one timing-by-timing matrix data, or the entire game space may be divided into a plurality of sections and each section may be represented by one timing-by-timing matrix data. For example, as shown in FIG. 8, the entire game space may be divided into a finite number of sections of a normalized size. Then, the matrix data for each timing may be generated for each section.
  • FIG. 9 shows the concept of tensor data in which the matrix data for each timing generated for each section is stored along the time axis.
  • the learning data generation unit 23 starts with the timing-by-timing matrix data corresponding to the Nth frame (Nth timing) from the tensor data generated by the tensor data generation unit 22, and after the Nth frame.
  • the training data associated with the matrix data for each timing corresponding to the frame is taken out.
  • the learning data generation unit 23 includes timing-based matrix data corresponding to the Nth frame and timing-based matrix data to the (N + K) frame (K is 2) corresponding to the (N + 1) th frame.
  • the training data associated with each of the matrix data for each timing corresponding to the above integers) may be extracted.
  • the learning data generation unit 23 stores the extracted learning data in the storage unit 21.
  • the estimation model generation unit 24 uses machine learning (hostile generation network (GAN), etc.) based on the learning data generated by the learning data generation unit 23 to change the timing corresponding to a certain frame from the timing data corresponding to the subsequent frame. Generate an estimation model that generates the estimation result of each matrix data. Then, the estimation model generation unit 24 stores the generated estimation model in the storage unit 21.
  • GAN hostile generation network
  • FIG. 10 (A) and 10 (B) show 2D maps that give a bird's-eye view of the 3D game space.
  • FIG. 10A shows the state of the Nth frame
  • FIG. 10B shows the state of the subsequent frame.
  • the figure shows three operation target objects and a group of data points observed by each of the three player terminals 10 corresponding to each operation target object in the time interval of each frame.
  • the data point group is mapped to the position of each operation target object by the above-mentioned method.
  • 10 (C) and 10 (D) represent the state of each of the data point groups of FIGS. 10 (A) and 10 (B) with the above-mentioned timing-by-timing matrix data, and show the contents of the timing-by-timing matrix data. ..
  • One cell in the table corresponds to one component p q, r of the matrix data for each timing , and the value of the component p q, r is expressed by the state of each cell. Then, the values of the components p q and r indicate whether or not the element of the data point group is located.
  • the estimation model generation unit 24 illustrates the timing-by-timing matrix data stored as learning data in a format as shown in FIGS. 10 (C) and 10 (D), converts it into a bitmap, and converts it into a obtained drawing file. Machine learning can be performed based on this.
  • the change in the input content (change in the data point group) between the two frames is expressed as "change in pattern (FIG. 10 (C)-> FIG. 10 (D))".
  • the neural network learn it.
  • a certain pattern (FIG. 10 (C))
  • the next pattern (FIG. 10 (D)) can be automatically generated. This means predicting the input content of a frame after that from the input content of a certain frame.
  • machine learning may be repeated while thinning out the number of data point groups, for example. In this way, it is possible to predict the future situation at high speed and with high accuracy by sharing only a very small amount of touch data between clients.
  • the learn function which is a function for learning using GAN, is a function that receives a learning data bucket B c corresponding to a specific partition c and outputs a model G c for performing operation prediction in the partition c. It can be defined as (7).
  • the learning data bucket B c corresponding to a specific partition c can be defined by the following equation (8).
  • M i is the timing for each matrix data of the i-th frame in the compartment c. learn function, a set of M e and M e + f is an input to the GAN (f is an integer of 1 or more).
  • M e' M e thinned out only data points set any number from M e a set of the M e + f may be an input to the GAN. This makes it possible to infer the input contents in future frames from a smaller number of data points.
  • the predict which is a function for estimating the timing-by-timing matrix data of the frames after that, is expressed by the following equation (9). ) Can be defined as.
  • Mc is the timing-by-timing matrix data of a certain frame of the partition c
  • n is the predicted future frame number
  • Mc ′ is the estimated “frame n frames ahead of a certain frame”. It is matrix data for each timing.
  • the transmission unit 25 transmits the estimation model stored in the storage unit 21 to the plurality of player terminals 10.
  • the server 20 may manage the positions of each of the plurality of operation target objects. Then, the transmission unit 25 may transmit the estimation model corresponding to the section in which each operation target object exists to the player terminal 10 that controls each operation target object.
  • the transmission unit 25 may transmit the estimation model corresponding to the second section to the predetermined player terminal 10 according to the fact that the operation target object has moved from the first section to the second section.
  • the server 20 may predict the input contents of several frames ahead based on the above estimation model, and predict the positions of each of the plurality of operation target objects at several frames ahead based on the prediction result. Then, the transmission unit 25 may transmit the estimation model corresponding to the second section to the predetermined player terminal 10 according to the prediction result that the operation target object moves from the first section to the second section. Good.
  • FIG. 11 shows an example of a functional block diagram of the player terminal 10. As shown in the figure, the player terminal 10 is updated with a storage unit 11, a reception unit 12, an estimation unit 13, a determination unit 14, a correction information transmission unit 15, a correction information acquisition unit 16, and a correction unit 17. It has a part 18.
  • the storage unit 11 stores the estimation model transmitted by the server 20. In addition, the storage unit 11 stores various information related to the game. For example, as shown in FIG. 12, the storage unit 11 stores the state values corresponding to each of the plurality of operation target objects. The behavior of each of the plurality of operation target objects is controlled by each of the plurality of player terminals 10.
  • the state value is, but is not limited to, a position in the game space, a hit point, and the like.
  • the player terminal 10 generates a screen to be displayed on the display of the own terminal based on the state value, and displays the screen on the display of the own terminal. That is, the player terminal 10 generates a game screen in which each of the plurality of operation target objects is arranged at a position indicated by a state value, and displays the game screen on the display of the own terminal.
  • the reception unit 12 accepts player input. For example, the reception unit 12 receives touch input via the touch panel 6A, input via a physical button, or the like. The reception unit 12 observes the touch point value (screen coordinates) detected by the touch panel 6A by dividing it into fixed time intervals such as a frame rate. Then, the reception unit 12 stores in the buffer a set of touch point values (data point group) observed in each time interval as an independent array for each time interval.
  • the estimation unit 13 estimates the timing-by-timing information corresponding to the subsequent frame (subsequent timing) from the timing-by-timing information indicating the content of the player input received by each of the plurality of player terminals 10 corresponding to a certain frame (a certain timing).
  • a second frame (second timing) after the first frame (first timing) based on the estimation model that generates the result and the timing-by-timing information corresponding to the first frame (first timing). ) Corresponds to the estimation result.
  • the estimation model processed by the estimation unit 13 is an estimation model generated by the server 20 described above, that is, an estimation model received from the server 20 and stored in the storage unit 11.
  • the timing-based information is in the same format as the timing-based matrix data described above, and is used for the data point group and each data point group that each player terminal 10 actually participating in the game at that time receives corresponding to a certain frame. Indicates the position of the operation target object whose behavior is controlled based on it.
  • the "data point group received corresponding to a certain frame" is a data point group received for controlling the operation target object in the frame.
  • the estimation unit 13 can generate, for example, an estimation result one frame to a dozen or so frames ahead.
  • estimation unit 13 realized by each of the plurality of player terminals 10 generates the same estimation result based on the same estimation model.
  • the determination unit 14 has the player input content (data point group) received by the reception unit 12 corresponding to the second frame and the estimated content (data point group) of the player input corresponding to the second frame indicated by the estimation result. Determine if they match the group).
  • the match here may be an exact match, or a predefined "slight deviation" may be allowed.
  • Patent Document 1 Patent No. 6389581
  • Patent Document 1 Patent No. 6389581
  • the correction information transmission unit 15 transmits the correction information indicating the content of the player input received by the reception unit 12 to the external device.
  • the correction information transmission unit 15 may transmit the correction information to the server 20.
  • the server 20 transmits the received correction information to the other player terminal 10.
  • the correction information transmission unit 15 may directly transmit the correction information to the other player terminal 10 without going through the server 20.
  • the correction information acquisition unit 16 acquires the correction information transmitted by the other player terminal 10.
  • the correction unit 17 corrects 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 target object whose behavior is controlled based on the input content.
  • the update unit 18 updates the state value (see FIG. 12) of the operation target object based on the estimation result.
  • the updating unit 18 can update the state value of the operation target object based on the corrected estimation result or the correction information acquired by the correction information acquisition unit 16. Further, the update unit 18 can update the state value of the operation target object based on the content of the player input received by the reception unit 12. Since the process of determining the control content (movement direction, etc.) of the operation target object from the data point group is disclosed in Patent Document 1 (Patent No. 6389581), the description thereof is omitted here.
  • FIG. 13 An estimation model determined based on the initial position of the operation target object controlled by the player terminal 10 immediately after the player terminal 10 logs in to the server 20 and participates in the game, and FIG. 12 are shown.
  • a state value or the like corresponding to each of the plurality of operation target objects is 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.
  • the player terminal 10 acquires information for each timing corresponding to a certain frame (S101). Immediately after participating in the game, the player terminal 10 may acquire information for each timing from the server 20.
  • the estimation unit 13 of the player terminal 10 corresponds to each subsequent frame (for example, 1 to 15 frames ahead) based on the estimation model stored in the storage unit 11 and the timing-by-timing information acquired in S101.
  • the estimation result of the information for each timing is generated (S102).
  • the estimation unit 13 stores the generated estimation result in the storage unit 11 (S103). After that, the player terminal 10 returns to S101 and repeats the generation and storage of the estimation result of the information for each timing.
  • the determination unit 14 acquires the estimation result of the timing-by-timing information corresponding to a certain frame from the storage unit 11 (S201), and the reception unit 12 receives the player corresponding to the frame.
  • the information indicating the input content is acquired (S202)
  • S203 The processing order of S201 and S202 is not limited to this.
  • the correction unit 17 corrects the estimation result acquired in S201 based on the information indicating the content of the player input acquired in S202 (S205). Further, the correction information transmission unit 15 transmits correction information indicating the content of the player input received by the reception unit 12 to the external device (S206).
  • the processing order of S205 and S206 is not limited to this.
  • S207 it is determined whether or not the correction information acquisition unit 16 has acquired the correction information transmitted by the other player terminal 10 corresponding to the frame.
  • the correction unit 17 corrects the estimation result acquired in S201 based on the acquired correction information (S208).
  • S209 is executed.
  • the update unit 18 uses the estimation result acquired in S201, the information indicating the content of the player input acquired in S202, the estimation result after correction in S205 and / or S208, and another player terminal 10. Updates the state value (see FIG. 12) corresponding to each of the plurality of operation target objects stored in the storage unit 11 based on at least one of the correction information transmitted by. Then, the player terminal 10 updates the game screen on the display based on the updated state value.
  • the estimation unit 13 acquires the corrected estimation result. On the other hand, if it is not corrected, the estimation unit 13 acquires the uncorrected estimation result.
  • the estimation unit 13 acquires the acquired estimated result after correction or the estimated result that has not been corrected in S101 as timing-by-timing information corresponding to a certain frame, and generates a new estimation result based on the timing-by-timing information (S102). ).
  • the timing-by-timing matrix data may indicate the content of the player input and the position of the operation target object in the game space, as well as other information that may affect the content of the player input.
  • the timing-by-timing matrix data includes characteristics such as the type and state (hit points, levels, attack power, defense power, etc.) of the operation target object, and non-operation target objects (characters, mountains, seas, buildings whose actions are controlled by a computer).
  • You may further indicate the position in the game space of an obstacle that hinders the movement of the object, the type and state of the non-operated object (hit point, level, attack power, defense power, etc.), and the like. This information can be indicated by the values of the components p q and r of the timing-by-timing matrix data.
  • the components are determined by color (FIG. 15 (C)), brightness, addition of points to predetermined positions (FIG. 15 (D)), and the like. It is possible to express the difference between the values of p q and r.
  • the tensor data generation unit 22 is a matrix data indicating the state of the world coordinate system in which the encoding information obtained by encoding the vector calculated from the data point group is mapped in association with the position of each operation target object instead of the data point group. May be generated at predetermined time intervals. As shown in FIG. 16, the encoding information may indicate a vector calculated from the data point group in the direction and size of the convex. As in the above modification, the encoding information to which the above-mentioned various information is added may be mapped by adding a color, light / darkness, a point to a predetermined position, or the like.
  • the function encode that encodes the status information in the game (characteristics such as the type and state of the object to be operated (hit points, level, attack power, defense power, etc.)) can be defined as the following equation (10). ..
  • S is in-game status information
  • M is a world frame matrix corresponding to a certain frame of a certain player terminal 10.
  • the greatest advantage of this embodiment is "non-destructive" that can reduce the amount of data communication without changing the existing game contents.
  • the present embodiment has the following advantages.
  • this embodiment is a technology that can be used as a "communication buffer that stores input contents for several frames for automatically complementing non-communication contents". Therefore, it can be implemented as an upper layer that uses existing communication middleware such as Photon and monobit. In addition, it can be consistently combined with the existing compression of status information by delta compression.
  • acquisition means "to obtain data stored in another device or storage medium by the own device” based on user input or program instruction (active). (Acquisition) ”, for example, requesting or inquiring about other devices to receive data, accessing other devices or storage media to read data, etc., and based on user input or program instructions.
  • Acquisition means "to obtain data stored in another device or storage medium by the own device” based on user input or program instruction (active). (Acquisition) ”, for example, requesting or inquiring about other devices to receive data, accessing other devices or storage media to read data, etc., and based on user input or program instructions.
  • “Entering data output from another device into your own device (passive acquisition) for example, waiting in a state where data transmitted from an external device can be received, and data transmitted from the external device To receive data delivered (or transmitted, push notification, etc.) from an external device, to select and acquire from the received data or information, and to "edit data (or edit data (or edit (push notification, etc.)
  • Computers for each of multiple player terminals that communicate data with each other directly or via a server A storage unit that stores state values corresponding to each of multiple operation target objects, Reception desk that accepts player input, An estimation model that generates an estimation result of the timing-by-timing information corresponding to the subsequent timing from the timing-by-timing information indicating the contents of the player input received by each of the plurality of player terminals corresponding to a certain timing, and the first timing.
  • An estimation unit that generates the estimation result corresponding to the second timing after the first timing based on the corresponding information for each timing.
  • a determination unit that determines whether the content of the player input received by the reception unit corresponding to the second timing matches the estimated content of the player input corresponding to the second timing shown in the estimation result.
  • the correction information transmission unit that transmits the correction information indicating the content of the player input received by the reception unit to the external device
  • Correction information acquisition unit that acquires the correction information transmitted by the other player terminal
  • a correction unit that corrects the estimation result based on the correction information
  • a correction unit that corrects the estimation result that corrects the estimation result.
  • An update unit that updates the state value of the operation target object based on the estimation result.
  • a program that functions as. 2. In the program described in 1.
  • the update unit is a program that updates the state value of the operation target object based on the corrected estimation result or the correction information when the estimation result is corrected by the correction unit. 3. 3. In the program described in 1 or 2, The estimation unit When the estimation result is corrected by the correction unit, a new estimation result is generated based on the corrected estimation result and the estimation model. A program that generates a new estimation result based on the uncorrected estimation result and the estimation model when the estimation result is not corrected by the correction unit. 4.
  • the information for each timing is The rows and columns correspond to the x-axis and y-axis in the world coordinate system of the game space, and the values of the components in the qth row and rth column indicate the state of the coordinates (x q , y r ) in the world coordinate system.
  • the matrix data is a program showing a group of data points on screen coordinates detected by the touch panel of the player terminal as the contents of player input made corresponding to each of the operation target objects. 6.
  • the matrix data is a program indicating information obtained by encoding a vector calculated from a group of data points on screen coordinates detected by the touch panel of the player terminal as the content of player input made corresponding to each of the operation target objects. .. 7.
  • the matrix data is a program showing the state of the world coordinate system in which information indicating the contents of player input made corresponding to each of the operation target objects is mapped in association with the position of each of the operation target objects. 8.
  • the estimation model is Learning data in which the matrix data corresponding to the Nth timing extracted from the tensor data stored along the time axis and the matrix data corresponding to the timing after the Nth timing are associated with each other.
  • the estimation model is The matrix data corresponding to the Nth timing extracted from the tensor data in which the matrix data is stored along the time axis, and the matrix data to the (N + K) timing (K) corresponding to the (N + 1) timing.
  • the timing information includes the position of the operation target object in the game space, the position of the non-operation target object in the game space, the characteristics of the operation target object, and the non-operation target object.
  • the estimation unit realized by each of the plurality of player terminals is a program that generates the estimation result based on the same estimation model.
  • World coordinates in which a group of data points indicating touch positions on screen coordinates detected on the touch panel of each of a plurality of player terminals corresponding to each of a plurality of timings at a predetermined time are mapped in association with the positions of the operation target objects.
  • a tensor data generation unit that generates matrix data indicating the state of the system at the predetermined time intervals and stores the matrix data along the time axis to generate tensor data.
  • a learning data generation unit that extracts learning data in which the matrix data corresponding to the Nth timing and the matrix data corresponding to the timing after the Nth timing are associated with each other from the tensor data.
  • An estimation model generation unit that generates an estimation model that generates an estimation result of the matrix data corresponding to the subsequent timing from the matrix data corresponding to a certain timing by machine learning based on the learning data.
  • Server with. 13 In the server described in 12. From the tensor data, the learning data generation unit includes the matrix data corresponding to the Nth timing and the matrix data to the (N + K) timing (K is an integer of 2 or more) corresponding to the (N + 1) th timing. ) Corresponding to the training data associated with each of the matrix data. 14. In the server according to 12 or 13.
  • the tensor data generation unit converts the state of the world coordinate system in which the encoding information obtained by encoding the vector calculated from the data point group is mapped in association with the position of each of the operation target objects.
  • a server that generates the matrix data shown at each predetermined time and generates tensor data in which the matrix data is stored along the time axis. 15.
  • the computers of each of the multiple player terminals that communicate data with each other directly or via a server Stores state values corresponding to each of multiple operation target objects, Accepts player input, An estimation model that generates an estimation result of the timing-by-timing information corresponding to the subsequent timing from the timing-by-timing information indicating the contents of the player input received by each of the plurality of player terminals corresponding to a certain timing, and the first timing. Based on the corresponding information for each timing, the estimation result corresponding to the second timing after the first timing is generated, and the estimation result is generated. It is determined whether the content of the player input received corresponding to the second timing matches the estimated content of the player input corresponding to the second timing shown in the estimation result.
  • the correction information indicating the contents of the received player input is transmitted to the external device, and the result is transmitted.
  • the correction information transmitted by the other player terminal is acquired, and the correction information is acquired.
  • the estimation result is corrected based on the correction information, and the estimation result is corrected.
  • the player terminal is A storage unit that stores state values corresponding to each of multiple operation target objects,
  • the reception section that accepts player input and
  • An estimation model that generates an estimation result of the timing-by-timing information corresponding to the subsequent timing from the timing-by-timing information indicating the contents of the player input received by each of the plurality of player terminals corresponding to a certain timing, and the first timing.
  • An estimation unit that generates the estimation result corresponding to the second timing after the first timing based on the corresponding information for each timing, and an estimation unit.
  • a determination unit that determines whether the content of the player input received by the reception unit corresponding to the second timing matches the estimated content of the player input corresponding to the second timing shown in the estimation result.
  • the correction information transmission unit that transmits the correction information indicating the content of the player input received by the reception unit to the external device, and the correction information transmission unit.
  • a correction information acquisition unit that acquires the correction information transmitted by the other player terminal, and A correction unit that corrects the estimation result based on the correction information,
  • An update unit that updates the state value of the operation target object based on the estimation result, Have
  • the server is a processing system having a transmission unit that transmits the received correction information to another player terminal when the correction information is received from the player terminal. 17. In the processing system according to 16.
  • the server A world in which a group of data points indicating touch positions on screen coordinates detected on the touch panels of a plurality of player terminals corresponding to each of a plurality of timings at a predetermined time is mapped in association with the position of each of the operation target objects.
  • a tensor data generation unit that generates matrix data indicating the state of the coordinate system at each predetermined time and generates tensor data in which the matrix data is stored along the time axis.
  • a learning data generation unit that extracts learning data in which the matrix data corresponding to the Nth timing and the matrix data corresponding to the (N + 1) timing immediately after the Nth timing are associated with each other from the tensor data.
  • An estimation model generation unit that generates an estimation model that generates an estimation result of the matrix data corresponding to the subsequent timing from the matrix data corresponding to a certain timing by machine learning based on the learning data.
  • the transmission unit is a processing system that transmits the same estimation model to a plurality of player terminals.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本発明は、複数の操作対象オブジェクト各々に対応した状態値を記憶する記憶部(11)と、プレイヤ入力を受付ける受付部(12)と、あるタイミングに対応して複数のプレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応したタイミング毎情報の推定結果を生成する推定モデルと、第1のタイミングに対応したタイミング毎情報とに基づき、第1のタイミングより後の第2のタイミングに対応した推定結果を生成する推定部(13)と、第2のタイミングに対応して受付けたプレイヤ入力の内容と、推定結果で示される第2のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する判断部(14)と、判断結果が不一致である場合、受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部(15)と、他のプレイヤ端末が送信した訂正情報を取得する訂正情報取得部(16)と、訂正情報に基づき推定結果を補正する補正部(17)と、推定結果に基づき操作対象オブジェクトの状態値を更新する更新部(18)とを有するプレイヤ端末(10)を提供する。

Description

サーバ、処理システム、処理方法及びプログラム
 本発明は、サーバ、処理システム、処理方法及びプログラムに関する。
 通信プロトコルの改善は、プロトコルスタックの中間レイヤの削減による効率化が一般的であった。これらの方式は汎用的に適用可能であり、有効性が高いものの、数十パーセント以上の劇的な速度改善や低遅延化を実現することは難しい。また、Webなどの特定のアプリケーションに特化したTCP/IPのパラメタ最適化は広く行われているが、エンドツーエンドでの最適化を行うことはできないため、パラメタ最適化に依存したゲーム性の設計を行うことはできなかった。
 ところで、MMO(Massively Multiplayer Online)やFPS(First Person Shooter)などのゲームにおいては、デルタ圧縮が広く利用されている。デルタ圧縮は、直前に送信したデータから変化していないときはデータを送信しないというものである。このデルタ圧縮は、ステータス等のように値の変化の少ないデータの送受信に有効である。しかし、このデルタ圧縮は、値が頻繁に変化するために常に差分情報の送受信が必要になるデータ、たとえば、キャラクタの現在位置等を通信する際の圧縮技術としては、有効ではない。[0]このため、ゲームにおいては、キャラクタの位置等のように値の変化が頻繁にあるデータの送受信の効率化が課題であった。
 この課題に応える技術として、キャラクタの移動先を指定/予測する方式が挙げられる。これは、次のフレームにおけるキャラクタの移動先(位置情報)を、プレイヤ自身に直接指定させるか、あるいは、線形補完等により予測/補完するというものである。この技術によれば、連続的にプレイヤ入力の内容(移動方向等)を送受信するよりも、通信量を削減できる。例えば、非特許文献1は、低遅延化のために、キャラクタの移動を、移動方向ではなく移動先を指定するようにゲーム性を変更する方法や、移動開始時点で予測座標を算出してサーバに送信しつつ、予測結果が外れた場合は、座標を補正(ワープ)する方式を開示している。これらは、一般的には、Lerp(linear interpolation)と呼ばれる技術である。
 なお、本発明に関連する技術が、特許文献1に開示されている。特許文献1は、タッチパネルで所定時間内に検出されたスクリーン座標上の複数のタッチ位置を示すデータポイント群を記憶し、当該データポイント群から回帰直線の傾き及び当該回帰直線の傾きを回転させる回転量を決定し、当該回帰直線の傾き及び回転量に基づき操作対象オブジェクト(キャラクタ)の制御内容を決定する技術を開示している。
"[CEDEC 2010]ネットゲームの裏で何が起こっているのか。ネットワークエンジニアから見た,ゲームデザインの大原則"、[online]、2010年9月6日、[2019年7月4日検索]、インターネット<URL: https://www.4gamer.net/games/105/G010549/20100905002/>
特許第6389581号
 Lerpはアクション性の低いMMOなどでは有効であるものの、精密に位置取りを行うようなアクション性の高いMMOなどではゲーム性に影響を与えてしまう。また、予測結果をワープで補正する方式では、他のプレイヤから見てカクカクした動きになるという問題もある。このように、Lerpの場合、通信遅延の問題を軽減し得るが、ゲーム性に影響を与える可能性がある。
 本発明は、ゲーム性への影響を抑制しつつ、通信遅延の問題を軽減する技術を提供することを課題とする。
 本発明によれば、
 直接又はサーバを介して互いにデータ通信する複数のプレイヤ端末各々のコンピュータを、
 複数の操作対象オブジェクト各々に対応した状態値を記憶する記憶部、
 プレイヤ入力を受付ける受付部、
 あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第1のタイミングに対応した前記タイミング毎情報とに基づき、前記第1のタイミングより後の第2のタイミングに対応した前記推定結果を生成する推定部、
 前記第2のタイミングに対応して前記受付部が受付けたプレイヤ入力の内容と、前記推定結果で示される前記第2のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する判断部、
 前記判断部の判断結果が不一致である場合、前記受付部が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部、
 他の前記プレイヤ端末が送信した前記訂正情報を取得する訂正情報取得部、
 前記訂正情報に基づき前記推定結果を補正する補正部、及び、
 前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する更新部、
として機能させるプログラムが提供される。
 また、本発明によれば、
 所定時間毎の複数のタイミング各々に対応して複数のプレイヤ端末各々のタッチパネルで検出されたスクリーン座標上のタッチ位置を示すデータポイント群を、操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するテンソルデータ生成部と、
 前記テンソルデータから、第Nのタイミングに対応した前記行列データと、第Nのタイミングの後のタイミングに対応した前記行列データとを対応付けた学習データを取り出す学習データ生成部と、
 前記学習データに基づく機械学習により、あるタイミングに対応した前記行列データからその後のタイミングに対応した前記行列データの推定結果を生成する推定モデルを生成する推定モデル生成部と、
を有するサーバが提供される。
 また、本発明によれば、
 直接又はサーバを介して互いにデータ通信する複数のプレイヤ端末各々のコンピュータが、
 複数の操作対象オブジェクト各々に対応した状態値を記憶し、
 プレイヤ入力を受付け、
 あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第1のタイミングに対応した前記タイミング毎情報とに基づき、前記第1のタイミングより後の第2のタイミングに対応した前記推定結果を生成し、
 前記第2のタイミングに対応して受付けたプレイヤ入力の内容と、前記推定結果で示される前記第2のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断し、
 判断結果が不一致である場合、受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信し、
 他の前記プレイヤ端末が送信した前記訂正情報を取得し、
 前記訂正情報に基づき前記推定結果を補正し、
 前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する処理方法が提供される。
 また、本発明によれば、
 複数のプレイヤ端末と、サーバとを有し、
 前記プレイヤ端末は、
 複数の操作対象オブジェクト各々に対応した状態値を記憶する記憶部と、
 プレイヤ入力を受付ける受付部と、
 あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第1のタイミングに対応した前記タイミング毎情報とに基づき、前記第1のタイミングより後の第2のタイミングに対応した前記推定結果を生成する推定部と、
 前記第2のタイミングに対応して前記受付部が受付けたプレイヤ入力の内容と、前記推定結果で示される前記第2のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する判断部と、
 前記判断部の判断結果が不一致である場合、前記受付部が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部と、
 他の前記プレイヤ端末が送信した前記訂正情報を取得する訂正情報取得部と、
 前記訂正情報に基づき前記推定結果を補正する補正部と、
 前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する更新部と、
を有し、
 前記サーバは、前記プレイヤ端末から前記訂正情報を受信すると、受信した前記訂正情報を他の前記プレイヤ端末に送信する送信部を有する処理システムが提供される。
 本発明によれば、ゲーム性への影響を抑制しつつ、通信遅延の問題を軽減する技術が実現される。
本実施形態のゲームシステムの機能ブロック図の一例である。 本実施形態のプレイヤ端末のハードウエア構成の一例を示す図である。 本実施形態のサーバのハードウエア構成の一例を示す図である。 本実施形態のサーバの機能ブロック図の一例である。 本実施形態の処理を説明するための図である。 本実施形態の処理を説明するための図である。 本実施形態の処理を説明するための図である。 本実施形態の処理を説明するための図である。 本実施形態の処理を説明するための図である。 本実施形態の処理を説明するための図である。 本実施形態のプレイヤ端末の機能ブロック図の一例である。 本実施形態のプレイヤ端末が処理する情報の一例を模式的に示す図である。 本実施形態のプレイヤ端末の処理の流れの一例を示すフローチャートである。 本実施形態のプレイヤ端末の処理の流れの一例を示すフローチャートである。 本実施形態の処理を説明するための図である。 本実施形態の処理を説明するための図である。
<ゲームシステムの概要>
 まず、本実施形態のゲームシステムの概要を説明する。図1に示すように、本実施形態のゲームシステムは、複数のプレイヤ端末10と、サーバ20とを有する。プレイヤ端末10とサーバ20とは、通信ネットワーク30を介して互いに繋がっている。プレイヤ端末10は、各プレイヤが操作する端末であり、例えば、スマートフォン、タブレット端末、携帯電話、パーソナルコンピュータ等が例示されるが、これらに限定されない。複数のプレイヤ端末10は、直接又はサーバ20を介して互いにデータ通信することができる。本実施形態のゲームシステムは、例えばMMOに好適である。
 本実施形態では、MMO等において大量に蓄積されるゲームログに深層学習を適用し、一般的なプレイヤの極めて近い未来(例えば、1フレーム~十数フレーム先)の入力内容を推定する推定モデルを生成する。そして、複数のプレイヤ端末10の各々が、同じ推定モデルに基づき複数のプレイヤ各々の未来の入力内容を推定する。当然、複数のプレイヤ端末10の推定結果は同じ内容となる。
 そして、各プレイヤ端末10は、自端末に対してプレイヤが実際に入力した内容と、推定結果とが異なる場合、自端末に対してプレイヤが実際に入力した内容(推定結果を訂正する情報)を、サーバ20介して又は直接、他のプレイヤ端末10に送信する。なお、各プレイヤ端末10は、自端末に対してプレイヤが実際に入力した内容と、推定結果とが一致する場合、自端末に対してプレイヤが実際に入力した内容を他のプレイヤ端末10に送信しない。
 各プレイヤ端末10は、他のプレイヤ端末10が送信した推定結果を訂正する情報を受信した場合、その情報に基づきそのプレイヤ端末10が制御するキャラクタを制御(移動等)し、推定結果を訂正する情報を受信しなかった場合、推定結果に基づきそのキャラクタを制御する。
 このように、本実施形態のゲームシステムでは、複数のプレイヤ端末10が複数のプレイヤ各々の未来の入力内容を同じ推定モデルに基づき同時に推定する「同期型予測」を行う。そして、その予測結果と異なる内容をプレイヤが各プレイヤ端末10に入力したときのみ、その内容を他のプレイヤ端末10に通知する。このような本実施形態のゲームシステムによれば、高効率・低遅延でパケットロスに強いマルチプレイ通信方式が実現される。
<ハードウエア構成>
 次に、プレイヤ端末10及びサーバ20のハードウエア構成を説明する。
「プレイヤ端末10」
 まず、プレイヤ端末10のハードウエア構成を説明する。図2は、プレイヤ端末10のハードウエア構成を例示するブロック図である。図2に示すように、プレイヤ端末10は、プロセッサ1A、メモリ2A、入出力インターフェイス3A、周辺回路4A、バス5A、タッチパネル6A、通信部7Aなどを有する。周辺回路4Aには、様々なモジュールが含まれる。なお、周辺回路4Aを有さなくてもよい。
 プレイヤ端末10が備える機能部は、プロセッサ1A、メモリ2A、入出力I/F3A、入出力I/F3Aに接続されたモジュール(タッチパネル6A、通信部7Aなど)などのハードウエアと、内蔵メモリ(ROM、ハードディスクなど)に格納され、RAMなどにロードされるプログラム(ソフトウエア)との任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。なお、内蔵メモリに格納されるプログラムは、あらかじめ処理装置の出荷段階から格納されているプログラムのほか、インターネット上のサーバなどからダウンロードされたプログラムなども含む。
 バス5Aは、プロセッサ1A、メモリ2A、周辺回路4A及び入出力I/F(インターフェイス)3Aが相互にデータを送受信するためのデータ伝送路である。プロセッサ1Aは、例えばCPU(Central Processing Unit)やGPU(Graphics Processing Unit)やNPU(Neural network Processing Unit)などの演算処理装置である。メモリ2Aは、例えばRAM(Random Access Memory)やROM(Read Only Memory)などのメモリである。入出力I/F3Aには、入力装置(タッチパネル6A、マイク、物理ボタン等)や、出力装置(タッチパネル6A、スピーカ等)や、インターネットなどのネットワークに接続するための通信部7Aなどが接続される。プロセッサ1Aは、各モジュールに指令を出し、それらの演算結果をもとに演算を行うことができる。
 なお、タッチパネル6Aは、画像を表示するディスプレイと、位置入力センサとにより構成される。タッチパネル6Aに対してタッチ操作がなされると、位置入力センサはタッチされた位置に基づいた信号(検出結果)を出力する。タッチパネル6Aから出力された信号は、入出力I/F3Aを介してプロセッサ1Aに入力される。プロセッサ1Aは、タッチパネル6Aから出力された信号を任意の座標系における座標に変換するプログラムを実行し、タッチパネル6Aから出力された信号を上記座標系における座標に変換する。上記座標系は、例えば、タッチパネル6Aのタッチされる面上の任意の点を原点とし、当該面と平行な任意の方向にX軸及びY軸を定めた座標系である。以降、当該座標系における座標を「スクリーン座標」と便宜上記載する。位置入力センサは、静電容量式又は抵抗膜式などが例示される。
 ここで、タッチ操作とは、物体(指等)を位置入力センサに接触又は近接させて物体の接触又は近接を位置入力センサに検出させたり、物体を位置入力センサに接触又は近接させた状態を維持したまま物体を位置入力センサに接触又は近接させる位置を変更したり、物体を位置入力センサから離して位置入力センサによる検出を解除したりする操作をいう。
「サーバ20」
 次に、サーバ20のハードウエア構成を説明する。図3は、サーバ20のハードウエア構成を例示するブロック図である。図3に示すように、サーバ20は、プロセッサ1A、メモリ2A、入出力インターフェイス3A、周辺回路4A、バス5Aなどを有する。周辺回路4Aには、様々なモジュールが含まれる。なお、周辺回路4Aを有さなくてもよい。
 サーバ20が備える機能部は、プロセッサ1A、メモリ2A、入出力I/F3A、入出力I/F3Aに接続されたモジュールなどのハードウエアと、内蔵メモリ(ROM、ハードディスクなど)に格納され、RAMなどにロードされるプログラム(ソフトウエア)との任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。なお、内蔵メモリに格納されるプログラムは、あらかじめ処理装置の出荷段階から格納されているプログラムのほか、インターネット上のサーバなどからダウンロードされたプログラムなども含む。プロセッサ1A、メモリ2A、入出力インターフェイス3A、周辺回路4A及びバス5Aの詳細は上述の通りであるので、ここでの説明は省略する。
<機能構成>
 次に、プレイヤ端末10及びサーバ20の機能構成を説明する。ここでは、「プレイヤ入力を推定する推定モデルの生成」、及び、「当該推定モデルを用いたゲームの制御」に分けて、プレイヤ端末10及びサーバ20各々の機能構成を説明する。
「プレイヤ入力を推定する推定モデルの生成」
 推定モデルの生成は、サーバ20により実現される。以下、推定モデルの生成処理を詳細に説明する。なお、以下で説明する学習データの生成処理、及び、学習データに基づく推定モデルの生成処理は、例えばゲーム開発時にゲーム開発者の作業により実現される。そして、当該推定モデルは、ゲーム運用中にプレイヤから入力されるデータに基づき更新されてもよい。すなわち、実際にゲームを運用している時にプレイヤから入力されるデータを蓄積し、当該蓄積したデータから学習データを生成し、当該学習データに基づき新たな推定モデルを生成し、更新してもよい。図4に、サーバ20の機能ブロック図の一例を示す。図示するように、サーバ20は、記憶部21と、テンソルデータ生成部22と、学習データ生成部23と、推定モデル生成部24と、送信部25とを有する。
 テンソルデータ生成部22は、所定時間毎の複数のタイミング各々に対応して行列データ(以下、「タイミング毎行列データ」という場合がある)を生成し、所定時間毎のタイミング毎行列データを時間軸に沿って格納したテンソルデータを生成する。そして、テンソルデータ生成部22は、生成したテンソルデータを記憶部21に記憶させる。以下、テンソルデータ生成部22による当該処理の詳細を説明する。なお、以下では、「所定時間毎」は「フレーム毎」として説明するが、あくまで一例でありこれに限定されない。
 前提として、本実施形態では、特許文献1に開示されている技術に基づき、タッチパネル6Aを介したプレイヤ入力を処理し、操作対象オブジェクト(プレイヤキャラクタ等)を制御する。具体的には、本実施形態のゲームシステムでは、各プレイヤ端末10のタッチパネル6Aで検出されるタッチポイントの値(スクリーン座標)は、例えばフレームレートのような一定の時区間ごとに区切られて観測されている。そして、各時区間に観測されたタッチポイントの値の集合は、時区間毎に独立した配列としてバッファに格納されている。
 以下では、「1つの時区間」は「1つのフレームの時区間」として説明するが、あくまで一例でありこれに限定されない。ゲームアプリケーションでは、通常、60fps又は30fpsとなる。例えば、30fpsの場合、1つのフレームの時区間の長さは約33ミリ秒となる。例えば、100Hzでセンシングする静電容量式タッチパネルを用いた場合、1フレーム内(1つの時区間内)で複数のタッチポイントの値が観測されることとなる。本実施形態では、1つのフレームの時区間毎に、その時区間に観測されたタッチポイントの値の集合が観測された順に配列としてバッファに格納されている。タッチポイントの横軸の値の集合xと、タッチポイントの縦軸の値の集合yは、各々、次の式(1)及び式(2)のように定義できる。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
 ここで、xa,bは、第aのフレームの時区間に観測されたタッチポイントの横軸の値の集合のうち、b番目に観測された値を示す。各フレーム内の値は観測された時間に応じて昇順にソートされており、b番目の値は、(b-1)番目の後、かつ、(b+1)番目の前に観測された値である。
 同様に、ya,bは、第aのフレームの時区間に観測されたタッチポイントの縦軸の値の集合のうち、b番目に観測された値を示す。各フレーム内の値は観測された時間に応じて昇順にソートされており、b番目の値は、(b-1)番目の後、かつ、(b+1)番目の前に観測された値である。
 なお、各フレームの時区間に観測されるタッチポイントの数は必ずしも同じでない。このため、変数mの値は、aの値毎に異なり得る。それぞれの値の集合は、フレームごとにまとめられており、二次元配列を形成している。
 以下、1つのプレイヤ端末10のタッチパネル6Aにおいて1つのフレームの時区間に観測されたタッチポイントの値の集合を「データポイント群」と呼ぶ。第1のプレイヤ端末10のタッチパネル6Aにおいて第1のフレームの時区間に観測されたデータポイント群と、第2のプレイヤ端末10のタッチパネル6Aにおいて第1のフレームの時区間に観測されたデータポイント群とは異なるデータポイント群である。また、第1のプレイヤ端末10のタッチパネル6Aにおいて第1のフレームの時区間に観測されたデータポイント群と、第1のプレイヤ端末10のタッチパネル6Aにおいて第2のフレームの時区間に観測されたデータポイント群とは異なるデータポイント群である。
 記憶部21は、複数のプレイヤ端末10各々で観測されたデータポイント群の履歴を記憶している。そして、テンソルデータ生成部22は、当該履歴のデータを用いた以下の処理1乃至3により、テンソルデータを生成する。
・「(処理1)プレイヤ端末10毎、かつ、フレーム毎に、各フレームの時区間に各プレイヤ端末10のタッチパネル6Aで観測されたデータポイント群、及び、各データポイント群に基づき行動(移動等)を制御される操作対象オブジェクト(プレイヤキャラクタ等)の位置を示すワールドフレーム行列Mを生成」
・「(処理2)プレイヤ端末10毎、かつ、フレーム毎に生成したワールドフレーム行列Mを同じフレームのもの同士で合成し、タイミング毎行列データを生成」
・「(処理3)タイミング毎行列データを時間軸に沿って格納し、テンソルデータを生成」
 まず、処理1について説明する。本実施形態では、ワールドフレーム行列Mにより、各フレームの時区間に各プレイヤ端末10のタッチパネル6Aで観測されたデータポイント群、及び、各データポイント群に基づき行動(移動等)を制御される操作対象オブジェクト(プレイヤキャラクタ等)の位置を示す。
 「ワールドフレーム行列M」は、行及び列が3Dのゲーム空間のワールド座標系(x軸及びy軸が水平方向の軸であり、z軸が垂直方向の軸)におけるx軸及びy軸に対応し、第q行目かつ第r列目の成分の値でワールド座標系における座標(x,y)の状態を示す。テンソルデータ生成部22は、各フレームの時区間に各プレイヤ端末10のタッチパネル6Aで観測されたデータポイント群を、3Dのゲーム空間を俯瞰する2Dマップ上の所定位置にマッピングし、各成分の値でマッピング状態を示すワールドフレーム行列Mを生成する。データポイント群をマッピングする所定位置は、そのデータポイント群に基づき行動(移動等)を制御される操作対象オブジェクト(プレイヤキャラクタ等)に対応する位置であり、例えば、操作対象オブジェクトが存在する位置や、その周辺等が例示される。
 ワールドフレーム行列Mは次の式(3)のように定義できる。
Figure JPOXMLDOC01-appb-M000003
 ここで、pq、rは、ワールド座標系における座標(x、y)の地点にデータポイント群の要素(点)が存在するか否かを示す。例えば、データポイント群の要素が存在するときはpq、rの値をゼロより大きく1以下の数値とし、データポイント群の要素が存在しないときはpq、rの値をゼロとしてもよい。なお、単純には、データポイント群の要素が存在するときはpq、rの値を1とする実装が考えられるが、その他、そのデータポイント群に基づき行動を制御される操作対象オブジェクトの種類や状態(ヒットポイント、レベル、攻撃力、防御力等)等の特性を反映した値とすることで、それらをさらに示すワールドフレーム行列Mとすることができる。例えば、データポイント群の要素が存在する位置に対応するpq、rの値を、操作対象オブジェクトのヒットポイントを最大値で正規化した値や、操作対象オブジェクトの強さを指標化した値等としてもよい。
 本実施形態では、例えばGAN(Generative adversarial networks)を想定した推定モデルを生成する学習を行うため、行列のサイズを示すnとmの値は、システム内で一意に固定される。これにより、適切に機械学習を行うことができる。
 次に、プレイヤ端末10のタッチパネル6Aで観測されたデータポイント群を3Dのゲーム空間を俯瞰する2Dマップ上の操作対象オブジェクトに対応する位置にマッピングする方法を説明する。
 図5(A)に示すように、データポイント群は、物理的なタッチパネル6A上の座標(スクリーン座標)として観測されるものである。そこで、まず、テンソルデータ生成部22は、図5(B)に示すように、スクリーン座標を、3Dのゲーム空間のワールド座標系に写像する。例えば、カメラ位置や向きに基づき、タッチパネル6A上で観測されたデータポイント群を、3Dのゲーム空間のワールド座標系に写像する。図5(A)に示すようにカメラが操作対象オブジェクトの背後に位置する状態で観測されたデータポイント群は、図5(B)に示すように、操作対象オブジェクトの背後に写像される。この写像により、プレイヤ端末10に固有の値であったスクリーン座標のデータポイント群が、3Dのゲーム空間のワールド座標系に写像されることとなる。この座標変換処理mapは、次の式(4)のように定義できる。
Figure JPOXMLDOC01-appb-M000004
 ここで、x及びyはスクリーン座標のx座標及びy標であり、x及びyはワールド座標のx座標及びy座標である。
 次に、テンソルデータ生成部22は、図6及び図7に示すように、3Dのゲーム空間のワールド座標系に写像されたデータポイント群を、3Dのゲーム空間を俯瞰する2Dマップ上の操作対象オブジェクトに対応する位置に写像する。当該写像は、例えば、データポイント群を回転移動及び/又はスライド移動等することで実現される。例えば、カメラの向きや、カメラと操作対象オブジェクトとの距離等に基づき移動内容が決定されてもよい。
 なお、この写像においては、タッチパネル6A上で観測されたデータポイント群から算出される操作対象オブジェクトの制御内容と、写像後のデータポイント群から算出される操作対象オブジェクトの制御内容とが同一となるような工夫が必要となる。例えば、タッチパネル6A上で観測されたデータポイント群の状態(形状、向き等)と、2Dマップの座標系に写像後のデータポイント群の状態(形状、向き等)とが所定の対応関係(例えば一致)となっている必要がある。このような場合、データポイント群から算出されるベクトルの写像前後での同一性が確保されるため、このデータポイント群に基づく操作対象オブジェクト(プレイヤキャラクタ等)の制御内容の同一性も確保される。
 ここで、当該写像の具体例を説明する。例えば、テンソルデータ生成部22は、3Dのゲーム空間のワールド座標系に写像されたデータポイント群を、操作対象オブジェクトのローカル座標系(操作対象オブジェクトの任意の位置を原点として相対的に算出される座標軸)に反映し、ローカル座標系において操作対象オブジェクトに対応する位置(操作対象オブジェクトの真上等)にデータポイント群を写像する。このワールド座標系からローカル座標系への写像処理transposeは、次の式(5)のように定義できる。
Figure JPOXMLDOC01-appb-M000005
 ここで、x及びyはワールド座標上の点のx座標及びy座標であり、x及びyはローカル座標上の点のx座標及びy座標である。写像処理transposeは、例えば、ゲームエンジンであるUnity(登録商標)で次のように実装することができる。
 Step1: カメラの方向ベクトルを、ワールド座標xz平面上に射影し、さらに、 長さ1の単位ベクトルに正規化する(normalized関数の適用)
var cameraForward = Vector3.Scale(mainCamera.forward, new Vector3(1, 0, 1)).normalized;
 なお、Vector3.Scale(mainCamera.forward, new Vector3(1, 0, 1))はY座標に0をかけておく。
 Step2:データポイント群に基づき算出したベクトル(movingTo:右方向がx軸正方向、上方向がz軸正方向)を操作対象オブジェクトのローカル座標のxz平面上へ写像する。データポイント群に基づくベクトルの算出は、特許文献1に開示されている。
var move = transform.InverseTransformDirection(movingTo.z * cameraForward + movingTo.x * new Vector3(cameraForward.z, 0, -1 * cameraForward.x));
 なお、new Vector3(cameraForward.z, 0, -1 * cameraForward.x) は cameraForward をxz平面上で-90度回転させ、上方向への指の操作がワールド座標の奥方向への操作に対応するようにする。
 上記具体例によれば、データポイント群から算出されるベクトルは、写像前後で同一となるため、データポイント群から算出される角度と速度の値が写像前後で変化する不都合を抑制できる。
 次に、処理2について説明する。処理1により、プレイヤ端末10毎、かつ、フレーム毎に、各フレームの時区間に各プレイヤ端末10のタッチパネル6Aで観測されたデータポイント群、及び、各データポイント群に基づき行動を制御される操作対象オブジェクトの位置を示すワールドフレーム行列Mが生成される。
 処理2では、テンソルデータ生成部22は、同じlフレームの時区間において複数のプレイヤ端末10各々において観測されたデータポイント群、及び、各データポイント群に基づき行動を制御される操作対象オブジェクトの位置を示す複数のワールドフレーム行列Mを合成する。結果、そのフレームの時区間において複数のプレイヤ端末10各々において観測されたデータポイント群のすべて、及び、それらデータポイント群に基づき行動を制御されるすべての操作対象オブジェクの位置を示す1つのワールドフレーム行列M(タイミング毎行列データ)が生成される。テンソルデータ生成部22は、複数のフレーム各々に対応して当該処理を行うことで、複数のフレーム各々に対応したタイミング毎行列データを生成する。2つのワールドフレーム行列MとM´を合成する演算子は次の式(6)のように定義できる。
Figure JPOXMLDOC01-appb-M000006
 ここで、max(u,v)は、u及びvのうち大きい値を返す関数である。すなわち、式(6)の演算子は、完全に同じサイズの2つの行列が与えられたとき、同じ行及び列に対応する値のうちの大きい方を値とする新たな行列を生成するものである。なお、応用として、行列内の値をビットとしてとらえ、ビットORを算出する方法や、整数値の飽和演算付きの加算として実装する方法が考えられる。
 処理3では、テンソルデータ生成部22は、複数のフレーム各々に対応して生成されたタイミング毎行列データを時間軸に沿って格納し、テンソルデータを生成する。
 なお、ゲーム空間全体を1つのタイミング毎行列データで表現してもよいし、ゲーム空間全体を複数の区画に分割し、各区画を1つのタイミング毎行列データで表現してもよい。例えば、図8に示すように、ゲーム空間全体を有限個で正規化されたサイズの区画に分割してもよい。そして、区画ごとにタイミング毎行列データを生成してもよい。図9は、区画ごとに生成したタイミング毎行列データを時間軸に沿って格納したテンソルデータの概念を示す。
 図4に戻り、学習データ生成部23は、テンソルデータ生成部22が生成したテンソルデータから、第Nのフレーム(第Nのタイミング)に対応したタイミング毎行列データと、第Nのフレームの後のフレームに対応したタイミング毎行列データとを対応付けた学習データを取り出す。例えば、学習データ生成部23は、テンソルデータから、第Nのフレームに対応したタイミング毎行列データと、第(N+1)のフレームに対応したタイミング毎行列データ乃至第(N+K)のフレーム(Kは2以上の整数)に対応したタイミング毎行列データ各々とを対応付けた学習データを取り出してもよい。学習データ生成部23は、取り出した学習データを記憶部21に記憶させる。
 推定モデル生成部24は、学習データ生成部23が生成した学習データに基づく機械学習(敵対的生成ネットワーク(GAN)等)により、あるフレームに対応したタイミング毎行列データからその後のフレームに対応したタイミング毎行列データの推定結果を生成する推定モデルを生成する。そして、推定モデル生成部24は、生成した推定モデルを記憶部21に記憶させる。
 ここで、図10を用いて、推定モデル生成部24が行う機械学習の概念を説明する。図10(A)及び(B)は、3Dのゲーム空間を俯瞰する2Dマップを示す。図10(A)は第Nのフレームの状態を示し、図10(B)はその後のフレームの状態を示す。図では3人の操作対象オブジェクトと、各フレームの時区間において各操作対象オブジェクトに対応して3つのプレイヤ端末10各々で観測されたデータポイント群とが示されている。データポイント群は、上述の手法で各操作対象オブジェクトの位置にマッピングされている。
 図10(C)及び(D)は、図10(A)及び(B)各々のデータポイント群の状態を上述したタイミング毎行列データで表し、そのタイミング毎行列データの内容を図示したものである。表の1マスが、タイミング毎行列データの1つの成分pq、rに対応し、各マス目の状態により成分pq、rの値を表現している。そして、成分pq、rの値により、データポイント群の要素が位置するか否かを示している。
 推定モデル生成部24は、学習データとして記憶されているタイミング毎行列データを例えば図10(C)及び(D)に示すような形式で図示し、それをビットマップ化し、得られた図面ファイルに基づき機械学習を行うことができる。
 このように、本実施形態の学習プロセスは、2つのフレーム間の入力内容の変化(データポイント群の変化)を「パターンの変化(図10(C)→図10(D))」として表現し、それをニューラルネットワークに学習させる。結果、あるパターン(図10(C))が与えられた時に次のパターン(図10(D))を自動生成できるようになる。これは、あるフレームの入力内容から、それよりも後のフレームにおける入力内容を予測することを意味する。
 本実施形態では、例えばデータポイント群の数を間引きながら機械学習を繰り返してもよい。このようにすれば、極めて少ないタッチデータのみをクライアント間で共有するだけで、高速かつ高精度に未来の状況を予測することができる。
 GANを用いた学習を行う関数であるlearn関数は、ある特定の区画cに対応する学習データバケットBを受け取り、区画cにおける操作予測を行うモデルGを出力する関数であり、次の式(7)のように定義できる。
Figure JPOXMLDOC01-appb-M000007
 本システムが保有するすべてのバケットをBとすると、ある特定の区画cに対応する学習データバケットBは、次の式(8)のように定義できる。
Figure JPOXMLDOC01-appb-M000008
 ここで、Mは、区画cにおけるi番目のフレームのタイミング毎行列データである。learn関数は、MとMe+fの組をGANへの入力とする(fは1以上の整数)。
 なお、Mから任意の数だけデータポイント群を間引いたM´を作成し、M´とMe+fの組をGANへの入力とすることもできる。これにより、より少ない数のデータポイント群から、未来のフレームにおける入力内容を推論できるようになる。
 推定モデル生成部24により生成された推定モデル、すなわちあるフレームに対応するタイミング毎行列データを入力すると、それより後のフレームのタイミング毎行列データを推定する関数であるpredictは、次の式(9)のように定義できる。
Figure JPOXMLDOC01-appb-M000009
 ここで、Mは、区画cのあるフレームのタイミング毎行列データであり、nは予測する未来のフレーム番号であり、M´は、推定された「あるフレームからnフレーム先のフレーム」におけるタイミング毎行列データである。
 図4に戻り、送信部25は、記憶部21に記憶されている推定モデルを複数のプレイヤ端末10に送信する。例えば、サーバ20は、複数の操作対象オブジェクト各々の位置を管理しておいてもよい。そして、送信部25は、各操作対象オブジェクトが存在する区画に対応する推定モデルを、各操作対象オブジェクトを制御するプレイヤ端末10に送信してもよい。
 例えば、送信部25は、操作対象オブジェクトが第1の区画から第2の区画に移動した事実に応じて、第2の区画に対応した推定モデルを所定のプレイヤ端末10に送信してもよい。
 その他、サーバ20は、上記推定モデルに基づき数フレーム先の入力内容を予測し、予測結果に基づき、数フレーム先における複数の操作対象オブジェクト各々の位置を予測してもよい。そして、送信部25は、操作対象オブジェクトが第1の区画から第2の区画に移動するという予測結果に応じて、第2の区画に対応した推定モデルを所定のプレイヤ端末10に送信してもよい。
「推定モデルを用いたゲームの制御」
 図11に、プレイヤ端末10の機能ブロック図の一例を示す。図示するように、プレイヤ端末10は、記憶部11と、受付部12と、推定部13と、判断部14と、訂正情報送信部15と、訂正情報取得部16と、補正部17と、更新部18とを有する。
 記憶部11は、サーバ20が送信した推定モデルを記憶する。また、記憶部11は、ゲームに関する各種情報を記憶する。例えば、記憶部11は、図12に示すように、複数の操作対象オブジェクト各々に対応した状態値を記憶する。複数の操作対象オブジェクトの各々は、複数のプレイヤ端末10の各々により行動を制御される。状態値は、ゲーム空間における位置や、ヒットポイント等であるが、これらに限定されない。プレイヤ端末10は、当該状態値に基づき、自端末のディスプレイに表示する画面を生成し、自端末のディスプレイに表示する。すなわち、プレイヤ端末10は、複数の操作対象オブジェクト各々を状態値で示される位置に配置したゲーム画面を生成し、自端末のディスプレイに表示する。
 受付部12は、プレイヤ入力を受付ける。例えば、受付部12は、タッチパネル6Aを介したタッチ入力や、物理ボタン等を介した入力を受付ける。受付部12は、タッチパネル6Aで検出されるタッチポイントの値(スクリーン座標)を、例えばフレームレートのような一定の時区間ごとに区切って観測する。そして、受付部12は、各時区間に観測されたタッチポイントの値の集合(データポイント群)を、時区間毎に独立した配列としてバッファに格納する。
 推定部13は、あるフレーム(あるタイミング)に対応して複数のプレイヤ端末10各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のフレーム(その後のタイミング)に対応したタイミング毎情報の推定結果を生成する推定モデルと、第1のフレーム(第1のタイミング)に対応したタイミング毎情報とに基づき、第1のフレーム(第1のタイミング)より後の第2のフレーム(第2のタイミング)に対応した推定結果を生成する。
 推定部13が処理する推定モデルは、上述したサーバ20が生成した推定モデル、すなわちサーバ20から受信して記憶部11に記憶されている推定モデルである。
 タイミング毎情報は、上述したタイミング毎行列データと同じ形式で、その時に実際にゲームに参加しているプレイヤ端末10各々があるフレームに対応して受付けたデータポイント群、及び、各データポイント群に基づき行動を制御される操作対象オブジェクトの位置を示す。「あるフレームに対応して受付けたデータポイント群」は、そのフレームにおける操作対象オブジェクトの制御のために受付けたデータポイント群である。
 推定部13は、例えば、1フレームから十数フレーム先の推定結果を生成することができる。
 なお、複数のプレイヤ端末10各々で実現された推定部13は、同一の推定モデルに基づき同一の推定結果を生成する。
 判断部14は、第2のフレームに対応して受付部12が受付けたプレイヤ入力の内容(データポイント群)と、推定結果で示される第2のフレームに対応したプレイヤ入力の推定内容(データポイント群)とが一致するか判断する。なお、ここでの一致は、完全一致であってもよいし、予め定義された「多少のずれ」を許可してもよい。例えば、特許文献1(特許第6389581号公報)に開示された技術を用いてデータポイント群をベクトル化し、±1度を許可するといったことがあげられる。
 訂正情報送信部15は、判断部14の判断結果が不一致である場合、受付部12が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する。例えば、訂正情報送信部15は、サーバ20に訂正情報を送信してもよい。この場合、サーバ20は、受信した訂正情報を他のプレイヤ端末10に送信する。その他、訂正情報送信部15は、サーバ20を介さず直接、他のプレイヤ端末10に訂正情報を送信してもよい。
 訂正情報取得部16は、他のプレイヤ端末10が送信した訂正情報を取得する。
 補正部17は、訂正情報取得部16が取得した訂正情報に基づき推定結果を補正する。訂正情報は、少なくとも、正しい入力内容と、その入力に基づき行動を制御される操作対象オブジェクトを特定するための情報を含む。
 更新部18は、推定結果に基づき操作対象オブジェクトの状態値(図12参照)を更新する。更新部18は、補正部17により推定結果が補正された場合、補正後の推定結果又は訂正情報取得部16が取得した訂正情報に基づき、操作対象オブジェクトの状態値を更新することができる。また、更新部18は、受付部12が受付けたプレイヤ入力の内容に基づき、操作対象オブジェクトの状態値を更新することができる。なお、データポイント群から操作対象オブジェクトの制御内容(移動方向等)を決定する処理は特許文献1(特許第6389581号公報)に開示されているので、ここでの説明は省略する。
 次に、図13及び図14のフローチャートを用いて、プレイヤ端末10の処理の流れの一例を説明する。図示しないが、例えば、プレイヤ端末10がサーバ20にログインし、ゲームに参加した直後に、そのプレイヤ端末10が制御する操作対象オブジェクトの初期位置等に基づき決定された推定モデルや、図12に示すような複数の操作対象オブジェクト各々に対応した状態値等が、サーバ20からそのプレイヤ端末10に送信される。プレイヤ端末10は、受信した情報を記憶部11に記憶させる。そして、プレイヤ端末10は以下の処理を行う。
 まず、図13に示すように、プレイヤ端末10は、あるフレームに対応したタイミング毎情報を取得する(S101)。ゲームに参加した直後は、プレイヤ端末10は、サーバ20からタイミング毎情報を取得してもよい。
 そして、プレイヤ端末10の推定部13は、記憶部11に記憶されている推定モデルと、S101で取得されたタイミング毎情報とに基づき、その後(例えば、1~15フレーム先)のフレーム各々に対応したタイミング毎情報の推定結果を生成する(S102)。そして、推定部13は、生成した推定結果を記憶部11に記憶する(S103)。その後、プレイヤ端末10は、S101に戻り、タイミング毎情報の推定結果の生成、及び、記憶を繰り返す。
 また、図14に示すように、判断部14は、あるフレームに対応したタイミング毎情報の推定結果を記憶部11から取得するとともに(S201)、そのフレームに対応して受付部12が受付けたプレイヤ入力の内容を示す情報を取得すると(S202)、そのタイミングに対応して受付けたプレイヤ入力の内容と、推定結果で示されるそのタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する(S203)。なお、S201及びS202の処理順はこれに限定されない。
 そして、一致しない場合(S204のNo)、補正部17は、S202で取得されたプレイヤ入力の内容を示す情報に基づき、S201で取得した推定結果を補正する(S205)。また、訂正情報送信部15は、受付部12が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する(S206)。なお、S205及びS206の処理順はこれに限定されない。
 S204でYesの場合、また、S206の後に、S207が実行される。S207では、そのフレームに対応して他のプレイヤ端末10が送信した訂正情報を、訂正情報取得部16が取得したか否かを判断する。
 取得している場合(S207のYes)、補正部17は、取得された訂正情報に基づき、S201で取得された推定結果を補正する(S208)。
 S207でYesの場合、また、S208の後に、S209が実行される。S209では、更新部18は、S201で取得された推定結果、S202で取得されたプレイヤ入力の内容を示す情報、S205及び/又はS208で補正された後の推定結果、及び、他のプレイヤ端末10が送信した訂正情報の中の少なくとも1つに基づき、記憶部11に記憶されている複数の操作対象オブジェクト各々に対応した状態値(図12参照)を更新する。そして、プレイヤ端末10は、更新後の状態値に基づきディスプレイにおけるゲーム画面を更新する。
 その後のS210では、S205及びS208の少なくとも一方で補正部17により推定結果が補正された場合、推定部13は補正後の推定結果を取得する。一方、補正されなかった場合、推定部13は、補正されなかった推定結果を取得する。推定部13は、取得した補正後の推定結果又は補正されなかった推定結果を、あるフレームに対応したタイミング毎情報としてS101で取得し、そのタイミング毎情報に基づき新たな推定結果を生成する(S102)。
<変形例>
 次に、変形例を説明する。タイミング毎行列データは、プレイヤ入力の内容及び操作対象オブジェクトのゲーム空間内の位置に加えて、プレイヤ入力の内容に影響し得るその他の情報を示してもよい。例えば、タイミング毎行列データは、操作対象オブジェクトの種類や状態(ヒットポイント、レベル、攻撃力、防御力等)等の特性、非操作対象オブジェクト(コンピュータが行動を制御するキャラクタ、山、海、建物等の移動の妨げとなる障害物等)のゲーム空間内の位置、非操作対象オブジェクトの種類や状態(ヒットポイント、レベル、攻撃力、防御力等)等の特性等をさらに示してもよい。タイミング毎行列データの成分pq、rの値により、これらの情報を示すことができる。
 なお、タイミング毎行列データを図示する際には、例えば図15に示すように、色(図15(C))、明暗、所定位置への点の追加(図15(D))等により、成分pq、rの値の違いを表現することができる。
 このような変形例によれば、プレイヤ入力の内容に影響し得る多種多様な情報を考慮して、数フレーム先の入力内容を推定することが可能となる。結果、推定精度が向上する。
 他の変形例を説明する。テンソルデータ生成部22は、データポイント群に代えて、データポイント群から算出されるベクトルをエンコードしたエンコード情報を、操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを所定時間毎に生成してもよい。エンコード情報は、例えば、図16に示すように、凸の向きや大きさでデータポイント群から算出されるベクトルを示すものであってもよい。なお、上記変形例同様、色、明暗、所定位置への点の追加等により、上述した各種情報が付与されたエンコード情報がマッピングされてもよい。
 ゲーム内のステータス情報(操作対象オブジェクトの種類や状態(ヒットポイント、レベル、攻撃力、防御力等)等の特性等)のエンコードを行う関数encodeは、次の式(10)のように定義できる。
Figure JPOXMLDOC01-appb-M000010
 ここで、Sはゲーム内のステータス情報であり、Mは、あるプレイヤ端末10のあるフレームに対応するワールドフレーム行列である。
<作用効果>
 次に、本実施形態の作用効果を説明する。各プレイヤ端末10が受付けた入力内容のすべてを他のプレイヤ端末10に送信する方式の場合、例えば30FPSを実現するためには「30Hz(1秒間に30往復)」のUDPパケットを送受信する必要がある。これに対し、各プレイヤ端末10が受付けた入力内容の内予測がはずれたもののみを他のプレイヤ端末10に送信する本実施形態の方式の場合、例えば30FPSを実現するためには「30Hz以下」のUDPパケットを送受信すればよい。予測が100%外れた場合に30Hzとなり、予測が少しでも当たれば30FPS未満となる。なお、予測が100%外れ続けることは稀であり、ほとんどあり得ない。このような本実施形態のゲームシステムによれば、高効率・低遅延でパケットロスに強いマルチプレイ通信方式が実現される。
 本実施形態の最大の優位性は、既存のゲーム内容を変更することなく、データ通信量を削減できる「非破壊性」である。この非破壊性に加え、本実施形態は次の利点を有する。
・高いパケット削減率:通信頻度、および、通信量そのものを減らすことができるため、高いアクション性や多人数プレイを、パケットロスが相対的に多く帯域に制限の多いスマートフォン用MMO等で実現できる。
・パケットロスに強い:パケットそのものを送る頻度を下げることができるため、パケットロスに本質的に強い。さらに、本実施形態によりネットワーク帯域に余裕が生じれば、パケットロス対策として通信頻度を上げたり、あるいは、1度の通信で前のアクションの履歴を送信するようなパケットロスへの対策を容易に導入できたりする。
・チート対策への応用:推定モデルに基づく予測が外れた差分パケットだけを送るというモデルなので、チート防止や継続的な機械学習による長期・大規模運用に適した特性を生み出せる。
・デルタ圧縮と無矛盾に統合可能:ステータス情報の送受信に適したデルタ圧縮をステータス情報の送受信に用い、移動情報の圧縮に適した本実施形態を移動情報の圧縮に用いるような、適材適所の運用を実現可能である。
 また、本実施形態は、直感的には、「通信していない内容を自動的に補完するための数フレーム分の入力内容を格納している通信バッファ」として使用することができる技術である。したがって、Photonやmonobitなどの既存の通信ミドルウェアを利用する上位層として実装できる。さらに、既存のデルタ圧縮によるステータス情報の圧縮と無矛盾に組み合わせることができる。
 なお、本明細書において、「取得」とは、ユーザ入力に基づき、又は、プログラムの指示に基づき、「自装置が他の装置や記憶媒体に格納されているデータを取りに行くこと(能動的な取得)」、たとえば、他の装置にリクエストまたは問い合わせして受信すること、他の装置や記憶媒体にアクセスして読出すこと等、および、ユーザ入力に基づき、又は、プログラムの指示に基づき、「自装置に他の装置から出力されるデータを入力すること(受動的な取得)」、たとえば、外部装置から送信されたデータを受信できる状態で待機しており、外部装置から送信されたデータを受信すること、外部装置から配信(または、送信、プッシュ通知等)されるデータを受信すること、また、受信したデータまたは情報の中から選択して取得すること、及び、「データを編集(テキスト化、データの並び替え、一部データの抽出、ファイル形式の変更等)などして新たなデータを生成し、当該新たなデータを取得すること」の少なくともいずれか一方を含む。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
1. 直接又はサーバを介して互いにデータ通信する複数のプレイヤ端末各々のコンピュータを、
 複数の操作対象オブジェクト各々に対応した状態値を記憶する記憶部、
 プレイヤ入力を受付ける受付部、
 あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第1のタイミングに対応した前記タイミング毎情報とに基づき、前記第1のタイミングより後の第2のタイミングに対応した前記推定結果を生成する推定部、
 前記第2のタイミングに対応して前記受付部が受付けたプレイヤ入力の内容と、前記推定結果で示される前記第2のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する判断部、
 前記判断部の判断結果が不一致である場合、前記受付部が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部、
 他の前記プレイヤ端末が送信した前記訂正情報を取得する訂正情報取得部、
 前記訂正情報に基づき前記推定結果を補正する補正部、及び、
 前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する更新部、
として機能させるプログラム。
2. 1に記載のプログラムにおいて、
 前記更新部は、前記補正部により前記推定結果が補正された場合、補正後の前記推定結果又は前記訂正情報に基づき前記操作対象オブジェクトの前記状態値を更新するプログラム。
3. 1又は2に記載のプログラムにおいて、
 前記推定部は、
  前記補正部により前記推定結果が補正された場合、補正後の前記推定結果と前記推定モデルとに基づき新たな前記推定結果を生成し、
  前記補正部により前記推定結果が補正されなかった場合、補正されなかった前記推定結果と前記推定モデルとに基づき新たな前記推定結果を生成するプログラム。
4. 1から3のいずれかに記載のプログラムにおいて、
 前記タイミング毎情報は、
  行及び列がゲーム空間のワールド座標系におけるx軸及びy軸に対応し、第q行目かつ第r列目の成分の値で前記ワールド座標系における座標(x,y)の状態を示す行列データで、前記ゲーム空間における前記操作対象オブジェクト各々の位置及び前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容を示すプログラム。
5. 4に記載のプログラムにおいて、
 前記行列データは、前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容として、前記プレイヤ端末のタッチパネルで検出されたスクリーン座標上のデータポイント群を示すプログラム。
6. 4に記載のプログラムにおいて、
 前記行列データは、前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容として、前記プレイヤ端末のタッチパネルで検出されたスクリーン座標上のデータポイント群から算出されるベクトルをエンコードした情報を示すプログラム。
7. 4から6のいずれかに記載のプログラムにおいて、
 前記行列データは、前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容を示す情報を、前記操作対象オブジェクト各々の位置に対応付けてマッピングした前記ワールド座標系の状態を示すプログラム。
8. 4から7のいずれかに記載のプログラムにおいて、
 前記推定モデルは、
  前記行列データを時間軸に沿って格納したテンソルデータから取り出された第Nのタイミングに対応した前記行列データと、第Nのタイミングの後のタイミングに対応した前記行列データとを対応付けた学習データに基づく機械学習で生成されるプログラム。
9. 8に記載のプログラムにおいて、
 前記推定モデルは、
  前記行列データを時間軸に沿って格納したテンソルデータから取り出された第Nのタイミングに対応した前記行列データと、第(N+1)のタイミングに対応した前記行列データ乃至第(N+K)のタイミング(Kは2以上の整数)に対応した前記行列データ各々とを対応付けた学習データに基づく機械学習で生成されているプログラム。
10. 1から9のいずれかに記載のプログラムにおいて、
 前記タイミング毎情報は、プレイヤ入力の内容に加えて、ゲーム空間における前記操作対象オブジェクトの位置、前記ゲーム空間における非操作対象オブジェクトの位置、前記操作対象オブジェクトの特性、及び、前記非操作対象オブジェクトの特性の中の少なくとも1つをさらに示すプログラム。
11. 1から10のいずれかに記載のプログラムにおいて、
 複数の前記プレイヤ端末各々で実現された前記推定部は、同一の前記推定モデルに基づき前記推定結果を生成するプログラム。
12. 所定時間毎の複数のタイミング各々に対応して複数のプレイヤ端末各々のタッチパネルで検出されたスクリーン座標上のタッチ位置を示すデータポイント群を、操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するテンソルデータ生成部と、
 前記テンソルデータから、第Nのタイミングに対応した前記行列データと、第Nのタイミングの後のタイミングに対応した前記行列データとを対応付けた学習データを取り出す学習データ生成部と、
 前記学習データに基づく機械学習により、あるタイミングに対応した前記行列データからその後のタイミングに対応した前記行列データの推定結果を生成する推定モデルを生成する推定モデル生成部と、
を有するサーバ。
13. 12に記載のサーバにおいて、
 前記学習データ生成部は、前記テンソルデータから、第Nのタイミングに対応した前記行列データと、第(N+1)のタイミングに対応した前記行列データ乃至第(N+K)のタイミング(Kは2以上の整数)に対応した前記行列データ各々とを対応付けた学習データを取り出すサーバ。
14. 12又は13に記載のサーバにおいて、
 前記テンソルデータ生成部は、前記データポイント群に代えて、前記データポイント群から算出されるベクトルをエンコードしたエンコード情報を、前記操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するサーバ。
15. 直接又はサーバを介して互いにデータ通信する複数のプレイヤ端末各々のコンピュータが、
 複数の操作対象オブジェクト各々に対応した状態値を記憶し、
 プレイヤ入力を受付け、
 あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第1のタイミングに対応した前記タイミング毎情報とに基づき、前記第1のタイミングより後の第2のタイミングに対応した前記推定結果を生成し、
 前記第2のタイミングに対応して受付けたプレイヤ入力の内容と、前記推定結果で示される前記第2のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断し、
 判断結果が不一致である場合、受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信し、
 他の前記プレイヤ端末が送信した前記訂正情報を取得し、
 前記訂正情報に基づき前記推定結果を補正し、
 前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する処理方法。
16. 複数のプレイヤ端末と、サーバとを有し、
 前記プレイヤ端末は、
 複数の操作対象オブジェクト各々に対応した状態値を記憶する記憶部と、
 プレイヤ入力を受付ける受付部と、
 あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第1のタイミングに対応した前記タイミング毎情報とに基づき、前記第1のタイミングより後の第2のタイミングに対応した前記推定結果を生成する推定部と、
 前記第2のタイミングに対応して前記受付部が受付けたプレイヤ入力の内容と、前記推定結果で示される前記第2のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する判断部と、
 前記判断部の判断結果が不一致である場合、前記受付部が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部と、
 他の前記プレイヤ端末が送信した前記訂正情報を取得する訂正情報取得部と、
 前記訂正情報に基づき前記推定結果を補正する補正部と、
 前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する更新部と、
を有し、
 前記サーバは、前記プレイヤ端末から前記訂正情報を受信すると、受信した前記訂正情報を他の前記プレイヤ端末に送信する送信部を有する処理システム。
17. 16に記載の処理システムにおいて、
 前記サーバは、
  所定時間毎の複数のタイミング各々に対応して複数のプレイヤ端末各々のタッチパネルで検出されたスクリーン座標上のタッチ位置を示すデータポイント群を、前記操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するテンソルデータ生成部と、
  前記テンソルデータから、第Nのタイミングに対応した前記行列データと、第Nのタイミングの直後の第(N+1)のタイミングに対応した前記行列データとを対応付けた学習データを取り出す学習データ生成部と、
  前記学習データに基づく機械学習により、あるタイミングに対応した前記行列データからその後のタイミングに対応した前記行列データの推定結果を生成する推定モデルを生成する推定モデル生成部と、
をさらに有し、
  前記送信部は、同一の前記推定モデルを複数の前記プレイヤ端末に送信する処理システム。
 以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2019年12月10日に出願された日本出願特願2019-222683号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 1A  プロセッサ
 2A  メモリ
 3A  入出力I/F
 4A  周辺回路
 5A  バス
 6A  タッチパネル
 7A  通信部
 10  プレイヤ端末
 11  記憶部
 12  受付部
 13  推定部
 14  判断部
 15  訂正情報送信部
 16  訂正情報取得部
 17  補正部
 18  更新部
 20  サーバ
 21  記憶部
 22  テンソルデータ生成部
 23  学習データ生成部
 24  推定モデル生成部
 25  送信部
 30  通信ネットワーク

Claims (17)

  1.  直接又はサーバを介して互いにデータ通信する複数のプレイヤ端末各々のコンピュータを、
     複数の操作対象オブジェクト各々に対応した状態値を記憶する記憶部、
     プレイヤ入力を受付ける受付部、
     あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第1のタイミングに対応した前記タイミング毎情報とに基づき、前記第1のタイミングより後の第2のタイミングに対応した前記推定結果を生成する推定部、
     前記第2のタイミングに対応して前記受付部が受付けたプレイヤ入力の内容と、前記推定結果で示される前記第2のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する判断部、
     前記判断部の判断結果が不一致である場合、前記受付部が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部、
     他の前記プレイヤ端末が送信した前記訂正情報を取得する訂正情報取得部、
     前記訂正情報に基づき前記推定結果を補正する補正部、及び、
     前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する更新部、
    として機能させるプログラム。
  2.  請求項1に記載のプログラムにおいて、
     前記更新部は、前記補正部により前記推定結果が補正された場合、補正後の前記推定結果又は前記訂正情報に基づき前記操作対象オブジェクトの前記状態値を更新するプログラム。
  3.  請求項1又は2に記載のプログラムにおいて、
     前記推定部は、
      前記補正部により前記推定結果が補正された場合、補正後の前記推定結果と前記推定モデルとに基づき新たな前記推定結果を生成し、
      前記補正部により前記推定結果が補正されなかった場合、補正されなかった前記推定結果と前記推定モデルとに基づき新たな前記推定結果を生成するプログラム。
  4.  請求項1から3のいずれか1項に記載のプログラムにおいて、
     前記タイミング毎情報は、
      行及び列がゲーム空間のワールド座標系におけるx軸及びy軸に対応し、第q行目かつ第r列目の成分の値で前記ワールド座標系における座標(x,y)の状態を示す行列データで、前記ゲーム空間における前記操作対象オブジェクト各々の位置及び前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容を示すプログラム。
  5.  請求項4に記載のプログラムにおいて、
     前記行列データは、前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容として、前記プレイヤ端末のタッチパネルで検出されたスクリーン座標上のデータポイント群を示すプログラム。
  6.  請求項4に記載のプログラムにおいて、
     前記行列データは、前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容として、前記プレイヤ端末のタッチパネルで検出されたスクリーン座標上のデータポイント群から算出されるベクトルをエンコードした情報を示すプログラム。
  7.  請求項4から6のいずれか1項に記載のプログラムにおいて、
     前記行列データは、前記操作対象オブジェクト各々に対応してなされたプレイヤ入力の内容を示す情報を、前記操作対象オブジェクト各々の位置に対応付けてマッピングした前記ワールド座標系の状態を示すプログラム。
  8.  請求項4から7のいずれか1項に記載のプログラムにおいて、
     前記推定モデルは、
      前記行列データを時間軸に沿って格納したテンソルデータから取り出された第Nのタイミングに対応した前記行列データと、第Nのタイミングの後のタイミングに対応した前記行列データとを対応付けた学習データに基づく機械学習で生成されるプログラム。
  9.  請求項8に記載のプログラムにおいて、
     前記推定モデルは、
      前記行列データを時間軸に沿って格納したテンソルデータから取り出された第Nのタイミングに対応した前記行列データと、第(N+1)のタイミングに対応した前記行列データ乃至第(N+K)のタイミング(Kは2以上の整数)に対応した前記行列データ各々とを対応付けた学習データに基づく機械学習で生成されているプログラム。
  10.  請求項1から9のいずれか1項に記載のプログラムにおいて、
     前記タイミング毎情報は、プレイヤ入力の内容に加えて、ゲーム空間における前記操作対象オブジェクトの位置、前記ゲーム空間における非操作対象オブジェクトの位置、前記操作対象オブジェクトの特性、及び、前記非操作対象オブジェクトの特性の中の少なくとも1つをさらに示すプログラム。
  11.  請求項1から10のいずれか1項に記載のプログラムにおいて、
     複数の前記プレイヤ端末各々で実現された前記推定部は、同一の前記推定モデルに基づき前記推定結果を生成するプログラム。
  12.  所定時間毎の複数のタイミング各々に対応して複数のプレイヤ端末各々のタッチパネルで検出されたスクリーン座標上のタッチ位置を示すデータポイント群を、操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するテンソルデータ生成部と、
     前記テンソルデータから、第Nのタイミングに対応した前記行列データと、第Nのタイミングの後のタイミングに対応した前記行列データとを対応付けた学習データを取り出す学習データ生成部と、
     前記学習データに基づく機械学習により、あるタイミングに対応した前記行列データからその後のタイミングに対応した前記行列データの推定結果を生成する推定モデルを生成する推定モデル生成部と、
    を有するサーバ。
  13.  請求項12に記載のサーバにおいて、
     前記学習データ生成部は、前記テンソルデータから、第Nのタイミングに対応した前記行列データと、第(N+1)のタイミングに対応した前記行列データ乃至第(N+K)のタイミング(Kは2以上の整数)に対応した前記行列データ各々とを対応付けた学習データを取り出すサーバ。
  14.  請求項12又は13に記載のサーバにおいて、
     前記テンソルデータ生成部は、前記データポイント群に代えて、前記データポイント群から算出されるベクトルをエンコードしたエンコード情報を、前記操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するサーバ。
  15.  直接又はサーバを介して互いにデータ通信する複数のプレイヤ端末各々のコンピュータが、
     複数の操作対象オブジェクト各々に対応した状態値を記憶し、
     プレイヤ入力を受付け、
     あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第1のタイミングに対応した前記タイミング毎情報とに基づき、前記第1のタイミングより後の第2のタイミングに対応した前記推定結果を生成し、
     前記第2のタイミングに対応して受付けたプレイヤ入力の内容と、前記推定結果で示される前記第2のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断し、
     判断結果が不一致である場合、受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信し、
     他の前記プレイヤ端末が送信した前記訂正情報を取得し、
     前記訂正情報に基づき前記推定結果を補正し、
     前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する処理方法。
  16.  複数のプレイヤ端末と、サーバとを有し、
     前記プレイヤ端末は、
     複数の操作対象オブジェクト各々に対応した状態値を記憶する記憶部と、
     プレイヤ入力を受付ける受付部と、
     あるタイミングに対応して複数の前記プレイヤ端末各々が受付けたプレイヤ入力の内容を示すタイミング毎情報からその後のタイミングに対応した前記タイミング毎情報の推定結果を生成する推定モデルと、第1のタイミングに対応した前記タイミング毎情報とに基づき、前記第1のタイミングより後の第2のタイミングに対応した前記推定結果を生成する推定部と、
     前記第2のタイミングに対応して前記受付部が受付けたプレイヤ入力の内容と、前記推定結果で示される前記第2のタイミングに対応したプレイヤ入力の推定内容とが一致するか判断する判断部と、
     前記判断部の判断結果が不一致である場合、前記受付部が受付けたプレイヤ入力の内容を示す訂正情報を外部装置に送信する訂正情報送信部と、
     他の前記プレイヤ端末が送信した前記訂正情報を取得する訂正情報取得部と、
     前記訂正情報に基づき前記推定結果を補正する補正部と、
     前記推定結果に基づき前記操作対象オブジェクトの前記状態値を更新する更新部と、
    を有し、
     前記サーバは、前記プレイヤ端末から前記訂正情報を受信すると、受信した前記訂正情報を他の前記プレイヤ端末に送信する送信部を有する処理システム。
  17.  請求項16に記載の処理システムにおいて、
     前記サーバは、
      所定時間毎の複数のタイミング各々に対応して複数のプレイヤ端末各々のタッチパネルで検出されたスクリーン座標上のタッチ位置を示すデータポイント群を、前記操作対象オブジェクト各々の位置に対応付けてマッピングしたワールド座標系の状態を示す行列データを前記所定時間毎に生成し、前記行列データを時間軸に沿って格納したテンソルデータを生成するテンソルデータ生成部と、
      前記テンソルデータから、第Nのタイミングに対応した前記行列データと、第Nのタイミングの直後の第(N+1)のタイミングに対応した前記行列データとを対応付けた学習データを取り出す学習データ生成部と、
      前記学習データに基づく機械学習により、あるタイミングに対応した前記行列データからその後のタイミングに対応した前記行列データの推定結果を生成する推定モデルを生成する推定モデル生成部と、
    をさらに有し、
      前記送信部は、同一の前記推定モデルを複数の前記プレイヤ端末に送信する処理システム。
PCT/JP2020/045411 2019-12-10 2020-12-07 サーバ、処理システム、処理方法及びプログラム WO2021117660A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202080085574.7A CN114845789A (zh) 2019-12-10 2020-12-07 服务器、处理系统、处理方法和程序
US17/836,324 US20220297001A1 (en) 2019-12-10 2022-06-09 Server, processing system, processing method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019222683A JP6748281B1 (ja) 2019-12-10 2019-12-10 サーバ、処理システム、処理方法及びプログラム
JP2019-222683 2019-12-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/836,324 Continuation US20220297001A1 (en) 2019-12-10 2022-06-09 Server, processing system, processing method, and program

Publications (1)

Publication Number Publication Date
WO2021117660A1 true WO2021117660A1 (ja) 2021-06-17

Family

ID=72146247

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/045411 WO2021117660A1 (ja) 2019-12-10 2020-12-07 サーバ、処理システム、処理方法及びプログラム

Country Status (4)

Country Link
US (1) US20220297001A1 (ja)
JP (1) JP6748281B1 (ja)
CN (1) CN114845789A (ja)
WO (1) WO2021117660A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112657181B (zh) * 2020-12-21 2024-09-10 北京像素软件科技股份有限公司 状态同步方法和装置
JP7021382B1 (ja) * 2021-04-19 2022-02-16 株式会社Cygames ユーザが選択するアクションを予測するための学習済みモデルを生成するための方法等

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998014898A2 (en) * 1996-10-01 1998-04-09 Philips Electronics N.V. Latency effect in multi-player video game reduced by surrogate agent
WO2008126701A1 (ja) * 2007-04-05 2008-10-23 Hewlett-Packard Development Company, L.P. データ伝送システムおよびその方法
JP6389581B1 (ja) * 2018-05-16 2018-09-12 株式会社Cygames プログラム、電子装置、及び方法
JP6438612B1 (ja) * 2018-03-20 2018-12-19 株式会社Cygames ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8142289B2 (en) * 2006-06-30 2012-03-27 Sony Computer Entertainment America Llc Dead reckoning in a gaming environment
JP2013127683A (ja) * 2011-12-16 2013-06-27 Namco Bandai Games Inc プログラム、情報記憶媒体、端末、サーバ及びネットワークシステム
US20140365412A1 (en) * 2012-02-01 2014-12-11 Yosef Mizrachi Method and system for improving prediction in online gaming
JP5906345B1 (ja) * 2015-08-05 2016-04-20 株式会社Cygames 操作履歴に基づいてタッチ対象を予測するプログラム、電子装置、システム及び制御方法
US11717748B2 (en) * 2019-11-19 2023-08-08 Valve Corporation Latency compensation using machine-learned prediction of user input

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998014898A2 (en) * 1996-10-01 1998-04-09 Philips Electronics N.V. Latency effect in multi-player video game reduced by surrogate agent
WO2008126701A1 (ja) * 2007-04-05 2008-10-23 Hewlett-Packard Development Company, L.P. データ伝送システムおよびその方法
JP6438612B1 (ja) * 2018-03-20 2018-12-19 株式会社Cygames ゲームプログラムを検査するためのシステム、方法、プログラム、機械学習支援装置、及びデータ構造
JP6389581B1 (ja) * 2018-05-16 2018-09-12 株式会社Cygames プログラム、電子装置、及び方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HONGKI LEE: "Netoge, stocktrading ... Think about delays that can't be excused with "I'm sorry"", SOFTWARE DESIGN, 18 April 2011 (2011-04-18), pages 50 - 59 *
J. SMED: "Algorithms and Networking for Computer Gam, first edition", BORN DIGITAL, INC.,, 25 October 2007 (2007-10-25), pages 164 - 167 *

Also Published As

Publication number Publication date
JP2021090601A (ja) 2021-06-17
JP6748281B1 (ja) 2020-08-26
CN114845789A (zh) 2022-08-02
US20220297001A1 (en) 2022-09-22

Similar Documents

Publication Publication Date Title
US11010921B2 (en) Distributed pose estimation
EP3760287B1 (en) Method and device for generating video frames
JP7258400B6 (ja) ビデオデータ処理方法、ビデオデータ処理装置、コンピュータ機器、及びコンピュータプログラム
US11373384B2 (en) Parameter configuration method, apparatus, and device for three-dimensional face model, and storage medium
CN107958480B (zh) 图像渲染方法、装置及存储介质
WO2021117660A1 (ja) サーバ、処理システム、処理方法及びプログラム
EP3791573B1 (en) Puppeteering a remote avatar by facial expressions
US10338879B2 (en) Synchronization object determining method, apparatus, and system
US10848597B1 (en) System and method for managing virtual reality session technical field
JP2023504609A (ja) ハイブリッドストリーミング
US20140187332A1 (en) Video processing using concurrent outcome simulation threads
KR20230053719A (ko) 멀티플레이어 게임에서 장거리 객체의 타겟팅 개선
WO2022166483A1 (zh) 虚拟道具控制方法、装置、终端、存储介质及计算机程序产品
US12007502B2 (en) RF scene generation simulation with external maritime surface
JPWO2019239462A1 (ja) 学習装置、画像生成装置、学習方法、画像生成方法及びプログラム
CN115359166B (zh) 一种图像生成方法、装置、电子设备和介质
CN115803782A (zh) 具有实时深度图的感受几何结构的增强现实效果
CN115205456A (zh) 三维模型构建方法、装置、电子设备及存储介质
CN116630375A (zh) 一种图像中关键点的处理方法和相关装置
WO2019244200A1 (ja) 学習装置、画像生成装置、学習方法、画像生成方法及びプログラム
JPWO2019224947A1 (ja) 学習装置、画像生成装置、学習方法、画像生成方法及びプログラム
US11954248B1 (en) Pose prediction for remote rendering
CN115984668A (zh) 抓取点预测模型训练方法、物体抓取点确定方法及装置
CN114445535A (zh) 一种粒子特效处理方法、装置、设备、介质及产品
CN114063465A (zh) 一种分布式对抗仿真系统视景抖动消除方法及视景节点

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20899829

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20899829

Country of ref document: EP

Kind code of ref document: A1