WO2024047262A1 - Online interaction method that eliminates the effect of network latency - Google Patents

Online interaction method that eliminates the effect of network latency Download PDF

Info

Publication number
WO2024047262A1
WO2024047262A1 PCT/ES2022/070547 ES2022070547W WO2024047262A1 WO 2024047262 A1 WO2024047262 A1 WO 2024047262A1 ES 2022070547 W ES2022070547 W ES 2022070547W WO 2024047262 A1 WO2024047262 A1 WO 2024047262A1
Authority
WO
WIPO (PCT)
Prior art keywords
participant
server
ring buffer
previous
game
Prior art date
Application number
PCT/ES2022/070547
Other languages
Spanish (es)
French (fr)
Inventor
Vicente AGILAR ROSELLO
Fernando Rodriguez Gonzalez
Original Assignee
Take Profit Gaming, S.L.
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 Take Profit Gaming, S.L. filed Critical Take Profit Gaming, S.L.
Priority to PCT/ES2022/070547 priority Critical patent/WO2024047262A1/en
Publication of WO2024047262A1 publication Critical patent/WO2024047262A1/en

Links

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/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an MPEG-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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • 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/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Definitions

  • the technical field of the present invention is that of real-time interaction on the Internet of different systems with a server on which games and leisure applications, betting, contests, etc. are executed.
  • the invention applies, in particular, to real-time timing games, such as Chronogame.
  • patent US2021226877A1 describes a cloud gaming system that implements a method consisting of monitoring to determine the latency of the network and, depending on the detected latency, increasing the frame rate to compensate. those networks with a lot of latency, or reduce said frame rate to take advantage of the networks with better performance.
  • patent WO 2020/072183A1 that describes a device that includes a processor capable of determining the latency corresponding to the data stream sent to each player and inducing greater latency in those players whose input data stream had lower latency to reduce the latency difference between players.
  • patent US010722788B2 proposes to balance the conditions of players in certain online multiplayer games through a specific latency management server that, among other functionalities, adds latency to certain communications to balance response times between all users.
  • the object of the present invention proposes a method of interaction of systems or participants on the Internet, especially applicable to real-time timing games, which solves the technical problem posed, that is: guaranteeing that players with different network characteristics play on equal terms despite each player's different network latency, as described below.
  • Method of interaction of systems or participants on the Internet with a real-time timing application executed on a server characterized in that the application creates and sends to each participant, once their authentication has been completed, an independent channel for the transmission of messages or packets. data encryption.
  • the aforementioned channel is created for each participant through a standard HTTPS connection, between the participant and the server.
  • the encryption of messages, for its part, is carried out end-to-end between the server and the participant with the latter's certificate.
  • each participant has their own timeline, regardless of whether their latency changes at each instant and independent of the timeline of the remaining participants.
  • each participant is notified when their latency is greater than 500 ms. This prevents long waits to end each turn or round of interaction and maintains a certain speed in the interactions.
  • the application comprises an aggregate variable that defines the speed or rate in milliseconds at which encrypted messages are sent, which may be assigned randomly or manually.
  • the Random Number Generator or RNG 1 generates the number 1292 as the target and the value 2 as the speed, every 2 milliseconds we will send a message with the decrement.
  • the number 1292 means that each participant has to time 12 seconds (or random units) and 92 hundredths of a second (or random units) as accurately as possible.
  • Figure 1 shows a schematic representation of the latency differences between the participants, the real time elapsed in milliseconds, and the structure of boxes or frames (F1-F9) into which the ring buffer created in channel (C) is divided. each participant.
  • a channel (C) of type websocket or socket (depending on the client architecture) is established with each connected player over SSL/TLS, through which encrypted messages will be sent.
  • the game mode starts on the server (GameServer) that receives these 2 numbers as parameters.
  • the GameServer which is a backend application server type, creates for each player a ring buffer divided into squares or frames (F1-F9). In each frame, the encrypted message containing the number corresponding to the increment or decrement cycle is written successively until the ring buffer is filled.
  • a ring buffer is a development standard used to define a circular queue of data, as illustrated in the following image:
  • the size of the ring buffer is the same as the target number and the number of squares or frames (F1-F9) of the ring buffer is equal to the number of cycles of increment or decrement of time determined by the server (GameServer) .
  • GameServer the server
  • a ring buffer of 1000 cells or frames (F1-F9) is created and the The increment cycle that corresponds to writing in each of said boxes or frames is sent every 10 milliseconds, starting the game at 0 and ending at 1000, unless the participants press the stop button first.
  • the ring buffer is made up of a timer, which is the program in charge of writing the corresponding encrypted message in the next free box or frame of the buffer, and the websocket, which is the channel (C) created between the server and each participant and Its function is to read the first available encrypted message and send it to the participant.
  • a timer which is the program in charge of writing the corresponding encrypted message in the next free box or frame of the buffer
  • the websocket which is the channel (C) created between the server and each participant and Its function is to read the first available encrypted message and send it to the participant.
  • the participant receives, regardless of its latency, the encrypted message that contains the increment or decrement cycle in the corresponding box or frame of the buffer and with this is on equal terms with the rest. • Once the encrypted message containing the increment or decrement cycle is received in the corresponding box or frame of the buffer, a confirmation notice is produced and the server is marked as processed.
  • GameServer verifies the signature, the real time versus the time sent so that the latency does not exceed 500 ms and that the notified box or frame corresponds to the last message received in the buffer.
  • the message that contains the cycle of increment or decrement of time that corresponds to the game is sent to the participant in an encrypted manner, accompanied by a hash and time stamp, to guarantee its integrity, occupying the corresponding box or frame within of the ring buffer.
  • the present invention it is possible to neutralize the harmful effect that the different network latency of the participants causes in a real-time timing game, such as Chronogame, guaranteeing equal conditions in the game, and without requiring action. directly on latency.

