ES2649095T3 - Aparato y método para presentación mejorada de objetos en una simulación interactiva distribuida - Google Patents

Aparato y método para presentación mejorada de objetos en una simulación interactiva distribuida Download PDF

Info

Publication number
ES2649095T3
ES2649095T3 ES12779502.9T ES12779502T ES2649095T3 ES 2649095 T3 ES2649095 T3 ES 2649095T3 ES 12779502 T ES12779502 T ES 12779502T ES 2649095 T3 ES2649095 T3 ES 2649095T3
Authority
ES
Spain
Prior art keywords
status information
information
visual
discrepancy
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12779502.9T
Other languages
English (en)
Inventor
David Scott ALDRIDGE
Luke Wilson Timmins
Christopher Charles John Butcher
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bungie Inc
Original Assignee
Bungie Inc
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 Bungie Inc filed Critical Bungie Inc
Application granted granted Critical
Publication of ES2649095T3 publication Critical patent/ES2649095T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • 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/34Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
    • 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/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • 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/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/577Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/407Data transfer via internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/408Peer to peer connection
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • A63F2300/5533Game data structure using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Child & Adolescent Psychology (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Un método para usar con múltiples dispositivos informáticos (111 y 142) conectados entre sí en una red (120) y cada uno ejecutando una porción de una simulación distribuida que comprende múltiples objetos, la porción ejecutándose en un primero (142) de los múltiples dispositivos informáticos (111 y 142) que controlan una porción de los múltiples objetos y que envían actualizaciones (152B) relacionadas con al menos un objeto de la porción de los múltiples objetos a un segundo (111) de los múltiples dispositivos informáticos (111 y 142), el método comprende: a) en el segundo dispositivo informático (111), recibir del primer dispositivo informático (142) una primera actualización (152B) que comprende información de estado relacionada con un primer objeto (253) de la porción de los múltiples objetos (252-254) controlados por el primer dispositivo informático (142); b) en el segundo dispositivo informático (111), generar y mostrar una representación visual del primer objeto (253) en un dispositivo de visualización (112) usando la información de estado relacionada con el primer objeto (253), el segundo dispositivo informático (111) teniendo información de estado visual (323) asociada al primer objeto (253) y a la representación visual; c) en el segundo dispositivo informático (111), recibir una segunda actualización (152B) que comprende información de estado del primer dispositivo informático (142), la segunda actualización habiendo sido recibida después de la primera actualización; d) en el segundo dispositivo informático (111), determinar información de estado previsto (311) para el primer objeto (253) según al menos en parte la información de estado de la primera actualización, la información de estado previsto (311) comprendiendo al menos un valor de velocidad; e) en el segundo dispositivo informático (111), determinar si la información de estado de la segunda actualización se relaciona con el primer objeto (253); f) cuando el segundo dispositivo informático (111) determina que la información de estado de la segunda actualización se relaciona con el primer objeto (253), establecer la información de estado previsto (311) igual a la información de estado de la segunda actualización; g) determinar una discrepancia entre la información de estado visual (323) y la información de estado previsto (311); h) cuando la discrepancia es mayor que un primer valor umbral, obtener un factor de escala de una tabla de normas (321), calcular un valor de choque según el factor de escala y la discrepancia, y modificar el al menos un valor de velocidad de la información de estado previsto (311) usando el valor de choque; i) cuando la discrepancia es mayor que un segundo valor umbral, modificar la información de estado visual (323) según al menos en parte la información de estado previsto (311); y j) modificar, por el segundo dispositivo informático (111), la representación visual del primer objeto (253) visualizado en el dispositivo de visualización (112) según al menos en parte la información de estado visual (323).

Description