Abstract

The invention relates to a method for the interaction of two or more user systems on the Internet with a real-time timekeeping application run on a server, characterised in that the application creates and sends to each participant an independent channel (C) for transmitting encrypted data packets. The server (GameServer) creates in the channel (C) a data storage space (Ring Buffer), the size of which is equal to the target number, which is divided into boxes or frames (F1-F9), each of which contains a time increment or decrement cycle determined by the server.

Description

DESCRIPCION DESCRIPTION
Método de interacción online eliminando el efecto de la latencia de red Online interaction method eliminating the effect of network latency
Sector de la técnica Technical sector
El campo técnico de la presente invención es el de la interacción en tiempo real en internet de distintos sistemas con un servidor en el que se ejecutan juegos y aplicaciones de ocio, apuestas, concursos, etc. La invención se aplica, en particular, a juegos de cronometraje en tiempo real, tales como Chronogame. The technical field of the present invention is that of real-time interaction on the Internet of different systems with a server on which games and leisure applications, betting, contests, etc. are executed. The invention applies, in particular, to real-time timing games, such as Chronogame.
Estado de la técnica State of the art
Existen numerosas aplicaciones que permiten la interacción en tiempo real en internet, por ejemplo, de sistemas de compra mediante subasta. Sin embargo, estos sistemas resultan incompatibles para aplicaciones en donde la sincronización de la interacción debe ser instantánea o cuasi instantánea y los diversos sistemas participantes en la interacción participan a través de servidores con muy distinto tiempo de interacción con el servidor principal de la aplicación. Esto es lo que se denomina latencia de red, que es el retraso de comunicación existente entre los distintos participantes y el servidor en donde se ejecuta la aplicación. Cuando la latencia de red difiere entre los participantes, los comandos recibidos en el servidor de la aplicación no se reciben en el mismo orden en que han sido ejecutados, y es posible que se cree una distorsión o discrepancia entre la ejecución de los comandos en tiempo real y la recepción de los mismos en el servidor. En aplicaciones de entretenimiento, apuestas o subastas, este hecho produce que los ganadores no sean justos ganadores, sino que el resultado se vea condicionado por pequeñas diferencias de latencia entre los participantes y el servidor de la aplicación. Cuando estas diferencias alcanzan el orden de los milisegundos, el resultado final puede verse afectado por las diferentes latencias de los participantes. Diversos han sido los sistemas empleados hasta la fecha para compensar o corregir las diferencias de latencia. Por ejemplo, la patente US2021226877A1 describe un sistema de juego en la nube que implementa un método consistente en realizar un moni- toreo para determinar la latencia de la red y, en función de cuál sea la latencia detectada, incrementar la frecuencia de imagen para compensar aquellas redes con mucha latencia, o bien reducir dicha frecuencia de imagen para aprovechar las redes con mejor rendimiento. There are numerous applications that allow real-time interaction on the Internet, for example, auction purchasing systems. However, these systems are incompatible for applications where the synchronization of the interaction must be instantaneous or quasi-instantaneous and the various systems participating in the interaction participate through servers with very different interaction times with the main server of the application. This is what is called network latency, which is the communication delay between the different participants and the server where the application is executed. When network latency differs between participants, commands received on the application server are not received in the same order in which they were executed, and a distortion or discrepancy may be created between the execution of commands in time. actual and their reception on the server. In entertainment, betting or auction applications, this fact means that the winners are not fair winners, but rather the result is conditioned by small latency differences between the participants and the application server. When these differences reach the order of milliseconds, the final result can be affected by the different latencies of the participants. Various systems have been used to date to compensate or correct latency differences. For example, patent US2021226877A1 describes a cloud gaming system that implements a method consisting of monitoring to determine the latency of the network and, depending on the detected latency, increasing the frame rate to compensate. those networks with a lot of latency, or reduce said frame rate to take advantage of the networks with better performance.
Otra solución frecuentemente utilizada consiste en penalizar a los usuarios cuyas redes ofrecen un mejor rendimiento, induciendo la latencia en las mismas hasta aproximarla a la del jugador que sufre mayor latencia. Así, la patente WO 2020/072183A1 que describe un dispositivo que incluye un procesador capaz de determinar la latencia correspondiente al flujo de datos enviado a cada jugador e inducir una mayor latencia en aquellos jugadores cuyo flujo de datos de entrada presentaban menor latencia para reducir la diferencia de latencia entre jugadores. De un modo similar, la patente US010722788B2 propone equilibrar las condiciones de los jugadores en determinados juegos multijugador online mediante un servidor específico de gestión de latencias que, entre otras funcionalidades, añade latencia a determinadas comunicaciones para equilibrar los tiempos de respuesta entre todos los usuarios. Another frequently used solution consists of penalizing users whose networks offer better performance, inducing their latency until it approximates that of the player who suffers the highest latency. Thus, the patent WO 2020/072183A1 that describes a device that includes a processor capable of determining the latency corresponding to the data stream sent to each player and inducing greater latency in those players whose input data stream had lower latency to reduce the latency difference between players. In a similar way, patent US010722788B2 proposes to balance the conditions of players in certain online multiplayer games through a specific latency management server that, among other functionalities, adds latency to certain communications to balance response times between all users.
Las soluciones descritas, sin embargo, no solucionan el problema que plantean los juegos de cronometraje en tiempo real, como Chronogame, en los que lo que se necesita no es reducir o minimizar la latencia sino neutralizar totalmente su efecto para garantizar que la igualdad de condiciones entre los jugadores sea real y efectiva. Ello además de que la latencia viene en ocasiones provocada por otros factores ajenos a la implementación o ejecución del propio juego y por tanto difíciles de controlar, tales como la propia infraestructura de red del usuario, o la distancia (tanto física como lógica) entre el servidor desde donde se ejecuta el juego y el dispositivo del usuario. Esto hace que la solución en juegos de cronometraje en tiempo real no pueda basarse en la gestión de la latencia. Para superar los inconvenientes descritos, el objeto de la presente invención propone un método de interacción de sistemas o participantes en internet, especialmente aplicable a juegos de cronometraje en tiempo real, que resuelve el problema técnico planteado, esto es: garantizar que los jugadores con distintas características de red jueguen en igualdad de condiciones a pesar de la diferente latencia de red de cada jugador, de la forma que se describe a continuación. The solutions described, however, do not solve the problem posed by real-time timing games, such as Chronogame, where what is needed is not to reduce or minimize latency but to completely neutralize its effect to ensure that a level playing field between the players is real and effective. This is in addition to the fact that latency is sometimes caused by other factors unrelated to the implementation or execution of the game itself and therefore difficult to control, such as the user's own network infrastructure, or the distance (both physical and logical) between the server from which the game is run and the user's device. This means that the solution in real-time timing games cannot be based on latency management. To overcome the drawbacks described, the object of the present invention proposes a method of interaction of systems or participants on the Internet, especially applicable to real-time timing games, which solves the technical problem posed, that is: guaranteeing that players with different network characteristics play on equal terms despite each player's different network latency, as described below.
Descripción resumida de la invención Summary description of the invention
Método de interacción de sistemas o participantes en internet con una aplicación de cronometraje en tiempo real ejecutada en un servidor, caracterizado porque la aplicación crea y envía a cada participante, una vez realizada su autenticación, un canal independiente para la transmisión de los mensajes o paquetes cifrados de datos. Method of interaction of systems or participants on the Internet with a real-time timing application executed on a server, characterized in that the application creates and sends to each participant, once their authentication has been completed, an independent channel for the transmission of messages or packets. data encryption.
El citado canal se crea para cada participante a través de una conexión HTTPS estándar, entre el participante y el servidor. El cifrado de los mensajes, por su parte, se realiza end-to-end entre el servidor y el participante con el certificado de este último. The aforementioned channel is created for each participant through a standard HTTPS connection, between the participant and the server. The encryption of messages, for its part, is carried out end-to-end between the server and the participant with the latter's certificate.
Con un método como el anterior, cada participante tiene su propia línea de tiempo, independientemente de que su latencia cambie en cada instante e independiente de la línea de tiempo de los restantes participantes. With a method like the previous one, each participant has their own timeline, regardless of whether their latency changes at each instant and independent of the timeline of the remaining participants.
Opcionalmente, se notifica a cada participante cuando su latencia es superior a 500 ms. Con esto se evita que haya esperas de tiempo elevadas para finalizar cada turno o ronda de interacción y se consigue mantener cierta velocidad en las interacciones. Optionally, each participant is notified when their latency is greater than 500 ms. This prevents long waits to end each turn or round of interaction and maintains a certain speed in the interactions.
Preferiblemente, la aplicación comprende una variable agregada que define la velocidad o ritmo en milisegundos en el que se envían los mensajes cifrados, que puede asignarse aleatoriamente o manualmente. Por ejemplo, en una aplicación de cronometraje en tiempo real, si el Random Number Generator o RNG1 nos genera el número 1292 como objetivo y el valor 2 como velocidad, cada 2 milisegundos enviaremos un mensaje con el decremento. El número 1292 significa que cada participante tiene que cronometrar 12 segundos (o unidades aleatorias) y 92 centésimas de segundo (o unidades aleatorias) con la mayor precisión posible. Preferably, the application comprises an aggregate variable that defines the speed or rate in milliseconds at which encrypted messages are sent, which may be assigned randomly or manually. For example, in a real-time timing application, if the Random Number Generator or RNG 1 generates the number 1292 as the target and the value 2 as the speed, every 2 milliseconds we will send a message with the decrement. The number 1292 means that each participant has to time 12 seconds (or random units) and 92 hundredths of a second (or random units) as accurately as possible.
Esta velocidad cambiará en cada modo de juego y cada llamada al RNG. This speed will change with each game mode and each RNG call.
Breve descripción de las figuras Brief description of the figures
Para complementar la descripción que se está realizando y con objeto de ayudar a una mejor comprensión de las características de la invención, se acompaña a la presente memoria descriptiva, como parte integrante de la misma, unos dibujos en los que con carácter ilustrativo y no limitativo se ha representado lo siguiente: To complement the description that is being made and in order to help a better understanding of the characteristics of the invention, this descriptive report is accompanied, as an integral part thereof, by some drawings in which, with an illustrative and non-limiting nature, The following has been represented:
La Figura 1 muestra una representación esquemática de las diferencias de latencias entre los participantes, el tiempo real transcurrido en milisegundos, y la estructura de casillas o frames (F1-F9) en que se divide el ring buffer creado en el canal (C) de cada participante. Figure 1 shows a schematic representation of the latency differences between the participants, the real time elapsed in milliseconds, and the structure of boxes or frames (F1-F9) into which the ring buffer created in channel (C) is divided. each participant.
Descripción detallada de la invención Detailed description of the invention
A continuación, se describen los pasos del método de interacción utilizado en una aplicación de cronometraje en tiempo real como ChronoGame: Below are the steps of the interaction method used in a real-time timing application like ChronoGame:
• Se generan 2 números aleatorios para la partida o Utilizados para determinar el número objetivo y el ritmo o velocidad a • 2 random numbers are generated for the game o Used to determine the target number and the pace or speed at
1 https://www.kernel.org/doc/html/v4.14/crvpto/api-rnq.html la que se contabilizará cada ciclo de incremento de tiempo (desde 0 hasta el número objetivo) o bien cada ciclo de decremento de tiempo (desde el número objetivo hasta 0) determinados por el servidor del juego (GameServer) para la partida 1 https://www.kernel.org/doc/html/v4.14/crvpto/api-rnq.html which will be counted each cycle of time increase (from 0 to the target number) or each cycle of time decrease (from the target number to 0) determined by the game server (GameServer) for the game
• Se establece un canal (C) de tipo websocket o socket (dependiendo de la arquitectura del cliente) con cada jugador conectado sobre SSL/TLS, a través del cual se enviarán los mensajes cifrados. • A channel (C) of type websocket or socket (depending on the client architecture) is established with each connected player over SSL/TLS, through which encrypted messages will be sent.
• Se inicia el modo del juego en el servidor (GameServer) que recibe como parámetros estos 2 números. • The game mode starts on the server (GameServer) that receives these 2 numbers as parameters.
• Basándose en dichos 2 números, el GameServer, que es del tipo servidor de aplicación backend, crea para cada jugador un ring buffer dividido en casillas o frames (F1-F9). En cada frame se escribe el mensaje cifrado que contiene el número correspondiente al ciclo de incremento o decremento, de forma sucesiva hasta llenar el ring buffer. o Un ring buffer es un estándar de desarrollo utilizado para definir una cola circular de datos, tal como ¡lustra la siguiente imagen:
Figure imgf000007_0001
• Based on these 2 numbers, the GameServer, which is a backend application server type, creates for each player a ring buffer divided into squares or frames (F1-F9). In each frame, the encrypted message containing the number corresponding to the increment or decrement cycle is written successively until the ring buffer is filled. o A ring buffer is a development standard used to define a circular queue of data, as illustrated in the following image:
Figure imgf000007_0001
Modelo Ring Buffer o El tamaño del ring buffer es el mismo que el número objetivo y el número de casillas o frames (F1-F9) del ring buffer es igual al número de ciclos de incremento o decremento de tiempo determinados por el servidor (GameServer).
Figure imgf000007_0002
o Por ejemplo, si el número objetivo es 1000 (10 segundos y 00 centésimas), la velocidad asignada es 10 y el ciclo de incremento es de 1 centésima, se crea un ring buffer de 1000 casillas o frames (F1-F9) y el ciclo de incremento que corresponde escribir en cada una de dichas casillas o frames es enviado cada 10 milisegundos, comenzando la partida en 0 y terminando en 1000, a menos que los participantes pulsen antes el botón de parada. o El ring buffer se compone de un timer, que es el programa encargado de escribir en la siguiente casilla o frame libre del buffer el mensaje cifrado correspondiente, y el websocket, que es el canal (C) creado entre el servidor y cada participante y su función es leer el primer mensaje cifrado disponible y enviárselo al participante.
Ring Buffer Model o The size of the ring buffer is the same as the target number and the number of squares or frames (F1-F9) of the ring buffer is equal to the number of cycles of increment or decrement of time determined by the server (GameServer) .
Figure imgf000007_0002
o For example, if the target number is 1000 (10 seconds and 00 hundredths), the assigned speed is 10 and the increment cycle is 1 hundredth, a ring buffer of 1000 cells or frames (F1-F9) is created and the The increment cycle that corresponds to writing in each of said boxes or frames is sent every 10 milliseconds, starting the game at 0 and ending at 1000, unless the participants press the stop button first. o The ring buffer is made up of a timer, which is the program in charge of writing the corresponding encrypted message in the next free box or frame of the buffer, and the websocket, which is the channel (C) created between the server and each participant and Its function is to read the first available encrypted message and send it to the participant.
• El juego se inicia y cada mensaje cifrado que contiene el ciclo de decremento/incremento se envía a cada participante a través del canal seguro (C) creado para cada uno y se escribe en la correspondiente casilla o frame (F1-F9) del buffer circular asignado a cada participante. • The game starts and each encrypted message containing the decrement/increment cycle is sent to each participant through the secure channel (C) created for each one and is written in the corresponding box or frame (F1-F9) of the buffer. circular assigned to each participant.
• En el momento de escribir el mensaje cifrado que contiene el ciclo de incremento o decremento en la casilla o frame del buffer se firma para ese participante/ socket/ronda/firma anterior y tiempo del GameServer para garantizar la integridad del mensaje. • At the time of writing the encrypted message that contains the increment or decrement cycle in the box or frame of the buffer, it is signed for that participant/socket/round/previous signature and time of the GameServer to guarantee the integrity of the message.
• El participante recibe, independientemente de su latencia, el mensaje cifrado que contiene el ciclo de incremento o decremento en la correspondiente casilla o frame del buffer y con esto está en igualdad de condiciones que el resto. • Una vez recibido el mensaje cifrado que contiene el ciclo de incremento o decremento en la correspondiente casilla o frame del buffer se produce un aviso de confirmación y se marca en el servidor como procesado. • The participant receives, regardless of its latency, the encrypted message that contains the increment or decrement cycle in the corresponding box or frame of the buffer and with this is on equal terms with the rest. • Once the encrypted message containing the increment or decrement cycle is received in the corresponding box or frame of the buffer, a confirmation notice is produced and the server is marked as processed.
• Cuando el participante presiona el botón de “parada” se detiene el consumo de casillas o frames y se notifica la casilla o frame en el que se presionó el botón de “parada”, que coincidirá con el último procesado. • When the participant presses the “stop” button, the consumption of squares or frames stops and the square or frame in which the “stop” button was pressed is notified, which will coincide with the last processed one.
• El servidor (GameServer) verifica la firma, el tiempo real versus el enviado para que la latencia no supere los 500 ms y que la casilla o frame notificado corresponda con el último mensaje recibido en el buffer. • The server (GameServer) verifies the signature, the real time versus the time sent so that the latency does not exceed 500 ms and that the notified box or frame corresponds to the last message received in the buffer.
Por su parte, el mensaje que contiene el ciclo de incremento o decremento de tiempo que corresponde en la partida es enviado al participante de manera cifrada, acompañado de un hash y sello de tiempo, para garantizar su integridad, ocupando la casilla o frame correspondiente dentro del ring buffer. For its part, the message that contains the cycle of increment or decrement of time that corresponds to the game is sent to the participant in an encrypted manner, accompanied by a hash and time stamp, to guarantee its integrity, occupying the corresponding box or frame within of the ring buffer.
Podemos apreciar que con este mecanismo se respeta la igualdad de condiciones pese a que las latencias de los participantes sean diferentes. We can see that with this mechanism equality of conditions is respected even though the latencies of the participants are different.
Gracias a la presente invención, se consigue neutralizar el efecto nocivo que la diferente latencia de red de los participantes provoca en un juego de cronometraje en tiempo real, tal como Chronogame, garantizando la igualdad de condiciones en el juego, y sin que sea necesario actuar directamente sobre la latencia. Thanks to the present invention, it is possible to neutralize the harmful effect that the different network latency of the participants causes in a real-time timing game, such as Chronogame, guaranteeing equal conditions in the game, and without requiring action. directly on latency.

Claims

REIVINDICACIONES
1. Método de interacción de dos o más sistemas o participantes en internet con una aplicación de cronometraje en tiempo real ejecutada en un servidor, caracterizado porque la aplicación crea y envía a cada participante un canal independiente (C) para la transmisión de paquetes cifrados de datos. 1. Method of interaction of two or more systems or participants on the Internet with a real-time timing application executed on a server, characterized in that the application creates and sends to each participant an independent channel (C) for the transmission of encrypted packets of data.
2. Método según la reivindicación 1 , caracterizado porque el canal (C) creado a cada participante es de tipo websocket o socket conforme a protocolos SSL/TLS 2. Method according to claim 1, characterized in that the channel (C) created for each participant is of the websocket or socket type in accordance with SSL/TLS protocols.
3. Método según las reivindicaciones anteriores, caracterizado porque la aplicación genera aleatoriamente un número que constituye el objetivo del juego de cronometraje en tiempo real y una variable agregada que define el ritmo en el que se envían los paquetes cifrados de datos a cada participante 3. Method according to the previous claims, characterized in that the application randomly generates a number that constitutes the objective of the real-time timing game and an aggregate variable that defines the rate at which the encrypted data packets are sent to each participant.
4. Método según las reivindicaciones anteriores, caracterizado porque la aplicación genera un espacio de almacenamiento o buffer en el canal (C) creado para cada participante. 4. Method according to the previous claims, characterized in that the application generates a storage space or buffer in the channel (C) created for each participant.
5. Método según la reivindicación 4, caracterizado porque el espacio de almacenamiento o buffer es de tipo memoria circular de datos o ring buffer 5. Method according to claim 4, characterized in that the storage space or buffer is of the circular data memory or ring buffer type.
6. Método según la reivindicación 5, caracterizado porque el tamaño del ring buffer es igual al número que constituye el objetivo del juego 6. Method according to claim 5, characterized in that the size of the ring buffer is equal to the number that constitutes the objective of the game
7. Método según la reivindicación 5 y 6, caracterizado porque el espacio de almacenamiento o ring buffer se divide en casillas o frames (F1-F9). 7. Method according to claims 5 and 6, characterized in that the storage space or ring buffer is divided into boxes or frames (F1-F9).
8. Método según las reivindicaciones 5, 6 y 7, caracterizado porque el número de casillas o frames (F1-F9) del ring buffer es igual al número de ciclos de incremento o decremento de tiempo determinados por el servidor (GameServer). 8. Method according to claims 5, 6 and 7, characterized in that the number of boxes or frames (F1-F9) of the ring buffer is equal to the number of cycles of increment or decrement of time determined by the server (GameServer).
9. Método según las reivindicaciones anteriores, caracterizado porque, una vez iniciado el juego, cada ciclo de decremento o incremento de tiempo genera un mensaje cifrado que es enviado a los participantes a través del canal (C) creado para cada uno, ocupando la casilla o frame (F1-F9) correspondiente de su respectivo ring buffer. 9. Method according to the previous claims, characterized in that, once the game has started, each cycle of time decrement or increment generates an encrypted message that is sent to the participants through the channel (C) created for each one, occupying the box or frame (F1-F9) corresponding to its respective ring buffer.
10. Método según las reivindicaciones anteriores, caracterizado porque, en el momento en que el mensaje cifrado es escrito en la casilla o frame (F1-F9) correspondiente del ring buffer de cada participante, se realiza una certificación de la ronda, firma anterior y tiempo del servidor, para garantizar la integridad del mensaje. 10. Method according to the previous claims, characterized in that, at the moment in which the encrypted message is written in the corresponding box or frame (F1-F9) of the ring buffer of each participant, a certification of the round, previous signature and server time, to ensure message integrity.
11. Método según las reivindicaciones anteriores, caracterizado porque, cuando el participante presiona el botón de parada durante el juego, la aplicación detiene el consumo de casillas o frames (F1-F9) y notifica al servidor la casilla o frame en el que se presionó el botón de parada. 11. Method according to the previous claims, characterized in that, when the participant presses the stop button during the game, the application stops the consumption of squares or frames (F1-F9) and notifies the server of the square or frame in which it was pressed. the stop button.
PCT/ES2022/070547 2022-08-30 2022-08-30 Online interaction method that eliminates the effect of network latency WO2024047262A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/ES2022/070547 WO2024047262A1 (en) 2022-08-30 2022-08-30 Online interaction method that eliminates the effect of network latency

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/ES2022/070547 WO2024047262A1 (en) 2022-08-30 2022-08-30 Online interaction method that eliminates the effect of network latency