5
10
15
20
25
30
35
40
45
50
DESCRIPCION
Aparato y metodo para presentation mejorada de objetos en una simulation interactiva distribuida Antecedentes de la invencion Campo de la invencion
La presente invencion se dirige, en general, a simulaciones interactivas distribuidas como, por ejemplo, aquellas empleadas en simuladores militares y juegos de ordenador con multiples jugadores que presentan un mundo virtual coherente a lo largo de multiples estaciones operador/jugador.
Descripcion de la tecnica relacionada
La simulacion interactiva distribuida es una forma popular para los videojuegos de hoy en dia, pero tiene sus origenes en las simulaciones militares como, por ejemplo, SIMNET en las decadas de 1980 y 1990. En las simulaciones interactivas distribuidas, se crea y comparte un mundo virtual entre multiples estaciones de ordenador, cada una de las cuales admite al menos un usuario con controles y al menos una visualization.
En algunas simulaciones, las estaciones comparten un reloj distribuido que provee una base temporal comun para cada una, por ejemplo, el conocido Protocolo de Hora en Red ("NTP", por sus siglas en ingles). Sin embargo, ello no se requiere. La simulacion distribuida avanza, en general (pero no necesariamente) de forma periodica (p.ej., 30 actualizaciones por segundo) y, en general (aunque no necesariamente) a la misma velocidad en cada estacion (p.ej., otras estaciones pueden ejecutarse a 60 actualizaciones por segundo).
Las estaciones tambien comparten un modelo del entorno, incluido el espacio aereo y el terreno. El terreno puede ser estatico, incluidos accidentes geograficos, edificios (que pueden incluir los interiores) y masas de agua. De manera alternativa, el terreno puede ser no estatico: p.ej., algunos o todos los edificios pueden estar danados, los accidentes geograficos pueden estar "marcados" (p.ej., con rastros de neumaticos, crateres o marcas de quemado) y similares. Dentro de este entorno, se colocan los objetos dinamicos simulados, incluidos, por ejemplo, vehiculos, personas, animales. La animation de dichos objetos dinamicos da la apariencia de vida a la simulacion.
En dichas simulaciones, cada estacion tiene una responsabilidad primaria del manejo de uno o mas objetos simulados. Para cada objeto manejado por una estacion, se computa un modelo detallado para cada incremento de hora local para determinar su comportamiento. Por ejemplo, el modelo detallado para un vehiculo todo terreno ("ATV", por sus siglas en ingles) puede aceptar la entrada de direction y pedal de un operador (en general, uno local para la estacion de manejo). El modelo detallado del ATV puede llevar a cabo calculos para simular una transmision automatica, la interaction del sistema de suspension del ATV con el terreno, la traction entre los neumaticos y la superficie del terreno y, quizas, el consumo de combustible, el sobrecalentamiento del motor, u otros detalles y fallos modelados. En general, mientras es crucial para un realismo adecuado, a cambio de la eficiencia, el modelado con este nivel de detalle solo necesita computarse por la estacion de manejo, los resultados del modelo detallado publicandose para las otras estaciones en la simulacion interactiva distribuida.
Es preciso notar que el operador del ATV puede ser un jugador humano, o el operador puede ser un programa de inteligencia artificial ("IA") que simula un aliado o enemigo donde otro jugador humano no se encuentra disponible o no se requiere. Cuando se usa, la IA es, efectivamente, solo un componente mas del modelo detallado; la estacion de manejo mantiene el estado y lleva a cabo la simulacion incremental requerida por la IA que conduce el ATV, pero las estaciones remotas solo reciben los resultados.
En algunos casos, los objetos simulados pueden ser complejos y articulados (como con figuras humanas, animales o alienigenas) que requieren una animacion compleja por un modelo cinematico, pero otros objetos pueden ser relativamente simples (p.ej., una caja o un proyectil), en cuyo caso se puede usar un modelo balistico mas simple.
Sin embargo, existen cuestiones relativas a compartir los resultados del modelado detallado, tambien llamados actualizaciones, desde la estacion de manejo. Por ejemplo, distribuir las actualizaciones a las estaciones remotas que no controlan el objeto lleva tiempo; y debido a dicha latencia, una actualization de un modelo siempre es information un poco "antigua". En una simulacion donde un reloj de simulacion distribuida se establece correctamente en todas las estaciones, cualquier actualizacion tendra la indication de tiempo en algun momento de la simulacion en el pasado, aunque, en general, reciente. Sin embargo, un sistema de mantenimiento de tiempo rigido puede introducir resonancias en los modelos que resultan en artefactos visuales. Ademas, mantener relojes precisos es, a veces, una fuente de complejidad innecesaria y, ocasionalmente, de error. Asimismo, en una red no confiable, las actualizaciones pueden perderse o retrasarse y llegar con latencia irregular. Ademas, las restricciones de ancho de banda y la cantidad de objetos en una simulacion pueden limitar el numero de actualizaciones que se pueden enviar para cada objeto, de modo
5
10
15
20
25
30
35
40
45
50
que las actualizaciones no se proveen a las estaciones remotas con la frecuencia con la que la estacion de manejo computa la simulation detallada.
En cada estacion, la visualization presenta el mundo virtual al jugador. La visualization se actualiza, en general, con mayor frecuencia en comparacion con la frecuencia con la que las actualizaciones llegan para los objetos manejados de forma remota, cambiar la visualizacion de los objetos manejados de forma remota con la misma frecuencia con la que las actualizaciones llegan haria parecer los objetos remotamente manejados bruscos y no realistas. Para aliviar esto, las actualizaciones de los objetos se asocian al tiempo al que corresponden y el receptor de las actualizaciones puede extrapolar como visualizar el objeto en momentos posteriores a la actualization.
Con el fin de lograr esto, la actualizacion debe representar el estado del objeto en un momento particular. El estado puede incluir, por ejemplo, la position y orientation del objeto (en general, aunque no necesariamente, incluidos seis ejes de coordenadas: X, Y, Z, cabeceo, balanceo y guinada) y otras propiedades que tienen diferentes valores (p.ej., si las luces delanteras estan encendidas, si el motor de un vehiculo esta echando humo, el momento en el cual una granada activa detonara). El momento particular corresponde al momento en el que el estado era actual.
Exactamente que incluye el estado de un objeto depende de la naturaleza del objeto. Para objetos articulados complejos, p.ej., un animal, el estado puede incluir articulaciones del esqueleto del objeto, o un indice en un ciclo de animation que resume dichas articulaciones.
En algunos casos, un objeto puede tener multiples modos de funcionamiento, p.ej. cuando un objeto "animal" esta vivo, puede ser dirigido por un ciclo de animacion, pero cuando el animal muere, como en una simulacion de caza, el modo de funcionamiento del cuerpo articulado se convierte en un modelo cinematico relajado. Por ejemplo, el cuerpo queda flacido, aunque las limitaciones impuestas por el esqueleto permanecen en control. Para los objetos que tienen multiples modos de control, el estado puede ademas incluir una identification del modo de control que se esta usando.
En la presente memoria descriptiva, "estado" puede incluir muchas propiedades diferentes de la posicion, orientacion fisica (rotation) solamente. Algunas de ellas como, por ejemplo, el indice en un ciclo de animacion, ciclos de caminata, etc., se pueden extrapolar de manera util para la prediction. Sin embargo, algunas propiedades como, por ejemplo, si las luces delanteras de un vehiculo estan encendidas, o la bocina esta pitando, se extrapolan solo de manera trivial. Por ejemplo, una vez que las luces estan encendidas, ellas permanecen encendidas hasta que una actualizacion diga que se apagan.
Un estado puede incluir tambien information util para extrapolar estados subsiguientes con exactitud mejorada, por ejemplo velocidades en ejes lineales o rotativos, y aceleraciones en ejes lineales o rotativos. Mientras se puede llevar a cabo una extrapolation sin tales indicios, por ejemplo derivando la velocidad como la diferencia en posicion en las dos ultimas actualizaciones dividida por la diferencia en tiempo de las dos ultimas actualizaciones, proveer velocidades o aceleraciones explicitas puede mejorar los resultados.
En la presente memoria descriptiva, "estado" puede incluir informacion de estado y/o uno o mas resultados de calculo obtenidos con respecto al estado.
Para cada iteration de la simulacion para un objeto manejado en una estacion, un nuevo estado resulta de las entradas del operador y de la ejecucion del modelo detallado, incluidos los valores de velocidad y/o aceleracion, si se proveen para cualquiera de los diferentes grados de libertad en el objeto.
Sin embargo, el estado de un objeto se envia desde la estacion de manejo a cada una de las otras estaciones con menor frecuencia que una vez por iteracion. Por ejemplo, si una estacion de manejo actualiza un modelo de un objeto treinta veces por segundo, las actualizaciones solo podrian enviarse a otras estaciones cinco veces por segundo, o incluso con menor frecuencia (p.ej., dos veces por segundo) si el objeto no es importante, esta lejos, es excepcionalmente coherente, o solo cambia lentamente, o si hay muchos objetos para actualizar y/o el ancho de banda de las comunicaciones es altamente limitado.
Segun las actualizaciones recibidas de la estacion de manejo, las tecnicas de extrapolacion proveen la mejor informacion disponible relativa al estado de un objeto manejado de forma remota y la mejor informacion disponible para predecir sus movimientos (al menos, para el futuro inmediato). Sin embargo, discontinuidades discordantes en el movimiento aparente pueden ocurrir cuando los estados extrapolados no han alcanzado o han superado sustancialmente el estado descrito en una actualizacion subsiguiente. Con frecuencia, ello ocurre porque un operador ha realizado un giro brusco, ha presionado los frenos, ha virado o dado un volantazo para evitar una colision, etc., que la extrapolacion de una actualizacion anterior no anticipa.
5
10
15
20
25
30
35
40
45
50
55
En el lenguaje de la simulacion, proveer el mejor calculo del estado actual del objeto es el trabajo de un "predictor" y es el trabajo de un "corrector" ocultar la discontinuidad aparente de los estados extrapolados de manera que sea lo mas esteticamente agradable posible.
Lamentablemente, los sistemas de predictor-corrector aplicados a la fecha no logran un comportamiento esteticamente agradable y aparentemente realista para una amplia diversidad de tipos de objeto, o para el mismo tipo de objeto, sino bajo una amplia variedad de condiciones. Dicha necesidad se puede satisfacer parcialmente por la tecnica de prediction de position de objetos ("dead reckoning' en ingles). Dicha tecnica se usa por los juegos en red y las herramientas de simulacion para mover objetos simulados entre las actualizaciones. La tecnica determina una posicion prevista de un objeto mediante el uso de su ultimo estado cinematico conocido (posicion, velocidad, aceleracion, orientation y velocidad angular). Las velocidades del objeto se pueden corregir, como se describe en las solicitudes de patente de Estados Unidos publicadas bajo los Nos. US20l0/241692 y US2002/142843. Pero dichas soluciones de la tecnica anterior no proveen una adaptation precisa de la reproduction al tipo y la dinamica de los objetos que se visualizaran. El resultado es un movimiento o comportamiento impredeciblemente brusco de un objeto manejado de forma remota. Ello puede hacer que los objetivos sean dificiles y frustrantes, para simulaciones donde apuntar y disparar a objetos sean los objetivos clave. De manera similar, puede hacer que seguir objetos manejados de forma remota sea dificil y frustrante en una simulacion de conduction o vuelo. Por consiguiente, existe la necesidad de una mejor forma de presentar los movimientos de un objeto manejado de manera remota en una simulacion interactiva distribuida. La presente solicitud provee esta y otras ventajas como sera aparente a partir de la siguiente description detallada y las figuras anexas.
Compendio de la invencion
Las realizaciones incluyen un metodo para presentar, de forma sustancialmente contemporanea, una simulacion distribuida en multiples dispositivos informaticos. Los multiples dispositivos informaticos incluyen un primer dispositivo informatico que ejecuta una primera portion de la simulacion distribuida. La primera portion controla un objeto. Los multiples dispositivos informaticos incluyen un segundo dispositivo informatico que ejecuta una segunda porcion de la simulacion distribuida. La segunda porcion genera una primera representation visual del objeto que puede visualizarse en un primer dispositivo de visualization. El segundo dispositivo informatico incluye un estado visual asociado al objeto y a la primera representacion visual. El estado visual incluye al menos un valor de parametro. El segundo dispositivo informatico recibe una actualization previa del primer dispositivo informatico incluido un estado previo asociado a una segunda representacion visual del objeto. El segundo dispositivo informatico genera un estado previsto del objeto segun al menos en parte el estado previo. El estado previsto incluye al menos una velocidad y al menos un valor de parametro. El segundo dispositivo informatico recibe una actualizacion que incluye un nuevo estado asociado a una tercera representacion visual del objeto del primer dispositivo informatico. El nuevo estado incluye al menos un valor de parametro. El segundo dispositivo informatico establece al menos un valor de parametro del estado previsto igual a al menos un valor de parametro del nuevo estado, y determina una discrepancia entre el al menos un valor de parametro del estado previsto y el al menos un valor de parametro del estado visual. Cuando la discrepancia es mayor que un primer valor umbral, el segundo dispositivo informatico modifica la al menos una velocidad del estado previsto. Cuando la discrepancia es mayor que un segundo valor umbral, el segundo dispositivo informatico modifica al menos un valor de parametro del estado visual segun al menos en parte el al menos un valor de parametro del estado previsto. El segundo dispositivo informatico reproduce una cuarta representacion visual del objeto segun al menos en parte el estado visual y muestra la cuarta representacion visual del objeto en el primer dispositivo de visualizacion.
La tercera representacion visual del objeto puede visualizarse por el primer dispositivo informatico en un segundo dispositivo de visualizacion, y la cuarta representacion visual del objeto puede visualizarse por el segundo dispositivo informatico en el primer dispositivo de visualizacion de manera sustancialmente contemporanea con la tercera representacion visual del objeto que muestra el primer dispositivo informatico en el segundo dispositivo de visualizacion.
En algunas realizaciones, el estado previsto es un primer estado previsto, y la discrepancia es una primera discrepancia. En dichas realizaciones, el segundo dispositivo informatico puede generar un segundo estado previsto (incluido al menos un valor de parametro) segun al menos en parte la al menos una velocidad del estado previsto. Cuando la segunda discrepancia es mayor que el segundo valor umbral, el segundo dispositivo informatico puede modificar el al menos un valor de parametro del estado visual segun al menos en parte el al menos un valor de parametro del segundo estado previsto. En dichas realizaciones, el segundo dispositivo informatico reproduce una quinta representacion visual del objeto segun al menos en parte el estado visual, y muestra la quinta representacion visual del objeto en el primer dispositivo de visualizacion.
El segundo dispositivo informatico puede obtener el primer valor umbral de un dispositivo de almacenamiento al que puede acceder el segundo dispositivo informatico. El objeto puede tener un tipo, y el primer valor umbral puede almacenarse en una tabla almacenada en el dispositivo de almacenamiento. En dichas realizaciones, el primer valor umbral se asocia al tipo del objeto en la tabla. En algunas realizaciones, el al menos un valor de parametro del nuevo estado incluye al menos una velocidad, y modificar la al menos una velocidad del estado previsto incluye obtener un
5
10
15
20
25
30
35
40
45
50
valor de choque asociado al tipo de objeto, y calcular la al menos una velocidad del estado previsto como una funcion del valor de choque, la discrepancia, y la al menos una velocidad del nuevo estado.
En algunas realizaciones, el al menos un valor de parametro del estado visual incluye al menos una velocidad, y el al menos un valor de parametro del estado previsto incluye al menos una velocidad. En dichas realizaciones, determinar la discrepancia entre el al menos un valor de parametro del estado previsto y el al menos un valor de parametro del estado visual puede incluir determinar una discrepancia entre la al menos una velocidad del estado previsto y la al menos una velocidad del estado visual. Cuando el al menos un valor de parametro del nuevo estado incluye al menos una velocidad, la al menos una velocidad del estado previsto puede establecerse en un valor igual a la al menos una velocidad del nuevo estado.
En algunas realizaciones, modificar el al menos un valor de parametro del estado visual segun al menos en parte el al menos un valor de parametro del estado previsto cuando la discrepancia es mayor que el segundo valor umbral incluye determinar si la discrepancia es mayor que un tercer valor umbral que es mas grande que el segundo valor umbral. Cuando se determina que la discrepancia es mayor que el tercer valor umbral, el segundo dispositivo informatico puede establecer el al menos un valor de parametro del estado visual igual al al menos un valor de parametro del estado previsto. El segundo dispositivo informatico puede determinar un estado mezclado cuando la discrepancia es menor que el tercer valor umbral. El estado mezclado se puede basar al menos en parte en el al menos un valor de parametro del estado visual y el al menos un valor de parametro del estado previsto. El estado mezclado puede incluir al menos un valor de parametro, y el al menos un valor de parametro del estado visual puede establecerse igual al al menos un valor de parametro del estado mezclado.
En algunas realizaciones, el al menos un valor de parametro del estado visual incluye al menos una de la information de position e informacion de orientation, y el al menos un valor de parametro del estado previsto incluye al menos una de la informacion de posicion e informacion de orientacion. En dichas realizaciones, determinar la discrepancia entre el al menos un valor de parametro del estado previsto y el al menos un valor de parametro del estado visual puede incluir determinar una discrepancia entre la al menos una de la informacion de posicion e informacion de orientacion del estado previsto y la al menos una de la informacion de posicion e informacion de orientacion del estado visual. Cuando el al menos un valor de parametro del nuevo estado incluye al menos una de la informacion de posicion e informacion de orientacion, la al menos una de la informacion de posicion e informacion de orientacion del estado previsto se puede establecer igual a la al menos una de la informacion de posicion e informacion de orientacion del nuevo estado.
La modification del al menos un valor de parametro del estado visual segun al menos en parte el al menos un valor de parametro del estado previsto cuando la discrepancia es mayor que el segundo valor umbral puede incluir determinar si la discrepancia es mayor que un tercer valor umbral, en donde el tercer valor umbral es mayor que el segundo valor umbral. Cuando se determina que la discrepancia es mayor que el tercer valor umbral, la al menos una de la informacion de posicion e informacion de orientacion del estado visual puede establecerse igual a la al menos una de la informacion de posicion e informacion de orientacion del estado previsto.
El objeto puede tener un tipo y el tercer valor umbral puede almacenarse en una tabla y asociarse al tipo de objeto en la tabla. El segundo dispositivo informatico puede obtener el tercer valor umbral de la tabla.
La modificacion del al menos un valor de parametro del estado visual segun al menos en parte el al menos un valor de parametro del estado previsto cuando la discrepancia es mayor que el segundo valor umbral puede incluir determinar un estado mezclado cuando la discrepancia es menor que el tercer valor umbral. El estado mezclado se puede basar al menos en parte en la al menos una de la informacion de posicion e informacion de orientacion del estado visual y la al menos una de la informacion de posicion e informacion de orientacion del estado previsto. En dichas realizaciones, el estado mezclado incluye al menos una de la informacion de posicion e informacion de orientacion. Despues de determinar el estado mezclado, la al menos una de la informacion de posicion e informacion de orientacion del estado visual puede establecerse igual a la al menos una de la informacion de posicion e informacion de orientacion del estado mezclado.
El estado mezclado puede determinarse al menos es parte segun uno o mas valores de parametro asociados al tipo de objeto en realizaciones en las cuales el objeto tiene un tipo. El segundo y tercer valores umbral pueden almacenarse en una tabla y asociarse al tipo de objeto en la tabla. En dichas realizaciones, el segundo dispositivo informatico puede obtener el segundo y tercer valores umbral de la tabla.
El al menos un valor de parametro del nuevo estado puede incluir un modo de control del objeto, y el segundo dispositivo informatico puede seleccionar al menos uno del segundo y tercer valores umbral de multiples primeros y segundos valores umbral segun al menos en parte el modo de control del objeto. La section se puede basar tambien al menos en parte en el tipo de objeto.
5
10
15
20
25
30
35
40
45
50
55
La modificacion del al menos un valor de parametro del estado visual segun al menos en parte el al menos un valor de parametro del estado previsto cuando la discrepancia es mayor que el segundo valor umbral puede incluir determinar un estado de colision local, y modificar del estado visual segun el estado de colision local. Si la simulacion distribuida incluye terreno, el segundo dispositivo informatico puede repetir la determinacion del estado de colision local y la modificacion del estado visual segun el estado de colision local hasta que el objeto no interpenetre sustancialmente el terreno.
La porcion de la simulacion distribuida que se ejecuta en el primer dispositivo informatico puede controlar una porcion de los multiples objetos y enviar actualizaciones relacionadas con al menos un objeto de la porcion de los multiples objetos al segundo dispositivo informatico. En dichas realizaciones, el segundo dispositivo informatico recibe, del primer dispositivo informatico, una actualization previa que incluye information de estado relacionada con un primer objeto de la porcion de los multiples objetos controlados por el primer dispositivo informatico. El segundo dispositivo informatico genera y muestra una primera representation visual del primer objeto segun al menos en parte la informacion de estado relacionada con el primer objeto. El segundo dispositivo informatico incluye informacion de estado visual asociada al primer objeto y a la primera representacion visual. El segundo dispositivo informatico recibe una nueva actualizacion que incluye informacion de estado del primer dispositivo informatico, la nueva actualizacion habiendo sido recibida despues de la actualizacion previa. El segundo dispositivo informatico determina la informacion de estado previsto para el primer objeto segun al menos en parte la informacion de estado de la actualizacion previa. La informacion de estado previsto incluye al menos un valor de velocidad. El segundo dispositivo informatico determina si la informacion de estado de la nueva actualizacion se relaciona con el primer objeto. Cuando la informacion de estado de la nueva actualizacion se relaciona con el primer objeto, el segundo dispositivo informatico establece al menos una porcion de la informacion de estado previsto igual a al menos una porcion de la informacion de estado de la nueva actualizacion. El segundo dispositivo informatico determina una discrepancia entre la informacion de estado visual y la informacion de estado previsto. Cuando la discrepancia es mayor que un primer valor umbral, el segundo dispositivo informatico modifica el al menos un valor de velocidad de la informacion de estado previsto, y cuando la discrepancia es mayor que un segundo valor umbral, el segundo dispositivo informatico modifica la informacion de estado visual segun al menos en parte la informacion de estado previsto. El segundo dispositivo informatico reproduce una segunda representacion visual del objeto segun al menos en parte la informacion de estado visual, y muestra la segunda representacion visual del objeto en el dispositivo de visualizacion.
En algunas realizaciones, la informacion de estado previsto es una primera informacion de estado previsto, y la discrepancia es una primera discrepancia. En dichas realizaciones, el segundo dispositivo informatico genera una segunda informacion de estado previsto segun al menos en parte la al menos una velocidad de la primera informacion de estado previsto, y determina una segunda discrepancia entre la informacion de estado visual y la segunda informacion de estado previsto. Cuando la segunda discrepancia es mayor que el segundo valor umbral, el segundo dispositivo informatico modifica la informacion de estado visual segun al menos en parte la segunda informacion de estado previsto. El segundo dispositivo informatico reproduce una tercera representacion visual del objeto segun al menos en parte la informacion de estado visual, y muestra la tercera representacion visual del objeto en el dispositivo de visualization.
En algunas realizaciones, la porcion de la simulacion distribuida que se ejecuta en el segundo dispositivo informatico controla una segunda porcion de los multiples objetos. En dichas realizaciones, el segundo dispositivo informatico envia actualizaciones relacionadas con al menos un objeto de la segunda porcion de los multiples objetos al primer dispositivo informatico. El segundo dispositivo informatico puede recibir entradas de usuario mediante un dispositivo de interfaz de usuario, que cambia el estado de un objeto seleccionado de la segunda porcion de los multiples objetos. El segundo dispositivo informatico puede crear una actualizacion que incluya informacion de estado relacionada con el objeto seleccionado, y enviar la actualizacion relacionada con el objeto seleccionado al primer dispositivo informatico. En algunas realizaciones, un servidor se conecta a los multiples dispositivos informaticos en la red. En dichas realizaciones, el segundo dispositivo informatico puede enviar actualizaciones relacionadas con al menos un objeto de la segunda porcion de los multiples objetos al servidor para reenviarlas asi a otros de los multiples dispositivos informaticos.
Algunas realizaciones incluyen un metodo en el cual el segundo dispositivo informatico recibe una actualizacion previa del primer dispositivo informatico. La actualizacion previa incluye informacion de estado relacionada con un primer objeto de la porcion de los multiples objetos controlados por el primer dispositivo informatico. El segundo dispositivo informatico genera y muestra una primera representacion visual del primer objeto segun al menos en parte la informacion de estado relacionada con el primer objeto. La informacion de estado visual se asocia al primer objeto y a la primera representacion visual. El segundo dispositivo informatico recibe una nueva actualizacion del primer dispositivo informatico despues de la actualizacion previa. La nueva actualizacion incluye informacion de estado. El segundo dispositivo informatico determina informacion de estado previsto para el primer objeto segun al menos en parte la informacion de estado de la actualizacion previa. El segundo dispositivo informatico determina si la informacion de estado de la nueva actualizacion se relaciona con el primer objeto y, cuando la informacion de estado de la nueva actualizacion se relaciona con el primer objeto, el segundo dispositivo informatico establece al menos una porcion de la informacion de estado previsto igual a al
5
10
15
20
25
30
35
40
45
50
55
menos una porcion de la informacion de estado de la nueva actualizacion. El segundo dispositivo informatico determina una discrepancia entre la informacion de estado visual y la informacion de estado previsto. Cuando la discrepancia es mayor que un primer valor umbral, el segundo dispositivo informatico establece al menos una porcion de la informacion de estado visual igual a al menos una porcion de la informacion de estado previsto. Cuando la discrepancia es menor que el primer valor umbral y mayor que el segundo valor umbral, el segundo dispositivo informatico determina informacion de estado mezclado segun al menos en parte la informacion de estado visual y la informacion de estado previsto, y establece al menos una porcion de la informacion de estado visual igual a al menos una porcion de la informacion de estado mezclado. El primer valor umbral es mayor que el segundo valor umbral. El segundo dispositivo informatico reproduce una segunda representation visual del primer objeto segun al menos en parte la informacion de estado visual; y muestra la segunda representacion visual del primer objeto en el dispositivo de visualization.
Algunas realizaciones incluyen un metodo para su uso con multiples dispositivos informaticos conectados entre si en una red y cada uno de los cuales ejecuta una porcion de una simulation distribuida incluidos multiples objetos. La porcion se ejecuta en un primero de los multiples dispositivos informaticos que controlan una primera porcion de los multiples objetos y envian actualizaciones relacionadas con al menos un objeto de la primera porcion de los multiples objetos a un segundo de los multiples dispositivos informaticos. La porcion se ejecuta en el segundo dispositivo informatico que controla una segunda porcion de los multiples objetos y que envia actualizaciones relacionadas con al menos un objeto de la segunda porcion de los multiples objetos al primer dispositivo informatico. El segundo dispositivo informatico reproduce una primera representacion visual de un primer objeto de la primera porcion de los multiples objetos, y una primera representacion visual de un segundo objeto de la segunda porcion de los multiples objetos. La primera representacion visual del primer objeto se asocia a la informacion de estado visual. El segundo dispositivo informatico recibe una entrada, mediante un dispositivo de entrada de usuario, que cambia la primera representacion visual del segundo objeto, y ocasionalmente recibe actualizaciones del primer dispositivo informatico utilizables por el segundo dispositivo informatico para modificar la primera representacion visual del primer objeto. Cada una de las actualizaciones recibidas del primer dispositivo informatico incluye informacion de estado relacionada con el primer objeto. Mientras la primera representacion visual del segundo objeto cambia, el segundo dispositivo informatico envia, ocasionalmente, actualizaciones al primer dispositivo informatico en la red. Las actualizaciones incluyen informacion de estado relacionada con el segundo objeto utilizable por el primer dispositivo informatico para modificar una segunda representacion visual del segundo objeto. El segundo dispositivo informatico ocasionalmente genera informacion de estado previsto para el primer objeto que incluye al menos una velocidad. Despues de recibir cada una de las actualizaciones en el segundo dispositivo informatico, el segundo dispositivo informatico establece la informacion de estado previsto igual a la informacion de estado de la actualizacion. El segundo dispositivo informatico determina una discrepancia entre la informacion de estado previsto y la informacion de estado visual asociadas a la primera representacion visual del primer objeto. Cuando la discrepancia es mayor que un primer valor umbral, el segundo dispositivo informatico actualiza la informacion de estado previsto cambiando la al menos una velocidad. Cuando la discrepancia es mayor que un segundo valor umbral, el segundo dispositivo informatico modifica la informacion de estado visual asociada a la primera representacion visual del primer objeto segun al menos en parte la informacion de estado previsto. El segundo dispositivo informatico vuelve a reproducir la primera representacion visual del segundo objeto segun al menos en parte la informacion de estado visual.
El primer objeto puede tener un tipo, y el primer y segundo valores umbral se pueden almacenar en una tabla y asociarse al tipo del objeto en la tabla. En dichas realizaciones, el segundo dispositivo informatico puede consultar el primer y segundo valores umbral en la tabla.
La modification de la informacion de estado visual asociada a la primera representacion visual del primer objeto segun al menos en parte la informacion de estado previsto cuando la discrepancia es mayor que el segundo valor umbral puede incluir establecer la informacion de estado visual igual a la informacion de estado previsto cuando la discrepancia es mayor que un tercer valor umbral. Por otro lado, cuando la discrepancia es menor que el tercer valor umbral y mayor que el segundo valor umbral, el segundo dispositivo informatico puede determinar informacion de estado mezclado segun al menos en parte la informacion de estado visual y la informacion de estado previsto, y establecer la informacion de estado visual igual a la informacion de estado mezclado. En dichas realizaciones, el tercer valor umbral es mayor que el segundo valor umbral.
Las realizaciones incluyen uno o mas medios legibles por ordenador que almacenan instrucciones ejecutables por ordenador que, cuando se ejecutan por uno o mas procesadores, llevan a cabo uno o mas de los metodos descritos mas arriba. Por ejemplo, uno o mas medios legibles por ordenador que almacenan instrucciones ejecutables por ordenador que, cuando se ejecutan por uno o mas procesadores, llevan a cabo un metodo para su uso con un primer dispositivo informatico que ejecuta una primera porcion de una simulacion distribuida, la primera porcion controlando un objeto. El metodo que incluye ejecutar una segunda porcion de la simulacion distribuida, la segunda porcion generando una primera representacion visual del objeto que se puede visualizar en un primer dispositivo de visualizacion. Un estado visual se asocia al objeto y a la primera representacion visual. El estado visual puede incluir al menos un valor de
5
10
15
20
25
30
35
40
45
50
55
parametro. El metodo puede ademas incluir generar un estado previsto del objeto segun al menos en parte un estado previo incluido en una actualization previa recibida del primer dispositivo informatico. El estado previo se puede asociar a una segunda representation visual del objeto. El estado previsto incluye al menos una velocidad y al menos un valor de parametro. El metodo puede incluir ademas recibir una actualizacion del primer dispositivo informatico. La actualizacion puede incluir un nuevo estado asociado a una tercera representacion visual del objeto. El nuevo estado puede incluir al menos un valor de parametro. El metodo puede ademas incluir establecer el al menos un valor de parametro del estado previsto igual al al menos un valor de parametro del nuevo estado, y determinar una discrepancia entre el al menos un valor de parametro del estado previsto y el al menos un valor de parametro del estado visual. Cuando la discrepancia es mayor que un primer valor umbral, la al menos una velocidad del estado previsto se modifica. Cuando la discrepancia es mayor que un segundo valor umbral, al menos un valor de parametro del estado visual se modifica segun al menos en parte el al menos un valor de parametro del estado previsto. El metodo puede ademas incluir reproducir una cuarta representacion visual del objeto segun al menos en parte el estado visual, y mostrar la cuarta representacion visual del objeto en el primer dispositivo de visualization.
El estado previsto puede ser un primer estado previsto, y la discrepancia puede ser una primera discrepancia. En dicha realization, el metodo puede ademas incluir generar un segundo estado previsto segun al menos en parte la al menos una velocidad del estado previsto. El segundo estado previsto incluye al menos un valor de parametro. Cuando la segunda discrepancia es mayor que un segundo valor umbral, el al menos un valor de parametro del estado visual se modifica segun al menos en parte el al menos un valor de parametro del segundo estado previsto. El metodo puede incluir ademas reproducir una quinta representacion visual del objeto segun al menos en parte el estado visual, y mostrar la quinta representacion visual del objeto en el primer dispositivo de visualizacion.
La modification del al menos un valor de parametro del estado visual segun al menos en parte el al menos un valor de parametro del estado previsto cuando la discrepancia es mayor que el segundo valor umbral puede incluir determinar si la discrepancia es mayor que un tercer valor umbral. El tercer valor umbral es mayor que el segundo valor umbral. Cuando se determina que la discrepancia es mayor que el tercer valor umbral, el al menos uno del valor de parametro del estado visual se establece igual al al menos uno del valor de parametro del estado previsto. Por otro lado, cuando se determina que la discrepancia es menor que el tercer valor umbral, un estado mezclado se determina segun al menos en parte el al menos un valor de parametro del estado visual y el al menos un valor de parametro del estado previsto. El estado mezclado incluye al menos un valor de parametro. El al menos un valor de parametro del estado visual se establece igual al al menos un valor de parametro del estado mezclado.
Las realizaciones incluyen un sistema para implementar una simulation distribuida que incluye multiples objetos. El sistema incluye multiples dispositivos informaticos conectados entre si en una red, cada dispositivo informatico configurandose para ejecutar una portion de la simulacion distribuida. Un primer dispositivo informatico de los multiples dispositivos informaticos ejecuta una primera porcion de la simulacion distribuida que controla una porcion de los multiples objetos y envia actualizaciones relacionadas con al menos un objeto de la porcion de los multiples objetos a un segundo de los multiples dispositivos informaticos. El segundo dispositivo informatico se puede configurar para recibir del primer dispositivo informatico una actualizacion previa que incluye information de estado relacionada con un primer objeto de la porcion de los multiples objetos controlados por el primer dispositivo informatico. El segundo dispositivo informatico se puede configurar ademas para generar una primera representacion visual del primer objeto segun al menos en parte la informacion de estado relacionada con el primer objeto, y mostrar la primera representacion visual en un dispositivo de visualizacion. El segundo dispositivo informatico tiene informacion de estado visual asociada al primer objeto y a la primera representacion visual. El segundo dispositivo informatico se puede configurar ademas para recibir una nueva actualizacion que incluye informacion de estado del primer dispositivo informatico, la nueva actualizacion habiendose recibido despues de la actualizacion previa. El segundo dispositivo informatico se puede configurar ademas para determinar informacion de estado previsto para el primer objeto segun al menos en parte la informacion de estado de la actualizacion previa, la informacion de estado previsto incluyendo al menos un valor de velocidad. El segundo dispositivo informatico se puede configurar ademas para determinar si la informacion de estado de la nueva actualizacion se relaciona con el primer objeto y, cuando la informacion de estado de la nueva actualizacion se relaciona con el primer objeto, establecer al menos una porcion de la informacion de estado previsto igual a al menos una porcion de la informacion de estado de la nueva actualizacion. El segundo dispositivo informatico se puede configurar ademas para determinar una discrepancia entre la informacion de estado visual y la informacion de estado previsto. Cuando la discrepancia es mayor que un primer valor umbral, el segundo dispositivo informatico puede modificar el al menos un valor de velocidad de la informacion de estado previsto. Cuando la discrepancia es mayor que un segundo valor umbral, el segundo dispositivo informatico puede modificar la informacion de estado visual segun al menos en parte la informacion de estado previsto. El segundo dispositivo informatico reproduce una segunda representacion visual del objeto segun al menos en parte la informacion de estado visual, y muestra la segunda representacion visual del objeto en el dispositivo de visualizacion.
En realizaciones en las cuales la informacion de estado previsto es una primera information de estado previsto, la discrepancia es una primera discrepancia, el segundo dispositivo informatico se puede configurar ademas para generar una segunda informacion de estado previsto segun al menos en parte la al menos una velocidad de la primera informacion de estado previsto, y determinar una segunda discrepancia entre la informacion de estado visual y la 5 segunda informacion de estado previsto. Cuando la segunda discrepancia es mayor que el segundo valor umbral, el segundo dispositivo informatico puede modificar la informacion de estado visual segun al menos en parte la segunda informacion de estado previsto, el segundo dispositivo informatico reproduce una tercera representation visual del objeto segun al menos en parte la informacion de estado visual, y muestra la tercera representacion visual del objeto en el dispositivo de visualizacion.
10 La portion de la simulation distribuida que se ejecuta en el segundo dispositivo informatico puede controlar una segunda portion de los multiples objetos. En dichas realizaciones, el segundo dispositivo informatico se puede configurar ademas para enviar actualizaciones relacionadas con al menos un objeto de la segunda porcion de los multiples objetos al primer dispositivo informatico. El segundo dispositivo informatico se puede configurar para recibir una entrada de usuario mediante un dispositivo de interfaz de usuario, la entrada de usuario cambiando un estado de un objeto seleccionado de 15 la segunda porcion de los multiples objetos, crear una actualization que incluye informacion de estado relacionada con el objeto seleccionado, y enviar la actualizacion relacionada con el objeto seleccionado al primer dispositivo informatico. El sistema puede incluir un servidor conectado a los multiples dispositivos informaticos en la red. El segundo dispositivo informatico se puede configurar para enviar actualizaciones relacionadas con al menos un objeto de la segunda porcion de los multiples objetos al servidor para reenviarlas asi a otros de los multiples dispositivos informaticos.
20 Breve descripcion de las diferentes vistas de los dibujos
Los aspectos de la presente invention seran aparentes tras considerar la siguiente descripcion detallada tomada en conjunto con los dibujos anexos, en los cuales iguales caracteres de referencia se refieren a partes iguales, y en los cuales:
La Figura 1 es un diagrama de bloques de un sistema para una simulacion interactiva distribuida;
25 la Figura 2 es un diagrama que muestra representaciones locales de una simulacion interactiva distribuida compartida entre dos estaciones del sistema de la Figura 1;
la Figura 3 es un diagrama de bloques de una porcion de una consola del sistema de la Figura 1 que muestra los modulos predictor-interpolador y sus interconexiones;
la Figura 4 es un diagrama de flujo para el proceso de interpolation de estado de objetos remotamente manejados que 30 se puede llevar a cabo por al menos una porcion del sistema de la Figura 1;
la Figura 5A es una tabla de criterios y parametros apropiados para manejar objetos dinamicos a modo de ejemplo de un primer tipo a modo de ejemplo, a saber un tipo de vehiculo todo terreno, que funciona en diferentes modos y condiciones;
la Figura 5B es una tabla de criterios y parametros apropiados para manejar objetos dinamicos a modo de ejemplo de un 35 segundo tipo a modo de ejemplo, a saber un tipo de objeto volador, que funciona en diferentes modos y condiciones; y
la Figura 6 es un diagrama de un entorno de hardware y un entorno de funcionamiento en el cual una o mas de las consolas de juego del sistema de la Figura 1 se pueden implementar.
Descripcion detallada de la invencion
En la presente memoria descriptiva se usa el contexto de un juego de ordenador, a modo de ejemplo y para una mejor 40 descripcion, cuando se describe una simulacion distribuida. Sin embargo, la aplicabilidad de los sistemas y metodos descritos en la presente memoria no se limitan al uso con juegos de ordenador y se pueden usar para otros tipos de simulaciones distribuidas. Asimismo, para las realizaciones descritas, no se supone un reloj distribuido. En su lugar, predicciones de alta calidad basadas en una corriente en curso de actualizaciones que tienen latencia tipica se pueden usar para producir una presentation coherente de la simulacion interactiva distribuida. Los resultados de dichas 45 suposiciones pueden degradarse si la latencia varia ampliamente en un intervalo corto, pero, sin embargo, pueden proveer una simulacion compartida satisfactoria generalmente coherente. Mientras los sistemas y metodos descritos en la presente memoria pueden funcionar con respecto a simulaciones distribuidas que tienen la misma velocidad de trama y tasa de actualizacion en todas las estaciones, ello no constituye una suposicion ni un requisito. Por consiguiente, en las realizaciones descritas, cada incremento consecutivo en la simulacion distribuida en cada estacion no corresponde a un 50 tiempo o indication de tiempo particular, diferente de "ahora", y las actualizaciones que ocurren de forma simultanea en el mundo real parecera que ocurren, despues de una breve latencia, en todas las estaciones participantes, aunque,
5
10
15
20
25
30
35
40
45
50
55
debido a las latencias y limitaciones descritas mas arriba en la Seccion de Antecedentes, los efectos de las actualizaciones producidas para los objetos manejados por una estacion pueden no verse en algunas otras estaciones hasta unas pocas iteraciones mas tarde.
A modo de resumen no limitado, se aceptan las actualizaciones relativas a un modelo basado en la fisica controlado de forma remota de un objeto de una simulation interactiva distribuida. Bajo condiciones predeterminadas con respecto al objeto, un impulso o "choque de velocidad " se determina, escala y agrega a la actualization para formar una prediction actual de la position correcta del objeto simulado. Cada iteration subsiguiente de la simulacion basada en la fisica provee un nuevo estado previsto, hasta que se reciba una nueva actualizacion. Un modelo visual separado se mantiene para aliviar discontinuidades visibles en el estado previsto o actualizado. Sin embargo, el modelo visual continuamente converge hacia la prediccion actual, con un nuevo estado del modelo visual determinandose a partir del estado previo, su discrepancia respecto a la prediccion actual, y ciertos criterios y parametros predeterminados con respecto al objeto que se representa. Tambien en relation con el modelo visual se encuentra un sistema de colision para detectar la interaction con otros objetos, en especial proyectiles. De manera conjunta, dichas caracteristicas proveen una presentation visual mas esteticamente agradable que parece mas realista y mas correcta (p.ej., cuando se persigue o apunta a vehiculos simulados) que las simulaciones interactivas distribuidas anteriores.
Con referencia a la Figura 1, el sistema de simulacion interactiva distribuida 100 incluye una estacion local 110, designada como la estacion local para un usuario (no se muestra), y multiples estaciones remotas 140, todas las cuales pueden comunicarse con el servidor 130 en una red 120 (p.ej., Internet). En la realization ilustrada, las estaciones remotas 140 incluyen estaciones remotas 140A, 140B y 140C. Sin embargo, ello no constituye un requisito y las estaciones remotas 140 pueden incluir cualquier cantidad de estaciones remotas. Como se explica mas abajo, las estaciones 110, 140A, 140b y 140C pueden comunicarse, de forma selectiva, entre si.
Mediante el uso del ejemplo de un sistema de juegos distribuido, el servidor 130 es un servidor de red de juegos que permite a los usuarios en cada estacion conectada encontrarse entre si y organizar y unirse a juegos.
Cada una de las estaciones 110, 140A, 140B, 140C incluye un dispositivo informatico, el cual se puede implementar como una consola de juegos 111, 142, 144, 146, respectivamente. A modo de ejemplo no restrictivo, las consolas de juegos 111, 142, 144, 146 pueden, cada una, implementarse como una Xbox360, fabricada por Microsoft Corporation de Redmond, Washington. Ademas, cada una de las estaciones 110, 140A, 140B, 140C incluye un controlador 113, 143, 145, 147, respectivamente. Aunque cada una de las estaciones 110, 140A, 140B, 140C incluye tambien una visualization, solo la visualization 112 de la estacion local 110 se muestra en la Figura 1. La consola 111 de la estacion local 110 se comunica con el servidor 130, a traves de la conexion 121. Las consolas 142, 144, 146 de las estaciones remotas 140 se comunican con el servidor 130, a traves de las conexiones 122, 123, 124, respectivamente.
En algunas realizaciones, la consola 111 puede comunicarse directamente con cada una de las consolas 142, 144, 146, en canales de comunicacion 152, 153, 154, respectivamente, mientras las consolas 111, 142, 144, 146 se unen en una simulacion interactiva distribuida como, por ejemplo, un juego de ordenador. En otras realizaciones, el servidor 130 maneja la comunicacion entre las estaciones 110, 140A, 140B, 140C. Dichas realizaciones puede ser apropiadas para simulaciones muy grandes, con muchas estaciones porque el ancho de banda de subida es comunmente mas limitado que el ancho de banda de descarga, aunque el volumen de comunicaciones de la estacion local 110 a cada una de las estaciones remotas 140 es aproximadamente igual al volumen de las estaciones remotas 140 a la estacion local 110. Al permitir al servidor 130 "transmitir", de manera efectiva, actualizaciones de la consola local 111 a cada una de las consolas remotas 142, 144, 146, una carga de transmision considerable se facilita desde la consola 111. Sin embargo, con el fin de simplificar mas la description, nos centraremos en las dos consolas 111 y 142 y consideraremos solamente la comunicacion entre ellas, ya sea mediada por un servidor 130 o no. Sin embargo, como apreciaran las personas con experiencia ordinaria en la tecnica, las comunicaciones entre cualquier par de consolas 111, 142, 144, 146 puede funcionar de manera similar.
Por consiguiente, en la Figura 2, se muestran algunos de los trabajos internos de una simulacion interactiva distribuida. Cada una de las consolas 111 y 142 mantiene una representation local correspondiente de la simulacion distribuida como datos. La representacion local mantenida en la consola 111 se ilustra como una simulacion local 200. La representacion local mantenida en la consola 142 se ilustra como una simulacion local 250. La simulacion distribuida incluye objetos estaticos y objetos dinamicos. Cada una de las simulaciones locales 200, 250 incluye un objeto separado para cada uno de los objetos estaticos y dinamicos de la simulacion distribuida. Por ejemplo, la simulacion local 200 incluye objetos estaticos 201 que corresponden a objetos estaticos 251 en la simulacion local 250. De manera similar, la simulacion local 200 incluye objetos dinamicos 202, 203, 204 que corresponden a objetos estaticos 252, 253, 254, respectivamente, en la simulacion local 250.
Cada una de las consolas 111, 142, 144, 146 es responsable de controlar los objetos particulares. Por ejemplo, el jugador en la consola 111 puede usar un controlador 113 para proveer entradas al modulo de control de modelo local
5
10
15
20
25
30
35
40
45
50
220, controlando el objeto dinamico 202 (p.ej., un vehiculo simulado). En el presente ejemplo, el modulo de control de modelo local 220 tambien controla el objeto dinamico 204, el cual puede ser, por ejemplo, una mina, un proyectil, explosion, caja, u otro objeto dinamico. Los objetos estaticos 201, normalmente incluyen terreno y, con frecuencia, edificios, son estaticos y no los controla el controlador 113. Ocasionalmente (p.ej., de forma periodica), el modulo de control de modelo local 220 envia una actualizacion 152A (p.ej., mediante el canal 152) al modulo de control de modelo remoto 280 en la consola remota 142. El modulo de control de modelo remoto 280 es responsable de controlar objetos dinamicos 252 y 254 en la simulation local 250, los cuales son iguales a los objetos dinamicos 202 y 204 en la simulacion local 200.
Para cada uno de al menos una portion de los objetos dinamicos (p.ej., objetos dinamicos 202 y 204) de los cuales el controlador 111 es responsable, cada actualizacion 152A puede incluir una identification del objeto dinamico, information de tipo para el objeto dinamico e information de estado para el objeto dinamico identificado, la cual puede incluir una indication del modo de funcionamiento (p.ej., "con control" o "sin control") del objeto dinamico. En algunas realizaciones, dicha informacion se puede incluir en una o mas actualizaciones.
En cambio, el modulo de control de modelo local 270 recibe una entrada del controlador de juego 143 para manejar el objeto dinamico 253 (p.ej., otro vehiculo). Las actualizaciones 152B enviadas del modulo de control de modelo local 270 al modulo de control de modelo remoto 230 se usan para controlar al menos una porcion de los objetos dinamicos en la simulacion local 200. En el presente ejemplo, las actualizaciones 152B controlan el objeto 203 por lo cual el objeto 253 (p.ej., el vehiculo "conducido" por el usuario) de la consola 142 aparece en la estacion 110 con la consola 111 como objeto 203.
Para cada uno de al menos una porcion de los objetos dinamicos (p.ej., objeto dinamico 253) de los cuales el controlador 142 es responsable, cada actualizacion 152B puede incluir una identificacion del objeto dinamico, informacion de tipo para el objeto dinamico e informacion de estado para el objeto dinamico identificado, la cual puede incluir una indicacion del modo de funcionamiento (p.ej. "con control" o "sin control") del objeto dinamico. En algunas realizaciones, dicha informacion se puede incluir en una o mas actualizaciones.
Los objetos estaticos 251 in la simulacion local 250 corresponden a objetos 201 en la simulacion local 200.
La Figura 3 muestra trabajos internos 300 del modulo de control de modelo remoto 230 de la consola 111, a medida que recibe actualizaciones 152b de la consola 142 en el modulo predictor 310.
El modulo predictor 310 toma la actualizacion 152B mas recientemente recibida y la compara con valores predeterminados en la tabla de normas 321 correspondiente al objeto (p.ej., objeto dinamico 203) representado en la actualizacion 152B. Para una mejor ilustracion, la actualizacion mas recientemente recibida representa el objeto dinamico 203. Si existe una discrepancia suficiente entre el estado visual 323 local y la actualizacion de simulacion remota mas reciente, un impulso, o "choque" se determina a partir de la discrepancia e informacion adicional en la tabla de normas 321 con respecto al objeto dinamico 203 y se aplica al modelo fisico del objeto dinamico 203. Esto aumenta, efectivamente, ciertos vectores de velocidad usados para extrapolar el estado futuro del objeto dinamico 203 en iteraciones subsiguientes. Ello se describe en mayor detalle mas abajo, en conjunto con las Figuras 4, 5A y 5B. El modulo predictor 310 ejecuta un modelo fisico detallado para el objeto dinamico 203 y permite asi que se lleven a cabo mejores predicciones en las iteraciones subsiguientes de la simulacion local 200. El choque aplicado a la representation fisica local es, de alguna manera, analogo a una "acentuacion" en el procesamiento de la imagen, donde una discontinuidad se mejora en cierta cantidad. En el presente caso, el choque se inyecta como un impulso en el modelo fisico, y su efecto sera observable solamente en iteraciones subsiguientes de la simulacion local 200. Cuando llega una nueva actualizacion 152B, la proxima iteration de la simulacion local 200 usa el estado del objeto dinamico 253 manejado de forma remota como se representa en la nueva actualizacion, y puede anadir un choque de velocidad para producir un nuevo estado previsto 311. En iteraciones subsiguientes de la simulacion local 200, una simulacion fisica detallada extrapola desde el estado previsto 311 actual para obtener un nuevo estado previsto 311.
Sin embargo, donde el estado previsto 311 local se usa directamente para dirigir la visualization 112, probablemente habra una discontinuidad en los movimientos suaves del estado previsto 311 local cada vez que llega una nueva actualizacion 152B de simulacion remota, dado que probablemente contenga informacion que la actualizacion anterior 152B no ha anticipado.
Para remediar esto, el modulo interpolador 320 intenta mover un estado visual 323 local en una manera esteticamente agradable hacia el estado previsto 311 local actual mediante el uso de la tabla de normas 321. El valor anterior del estado visual 323 local se usa como una base, de modo que, en general, mientras las nuevas actualizaciones 152B afectan, de forma discontinua, el estado previsto 311 local, las imagenes del objeto producido por el modulo de reproduction 350 para la visualizacion 112 muestran un movimiento esteticamente agradable, en general con
5
10
15
20
25
30
35
40
45
50
discontinuidades ocultas. Como resultado, el estado visual 323 converge, continuamente, con el tiempo hacia el estado previsto 311 actual.
El modulo interpolador 320 tambien mantiene un estado de colision local 322. Sin embargo, antes que reproducirse para que lo vea el jugador, el volumen de colision del objeto se desplaza logicamente con el modelo visual. Ello mejora el realismo del objetivo simulado, como con armas de proyectil, y colisiones de vehiculos. La "solidez" de los objetos en el mundo es apropiada y corresponde a las ubicaciones de los objetos. Por ejemplo, se puede disparar a un objeto cuando se lo ve (como cuando se lo detecta con un modulo de detection de colision de proyectil 340), o en un modulo interpolador complejo 310, un vehiculo que parece golpear un obstaculo, dana dicho obstaculo (o el obstaculo dana el vehiculo) y puede rebotar desde aquel, afectando el estado visual 323 local.
La apariencia del movimiento del objeto se puede mejorar por el choque inyectado en el modelo fisico por el modulo predictor 310 segun los criterios y parametros para los objetos en la tabla de normas 321, y los criterios y parametros tambien contenidos alli para su uso por el modulo interpolador 320, descrito en detalle mas abajo en conjunto con las Figuras 4, 5A y 5B.
La Figura 4 muestra un proceso 400 que se puede llevar a cabo por el modulo de control de modelo remoto 230 (es preciso ver las Figuras 2 y 3). En el bloque 401, comienza una iteration de la simulation local 200 en la cual el objeto dinamico 203 se maneja de forma remota por el modulo de control de modelo local 270.
A continuation, en el bloque de decision 402, se lleva a cabo una determination con respecto a si una nueva actualization 152B para el objeto dinamico 203 se ha recibido del modulo de control de modelo local 270. Si la decision en el bloque de decision 402 es "Si", una nueva actualizacion 152B para el objeto dinamico 203 se ha recibido y en el bloque 403, el estado previsto 311 se establece igual al estado provisto en la actualizacion. Entonces, el modulo de control de modelo remoto 230 avanza al bloque 405. De lo contrario, si la decision en el bloque de decision 402 es "NO", no se ha recibido ninguna nueva actualizacion 152B y, en el bloque 404, un modelo fisico detallado se ejecuta para el objeto dinamico 203 para proveer un nuevo valor al estado previsto 311. Entonces, el modulo de control de modelo remoto 230 avanza al bloque 405.
En el bloque 405, se computa la discrepancia entre el nuevo estado previsto 311 y el estado visual 323 actual.
En iteraciones anteriores del proceso 400, el estado visual 323 local se puede haber establecido, pero si no se ha inicializado, se puede haber establecido con el valor actual del estado previsto 311. Incluso si ello no se ha llevado a cabo, el proceso 400 convergira, rapidamente, por el diseno, en un valor apropiado para el estado visual 323.
Entonces, el modulo de control de modelo remoto 230 avanza al bloque de decision 406. La decision en el bloque de decision 406 es "Si" cuando ha habido una nueva actualizacion 152B en el bloque 402 y la discrepancia computada en el bloque 405 supera uno o mas valores indicados para el modo actual de funcionamiento del objeto dinamico 203. Cuando la decision en el bloque de decision 406 es "Si", en el bloque 407, un impulso o "choque de velocidad" (o "choque") se aplica al estado previsto. Esto no mueve la representation "fisica" prevista del objeto dinamico 203, pero altera las velocidades en la representacion para producir diferentes resultados en iteraciones futuras del modelo fisico en el bloque 404. Luego, el modulo de control de modelo remoto 230 avanza al bloque de decision 408.
Cuando la decision en el bloque de decision 406 es "NO", el modulo de control de modelo remoto 230 avanza al bloque de decision 408.
Independientemente de si se aplica o no un choque en el bloque 407, el procesamiento continua en el bloque de decision 408 donde se lleva a cabo un control sobre si la discrepancia es mayor que un valor "grande" predeterminado desde la portion de la tabla de normas 321 con respecto al objeto dinamico 203 y su estado previsto 311 localmente asociado. Una description mas detallada del control que se lleva a cabo en el bloque de decision 408 se provee en las Figuras 5A y 5B, y la descripcion relacionada mas abajo. Si en el bloque de decision 408 se determina que la discrepancia es "grande", la decision en el bloque de decision 408 es "Si" y el proceso continua en el bloque 409. Por otro lado, si la decision en el bloque de decision 408 es "NO", el proceso continua en el bloque de decision 410.
En el bloque 409, se determina que el nuevo valor para el estado visual 323 es el valor actual del estado previsto 311, y la presentation del objeto "deformara" (p.ej., saltara instantaneamente a) la nueva position. Luego, en el bloque 412, dicho valor recientemente determinado se aplica al estado visual 323.
En algunas realizaciones, en el bloque 412, el estado visual actualizado se modifica ademas mientras el modelo de objeto se adapta al nuevo estado, por ejemplo, las ruedas de un vehiculo se pueden ajustar por un proceso de seguimiento de terreno para mantener las ruedas en contacto aparente con el suelo, o dejar que las ruedas parezcan colgar de manera apropiada desde la suspension cuando el vehiculo "toma aire" en un salto (a saber, cuando la posicion y orientation definidas por el nuevo estado visual coloca la rueda lo suficientemente alta por encima del terreno).
5
10
15
20
25
30
35
40
45
50
De manera sustancialmente coincidente con el estado visual 323 recientemente determinado se encuentra el estado de colision local 322, al menos en su raiz jerarquica. Es dedr, el volumen de colision definido por el artista para detectar el impacto con obstaculos o proyectiles tiene esencialmente la relacion prevista con el modelo visual que el artista ha provisto para la reproduccion del objeto. Normalmente, un volumen de colision se simplifica de forma radical respecto al modelo visual para proveer el modulo de reproduccion 350, para realizar calculos de interferencia objeto-terreno, objeto- objeto, y objeto-proyectil sustancialmente mas simples, por ejemplo en el modulo de detection de colision de proyectil 340.
En algunas realizaciones, el estado de colision local 322 se puede usar por el modulo interpolador 320, incluso de forma iterativa, para ajustar el estado visual en el bloque 412, por ejemplo, para asegurar que el objeto no parezca interpenetrar el terreno.
Finalmente, el procedimiento para llevar a cabo estos ajustes adicionales en el estado visual 323 y el estado de colision 322 puede variar con cada clase o tipo de objeto, y es, esencialmente, una decision de modelado estetico.
Despues de haber completado los ajustes en el estado visual 323, el proceso 400 finaliza con respecto al objeto dinamico 203 en el bloque 413.
Sin embargo, si en el bloque de decision 408 el control descubre que la discrepancia no es "grande" (a saber, la decision en el bloque de decision 408 es "NO") en el bloque de decision 410, se lleva a cabo un control para determinar si la discrepancia es mayor que un valor "pequeno" predeterminado, donde el valor "pequeno" apropiado se selecciona de la tabla de normas 321 por el estado previsto 311 del objeto dinamico 203. Nuevamente, una description mas detallada del control llevado a cabo en el bloque de decision 408 se provee en las Figuras 5A y 5B, y la descripcion relacionada mas abajo. Si la discrepancia es mayor que "pequena", la decision en el bloque de decision 410 es "St' y en el bloque 411 el nuevo valor para el estado visual 323 se determina como una "mezcla" (o promedio ponderado) del estado visual 323 actual y el estado previsto actual, las limitaciones de ponderacion y otras con respecto al estado previsto del objeto dinamico 203 proviniendo de la tabla de normas 321, con distintos valores para la comparacion y manipulation de las porciones de position y rotation del estado visual 323. Luego, el nuevo valor para el estado visual 323 se aplica en el bloque 412.
Pero, si la discrepancia no supera el control en el bloque de decision 410 para "pequeno", la decision en el bloque de decision 410 es "NO" y no se lleva a cabo modification alguna y el estado visual 323 permanece sin cambios en la presente iteration. El examen o control para una discrepancia pequena llevado a cabo en el bloque de decision 410 promueve a los objetos a que "descansen" visualmente. En el presente caso, el proceso 400 finaliza en el bloque 413 para la presente iteracion con respecto al objeto dinamico 203.
En diferentes realizaciones, o incluso solo para diferentes tipos (o clases) de objetos, o para el mismo objeto pero en diferentes modos, los examenes o controles llevados a cabo en los bloques de decision 406, 408 y 410 con respecto a la magnitud de la discrepancia determinada en el bloque 405 pueden usar medidas colectivas, o pueden analizar solamente ciertas porciones de la discrepancia, como se refleja en la tabla de normas 321. Por ejemplo, las medidas lineales de posicion son dificiles de comparar con medidas de rotacion (orientation). Por consiguiente, las porciones de posicion y rotacion del estado se comparan, con frecuencia, de forma separada y, en algunas realizaciones, si una portion supera un valor predeterminado correspondiente para cada portion, entonces se determina que se ha superado toda la discrepancia. En algunas realizaciones, o para algunos objetos, porciones adicionales de posicion se pueden considerar importantes y se les pueden dar valores particulares en la tabla de normas 321. Por ejemplo, para bipedos que saltan (p.ej., personas, alienigenas y similares), se puede desear una rienda mas ajustada en la discrepancia para su trayectoria sobre el terreno, es decir, su posicion en el plano x-y que su altitud respecto a aquella. Para objetos como, por ejemplo, bipedos que pueden saltar, un valor predeterminado separado puede accionarse mas estrictamente desde la porcion de la discrepancia que se proyecta en el plano x-y, con un valor total predeterminado menos estricto (a saber, mas grande) para la porcion de posicion total de la discrepancia, es decir, en xyz).
Las Figuras 5A y 5B proveen, cada una, una porcion a modo de ejemplo de la tabla de normas 321. La Figura 5A incluye criterios y parametros a modo de ejemplo para su uso con una primer tipo de objeto dinamico, a saber un objeto tipo vehiculo todo terreno ("ATV") simulado 500. La Figura 5B incluye criterios y parametros a modo de ejemplo para su uso con una segundo tipo de objeto dinamico, a saber un objeto tipo volador 530. Los criterios y parametros provistos en las Figuras 5A y 5B son para implementaciones a modo de ejemplo y no pretenden ser restrictivos. Ademas, la tabla de normas 321 puede incluir porciones para tipos de objetos dinamicos diferentes y/o adicionales. La tabla de normas 321 se puede implementar como una sola tabla o como multiples tablas.
Volviendo a la Figura 5A, en algunas realizaciones, una porcion 510 de la tabla de normas 321 se designa para un objeto tipo vehiculo todo terreno ("ATV") simulado 500 y contiene un numero de valores predeterminados correspondientes a los examenes o controles llevados a cabo en los bloques de decision 406, 408 y 410 y parametros usados para modificar
5
10
15
20
25
30
35
40
45
50
55
el estado visual 323 (p.ej., mezcla) en el bloque 411 y el estado previsto 311 en el bloque 407, todos apropiados para su uso por el modulo de control de modelo remoto 230 en el proceso 400 cuando se procesa un objeto tipo aTv, por ejemplo el objeto dinamico 203.
Los criterios 511 para el objeto tipo ATV 500 se usan en el bloque de decision 408 (p.ej., para el objeto dinamico 203). La determinacion en el bloque de decision 408 sobre si la discrepancia del bloque 402 es mas que "grande" se divide en tres comparaciones. La primera comparacion es si la porcion xyz de la discrepancia es mayor en magnitud que un valor de tres Unidades Mundiales ("WU", por sus siglas en ingles) (en la presente implementation a modo de ejemplo, las mediciones lineales se llevan a cabo en "Unidades Mundiales" que son analogas a los metros o pies, pero seleccionadas para una representation conveniente en la simulation, en los presentes ejemplos de simulation una WU corresponde a aproximadamente 2,5 m en el mundo real). La segunda comparacion es si la porcion xy de la discrepancia es mayor en magnitud que el valor de 100 WU. Es preciso notar que si la porcion xy es mayor que 100 WU, entonces, ciertamente, la porcion xyz de la primera comparacion era mayor que tres. La presente comparacion puede funcionar como una taquigrafia del programador para inhabilitar la comparacion xy para el objeto tipo ATV 500. Si la discrepancia xy hubiera sido funcional para este tipo de objeto, el valor usado para la discrepancia xy necesitaria ser menor que el usado para la discrepancia xyz. La tercera comparacion es si la porcion angular de la discrepancia es mayor que 180 grados. Si cualquiera de dichas tres comparaciones descubre que la porcion correspondiente de la discrepancia supera el valor establecido en el criterio 511, la determinacion en el bloque de decision 408 es que la discrepancia supera el valor "grande" (o la decision en el bloque de decision 408 es "Si") y una deformation resultara en el bloque 409.
Las columnas 521 y 522 de la porcion 510 de la tabla de normas 321 proveen diferentes valores y parametros predeterminados para su uso en casos donde un objeto de tipo ATV (p.ej., objeto tipo ATV 500) se controla versus no se controla. Las columnas 521 proveen valores y parametros predeterminados usados cuando un objeto de tipo ATV se controla y las columnas 522 proveen valores y parametros predeterminados usados cuando un objeto de tipo ATV no se controla. En la presente realization, un objeto "se controla" cuando una entrada del jugador (p.ej., del controlador de juego 143) esta afectando el modulo de control de modelo local (p.ej., modulo de control de modelo local 270) o, como se describe previamente, si una IA u otro proceso de operador esta afectando el modelo. En casos donde ser "controlado" o "no controlado" importa, las actualizaciones de simulacion remota (como, por ejemplo, las actualizaciones 152B) indicaran el modo de funcionamiento.
Los criterios 512 para el objeto tipo ATV 500 se usan en el examen o control llevado a cabo en el bloque de decision 410 (p.ej., para el objeto dinamico 203). La determinacion en el bloque de decision 410 sobre si la discrepancia del bloque 402 es mas que "pequena" se divide en dos comparaciones, los valores para las comparaciones proviniendo de las columnas 521 o 522, segun el modo de funcionamiento indicado en la actualization 152B de simulacion remota mas reciente. La primera comparacion es si la porcion xyz o porcion de rotation (orientation) de la discrepancia es mayor en magnitud que un valor de 0,5 WU o 45 grados, respectivamente. En el presente ejemplo, si el objeto dinamico 203 es "controlado" o "no controlado" no importa porque los valores son los mismos en ambas columnas 521 y 522. Es preciso notar que para ser efectivos, los valores (0,5 WU, 45 grados) deben, cada uno, ser mas pequenos que los valores correspondientes (3 WU, 180 grados) en el criterio 511. La segunda comparacion es una comparacion compuesta que emplea una tolerancia mas ajustada con respecto a la discrepancia (p.ej., 0,03 WU, 4 grados cuando se encuentra en el modo "controlado", o 0,03 WU o 6 grados cuando es "no controlado") cuando el estado previsto 311 del objeto se mueve lo suficientemente lento (p.ej., menos que 0,1 WU/s y 8 grados/s). Por consiguiente, el bloque de decision 410 acciona una mezcla en el bloque 411 si la discrepancia es demasiado grande, pero dicha comparacion puede depender de la velocidad. Los objetos que se mueven mas lentamente pueden requerir discrepancias mas pequenas.
Si se requiere una mezcla en el bloque 411, se lleva a cabo con parametros y limitaciones con respecto al objeto dinamico 203 desde la porcion 513. Una mezcla anade una fraction de la discrepancia del bloque 405 al estado visual 323 para obtener el nuevo estado visual en el bloque 412, pero lo que dicha fraccion deberia ser puede tener un efecto estetico significativo y puede necesitar ajustarse bajo circunstancias diferentes. En la presente realizacion, para el objeto tipo ATV 500, se definen umbrales de velocidad superior e inferior (los cuales pueden variar segun el modo de funcionamiento, pero, en el presente ejemplo, no lo hacen). Para las velocidades en o por debajo del umbral de velocidad inferior, las fracciones con respecto a las porciones de position y rotacion de la discrepancia anadidas al estado visual 323 se dan como las entradas etiquetadas "fraccion de discrepancia en umbral inferior". De manera similar, para las velocidades en o por encima del umbral de velocidad superior, las fracciones se toman de las entradas etiquetadas "fraccion de discrepancia en umbral superior". Para las velocidades entre los umbrales de velocidad superior e inferior, la fraccion se puede interpolar desde las fracciones de umbral superior e inferior. Por ejemplo, para que el objeto dinamico 203 en modo "controlado" previsto tenga una velocidad de 5 WU/s y una rotacion de 0 grados/segundo, la fraccion de discrepancia para la mezcla de posicion se puede calcular usando la siguiente formula:
(velocidad prevista - umbral de velocidad inferior)/(umbral de velocidad superior - umbral de velocidad inferior) * (fraccion en umbral superior - fraccion en umbral inferior) + (fraccion en umbral inferior).
5
10
15
20
25
30
35
40
45
50
Mediante el uso de la formula de mas arriba, la fraccion de discrepancia para la mezcla de posicion en el ejemplo de mas arriba es 0,4:
(5-0)/(10-0) * (0,03 - 0,05) + (0,05) = 5/10 * (-0,02) + (0,05) = 0,04.
Un calculo similar para la fraccion a aplicarse cuando se mezcla la rotacion usaria los valores indicados para la rotacion, pero, en el presente caso, dado que la velocidad de rotacion se encuentra en o por debajo del umbral de velocidad inferior (0), la fraccion de discrepancia en el umbral inferior dado como 0,04 se usa directamente.
Una limitacion final sobre la mezcla se define como una velocidad minima de cierre en el estado previsto 311. Donde, si la velocidad del estado previsto 311 se encuentra en o por debajo del umbral inferior, entonces se requiere una velocidad minima especifica de convergencia del estado visual 323 actual hacia el estado previsto 311. Los valores correspondientes se proveen para cuando la velocidad del estado previsto se encuentra en o por encima del umbral superior y, nuevamente, de manera similar a la descrita mas arriba, para velocidades entre los umbrales superior e inferior, los parametros de velocidad de convergencia minima requerida dados en la porcion 513 se pueden interpolar.
Despues de determinar las fracciones apropiadas, su aplicacion a la posicion y rotacion del estado visual 323 ocurre por medio de la interpolacion cartesiana para la porcion de posicion e interpolation lineal esferica (tambien conocida como "Slerp") para la porcion de rotacion. La implementation de Slerp puede usar una representation de cuaterniones para la rotacion, pero esto no se requiere estrictamente.
Los criterios 514 para el objeto tipo ATV 500 se usan en el bloque de decision 406 (p.ej., para el objeto dinamico 203). La determination en el bloque de decision 406 sobre si ha habido una nueva actualization usada en el bloque 402, y si la discrepancia del bloque 405 es "suficiente" para garantizar un choque, es una comparacion compuesta, los valores para la comparacion proviniendo de las columnas 521 o 522, segun el modo de funcionamiento indicado en la actualizacion 152B de simulation remota mas reciente. En la presente realization, como con la comparacion compuesta descrita mas arriba, se lleva a cabo un control para ver si el estado previsto 311 del objeto se mueve mas rapido que un umbral (en la porcion 514, etiquetado como "si la velocidad >") o si la discrepancia (etiquetada "o discrepancia de posicion o rotacion xyz") es lo suficientemente grande. Si cualquiera de las comparaciones en el bloque de decision 406 descubre que el parametro correspondiente se ha superado, entonces el bloque de decision 406 determina que la discrepancia es, de hecho, "suficiente" y se lleva a cabo un choque en el bloque 407.
Los parametros para el choque se dan en la porcion 515. En la presente realizacion, el choque es la discrepancia multiplicada por un factor de escala (etiquetado "CHOQUE por discrepancia x") que tiene, efectivamente, unidades de segundos reciprocos, dado que el valor del choque es una velocidad que se anade al estado previsto 311 en el bloque 407. Despues de determinar un valor para el choque de esta manera, se lo sujeta ademas a los limites etiquetados "pero no menor que" y "no mayor que", dentro de los parametros de la porcion 515, permitiendo al disenador limitar el efecto de un choque. En terminos generales, los efectos de un choque pueden ser visualmente inapropiados si se permite que el choque sea grande. Sin embargo, cuando el choque es naturalmente pequeno, o de otra forma limitado, el resultado es una mejora sustancial en el comportamiento estetico de los objetos controlados por el modulo de control de modelo remoto 230.
A modo de otro ejemplo, la Figura 5B muestra una porcion 540 de la tabla de normas 321, correspondiente a un objeto tipo volador 530, un tipo de objeto que no se muestra en las simulaciones locales 200 y 250 ilustradas en la Figura 2. Volviendo a la Figura 5B, en la porcion 540, las columnas 551 y 552 incluyen, cada una, columnas correspondientes a los mismos modos de control que las columnas incluidas en las columnas 521 y 522, respectivamente, de la Figura 5A. Los criterios 541, 542 y 544 se usan de la misma manera que los criterios 511, 512 y 514, respectivamente. Los parametros en las porciones 543 y 545 se usan de la misma manera que los parametros en las porciones 513 y 515, respectivamente. Las diferencias en los criterios y parametros provistos en la tabla de normas 321 pueden establecerse de forma empirica, p.ej., por un disenador. Cada uno de los criterios determina que condiciones haran que se apliquen ciertos elementos del proceso 400 y cada parametro puede afectar el resultado visual.
Dispositivos informaticos
La Figura 6 es un diagrama de hardware y un entorno de funcionamiento en conjunto con los cuales se pueden practicar las implementaciones de una o mas de las consolas de juego 111, 142, 144, 146. La description de la Figura 6 pretende proveer una descripcion general breve del hardware de ordenador apropiado y de un entorno informatico apropiado en los cuales se pueden practicar las implementaciones. Aunque no se requiere, las implementaciones se describen en el contexto general de instrucciones ejecutables por ordenador como, por ejemplo, modulos de programa, ejecutados por un procesador. En general, los modulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos, etc., que llevan a cabo tareas particulares o implementan tipos de datos abstractos particulares.
5
10
15
20
25
30
35
40
45
50
55
Ademas, las personas con experiencia en la tecnica apreciaran que las implementaciones se pueden practicar con otras configuraciones de sistema de ordenador, incluidos dispositivos portatiles, sistemas de multiprocesador, electronica del consumidor programable o basada en microprocesador, PC en red, miniordenadores, maxiordenadores, y similares. Las implementaciones se pueden practicar tambien en entornos informaticos distribuidos donde las tareas se llevan a cabo por dispositivos de procesamiento remoto que se vinculan a traves de una red de comunicaciones. En un entorno informatico distribuido, los modulos de programa se pueden ubicar en dispositivos de almacenamiento de memoria local y remoto.
El hardware y el entorno de funcionamiento a modo de ejemplo de la Figura 6 incluyen un dispositivo informatico de proposito general en la forma de un dispositivo informatico 12. El dispositivo informatico 12 puede ser una consola de juego convencional, telefono movil, tableta, ordenador convencional, ordenador distribuido, o cualquier otro tipo de ordenador. Las consolas de juego 111, 142, 144, 146 pueden ser, cada una, esencialmente identicas al dispositivo informatico 12. Sin embargo, esto no constituye un requisito.
El dispositivo informatico 12 incluye una memoria de sistema 22, la unidad de procesamiento 21 y un bus de sistema 23 que acopla, de manera funcional, varios componentes de sistema, incluida la memoria de sistema 22, a la unidad de procesamiento 21. Puede haber solo una o puede haber mas de una unidad de procesamiento 21, de modo que el procesador del dispositivo informatico 12 incluye una sola unidad de procesamiento central ("CPU", por sus siglas en ingles) o multiples unidades de procesamiento, a las que comunmente se hace referencia como un entorno de procesamiento paralelo. Cuando se usan multiples unidades de procesamiento, las unidades de procesamiento pueden ser heterogeneas. A modo de ejemplo no restrictivo, dicho entorno de procesamiento heterogeneo puede incluir una CPU convencional, una unidad de procesamiento grafico ("GPU", por sus siglas en ingles) convencional, una unidad de punto flotante ("FPU", por sus siglas en ingles), combinaciones de ellas, y similares.
El bus de sistema 23 puede ser cualquiera de varios tipos de estructuras de bus incluido un bus de memoria o controlador de memoria, un bus periferico, y un bus local que usan cualquier variedad de arquitecturas de bus. Tambien se puede hacer referencia a la memoria de sistema 22 simplemente como la memoria, e incluye memoria de solo lectura (ROM, por sus siglas en ingles) 24 y memoria de acceso aleatorio (RAM, por sus siglas en ingles) 25. Un sistema basico de entrada y salida (BIOS, por sus siglas en ingles) 26, que contiene las rutinas basicas que ayudan a transferir information entre elementos dentro del dispositivo informatico 12 como, por ejemplo, durante el arranque, se almacena en ROM 24. El dispositivo informatico 12 incluye ademas una unidad de disco duro 27 para leer desde y escribir en un disco duro, que no se muestra, una unidad de disco magnetico 28 para leer desde y escribir en un disco magnetico extraible 29, y una unidad de disco optico 30 para leer desde y escribir en un disco optico extraible 31 como, por ejemplo, un CD ROM, DVD, u otro medio optico.
La unidad de disco duro 27, unidad de disco magnetico 28 y unidad de disco optico 30 se conectan al bus de sistema 23 por una interfaz de unidad de disco duro 32, una interfaz de unidad de disco magnetico 33 y una interfaz de unidad de disco optico 34, respectivamente. Las unidades y sus medios legibles por ordenador asociados proveen almacenamiento permanente de instrucciones legibles por ordenador, estructuras de datos, modulos de programa y otros datos para el dispositivo informatico 12. Las personas con experiencia en la tecnica apreciaran que cualquier tipo de medio legible por ordenador que pueda almacenar datos que sea accesible por un ordenador como, por ejemplo, casetes magneticos, tarjetas de memoria flash, dispositivos de memoria de estado solido (SSD", por sus siglas en ingles), unidades USB, discos de video digital, cartuchos Bernoulli, memorias de acceso aleatorio (RAM), memorias de solo lectura (ROM), y similares, se pueden usar en el entorno de funcionamiento a modo de ejemplo. Como es aparente para aquellos con experiencia ordinaria en la tecnica, la unidad de disco duro 27 y otras formas de medios legibles por ordenador (p.ej., el disco magnetico extraible 29, el disco optico extraible 31, tarjetas de memoria flash, SSD, unidades USB, y similares) accesibles por la unidad de procesamiento 21 se pueden considerar componentes de la memoria de sistema 22.
Una cantidad de modulos de programa se pueden almacenar en la unidad de disco duro 27, disco magnetico 29, disco optico 31, ROM 24, o RAM 25, incluido un sistema operativo 35, uno o mas programas de aplicaciones 36, otros modulos de programa 37, y datos de programa 38. Un usuario puede ingresar comandos e informacion en el dispositivo informatico 12 a traves de dispositivos de entrada como, por ejemplo, un teclado 40 y dispositivo de enfoque 42. Con referencia a la Figura 1, los dispositivos de entrada incluyen controladores 113, 143, 145, 147. Ejemplos no restrictivos de dispositivos de entrada incluyen un microfono, joystick, almohadilla para juegos, antena parabolica, escaner, dispositivos sensibles al tacto (p.ej., estilete, panel tactil, pantalla tactil, y similares), camara de video, camara de profundidad, o similares. Estos y otros dispositivos de entrada se conectan, con frecuencia, a la unidad de procesamiento 21 a traves de una interfaz de puerto serie 46 que se acopla al bus de sistema 23, pero se pueden conectar mediante otras interfaces como, por ejemplo, un puerto paralelo, un puerto de juegos, un bus serial universal (USB, por sus siglas en ingles), o una interfaz inalambrica (p.ej., una interfaz Bluetooth).
Un monitor 47 u otro tipo de dispositivo de visualization (p.ej., la visualization 112 ilustrada en la Figura 1) se pueden conectar tambien al bus de sistema 23 mediante una interfaz como, por ejemplo, un adaptador de video 48. La
5
10
15
20
25
30
35
40
45
50
visualizacion 112 se puede implementar como un televisor, pantalla de visualization, pantalla tactil, y similares. Ademas del monitor 47, los ordenadores normalmente incluyen otros dispositivos perifericos de salida (no se muestran) como, por ejemplo, altavoces, impresoras, y dispositivos hapticos que proveen una realimentacion tactil y/u otros tipos de realimentacion fisica (p.ej., un controlador de juegos de realimentacion de fuerza).
Los dispositivos de entrada descritos mas arriba son utilizables para recibir entradas de usuario y selecciones. Los dispositivos de entrada y visualizacion juntos se pueden describir como unos que proveen una interfaz de usuario.
El dispositivo informatico 12 puede funcionar en un entorno en red usando conexiones logicas a uno o mas ordenadores remotos como, por ejemplo, el ordenador remoto 49. Como se explica mas arriba, dos o mas de las consolas de juego 111, 142, 144, 146 se pueden conectar, de forma selectiva, entre si en la red 120. Dichas conexiones logicas se logran por un dispositivo de comunicacion acoplado a o a una parte del dispositivo informatico 12 (como el ordenador local). Las implementaciones no se limitan a un tipo particular de dispositivo de comunicaciones. El ordenador remoto 49 puede ser otro ordenador, un servidor, un enrutador, un PC en red, un cliente, un dispositivo de almacenamiento de memoria, un dispositivo par u otro nodo de red comun y, normalmente, incluye muchos de o todos los elementos descritos mas arriba con respecto al dispositivo informatico 12. El ordenador remoto 49 puede conectarse a un dispositivo de almacenamiento de memoria 50. Las conexiones logicas ilustradas en la Figura 6 incluyen una red de area local (LAN, por sus siglas en ingles) 51 y una red de area amplia (WAN, por sus siglas en ingles) 52. Dichos entornos en red son comunes en oficinas, redes amplias de ordenadores en empresas, intranets e Internet.
Las personas con experiencia ordinaria en la tecnica apreciaran que una LAN se puede conectar a una WAN mediante un modem que usa una senal portadora en una red telefonica, red de cable, red celular, o lineas electricas. Dicho modem se puede conectar al dispositivo informatico 12 mediante una interfaz de red (p.ej., un puerto serial u otro tipo de puerto). Ademas, muchos ordenadores portatiles pueden conectarse a una red mediante un modem de datos celulares.
Cuando se usa en un entorno de redes LAN, el dispositivo informatico 12 se conecta a la red de area local 51 a traves de una interfaz de red o adaptador 53, el cual es un tipo de dispositivo de comunicaciones. Cuando se usa en un entorno de redes WAN, el dispositivo informatico 12 normalmente incluye un modem 54, un tipo de dispositivo de comunicaciones, o cualquier otro tipo de dispositivo de comunicaciones para establecer comunicaciones en la red de area amplia 52 como, por ejemplo, Internet. El modem 54, el cual puede ser interno o externo, se conecta al bus de sistema 23 mediante la interfaz de puerto serial 46. En un entorno de red, los modulos de programa ilustrados respecto al dispositivo informatico 12 personal, o porciones de este, se pueden almacenar en el ordenador remoto 49 y/o en el dispositivo de almacenamiento de memoria remoto 50. Se apreciara que las conexiones de red que se muestran son a modo de ejemplo y se pueden usar otros medios de y dispositivos de comunicaciones para establecer un enlace de comunicaciones entre los ordenadores.
El dispositivo informatico 12 y los componentes relacionados se han presentado en la presente memoria descriptiva a modo de ejemplo particular y tambien mediante abstraction para facilitar una vista de alto nivel de los conceptos descritos. El diseno tecnico y la implementation reales pueden variar segun la implementation particular mientras se mantiene la naturaleza general de los conceptos descritos.
En algunas realizaciones, la memoria de sistema 22 almacena instrucciones ejecutables por ordenador que, cuando se ejecutan por uno o mas procesadores, hacen que el unico o mas procesadores lleven a cabo todo o porciones del proceso 400. Dichas instrucciones se pueden almacenar en uno o mas medios legibles por ordenador no transitorios.
Como con todos dichos sistemas, las caracteristicas particulares del sistema, los detalles especificos de las interfaces de usuario, y el rendimiento de los procesos, pueden depender, por ejemplo, de la arquitectura usada para implementar el sistema, del sistema operativo de los servidores seleccionados, del ancho de banda y otras propiedades de la red seleccionada, y del codigo de software escrito. Varias modificaciones adicionales de las realizaciones descritas especificamente ilustradas y descritas en la presente memoria descriptiva seran aparentes para aquellos con experiencia ordinaria en la tecnica, a la luz de las presentes ensenanzas.
Las realizaciones anteriores descritas ilustran diferentes componentes contenidos en, o conectados a, otros componentes diferentes. Se comprendera que dichas arquitecturas ilustradas son meramente a modo de ejemplo y que, de hecho, muchas otras arquitecturas se pueden implementar, las cuales logran la misma funcionalidad. En un sentido conceptual, cualquier disposition de los componentes para lograr la misma funcionalidad se "asocia", efectivamente, de modo que se logra la funcionalidad deseada. Por lo tanto, dos componentes de la presente memoria descriptiva combinados para lograr una funcionalidad particular se pueden ver como "asociados" entre si de modo que se logra la funcionalidad deseada, independientemente de las arquitecturas o componentes intermedios. Asimismo, dos componentes asi asociados pueden tambien verse como "funcionalmente conectados", o "funcionalmente acoplados" entre si para lograr la funcionalidad deseada.
5
10
15
20
25
Mientras se han mostrado y descrito realizaciones particulares de la presente invencion, sera obvio para aquellos con experiencia en la tecnica que, segun las ensenanzas de la presente memoria descriptiva, se pueden llevar a cabo cambios y modificaciones sin apartarse de la presente invencion y sus aspectos mas amplios y, por lo tanto, las reivindicaciones anexas comprenden, dentro de su alcance, los cambios y modificaciones que se encuentran dentro del verdadero espiritu y alcance de la presente invencion. Ademas, se comprendera que la invencion se define solamente por las reivindicaciones anexas. Aquellos con experiencia en la tecnica comprenderan que, en general, los terminos usados en la presente memoria descriptiva y, en especial, en las reivindicaciones anexas (p.ej., cuerpos de las reivindicaciones anexas) en general pretenden ser terminos "abiertos" (p.ej., la expresion "que incluye" debe interpretarse como "que incluye pero sin limitacion", la expresion "que tiene" debe interpretarse como "que tiene al menos", el termino "Incluye" debe interpretarse como "incluye pero sin limitacion", etc.). Aquellos con experiencia en la tecnica tambien comprenderan que si se pretende un numero especifico de una descripcion de reivindicacion introducida, dicha intencion se describira de manera explicita en la reivindicacion y, ante la ausencia de dicha descripcion, dicha intencion no esta presente. Por ejemplo, para una mejor comprension, las siguientes reivindicaciones anexas pueden contener el uso de las frases introductorias "al menos un/a/o" y "un/a/o o mas" para introducir descripciones de la reivindicaciones. Sin embargo, el uso de dichas frases no debe interpretarse como uno que implica que la introduccion de una descripcion de reivindicacion por los articulos indefinidos "un" o "una/o" limita cualquier reivindicacion particular que contiene dicha descripcion de reivindicacion introducida a las invenciones que contienen solamente dicha descripcion, incluso cuando la misma reivindicacion incluye las frases introductorias "un/a/o o mas" o "al menos un/a/uno" y los articulos indefinidos como, por ejemplo, "un" o "una/uno" (p.ej., "un" y/o "una/o" se deben interpretar, normalmente, con el significado de "al menos un/a/o" o "un/a/o o mas"); lo mismo aplica para el uso de los articulos definidos usados para introducir descripciones de la reivindicacion. Ademas, incluso si un numero especifico de una descripcion de reivindicacion introducida se describe de manera explicita, aquellos con experiencia en la tecnica reconoceran que dicha descripcion debe interpretarse, normalmente, con el significado de "al menos" el numero descrito (p.ej., la sola descripcion de "dos descripciones", sin otros modificadores, normalmente significa al menos dos descripciones o dos o mas descripciones).
Por consiguiente, la invencion no se encuentra limitada, excepto por las reivindicaciones anexas.

Claims (15)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    REIVINDICACIONES
    1. Un metodo para usar con multiples dispositivos informaticos (111 y 142) conectados entre s^ en una red (120) y cada uno ejecutando una porcion de una simulation distribuida que comprende multiples objetos, la portion ejecutandose en un primero (142) de los multiples dispositivos informaticos (111 y 142) que controlan una porcion de los multiples objetos y que envian actualizaciones (152B) relacionadas con al menos un objeto de la porcion de los multiples objetos a un segundo (111) de los multiples dispositivos informaticos (111 y 142), el metodo comprende:
    a) en el segundo dispositivo informatico (111), recibir del primer dispositivo informatico (142) una primera actualization (152B) que comprende information de estado relacionada con un primer objeto (253) de la porcion de los multiples objetos (252-254) controlados por el primer dispositivo informatico (142);
    b) en el segundo dispositivo informatico (111), generar y mostrar una representation visual del primer objeto (253) en un dispositivo de visualization (112) usando la informacion de estado relacionada con el primer objeto (253), el segundo dispositivo informatico (111) teniendo informacion de estado visual (323) asociada al primer objeto (253) y a la representacion visual;
    c) en el segundo dispositivo informatico (111), recibir una segunda actualizacion (152B) que comprende informacion de estado del primer dispositivo informatico (142), la segunda actualizacion habiendo sido recibida despues de la primera actualizacion;
    d) en el segundo dispositivo informatico (111), determinar informacion de estado previsto (311) para el primer objeto (253) segun al menos en parte la informacion de estado de la primera actualizacion, la informacion de estado previsto (311) comprendiendo al menos un valor de velocidad;
    e) en el segundo dispositivo informatico (111), determinar si la informacion de estado de la segunda actualizacion se relaciona con el primer objeto (253);
    f) cuando el segundo dispositivo informatico (111) determina que la informacion de estado de la segunda actualizacion se relaciona con el primer objeto (253), establecer la informacion de estado previsto (311) igual a la informacion de estado de la segunda actualizacion;
    g) determinar una discrepancia entre la informacion de estado visual (323) y la informacion de estado previsto (311);
    h) cuando la discrepancia es mayor que un primer valor umbral, obtener un factor de escala de una tabla de normas (321), calcular un valor de choque segun el factor de escala y la discrepancia, y modificar el al menos un valor de velocidad de la informacion de estado previsto (311) usando el valor de choque;
    i) cuando la discrepancia es mayor que un segundo valor umbral, modificar la informacion de estado visual (323) segun al menos en parte la informacion de estado previsto (311); y
    j) modificar, por el segundo dispositivo informatico (111), la representacion visual del primer objeto (253) visualizado en el dispositivo de visualizacion (112) segun al menos en parte la informacion de estado visual (323).
  2. 2. El metodo de la reivindicacion 1, en donde la informacion de estado previsto (311) es una primera informacion de estado previsto, la discrepancia es una primera discrepancia y el metodo ademas comprende:
    generar, por el segundo dispositivo informatico (111), una segunda informacion de estado previsto segun al menos en parte el al menos un valor de velocidad de la primera informacion de estado previsto;
    determinar una segunda discrepancia entre la informacion de estado visual (323) y la segunda informacion de estado previsto;
    cuando la segunda discrepancia es mayor que el segundo valor umbral, modificar la informacion de estado visual (323) segun al menos en parte la segunda informacion de estado previsto; y
    modificar, por el segundo dispositivo informatico (111), la representacion visual del primer objeto (253) visualizado en el dispositivo de visualizacion (112) segun al menos en parte la informacion de estado visual (323).
  3. 3. El metodo de la reivindicacion 1, para su uso con la porcion de la simulacion distribuida que se ejecuta en el segundo dispositivo informatico (111) y que controla una segunda porcion (202-204) de los multiples objetos, el metodo ademas comprende:
    5
    10
    15
    20
    25
    30
    35
    40
    enviar actualizaciones (152A) relacionadas con al menos un objeto de la segunda porcion (202-204) de los multiples objetos al primer dispositivo informatico (142).
  4. 4. El metodo de la reivindicacion 1, para su uso con la porcion de la simulacion distribuida que se ejecuta en el segundo dispositivo informatico (111) y que controla una segunda porcion (202-204) de los multiples objetos, el metodo ademas comprende:
    recibir una entrada de usuario mediante un dispositivo de interfaz de usuario (113), la entrada de usuario cambiando un estado de un objeto seleccionado (202) de la segunda porcion (202-204) de los multiples objetos;
    crear una actualization (152A) que comprende information de estado relacionada con el objeto seleccionado (202); y
    enviar la actualizacion relacionada con el objeto seleccionado (202) al primer dispositivo informatico (142).
  5. 5. El metodo de la reivindicacion 1, para su uso con un servidor (130) conectado a los multiples dispositivos informaticos (111 y 142) en la red (120), y la porcion de la simulacion distribuida que se ejecuta en el segundo dispositivo informatico (111) que controla una segunda porcion (202-204) de los multiples objetos, el metodo ademas comprende:
    enviar actualizaciones (152A) relacionadas con al menos un objeto de la segunda porcion (202-204) de los multiples objetos al servidor (130) para reenviarlas a otros de los multiples dispositivos informaticos (111 y 142).
  6. 6. El metodo de la reivindicacion 1, en donde el primer objeto tiene un tipo, el factor de escala se asocia al tipo en la tabla de normas (321),
    el primer valor umbral se asocia al tipo en la tabla de normas (321), y
    el metodo ademas comprende obtener el primer valor umbral de la tabla de normas (321).
  7. 7. El metodo de la reivindicacion 1, en donde la informacion de estado visual (323) comprende al menos un valor de velocidad, y la determination de la discrepancia entre la informacion de estado previsto (311) y la informacion de estado visual (323) comprende determinar una discrepancia entre el al menos un valor de velocidad de la informacion de estado previsto (311) y el al menos un valor de velocidad de la informacion de estado visual (323).
  8. 8. El metodo de la reivindicacion 1, en donde la informacion de estado visual (323) comprende al menos una de informacion de position e informacion de orientation;
    la informacion de estado previsto (311) comprende al menos una de la informacion de posicion e informacion de orientacion; y
    determinar la discrepancia entre la informacion de estado previsto (311) y la informacion de estado visual (323) comprende determinar una discrepancia entre la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado previsto (311) y la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado visual (323).
  9. 9. El metodo de la reivindicacion 8, en donde la informacion de estado de la segunda actualizacion (152B) comprende al menos una de la informacion de posicion e informacion de orientacion, y
    establecer la porcion de la informacion de estado previsto (311) igual a la porcion de la informacion de estado de la segunda actualizacion comprende establecer la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado previsto (311) igual a la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado de la segunda actualizacion (152B).
  10. 10. El metodo de la reivindicacion 8, en donde modificar la informacion de estado visual (323) segun al menos en parte la informacion de estado previsto (311) cuando la discrepancia es mayor que un segundo valor umbral, ademas comprende:
    determinar si la discrepancia es mayor que un tercer valor umbral, el tercer valor umbral siendo mas grande que el segundo valor umbral;
    cuando se determina que la discrepancia es mayor que el tercer valor umbral, establecer la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado visual (323) igual a la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado previsto (311);
    5
    10
    15
    20
    25
    30
    35
    40
    45
    de manera opcional, determinar un estado mezclado cuando la discrepancia es menor que el tercer valor umbral, el estado mezclado basandose al menos en parte en la al menos una de la information de position e information de orientation de la informacion de estado visual (323) y la al menos una de la informacion de posicion e informacion de orientation de la informacion de estado previsto (311), el estado mezclado comprendiendo la al menos una de la informacion de posicion e informacion de orientacion; y
    de manera opcional, establecer la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado visual (323) igual a la al menos una de la informacion de posicion e informacion de orientacion del estado mezclado.
  11. 11. Un sistema para implementar una simulation distribuida que comprende multiples objetos, el sistema comprende:
    multiples dispositivos informaticos (111 y 142) conectados entre si en una red (120), cada dispositivo informatico configurandose para ejecutar una porcion de la simulacion distribuida,
    un primer dispositivo informatico (142) de los multiples dispositivos informaticos (111 y 142) que ejecutan una primera portion de la simulacion distribuida que controla una portion (252-254) de los multiples objetos y envia actualizaciones (152B) relacionadas con al menos un objeto de la porcion (252-254) de los multiples objetos a un segundo (111) de los multiples dispositivos informaticos (111 y 142), el segundo dispositivo informatico (111) configurandose para:
    recibir del primer dispositivo informatico (142) una primera actualization que comprende informacion de estado relacionada con un primer objeto (253) de la porcion de los multiples objetos (252-254) controlados por el primer dispositivo informatico (142);
    generar una representation visual del primer objeto (253) segun al menos en parte la informacion de estado relacionada con el primer objeto (253),
    mostrar la representacion visual en un dispositivo de visualization (112), el segundo dispositivo informatico (111) comprendiendo informacion de estado visual (323) asociada al primer objeto (253) y a la representacion visual;
    recibir una segunda actualizacion (152B) que comprende informacion de estado del primer dispositivo informatico (142), la segunda actualizacion (152B) habiendose recibido despues de la primera actualizacion;
    determinar informacion de estado previsto (311) para el primer objeto (253) segun al menos en parte la informacion de estado de la primera actualizacion, la informacion de estado previsto (311) comprendiendo al menos un valor de velocidad;
    determinar si la informacion de estado de la segunda actualizacion se relaciona con el primer objeto (253);
    cuando el segundo dispositivo informatico (111) determina que la informacion de estado de la segunda actualizacion se relaciona con el primer objeto (253), establecer la informacion de estado previsto (311) igual a la informacion de estado de la segunda actualizacion;
    determinar una discrepancia entre la informacion de estado visual (323) y la informacion de estado previsto (311),
    cuando la discrepancia es mayor que un primer valor umbral, obtener un factor de escala de una tabla de normas (321), calcular un valor de choque segun el factor de escala y la discrepancia, y modificar el al menos un valor de velocidad de la informacion de estado previsto (311) usando el valor de choque;
    cuando la discrepancia es mayor que un segundo valor umbral, modificar la informacion de estado visual (323) segun al menos en parte la informacion de estado previsto (311); y
    modificar la representacion visual del objeto visualizado en el dispositivo de visualizacion (112) segun al menos en parte la informacion de estado visual (323).
  12. 12. El sistema de la reivindicacion 11, en donde la porcion de la simulacion distribuida que se ejecuta en el segundo dispositivo informatico (111) controla una segunda porcion (202-204) de los multiples objetos, y el segundo dispositivo informatico (111) se configura ademas para enviar actualizaciones (152A) relacionadas con al menos un objeto de la segunda porcion (202-204) de los multiples objetos al primer dispositivo informatico (142).
  13. 13. El sistema de la reivindicacion 11, que ademas comprende:
    un servidor (130) conectado a los multiples dispositivos informaticos (111 y 142) en la red (120), en donde la porcion de la simulacion distribuida que se ejecuta en el segundo dispositivo informatico (111) controla una segunda porcion (202-
    5
    10
    15
    20
    25
    30
    204) de los multiples objetos, y el segundo dispositivo informatico (111) se configura ademas para enviar actualizaciones (152A) relacionadas con al menos un objeto de la segunda porcion (202-204) de los multiples objetos al servidor para reenviarlas a otros de los multiples dispositivos informaticos (111 y 142).
  14. 14. El sistema de la reivindicacion 11, en donde el primer objeto (253) tiene un tipo, el factor de escala se asocia al tipo en la tabla de normas (321),
    el primer valor umbral se asocia al tipo en la tabla de normas (321), y
    el metodo ademas comprende obtener el primer valor umbral de la tabla de normas (321).
  15. 15. El sistema de la reivindicacion 11, en donde la information de estado visual (323) comprende al menos una de la information de position e informacion de orientation;
    la informacion de estado previsto (311) comprende al menos una de la informacion de posicion e informacion de orientacion;
    la determination de la discrepancia entre la informacion de estado previsto (311) y la informacion de estado visual (323) comprende determinar una discrepancia entre la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado previsto (311) y la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado visual (323); y
    la modification de la informacion de estado visual (323) segun al menos en parte la informacion de estado previsto (311) cuando la discrepancia es mayor que un segundo valor umbral, ademas comprende:
    determinar si la discrepancia es mayor que un tercer valor umbral, el tercer valor umbral siendo mas grande que el segundo valor umbral,
    cuando se determina que la discrepancia es mayor que el tercer valor umbral, establecer la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado visual (323) igual a la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado previsto (311),
    de manera opcional, determinar un estado mezclado cuando la discrepancia es menor que el tercer valor umbral, el estado mezclado basandose al menos en parte en la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado visual (323) y la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado previsto (311), el estado mezclado comprendiendo al menos una de la informacion de posicion e informacion de orientacion, y
    de manera opcional, establecer la al menos una de la informacion de posicion e informacion de orientacion de la informacion de estado visual (323) igual a la al menos una de la informacion de posicion e informacion de orientacion del estado mezclado.