Publications (1)

Publication Number Publication Date
WO2024047262A1 true WO2024047262A1 (en) 2024-03-07

Family

ID=90098873

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2022/070547 WO2024047262A1 (en) 2022-08-30 2022-08-30 Online interaction method that eliminates the effect of network latency

Country Status (1)

Country Link
WO (1) WO2024047262A1 (en)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243349A1 (en) * 2003-05-30 2004-12-02 Segue Software, Inc. Method of non-intrusive analysis of secure and non-secure web application traffic in real-time
EP1768351A1 (en) * 2005-09-26 2007-03-28 Alcatel Equalized network latency for multi-player gaming
US20090125961A1 (en) * 2002-12-10 2009-05-14 Onlive, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
GB2462825A (en) * 2008-08-19 2010-02-24 Howler Technologies Ltd Processing packetised data using a Cell Broadband Engine architecture
WO2012092268A1 (en) * 2010-12-29 2012-07-05 Citrix Systems, Inc. Systems and methods for scalable n-core statistics aggregation
US20170228799A1 (en) * 2009-06-01 2017-08-10 Sony Interactive Entertainment America Llc Qualified Video Delivery Advertisement
US20200324195A1 (en) * 2017-12-28 2020-10-15 Bandai Namco Entertainment Inc. COMPUTER DEVlCE AND EVALUATION CONTROL METHOD
US20210093956A1 (en) * 2019-10-01 2021-04-01 Sony Interactive Entertainment Inc. Reducing latency in cloud gaming applications by overlapping reception and decoding of video frames and their display
US20210203750A1 (en) * 2019-12-31 2021-07-01 DraftKings, Inc. Systems and methods for multi-client content delivery
US20220052954A1 (en) * 2020-08-14 2022-02-17 Qualcomm Incorporated Network latency fairness in multi-user gaming platforms
WO2022073840A1 (en) * 2020-10-09 2022-04-14 Interdigital Vc Holdings France, Sas Latency management with deep learning based prediction in gaming applications

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090125961A1 (en) * 2002-12-10 2009-05-14 Onlive, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US20040243349A1 (en) * 2003-05-30 2004-12-02 Segue Software, Inc. Method of non-intrusive analysis of secure and non-secure web application traffic in real-time
EP1768351A1 (en) * 2005-09-26 2007-03-28 Alcatel Equalized network latency for multi-player gaming
GB2462825A (en) * 2008-08-19 2010-02-24 Howler Technologies Ltd Processing packetised data using a Cell Broadband Engine architecture
US20170228799A1 (en) * 2009-06-01 2017-08-10 Sony Interactive Entertainment America Llc Qualified Video Delivery Advertisement
WO2012092268A1 (en) * 2010-12-29 2012-07-05 Citrix Systems, Inc. Systems and methods for scalable n-core statistics aggregation
US20200324195A1 (en) * 2017-12-28 2020-10-15 Bandai Namco Entertainment Inc. COMPUTER DEVlCE AND EVALUATION CONTROL METHOD
US20210093956A1 (en) * 2019-10-01 2021-04-01 Sony Interactive Entertainment Inc. Reducing latency in cloud gaming applications by overlapping reception and decoding of video frames and their display
US20210203750A1 (en) * 2019-12-31 2021-07-01 DraftKings, Inc. Systems and methods for multi-client content delivery
US20220052954A1 (en) * 2020-08-14 2022-02-17 Qualcomm Incorporated Network latency fairness in multi-user gaming platforms
WO2022073840A1 (en) * 2020-10-09 2022-04-14 Interdigital Vc Holdings France, Sas Latency management with deep learning based prediction in gaming applications

Similar Documents

Publication Publication Date Title
WO2018223800A1 (en) Data processing method and device, storage medium, and electronic device
US6761636B2 (en) Real time data exchange system
US20200155944A1 (en) Distributed ledger tracking of event data
WO2020147608A1 (en) Interactive live-broadcasting method and apparatus, electronic device, and storage medium
US10004989B2 (en) Methods and apparatus for hiding latency in network multiplayer games
KR20190119453A (en) Apparatus, method AND cOMPUTER PROGRAM for playing game BETWEEN PLURALITY OF USERS and RECORDING RESULT
KR20210135495A (en) A method for generating random numbers in blockchain smart contracts
JP2019536541A (en) Notification method in virtual scene, related device, and computer storage medium
US10029183B2 (en) Fantasy sports method, system, and software
ES2951909T3 (en) A system and procedure for running a live interactive game
WO2024047262A1 (en) Online interaction method that eliminates the effect of network latency
JP2013118967A (en) Server device, administrative server system, program, and communication game system
CN112272580A (en) Synchronization of an online gaming environment with video streaming of a live event
JP2022043499A (en) Information processor, information processing method, and program
US11045730B1 (en) Systems and methods for IoT enabled arcade games
US11007444B2 (en) Player adjustment scoring system
WO2021115290A1 (en) Off-chain random number application method and device for blockchain game, and storage medium
JP2019122760A (en) Information processing device and program
CN109582389B (en) Message processing method, device, storage medium, processor and terminal
JP7089742B2 (en) Game system, server device, program
KR101569645B1 (en) Game executing method, game server and game system
JP6405479B1 (en) GAME SYSTEM, GAME TERMINAL, AND PROGRAM
JP2023527601A (en) Information processing method, device and electronic device in game
JP2014008349A (en) Communication destination determination device, game system, communication destination determination method, communication destination determination program
JP2005267347A (en) Virtual space sharing device

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: 22957272

Country of ref document: EP

Kind code of ref document: A1