ES12779502.9T 2011-05-03 2012-05-03 Aparato y método para presentación mejorada de objetos en una simulación interactiva distribuida Active ES2649095T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161482162P 2011-05-03 2011-05-03
US201161482162P 2011-05-03
PCT/US2012/036394 WO2012151443A2 (en) 2011-05-03 2012-05-03 Apparatus and method for improved presentation of objects in a distributed interactive simulation

Publications (1)

Publication Number Publication Date
ES2649095T3 true ES2649095T3 (es) 2018-01-10

Family

ID=47108237

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12779502.9T Active ES2649095T3 (es) 2011-05-03 2012-05-03 Aparato y método para presentación mejorada de objetos en una simulación interactiva distribuida

Country Status (10)

Country Link
US (1) US8823701B2 (es)
EP (1) EP2704806B1 (es)
JP (1) JP5855237B2 (es)
KR (1) KR101939860B1 (es)
CN (1) CN103732300B (es)
AU (1) AU2012250680C1 (es)
CA (1) CA2835066C (es)
ES (1) ES2649095T3 (es)
RU (1) RU2557522C2 (es)
WO (1) WO2012151443A2 (es)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182979A (zh) * 2014-08-22 2014-12-03 中国科学技术大学 一种视力障碍模拟方法及装置
US10874943B2 (en) 2016-06-28 2020-12-29 Rec Room Inc. Systems and methods for transferring object authority in a shared virtual environment
US10080961B2 (en) * 2016-06-30 2018-09-25 Roblox Corporation Uniform game display across multiple devices
PL431017A1 (pl) * 2016-12-02 2020-02-10 Cubic Corporation Jednostka komunikacji wojskowej dla środowisk operacyjnych i treningowych
CN117915108A (zh) * 2017-05-19 2024-04-19 渊慧科技有限公司 视觉交互网络系统及其方法、训练方法和计算机存储介质
GB201713651D0 (en) 2017-08-24 2017-10-11 Fureal Ltd Play Apparatus
JP2020009295A (ja) * 2018-07-11 2020-01-16 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US11368991B2 (en) 2020-06-16 2022-06-21 At&T Intellectual Property I, L.P. Facilitation of prioritization of accessibility of media
US11411757B2 (en) 2020-06-26 2022-08-09 At&T Intellectual Property I, L.P. Facilitation of predictive assisted access to content
US11356349B2 (en) 2020-07-17 2022-06-07 At&T Intellectual Property I, L.P. Adaptive resource allocation to facilitate device mobility and management of uncertainty in communications
US11768082B2 (en) * 2020-07-20 2023-09-26 At&T Intellectual Property I, L.P. Facilitation of predictive simulation of planned environment

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2725062B2 (ja) * 1989-08-01 1998-03-09 株式会社リコー 画像処理装置
JP3219697B2 (ja) * 1996-07-16 2001-10-15 株式会社ナムコ 画像生成装置、画像生成方法
US6042477A (en) * 1996-12-12 2000-03-28 Addink; Dale H. Method of and system for minimizing the effects of time latency in multiplayer electronic games played on interconnected computers
US5974442A (en) 1996-12-31 1999-10-26 Intel Corporation Communication technique for interactive applications over a network with delays
JPH1139503A (ja) * 1997-07-15 1999-02-12 Hitachi Ltd 移動体シミュレーション方法
US6415317B1 (en) * 1999-10-01 2002-07-02 Joshua Michael Yelon Software system for reducing the appearance of latency in a multi-user environment
JP2002253862A (ja) * 2001-03-05 2002-09-10 Kodomosha:Kk ゲームシステム及びゲーム方法
US6475090B2 (en) * 2001-03-29 2002-11-05 Koninklijke Philips Electronics N.V. Compensating for network latency in a multi-player game
KR100510339B1 (ko) * 2004-08-13 2005-08-26 엔에이치엔(주) 역학 정보를 이용한 화면 갱신 방법 및 시스템
CN101065171B (zh) * 2004-11-26 2010-09-29 世嘉股份有限公司 信息处理装置及数据处理方法
JP3957725B2 (ja) * 2005-10-04 2007-08-15 任天堂株式会社 通信ゲームプログラムおよび通信ゲームシステム
JP2007215781A (ja) * 2006-02-16 2007-08-30 Sega Corp 通信ゲームシステム、ゲーム制御プログラムおよび記憶媒体
US8020029B2 (en) * 2006-02-17 2011-09-13 Alcatel Lucent Method and apparatus for rendering game assets in distributed systems
JP5196729B2 (ja) * 2006-04-11 2013-05-15 任天堂株式会社 通信ゲームシステム
US7627632B2 (en) * 2006-11-13 2009-12-01 Microsoft Corporation Reducing bandwidth requirements for peer-to-peer gaming based on importance of remote objects to a local player
US20100325255A1 (en) * 2007-04-05 2010-12-23 Gene Cheung Data transmission system and method
US8527657B2 (en) * 2009-03-20 2013-09-03 Sony Computer Entertainment America Llc Methods and systems for dynamically adjusting update rates in multi-player network gaming

Also Published As

Publication number Publication date
KR20140031279A (ko) 2014-03-12
EP2704806A4 (en) 2014-12-24
JP2014519642A (ja) 2014-08-14
RU2557522C2 (ru) 2015-07-20
RU2013153399A (ru) 2015-06-10
WO2012151443A2 (en) 2012-11-08
CN103732300B (zh) 2016-01-27
AU2012250680A1 (en) 2013-04-11
AU2012250680C1 (en) 2015-08-27
NZ617145A (en) 2015-06-26
KR101939860B1 (ko) 2019-01-17
EP2704806A2 (en) 2014-03-12
CA2835066C (en) 2018-05-22
JP5855237B2 (ja) 2016-02-09
US8823701B2 (en) 2014-09-02
US20130120364A1 (en) 2013-05-16
CN103732300A (zh) 2014-04-16
AU2012250680B2 (en) 2015-03-19
CA2835066A1 (en) 2012-11-08
EP2704806B1 (en) 2017-08-30
WO2012151443A3 (en) 2013-03-21

Similar Documents

Publication Publication Date Title
ES2649095T3 (es) Aparato y método para presentación mejorada de objetos en una simulación interactiva distribuida
TWI786701B (zh) 用於在hmd環境中利用傳至gpu之預測及後期更新的眼睛追蹤進行快速注視點渲染的方法及系統以及非暫時性電腦可讀媒體
JP6154057B2 (ja) ロボットシステムと1つ以上のモバイルコンピューティングデバイスとの統合
US20150070274A1 (en) Methods and systems for determining 6dof location and orientation of head-mounted display and associated user movements
US8669938B2 (en) Approach for offset motion-based control of a computer
US20140225930A1 (en) Enhanced system and method for presenting a view of a virtual space to a user based on a position of a display
Linowes Unity 2020 virtual reality projects: Learn VR development by building immersive applications and games with Unity 2019.4 and later versions
JP2022519975A (ja) 複数の関与モードを有する人工現実システム
US20230334744A1 (en) Method and apparatus for generating walk animation of virtual role, device and storage medium
CN109550250A (zh) 虚拟对象骨骼数据处理方法及装置、存储介质、电子设备
CN105205860A (zh) 三维模型场景的展示方法及装置
CN114130006B (zh) 虚拟道具的控制方法、装置、设备、存储介质及程序产品
JP2019168962A (ja) プログラム、情報処理装置、及び情報処理方法
TW202227938A (zh) 沉浸式系統、控制方法與相關的非暫態電腦可讀取儲存媒體
Silverman The Rule of 27s: A Comparative Analysis of 2D Screenspace and Virtual Reality Environment Design
NZ617145B2 (en) Apparatus and method for improved presentation of objects in a distributed interactive simulation
Coppens Integrating Immersive Technologies for Algorithmic Design in Architecture
US20230419607A1 (en) Simulation of rigid bodies
Liu et al. Virtual ecological landscape design of theme parks based on entertainment robots and VR devices
Martínez Borrell Real terrain simulation environment for MDO
Jagnow et al. Distributed Physics Simulation with Stateless Server
TW202341082A (zh) 人工智慧輔助之虛擬物件建立器
CN114618159A (zh) 三维角色模型转换为二维角色模型的方法及图形界面
Eriksson et al. Catch Me if You Can Two robots playing hide-and-seek