KR101939860B1 - 분산된 대화식 시뮬레이션에서 객체의 개선된 제공을 위한 장치 및 방법 - Google Patents

분산된 대화식 시뮬레이션에서 객체의 개선된 제공을 위한 장치 및 방법 Download PDF

Info

Publication number
KR101939860B1
KR101939860B1 KR1020137031710A KR20137031710A KR101939860B1 KR 101939860 B1 KR101939860 B1 KR 101939860B1 KR 1020137031710 A KR1020137031710 A KR 1020137031710A KR 20137031710 A KR20137031710 A KR 20137031710A KR 101939860 B1 KR101939860 B1 KR 101939860B1
Authority
KR
South Korea
Prior art keywords
status
computing device
visual
predicted
status information
Prior art date
Application number
KR1020137031710A
Other languages
English (en)
Other versions
KR20140031279A (ko
Inventor
데이비드 스콧 알드릿지
루크 윌슨 팀민스
크리스토퍼 찰스 존 버처
Original Assignee
번지, 인크.
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 번지, 인크. filed Critical 번지, 인크.
Publication of KR20140031279A publication Critical patent/KR20140031279A/ko
Application granted granted Critical
Publication of KR101939860B1 publication Critical patent/KR101939860B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • 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

본 발명은 다수의 컴퓨팅 디바이스에서 분산된 시뮬레이션을 실질적으로 동시에 제공하는 시스템 및 방법에 관한 것이다. 제1 컴퓨팅 디바이스는 상기 시뮬레이션에서 객체를 제어한다. 제2 컴퓨팅 디바이스는 시각적 스테이터스와 연관된 상기 객체의 시각적 표현을 생성한다. 상기 제2 컴퓨팅 디바이스는 예측된 스테이터스를 생성하고 상기 제1 컴퓨팅 디바이스로부터 새로운 스테이터스를 포함하는 업데이터를 수신한다. 상기 예측된 스테이터스의 일부분은 상기 새로운 스테이터스의 일부분과 동일하게 설정되고, 상기 예측된 스테이터스 및 시각적 스테이터스 사이에 불일치가 결정된다. 상기 불일치가 제1 임계값보다 더 클 때, 상기 예측된 스테이터스의 적어도 하나의 속도가 변경될 수 있다. 상기 불일치가 제2 임계값보다 더 클 때, 상기 시각적 스테이터스는 상기 예측된 스테이터스에 적어도 부분적으로 기초하여 변경된다. 상기 객체의 새로운 시각적 표현은 상기 시각적 스테이터스에 적어도 부분적으로 기초하여 렌더링되고, 디스플레이된다.

Description

분산된 대화식 시뮬레이션에서 객체의 개선된 제공을 위한 장치 및 방법{APPARATUS AND METHOD FOR IMPROVED PRESENTATION OF OBJECTS IN A DISTRIBUTED INTERACTIVE SIMULATION}
관련 출원(들)에 대한 상호 참조
본 출원은 미국 가출원 제61/482,162호(출원일: 2011년 5월 3일)의 이익을 주장하며, 이 기초 출원은 그의 전문이 본 명세서에 참조로 병합된다.
기술 분야
본 발명은 일반적으로 복수의 오퍼레이터/플레이어 스테이션(operator/player station)에 걸쳐 코히런트한 가상 세계(coherent virtual world)를 제공하는 군사 시뮬레이터 및 멀티-플레이어 컴퓨터 게임에 사용되는 것과 같은 분산된 대화식 시뮬레이션에 관한 것이다.
분산된 대화식 시뮬레이션은 오늘날 비디오 게임에 일반적인 형태이지만, 1980년대 및 1990년대에 있는 SIMNET과 같은 군사 시뮬레이션에서 기원한다. 분산된 대화식 시뮬레이션에서, 가상 세계는 복수의 컴퓨터 스테이션에서 생성되고 공유되며, 각 컴퓨터 스테이션은 적어도 하나의 유저에 제어부 및 적어도 하나의 디스플레이를 지원한다.
일부 시뮬레이션에서, 스테이션은 예를 들어 잘 알려진 각각의 네트워크 시간 프로토콜(Network Time Protocol: "NTP")에 대해 공통의 시간 기준을 제공하는 분산된 클록(distributed clock)을 공유한다. 그러나, 이것은 필수적인 것은 아니다. 분산된 시뮬레이션은 일반적으로(그러나 반드시 그러한 것은 아님) 주기적으로(예를 들어, 초당 30번의 업데이트) 진행하고, 및 일반적으로(그러나 반드시 그러한 것은 아니다) 각 스테이션에서 동일한 율(rate)로 진행한다(예를 들어, 다른 스테이션은 초당 60번의 업데이트로 실행될 수 있다).
스테이션은 또한 영공(airspace) 및 지형(terrain)을 포함하는 환경의 모델을 공유한다. 이 지형은 지세(landform), 빌딩(building)(인테리어를 포함할 수 있음) 및 수계(bodies of water)를 포함하여 정적(static)일 수 있다. 대안적으로, 이 지형은 비정적일 수 있는데, 예를 들어, 일부 또는 모든 빌딩이 손상(damaged)될 수 있고, 지세에는 (예를 들어, 타이어 트랙(tire track), 폭탄 구멍(crater), 또는 불탄 흔적(burn mark)을 지닌) "상흔"(scarred) 등이 있을 수 있다. 이러한 환경 내에서, 예를 들어, 차량, 사람, 동물을 포함하는 시뮬레이팅된 동적 객체(dynamic object)가 배치된다. 이들 동적 객체의 애니메이션은 시뮬레이션에 생동감(appearance of life)을 제공한다.
이러한 시뮬레이션에서, 각 스테이션은 하나 이상의 시뮬레이팅된 객체를 관리하는 기본적 책임을 담당한다. 스테이션에 의해 관리되는 각 객체에 대해, 디테일한 모델(detailed model)이 각 국부 시간 증분 동안 컴퓨팅되어 그 거동을 결정한다. 예를 들어, 전지형 만능차(all-terrain vehicle: "ATV")에 대한 디테일한 모델은 오퍼레이터(일반적으로 관리 스테이션에 속함)로부터 조향 및 페달 입력을 수용할 수 있다. ATV의 디테일한 모델은 컴퓨테이션을 수행하여 자동 변속, 지형과 ATV의 서스펜션 시스템의 상호작용, 타이어와 지면 사이의 견인(traction), 및 가능하게는 연료 소비, 엔진의 과열 또는 다른 디테일 및 모델링된 실패를 시뮬레이팅할 수 있다. 일반적으로, 적절한 현장감(realism)에는 절대적이지만, 효율성을 희생하여, 이러한 디테일한 레벨로 모델링하는 것은 관리 스테이션에 의해서만 컴퓨팅될 필요가 있어서, 그 결과 디테일한 모델이 분산된 대화식 시뮬레이션에서 다른 스테이션으로 발행(published)될 수 있다.
ATV의 오퍼레이터는 사람 플레이어일 수 있고, 또는 오퍼레이터는 다른 사람 플레이어들이 이용가능하거나 요구되지 않는 동맹이나 적군을 시뮬레이팅하는 인공 지능 프로그램(artificial intelligence program: "AI")일 수 있는 것으로 이해된다. 사용 시, Al는 효과적으로 디테일한 모델의 단지 추가적인 구성요소(component)이고; 관리 스테이션은 스테이터스(status)를 유지하고 ATV-구동 Al에 의해 요구되는 증분 시뮬레이션을 수행하지만, 원격 스테이션은 결과만을 수신한다.
일부 경우에, 시뮬레이팅된 객체는 복잡하고 관절식 형상(사람, 동물, 또는 외계인과 같은)일 수 있어서 운동 모델에 의해 복잡한 애니메이션을 요구하지만, 다른 객체는 상대적으로 간단할 수 있어서(예를 들어, 폭탄 구멍(crate) 또는 발사체(projectile)), 이 경우에 더 간단한 탄도체 모델(ballistics model)이 사용될 수 있다.
그러나, 또한 관리 스테이션으로부터 업데이트라고도 불리우는 디테일한 모델링의 결과를 공유하는데 문제가 있다. 예를 들어, 업데이트를 객체를 제어하지 않는 원격 스테이션으로 분배하는 데 시간이 들고; 이러한 레이턴시(latency)로 인해, 모델의 업데이트는 항상 어느 정도 "구(old)" 정보이다. 분산된 시뮬레이션 클록이 모든 스테이션에서 올바르게 설정된 시뮬레이션에서, 임의의 업데이트는 일반적으로는 과거 일부 시뮬레이션 시간에 시간스탬프된 것일 수 있으나 일반적으로는 최근일 수 있다. 그러나, 엄격한 시간 유지 시스템은 모델에 공진(resonance)을 도입할 수 있고 이는 시각적 결함을 초래한다. 추가적으로, 정확한 클록을 유지하는 것은 종종 불필요한 복잡도 및 경우에 따라 에러를 일으키는 소스이다. 나아가, 신뢰할 수 없는 네트워크를 통한 업데이트는 손실되거나 지연될 수 있고 불규칙적한 레이턴시를 가지고 도달될 수 있다. 추가적으로, 시뮬레이션에서 대역폭 제한(constraint) 및 객체의 수는 각 객체에 대해 송신될 수 있는 업데이트의 수를 제한하여, 관리 스테이션이 디테일한 시뮬레이션을 컴퓨팅하는 만큼 자주 업데이트가 원격 스테이션으로 제공되지 못할 수 있다.
각 스테이션에서, 디스플레이는 가상 세계(virtual world)를 플레이어에 제공한다. 이 디스플레이는 일반적으로 원격으로 관리되는 객체에 대해 업데이트가 도달하는 것보다 더 자주 리프레쉬되지만, 업데이트가 도달하는 만큼 원격으로 관리되는 객체의 디스플레이를 변경하는 것은 원격으로 관리되는 객체를 변덕스럽고(jerky) 비현실적(unrealistic)으로 보이게 할 수 있다. 이를 완화하기 위해, 객체의 업데이트는 이들이 대응하는 시간과 연관되고 업데이트의 수신인은 업데이트 후 시간에 객체를 디스플레이하는 방법을 외삽(extrapolate)할 수 있다.
이것을 달성하기 위해, 업데이트는 특정 시간에 객체의 상태를 나타내어야 한다. 이 상태는 예를 들어, 객체의 위치 및 배향(일반적으로, 반드시 그런 것은 아니지만, 6개의 좌표축: X, Y, Z, 롤(roll), 피치(pitch) 및 요우(yaw)를 포함함), 및 상이한 값을 구비하는 다른 특성(property)(예를 들어, 헤드라이트가 온(on)인지의 여부, 차량의 엔진에 화재가 났는지의 여부, 살아있는 수류탄(live grenade)이 폭발될 수 있는 시간)을 포함할 수 있다. 특정 시간은 이 상태가 현재였을 때에 대응한다.
객체의 상태가 정확히 포함하는 것은 객체의 성질(nature)에 의존한다. 복잡한 관절식 객체, 예를 들어, 동물에서, 이 상태는 객체의 골격(skeleton)의 관절 상태, 또는 이 관절 상태를 약술하는 애니메이션 사이클(cycle)에의 색인(index)을 포함할 수 있다.
일부 경우에, 객체는 예를 들어, "동물" 객체가 살아 있을(alive) 때, 이 동물 객체가 애니메이션 사이클에 의해 구동될 수 있을 때, 다수의 동작 모드를 구비할 수 있으나, 그러나 동물이 헌팅 시뮬레이션에서와 같이 죽을 때, 관절식 바디의 동작 모드는 이완된 운동 모델이 된다. 예를 들어, 이 바디는 절뚝거리지만(limp), 골격에 의해 부여되는(imposed) 제한사항은 제어 하에 있다. 다수의 제어 모드를 구비하는 객체에서, 이 상태는 제어 모드를 사용하고 있는 식별을 더 포함할 수 있다.
본 명세서에서, "상태(state)"는 단순한 물리적 위치, 배향(회전)과는 다른 많은 특성을 포함할 수 있다. 이들 특성 중 일부, 예를 들어 애니메이션 사이클, 워크 사이클(walk cycle) 등에의 색인이 예측을 위해 유리하게 외삽될 수 있다. 그러나, 일부 특성, 예를 들어 차량의 헤드라이트가 온인지의 여부, 또는 혼(horn)이 울렸는지의 여부(horn honking)는 단지 사소하게(trivially) 외삽될 수 있다. 예를 들어, 일단 라이트가 온이 되면, 이 라이트는 업데이트가 턴오프라고 할 때까지 온으로 유지된다.
상태는 또한 개선된 정확도를 구비하는 후속하는 상태를 외삽하는데 사용가능한 정보, 예를 들어 선형 또는 회전 축에 대한 속도, 및 선형 또는 회전 축에 대한 가속도를 포함할 수 있다. 외삽은 예를 들어 마지막 2개의 업데이트에 걸친 위치의 차이를 마지막 2개의 업데이트의 시간의 차이로 나누어 속도를 유도하는 것에 의해 힌트 없이 이루어질 수 있으나, 명시적인 속도 또는 가속도를 제공하는 것이 결과를 개선시킬 수 있다.
본 명세서에서, "스테이터스"는 상태 정보 및/또는 상태에 대해 획득된 하나 이상의 계산 결과를 포함할 수 있다.
스테이션에서 관리되는 객체에 대한 시뮬레이션의 각 반복 시, 새로운 상태는 객체에 여러 자유도 중 어느 하나에 대해 제공되는 경우 속도 및/또는 가속도값을 포함하는 오퍼레이터 입력 및 디테일한 모델 실행으로부터 야기된다.
그러나, 객체의 상태는 반복마다 한번 미만으로 관리 스테이션으로부터 각 다른 스테이션으로 송신된다. 예를 들어, 관리 스테이션이 초당 30번 객체의 모델을 업데이트한다면, 업데이트는 초당 5번만 다른 스테이션으로 송신될 수 있거나, 또는 객체가 덜 중요한 경우에는 심지어 덜 자주(예를 들어, 초당 2번) 송신될 수 있고, 예외적으로 일치하는 경우 또는 단지 느리게 변화하는 경우 또는 많은 객체들이 업데이트되고/되거나 통신 대역폭이 매우 제한되어 있다면 훨씬 드물게 송신될 수 있다.
관리 스테이션으로부터 수신된 업데이트에 기초하여, 외삽 기술은 원격으로 관리되는 객체의 스테이터스에 대해 최상으로 이용가능한 정보, 및 (적어도, 가까운 미래에) 그 움직임을 예측하는 데 최상으로 이용가능한 정보를 제공한다. 나아가, 외삽된 상태들이 후속하는 업데이트에 기술된 상태를 실질적으로 오버슈트(overshot)하거나 언더슈트(undershot)할 때 외견상 움직임이 삐걱거리는 불연속이 발생할 수 있다. 종종 이것은, 오퍼레이터가 충돌 등을 피하기 위하여 급격한 회전을 하거나, 브레이크를 밟거나, 재빨리 움직이거나 방향을 바꿔 더 앞선 업데이트로부터 외삽이 예상하지 못하는 동작을 하기 때문에 온다.
시뮬레이션 어구(parlance)에서, 객체의 현재 상태를 최상으로 추정(estimate)하는 것이 "예측자"(predictor)의 일이고 가능한 한 미적으로 매력적으로 외삽된 상태에서 외관성 불연속성을 은닉하는 것이 "정정자"(corrector)의 일이다.
불리하게도, 지금까지 적용된 예측자-정정자 시스템은 객체 유형(object type)의 넓은 분류 또는 광범위한 조건 하에서 동일한 객체 유형에 대해 미적인 매력, 외관상 현실적인 행동이 떨어진다. 그 결과 원격으로 관리되는 객체는 예측불가능하게 재빠르게 움직이거나 행동한다. 이것은 객체를 겨누어 슈팅하는 것이 핵심 목적인 시뮬레이션에서는 타깃 지정을 곤란하게 하고 불만스럽게 할 수 있다. 유사하게, 이것은 이후 원격으로 관리되는 객체를 운전 또는 비행 시뮬레이션에서 곤란하게 하고 불만스럽게 할 수 있다. 따라서, 분산된 대화식 시뮬레이션에서 원격으로 관리되는 객체의 움직임을 제공하는 더 나은 방법을 제공할 필요성이 존재한다. 본 출원은 이하 상세한 설명 및 첨부 도면으로부터 명백한 바와 같이 이러한 장점 및 다른 장점을 제공한다.
실시예는 복수의 컴퓨팅 디바이스에서 분산된 시뮬레이션을 실질적으로 동시에 제공하는 방법을 포함한다. 복수의 컴퓨팅 디바이스는 분산된 시뮬레이션의 제1 부분을 실행하는 제1 컴퓨팅 디바이스를 포함한다. 제1 부분은 객체를 제어한다. 복수의 컴퓨팅 디바이스는 분산된 시뮬레이션의 제2 부분을 실행하는 제2 컴퓨팅 디바이스를 포함한다. 제2 부분은 제1 디스플레이 디바이스에 디스플레이가능한 객체의 제1 시각적 표현을 생성한다. 제2 컴퓨팅 디바이스는 객체 및 제1 시각적 표현과 연관된 시각적 스테이터스를 포함한다. 시각적 스테이터스는 적어도 하나의 파라미터값을 포함한다. 제2 컴퓨팅 디바이스는 객체의 제2 시각적 표현과 연관된 이전의 스테이터스를 포함하는 제1 컴퓨팅 디바이스로부터 이전의 업데이트를 수신한다. 제2 컴퓨팅 디바이스는 이전의 스테이터스에 적어도 부분적으로 기초하여 객체의 예측된(predicted) 스테이터스를 생성한다. 예측된 스테이터스는 적어도 하나의 속도 및 적어도 하나의 파라미터값을 포함한다. 제2 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스로부터 객체의 제3 시각적 표현과 연관된 새로운 스테이터스를 포함하는 업데이트를 수신한다. 새로운 스테이터스는 적어도 하나의 파라미터값을 포함한다. 제2 컴퓨팅 디바이스는 새로운 스테이터스의 적어도 하나의 파라미터값과 같은 예측된 스테이터스의 적어도 하나의 파라미터값을 설정하고, 예측된 스테이터스의 적어도 하나의 파라미터값과 시각적 스테이터스의 적어도 하나의 파라미터값 간의 불일치를 결정한다. 불일치가 제1 임계값보다 더 크면, 제2 컴퓨팅 디바이스는 예측된 스테이터스의 적어도 하나의 속도를 변경한다. 불일치가 제2 임계값보다 더 크면, 제2 컴퓨팅 디바이스는 예측된 스테이터스의 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 시각적 스테이터스의 적어도 하나의 파라미터값을 변경한다. 제2 컴퓨팅 디바이스는 시각적 스테이터스에 적어도 부분적으로 기초하여 객체의 제4 시각적 표현을 렌더링(render)하고 객체의 제4 시각적 표현을 제1 디스플레이 디바이스에 디스플레이한다.
객체의 제3 시각적 표현은 제1 컴퓨팅 디바이스에 의해 제2 디스플레이 디바이스에 디스플레이될 수 있고, 객체의 제4 시각적 표현은 제1 컴퓨팅 디바이스에 의해 제2 디스플레이 디바이스에 디스플레이된 객체의 제3 시각적 표현과 실질적으로 동시에 제2 컴퓨팅 디바이스에 의해 제1 디스플레이 디바이스에 디스플레이될 수 있다.
일부 실시예에서, 예측된 스테이터스는 제1 예측된 스테이터스이고, 불일치는 제1 불일치이다. 이러한 실시예에서, 제2 컴퓨팅 디바이스는 예측된 스테이터스의 적어도 하나의 속도에 적어도 부분적으로 기초하여 제2 예측된 스테이터스(적어도 하나의 파라미터값을 포함하여)를 생성할 수 있다. 제2 불일치가 제2 임계값보다 더 클 때, 제2 컴퓨팅 디바이스는 제2 예측된 스테이터스의 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 시각적 스테이터스의 적어도 하나의 파라미터값을 변경할 수 있다. 이러한 실시예에서, 제2 컴퓨팅 디바이스는 시각적 스테이터스에 적어도 부분적으로 기초하여 객체의 제5 시각적 표현을 렌더링하고, 객체의 제5 시각적 표현을 제1 디스플레이 디바이스에 디스플레이한다.
제2 컴퓨팅 디바이스는 제2 컴퓨팅 디바이스에 의해 액세스가능한 저장 디바이스로부터 제1 임계값을 획득할 수 있다. 객체는 유형을 구비할 수 있고, 제1 임계값은 저장 디바이스에 저장된 테이블에 저장될 수 있다. 이러한 실시예에서, 제1 임계값은 테이블 내 객체의 유형과 연관된다. 일부 실시예에서, 새로운 스테이터스의 적어도 하나의 파라미터값은 적어도 하나의 속도를 포함하고, 예측된 스테이터스의 적어도 하나의 속도를 변경하는 것은 객체의 유형과 연관된 범프값(bump value)을 획득하는 것, 및 범프값, 불일치, 및 새로운 스테이터스의 적어도 하나의 속도의 함수로서 예측된 스테이터스의 적어도 하나의 속도를 계산하는 것을 포함한다.
일부 실시예에서, 시각적 스테이터스의 적어도 하나의 파라미터값은 적어도 하나의 속도를 포함하고, 예측된 스테이터스의 적어도 하나의 파라미터값은 적어도 하나의 속도를 포함한다. 이러한 실시예에서, 예측된 스테이터스의 적어도 하나의 파라미터값과 시각적 스테이터스의 적어도 하나의 파라미터값 간의 불일치를 결정하는 것은 예측된 스테이터스의 적어도 하나의 속도와 시각적 스테이터스의 적어도 하나의 속도 간의 불일치를 결정하는 것을 포함할 수 있다. 새로운 스테이터스의 적어도 하나의 파라미터값이 적어도 하나의 속도를 포함할 때, 예측된 스테이터스의 적어도 하나의 속도는 새로운 스테이터스의 적어도 하나의 속도와 동일하게 설정될 수 있다.
일부 실시예에서, 불일치가 제2 임계값보다 더 클 때 예측된 스테이터스의 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 시각적 스테이터스의 적어도 하나의 파라미터값을 변경하는 것은 불일치가 제2 임계값보다 더 큰 제3 임계값보다 더 큰지의 여부를 결정하는 것을 포함한다. 불일치가 제3 임계값보다 더 큰 것으로 결정되면, 제2 컴퓨팅 디바이스는 예측된 스테이터스의 적어도 하나의 파라미터값과 같은 시각적 스테이터스의 적어도 하나의 파라미터값을 설정할 수 있다. 제2 컴퓨팅 디바이스는 불일치가 제3 임계값 미만일 때 혼합된(blended) 스테이터스를 결정할 수 있다. 혼합된 스테이터스는 시각적 스테이터스의 적어도 하나의 파라미터값 및 예측된 스테이터스의 적어도 하나의 파라미터값에 적어도 부분적으로 기초할 수 있다. 혼합된 스테이터스는 적어도 하나의 파라미터값을 포함할 수 있고, 시각적 스테이터스의 적어도 하나의 파라미터값은 혼합된 스테이터스의 적어도 하나의 파라미터값과 동일하게 설정될 수 있다.
일부 실시예에서, 시각적 스테이터스의 적어도 하나의 파라미터값은 위치 정보 및 배향 정보 중 적어도 하나를 포함하고, 예측된 스테이터스의 적어도 하나의 파라미터값은 위치 정보 및 배향 정보 중 적어도 하나를 포함한다. 이러한 실시예에서, 예측된 스테이터스의 적어도 하나의 파라미터값과 시각적 스테이터스의 적어도 하나의 파라미터값 간의 불일치를 결정하는 것은 예측된 스테이터스의 위치 정보 및 배향 정보 중 적어도 하나와 시각적 스테이터스의 위치 정보 및 배향 정보 중 적어도 하나 간의 불일치를 결정하는 것을 포함할 수 있다. 새로운 스테이터스의 적어도 하나의 파라미터값이 위치 정보 및 배향 정보 중 적어도 하나를 포함하면, 예측된 스테이터스의 위치 정보 및 배향 정보 중 적어도 하나는 새로운 스테이터스의 위치 정보 및 배향 정보 중 적어도 하나와 동일하게 설정될 수 있다.
불일치가 제2 임계값보다 더 클 때 예측된 스테이터스의 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 시각적 스테이터스의 적어도 하나의 파라미터값을 변경하는 것은 불일치가 제3 임계값보다 더 큰지의 여부를 결정하는 것을 포함할 수 있고, 여기서 제3 임계값은 제2 임계값보다 더 크다. 불일치가 제3 임계값보다 더 큰 것으로 결정되면, 시각적 스테이터스의 위치 정보 및 배향 정보 중 적어도 하나는 예측된 스테이터스의 위치 정보 및 배향 정보 중 적어도 하나와 동일하게 설정될 수 있다.
객체는 유형을 구비할 수 있고 제3 임계값은 테이블에 저장될 수 있고 테이블 내 객체 유형과 연관될 수 있다. 제2 컴퓨팅 디바이스는 테이블로부터 제3 임계값을 획득할 수 있다.
불일치가 제2 임계값보다 더 클 때 예측된 스테이터스의 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 시각적 스테이터스의 적어도 하나의 파라미터값을 변경하는 것은 불일치가 제3 임계값 미만일 때 혼합된 스테이터스를 결정하는 것을 포함할 수 있다. 혼합된 스테이터스는 시각적 스테이터스의 위치 정보 및 배향 정보 중 적어도 하나 및 예측된 스테이터스의 위치 정보 및 배향 정보 중 적어도 하나에 적어도 부분적으로 기초할 수 있다. 이러한 실시예에서, 혼합된 스테이터스는 위치 정보 및 배향 정보 중 적어도 하나를 포함한다. 혼합된 스테이터스가 결정된 후, 시각적 스테이터스의 위치 정보 및 배향 정보 중 적어도 하나는 혼합된 스테이터스의 위치 정보 및 배향 정보 중 적어도 하나와 동일하게 설정될 수 있다.
혼합된 스테이터스는 객체가 유형을 구비하는 실시예에서 객체의 유형과 연관된 하나 이상의 파라미터값에 적어도 부분적으로 기초하여 결정될 수 있다. 제2 및 제3 임계값은 테이블에 저장될 수 있고 테이블 내 객체 유형과 연관될 수 있다. 이러한 실시예에서, 제2 컴퓨팅 디바이스는 테이블로부터 제2 및 제3 임계값을 획득할 수 있다.
새로운 스테이터스의 적어도 하나의 파라미터값은 객체의 제어 모드를 포함할 수 있고, 제2 컴퓨팅 디바이스는 객체의 제어 모드에 적어도 부분적으로 기초하여 복수의 제1 및 제2 임계값으로부터 제2 및 제3 임계값 중 적어도 하나를 선택할 수 있다. 이 선택(들)은 또한 객체의 유형에 적어도 부분적으로 기초할 수 있다.
불일치가 제2 임계값보다 더 클 때, 예측된 스테이터스의 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 시각적 스테이터스의 적어도 하나의 파라미터값을 변경하는 것은 국부 충돌 스테이터스를 결정하는 것, 및 국부 충돌 스테이터스에 기초하여 시각적 스테이터스를 변경하는 것을 포함할 수 있다. 분산된 시뮬레이션이 지형을 포함하는 경우, 제2 컴퓨팅 디바이스는 객체가 실질적으로 지형을 실질적으로 통과하지 않을 때까지는 국부 충돌 스테이터스를 결정하는 것 및 국부 충돌 스테이터스에 기초하여 시각적 스테이터스를 변경하는 것을 반복할 수 있다.
제1 컴퓨팅 디바이스에서 실행하는 분산된 시뮬레이션의 일부분은 복수의 객체의 일부분을 제어하고 복수의 객체의 일부분 중 적어도 하나의 객체와 관련된 업데이트를 제2 컴퓨팅 디바이스에 송신할 수 있다. 이러한 실시예에서, 제2 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스로부터, 제1 컴퓨팅 디바이스에 의해 제어된 복수의 객체의 일부분의 제1 객체와 관련된 스테이터스 정보를 포함하는 이전의 업데이트를 수신한다. 제2 컴퓨팅 디바이스는 제1 객체와 관련된 스테이터스 정보에 적어도 부분적으로 기초하여 제1 객체의 제1 시각적 표현을 생성하고 디스플레이한다. 제2 컴퓨팅 디바이스는 제1 객체 및 제1 시각적 표현과 연관된 시각적 스테이터스 정보를 포함한다. 제2 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스로부터 스테이터스 정보를 포함하는 새로운 업데이트를 수신하고, 이 새로운 업데이트는 이전의 업데이트 후에 수신된 것이다. 제2 컴퓨팅 디바이스는 이전의 업데이트의 스테이터스 정보에 적어도 부분적으로 기초하여 제1 객체에 대해 예측된 스테이터스 정보를 결정한다. 예측된 스테이터스 정보는 적어도 하나의 속도값을 포함한다. 제2 컴퓨팅 디바이스는 새로운 업데이트의 스테이터스 정보가 제1 객체와 관련된 것인지의 여부를 결정한다. 새로운 업데이트의 스테이터스 정보가 제1 객체와 관련된 것일 때, 제2 컴퓨팅 디바이스는 예측된 스테이터스 정보의 적어도 일부분을 새로운 업데이트의 스테이터스 정보의 적어도 일부분과 동일한 것으로 설정한다. 제2 컴퓨팅 디바이스는 시각적 스테이터스 정보와 예측된 스테이터스 정보 간의 불일치를 결정한다. 불일치가 제1 임계값보다 더 클 때, 제2 컴퓨팅 디바이스는 예측된 스테이터스 정보의 적어도 하나의 속도값을 변경하며, 불일치가 제2 임계값보다 더 클 때, 제2 컴퓨팅 디바이스는 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 시각적 스테이터스 정보를 변경한다. 제2 컴퓨팅 디바이스는 시각적 스테이터스 정보에 적어도 부분적으로 기초하여 객체의 제2 시각적 표현을 렌더링하고, 객체의 제2 시각적 표현을 디스플레이 디바이스에 디스플레이한다.
일부 실시예에서, 예측된 스테이터스 정보는 제1 예측된 스테이터스 정보이고, 불일치는 제1 불일치이다. 이러한 실시예에서, 제2 컴퓨팅 디바이스는 제1 예측된 스테이터스 정보의 적어도 하나의 속도에 적어도 부분적으로 기초하여 제2 예측된 스테이터스 정보를 생성하고, 시각적 스테이터스 정보와 제2 예측된 스테이터스 정보 사이의 제2 불일치를 결정한다. 제2 불일치가 제2 임계값보다 더 클 때, 제2 컴퓨팅 디바이스는 제2 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 시각적 스테이터스 정보를 변경한다. 제2 컴퓨팅 디바이스는 시각적 스테이터스 정보에 적어도 부분적으로 기초하여 객체의 제3 시각적 표현을 렌더링하고, 객체의 제3 시각적 표현을 디스플레이 디바이스에 디스플레이한다.
일부 실시예에서, 제2 컴퓨팅 디바이스에서 실행하는 분산된 시뮬레이션의 일부분은 복수의 객체의 제2 부분을 제어한다. 이러한 실시예에서, 제2 컴퓨팅 디바이스는 복수의 객체의 제2 부분의 적어도 하나의 객체와 관련된 업데이트를 제1 컴퓨팅 디바이스에 송신한다. 제2 컴퓨팅 디바이스는 복수의 객체의 제2 부분의 선택된 객체의 스테이터스를 변경하는, 유저 인터페이스 디바이스를 통한 유저 입력을 수신할 수 있다. 제2 컴퓨팅 디바이스는 선택된 객체와 관련된 스테이터스 정보를 포함하는 업데이트를 생성하고, 선택된 객체와 관련된 업데이트를 제1 컴퓨팅 디바이스에 송신할 수 있다. 일부 실시예에서, 서버는 네트워크를 통해 복수의 컴퓨팅 디바이스에 연결된다. 이러한 실시예에서, 제2 컴퓨팅 디바이스는 복수의 객체의 제2 부분의 적어도 하나의 객체와 관련된 업데이트를 서버에 송신함으로써 복수의 컴퓨팅 디바이스 중 다른 컴퓨팅 디바이스에 전송(forwarding)할 수 있다.
일부 실시예는 제2 컴퓨팅 디바이스가 제1 컴퓨팅 디바이스로부터 이전의 업데이트를 수신하는 방법을 포함한다. 이전의 업데이트는 제1 컴퓨팅 디바이스에 의해 제어된 복수의 객체의 일부분의 제1 객체와 관련된 스테이터스 정보를 포함한다. 제2 컴퓨팅 디바이스는 제1 객체와 관련된 스테이터스 정보에 적어도 부분적으로 기초하여 제1 객체의 제1 시각적 표현을 생성하고 디스플레이한다. 시각적 스테이터스 정보는 제1 객체 및 제1 시각적 표현과 연관된다. 제2 컴퓨팅 디바이스는 이전의 업데이트 후 제1 컴퓨팅 디바이스로부터 새로운 업데이트를 수신한다. 새로운 업데이트는 스테이터스 정보를 포함한다. 제2 컴퓨팅 디바이스는 이전의 업데이트의 스테이터스 정보에 적어도 부분적으로 기초하여 제1 객체에 대해 예측된 스테이터스 정보를 결정한다. 제2 컴퓨팅 디바이스는 새로운 업데이트의 스테이터스 정보가 제1 객체와 관련된 것인지의 여부를 결정하고, 새로운 업데이트의 스테이터스 정보가 제1 객체와 관련된 것일 때, 제2 컴퓨팅 디바이스는 예측된 스테이터스 정보의 적어도 일부분을 새로운 업데이트의 스테이터스 정보의 적어도 일부분과 동일한 것으로 설정한다. 제2 컴퓨팅 디바이스는 시각적 스테이터스 정보 및 예측된 스테이터스 정보 간의 불일치를 결정한다. 불일치가 제1 임계값보다 더 클 때, 제2 컴퓨팅 디바이스는 시각적 스테이터스 정보의 적어도 일부분을 예측된 스테이터스 정보의 적어도 일부분과 동일하게 설정한다. 불일치가 제1 임계값 미만이고 제2 임계값보다 더 클 때, 제2 컴퓨팅 디바이스는 시각적 스테이터스 정보 및 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 혼합된 스테이터스 정보를 결정하고, 시각적 스테이터스 정보의 적어도 일부분을 혼합된 스테이터스 정보의 적어도 일부분과 동일한 것으로 설정한다. 제1 임계값은 제2 임계값보다 더 크다. 제2 컴퓨팅 디바이스는 시각적 스테이터스 정보에 적어도 부분적으로 기초하여 제1 객체의 제2 시각적 표현을 렌더링하고; 제1 객체의 제2 시각적 표현을 디스플레이 디바이스에 디스플레이한다.
일부 실시예는, 네트워크를 통해 서로 연결되고 복수의 객체를 포함하는 분산된 시뮬레이션의 일부분을 각각 실행하는 복수의 컴퓨팅 디바이스와 함께 사용하는 방법을 포함한다. 복수의 컴퓨팅 디바이스 중 제1 컴퓨팅 디바이스에서 실행하는 부분은 복수의 객체의 제1 부분을 제어하고 복수의 객체의 제1 부분의 적어도 하나의 객체와 관련된 업데이트를 복수의 컴퓨팅 디바이스 중 제2 컴퓨팅 디바이스에 송신한다. 제2 컴퓨팅 디바이스에서 실행하는 부분은 복수의 객체의 제2 부분을 제어하고 복수의 객체의 제2 부분의 적어도 하나의 객체와 관련된 업데이트를 제1 컴퓨팅 디바이스에 송신한다. 제2 컴퓨팅 디바이스는 복수의 객체의 제1 부분의 제1 객체의 제1 시각적 표현을 렌더링하고, 복수의 객체의 제2 부분의 제2 객체의 제1 시각적 표현을 렌더링한다. 제1 객체의 제1 시각적 표현은 시각적 스테이터스 정보와 연관된다. 제2 컴퓨팅 디바이스는 제2 객체의 제1 시각적 표현을 변경하는, 유저 입력 디바이스를 통한 입력을 수신하고, 제2 컴퓨팅 디바이스에 의해 사용가능한 제1 컴퓨팅 디바이스로부터 업데이트를 경우에 따라 수신하여 제1 객체의 제1 시각적 표현을 변경한다. 제1 컴퓨팅 디바이스로부터 수신된 각 업데이트는 제1 객체와 관련된 스테이터스 정보를 포함한다. 제2 객체의 제1 시각적 표현이 변경되면, 제2 컴퓨팅 디바이스는 업데이트를 네트워크를 통해 제1 컴퓨팅 디바이스에 경우에 따라 송신한다. 업데이트는 제2 객체의 제2 시각적 표현을 변경하기 위해 제1 컴퓨팅 디바이스에 의해 사용가능한 제2 객체와 관련된 스테이터스 정보를 포함한다. 제2 컴퓨팅 디바이스는 적어도 하나의 속도를 포함하는 제1 객체에 대해 예측된 스테이터스 정보를 경우에 따라 생성한다. 각 업데이트가 제2 컴퓨팅 디바이스에서 수신된 후, 제2 컴퓨팅 디바이스는 예측된 스테이터스 정보를 업데이트의 스테이터스 정보와 동일한 것으로 설정한다. 제2 컴퓨팅 디바이스는 예측된 스테이터스 정보 및 제1 객체의 제1 시각적 표현과 연관된 시각적 스테이터스 정보 간의 불일치를 결정한다. 불일치가 제1 임계값보다 더 클 때, 제2 컴퓨팅 디바이스는 적어도 하나의 속도를 변경함으로써 예측된 스테이터스 정보를 업데이트한다. 불일치가 제2 임계값보다 더 클 때, 제2 컴퓨팅 디바이스는 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 제1 객체의 제1 시각적 표현과 연관된 시각적 스테이터스 정보를 변경한다. 제2 컴퓨팅 디바이스는 시각적 스테이터스 정보에 적어도 부분적으로 기초하여 제2 객체의 제1 시각적 표현을 재렌더링한다.
제1 객체는 유형을 구비할 수 있고, 제1 및 제2 임계값은 테이블에 저장될 수 있고 테이블 내 객체의 유형과 연관될 수 있다. 이러한 실시예에서, 제2 컴퓨팅 디바이스는 테이블 내 제1 및 제2 임계값을 룩업할 수 있다.
불일치가 제2 임계값보다 더 클 때 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 제1 객체의 제1 시각적 표현과 연관된 시각적 스테이터스 정보를 변경하는 것은 불일치가 제3 임계값보다 더 클 때 시각적 스테이터스 정보를 예측된 스테이터스 정보와 동일한 것으로 설정하는 것을 포함할 수 있다. 다른 한편, 불일치가 제3 임계값 미만이고 제2 임계값보다 더 클 때, 제2 컴퓨팅 디바이스는 시각적 스테이터스 정보 및 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 혼합된 스테이터스 정보를 결정하고, 시각적 스테이터스 정보를 혼합된 스테이터스 정보와 동일한 것으로 설정할 수 있다. 이러한 실시예에서, 제3 임계값은 제2 임계값보다 더 크다.
실시예는 하나 이상의 프로세서에 의해 실행될 때 전술한 방법 중 하나 이상을 수행하는 컴퓨터 실행가능한 명령을 저장하는 하나 이상의 컴퓨터 판독가능한 매체를 포함한다. 예를 들어, 하나 이상의 컴퓨터 판독가능한 매체는 하나 이상의 프로세서에 의해 실행될 때 분산된 시뮬레이션의 제1 부분을 실행하는 제1 컴퓨팅 디바이스와 함께 사용하는 방법을 수행하고, 제1 부분은 객체를 제어하는 것인, 컴퓨터 실행가능한 명령을 저장한다. 본 방법은 분산된 시뮬레이션의 제2 부분을 실행하는 것을 포함하고, 제2 부분은 제1 디스플레이 디바이스에 디스플레이가능한 객체의 제1 시각적 표현을 생성한다. 시각적 스테이터스는 객체 및 제1 시각적 표현과 연관된다. 시각적 스테이터스는 적어도 하나의 파라미터값을 포함할 수 있다. 본 방법은 제1 컴퓨팅 디바이스로부터 수신된 이전의 업데이트에 포함된 이전의 스테이터스에 적어도 부분적으로 기초하여 객체의 예측된 스테이터스를 생성하는 것을 더 포함할 수 있다. 이전의 스테이터스는 객체의 제2 시각적 표현과 연관될 수 있다. 예측된 스테이터스는 적어도 하나의 속도 및 적어도 하나의 파라미터값을 포함한다. 본 방법은 제1 컴퓨팅 디바이스로부터 업데이트를 수신하는 것을 더 포함할 수 있다. 업데이트는 객체의 제3 시각적 표현과 연관된 새로운 스테이터스를 포함할 수 있다. 새로운 스테이터스는 적어도 하나의 파라미터값을 포함할 수 있다. 본 방법은 예측된 스테이터스의 적어도 하나의 파라미터값을 새로운 스테이터스의 적어도 하나의 파라미터값과 동일한 것으로 설정하는 것, 및 예측된 스테이터스의 적어도 하나의 파라미터값과 시각적 스테이터스의 적어도 하나의 파라미터값 간의 불일치를 결정하는 것을 더 포함할 수 있다. 불일치가 제1 임계값보다 더 클 때, 예측된 스테이터스의 적어도 하나의 속도가 변경된다. 불일치가 제2 임계값보다 더 클 때, 시각적 스테이터스의 적어도 하나의 파라미터값이 예측된 스테이터스의 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 변경된다. 본 방법은 시각적 스테이터스에 적어도 부분적으로 기초하여 객체의 제4 시각적 표현을 렌더링하는 것, 및 제1 객체의 제4 시각적 표현을 디스플레이 디바이스에 디스플레이하는 것을 더 포함할 수 있다.
예측된 스테이터스는 제1 예측된 스테이터스일 수 있고, 불일치는 제1 불일치일 수 있다. 이러한 실시예에서, 본 방법은 예측된 스테이터스의 적어도 하나의 속도에 적어도 부분적으로 기초하여 제2 예측된 스테이터스를 생성하는 것을 더 포함할 수 있다. 제2 예측된 스테이터스는 적어도 하나의 파라미터값을 포함한다. 제2 불일치가 제2 임계값보다 더 클 때, 시각적 스테이터스의 적어도 하나의 파라미터값은 제2 예측된 스테이터스의 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 변경된다. 본 방법은 시각적 스테이터스에 적어도 부분적으로 기초하여 객체의 제5 시각적 표현을 렌더링하는 것, 및 객체의 제5 시각적 표현을 제1 디스플레이 디바이스에 디스플레이하는 것을 더 포함할 수 있다.
불일치가 제2 임계값보다 더 클 때 예측된 스테이터스의 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 시각적 스테이터스의 적어도 하나의 파라미터값을 변경하는 것은 불일치가 제3 임계값보다 더 큰지의 여부를 결정하는 것을 포함할 수 있다. 제3 임계값은 제2 임계값보다 더 크다. 불일치가 제3 임계값보다 더 큰 것으로 결정되면, 시각적 스테이터스의 파라미터값 중 적어도 하나의 값이 예측된 스테이터스의 파라미터값 중 적어도 하나의 값으로 설정된다. 다른 한편, 불일치가 제3 임계값 미만인 것으로 결정되면, 혼합된 스테이터스는 시각적 스테이터스의 적어도 하나의 파라미터값 및 예측된 스테이터스의 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 결정된다. 혼합된 스테이터스는 적어도 하나의 파라미터값을 포함한다. 시각적 스테이터스의 적어도 하나의 파라미터값은 혼합된 스테이터스의 파라미터값 중 적어도 하나의 값으로 설정된다.
실시예는 복수의 객체를 포함하는 분산된 시뮬레이션을 구현하는 시스템을 포함한다. 시스템은 네트워크를 통해 서로 연결된 복수의 컴퓨팅 디바이스를 포함하며, 각 컴퓨팅 디바이스는 분산된 시뮬레이션의 일부분을 실행하도록 구성된다. 복수의 컴퓨팅 디바이스 중 제1 컴퓨팅 디바이스는, 복수의 객체의 일부분을 제어하고 복수의 객체의 일부분의 적어도 하나의 객체와 관련된 업데이트를 복수의 컴퓨팅 디바이스 중 제2 컴퓨팅 디바이스에 송신하는 분산된 시뮬레이션의 제1 부분을 실행한다. 제2 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스에 의해 제어되는 복수의 객체의 일부분의 제1 객체와 관련된 스테이터스 정보를 포함하는 이전의 업데이터를 제1 컴퓨팅 디바이스로부터 수신하도록 구성될 수 있다. 제2 컴퓨팅 디바이스는 제1 객체와 관련된 스테이터스 정보에 적어도 부분적으로 기초하여 제1 객체의 제1 시각적 표현을 생성하고, 디스플레이 디바이스에 제1 시각적 표현을 디스플레이하도록 더 구성될 수 있다. 제2 컴퓨팅 디바이스는 제1 객체 및 제1 시각적 표현과 연관된 시각적 스테이터스 정보를 구비한다. 제2 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스로부터 스테이터스 정보를 포함하는 새로운 업데이트를 수신하도록 더 구성될 수 있고, 새로운 업데이트는 이전의 업데이트 후에 수신된 것이다. 제2 컴퓨팅 디바이스는 이전의 업데이트의 스테이터스 정보에 적어도 부분적으로 기초하여 제1 객체에 대해 예측된 스테이터스 정보를 결정하도록 더 구성될 수 있고, 예측된 스테이터스 정보는 적어도 하나의 속도값을 포함한다. 제2 컴퓨팅 디바이스는 새로운 업데이트의 스테이터스 정보가 제1 객체와 관련된 것인지의 여부를 결정하고, 새로운 업데이트의 스테이터스 정보가 제1 객체와 관련된 것일 때, 예측된 스테이터스 정보의 적어도 일부분을 새로운 업데이트의 스테이터스 정보의 적어도 일부분으로 설정하도록 더 구성될 수 있다. 제2 컴퓨팅 디바이스는 시각적 스테이터스 정보와 예측된 스테이터스 정보 간의 불일치를 결정하도록 더 구성될 수 있다. 불일치가 제1 임계값보다 더 클 때, 제2 컴퓨팅 디바이스는 예측된 스테이터스 정보의 적어도 하나의 속도값을 변경할 수 있다. 불일치가 제2 임계값보다 더 클 때, 제2 컴퓨팅 디바이스는 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 시각적 스테이터스 정보를 변경할 수 있다. 제2 컴퓨팅 디바이스는 시각적 스테이터스 정보에 적어도 부분적으로 기초하여 객체의 제2 시각적 표현을 렌더링하고, 객체의 제2 시각적 표현을 디스플레이 디바이스에 디스플레이한다.
예측된 스테이터스 정보가 제1 예측된 스테이터스 정보인 실시예에서, 불일치는 제1 불일치이고, 제2 컴퓨팅 디바이스는 제1 예측된 스테이터스 정보의 적어도 하나의 속도에 적어도 부분적으로 기초하여 제2 예측된 스테이터스 정보를 생성하고, 시각적 스테이터스 정보와 제2 예측된 스테이터스 정보 사이의 제2 불일치를 결정하도록 더 구성될 수 있다. 제2 불일치가 제2 임계값보다 더 클 때, 제2 컴퓨팅 디바이스는 제2 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 시각적 스테이터스 정보를 변경할 수 있고, 제2 컴퓨팅 디바이스는 시각적 스테이터스 정보에 적어도 부분적으로 기초하여 객체의 제3 시각적 표현을 렌더링하고, 객체의 제3 시각적 표현을 디스플레이 디바이스에 디스플레이한다.
제2 컴퓨팅 디바이스에서 실행하는 분산된 시뮬레이션의 일부분은 복수의 객체의 제2 부분을 제어할 수 있다. 이러한 실시예에서, 제2 컴퓨팅 디바이스는 복수의 객체의 제2 부분의 적어도 하나의 객체와 관련된 업데이트를 제1 컴퓨팅 디바이스에 송신하도록 더 구성될 수 있다. 제2 컴퓨팅 디바이스는 유저 인터페이스 디바이스를 통해 복수의 객체의 제2 부분의 선택된 객체의 스테이터스를 변경하는 유저 입력을 수신하고, 선택된 객체와 관련된 스테이터스 정보를 포함하는 업데이트를 생성하고, 선택된 객체와 관련된 업데이트를 제1 컴퓨팅 디바이스에 송신하도록 구성될 수 있다. 이들 시스템은 네트워크를 통해 복수의 컴퓨팅 디바이스에 연결된 서버를 포함할 수 있다. 제2 컴퓨팅 디바이스는 복수의 객체의 제2 부분의 적어도 하나의 객체와 관련된 업데이트를 서버에 송신함으로써 복수의 컴퓨팅 디바이스 중 다른 컴퓨팅 디바이스에 전송하도록 구성될 수 있다.
본 발명의 측면은 동일한 참조 부호가 도면 전체에 걸쳐 동일한 부분을 언급하는 첨부 도면을 참조하여 이하 상세한 설명을 통해 명백해질 것이다:
도 1은 분산된 대화식 시뮬레이션을 위한 시스템의 블록도;
도 2는 도 1의 시스템의 2개의 스테이션 사이에 공유되는 분산된 대화식 시뮬레이션의 국부적 표현을 도시한 다이어그램;
도 3은 예측자-보간기 모듈 및 그 상호 연결을 도시하는 도 1의 시스템의 콘솔의 일부분의 블록도;
도 4는 도 1의 시스템의 적어도 일부분에 의해 수행될 수 있는 원격으로 관리되는 객체 상태 보간 프로세스의 흐름도;
도 5a는 상이한 모드 및 조건에서 동작하는 제1 예시적인 유형, 즉 전지형 만능차 유형의 예시적인 동적 객체를 관리하는데 적합한 기준 및 파라미터의 테이블을 도시한 도면;
도 5b는 상이한 모드 및 조건에서 동작하는 제2 예시적인 유형, 즉 날 것(flier) 유형의 예시적인 동적 객체를 관리하는데 적합한 기준 및 파라미터의 테이블을 도시한 도면;
도 6은 도 1의 시스템의 게임 콘솔 중 하나 이상이 구현될 수 있는 하드웨어 환경 및 동작 환경을 도시한 다이어그램.
컴퓨터 게임의 상황이 분산된 시뮬레이션을 설명할 때 본 명세서에서 예로서 설명의 편의를 위하여 사용된다. 그러나, 본 명세서에 설명된 시스템 및 방법의 적용가능성은 컴퓨터 게임과 사용하는 것으로 제한되지 않고 다른 유형의 분산된 시뮬레이션에도 사용될 수 있다. 나아가, 설명된 실시예에서, 분산된 클록이 가정되지 않는다. 대신, 일반적인 레이턴시를 구비하는 업데이트의 진행 스트림에 기초하여 고품질의 예측이 분산된 대화식 시뮬레이션의 코히런트한 제공을 생성하기 위하여 사용될 수 있다. 이러한 가정을 한 결과 레이턴시는 짧은 간격에 걸쳐 폭넓게 변한다면 저하될 수 있으나, 그럼에도 불구하고 일반적으로 일관적이고 만족스러운 공유 시뮬레이션을 제공할 수 있다. 본 명세서에 설명된 시스템 및 방법은 모든 스테이션에서 동일한 프레임 율 및 업데이트 율을 구비하는 분산된 시뮬레이션에 대해 동작할 수 있으나, 이것은 가정을 한 것도 아니고 필수사항도 아니다. 따라서, 설명된 실시예에서, 각 스테이션에서 분산된 시뮬레이션에서 각 연속적인 증분은 "지금"(now)이 아닌 특정 시간 또는 시간 스탬프에 대응하는 것이 아니며, 실제 세계에서 동시에 일어나는 업데이트는 모든 참가 스테이션에서 간단한 레이턴시 후에 발생하는 것으로 보일 수 있으나, 배경 기술 란에서 전술한 레이턴시 및 제한사항으로 인해 하나의 스테이션에 의해 관리되는 객체에 대해 생성된 업데이트의 효과는 차후 일부 반복 시까지 일부 다른 스테이션에서 보이지 않을 수 있다.
비제한적인 개요로서, 분산된 대화식 시뮬레이션의 원격으로 제어되고 물리적으로 기반한 객체 모델에 관한 업데이트가 수용된다. 객체에 적합한 미리 결정된 조건 하에서, 임펄스 또는 "속도 범프"가 결정되고 스케일링되어 업데이트에 추가되어 시뮬레이팅된 객체의 올바른 위치의 현재 예측을 형성한다. 물리적으로 기반한 시뮬레이션의 각 후속 반복은 새로운 업데이트가 수신될 때까지 새로운 예측된 스테이터스를 제공한다. 별개의 시각적 모델이 예측된 또는 업데이트된 스테이터스의 시각적 불연속을 경감하기 위해 유지된다. 그러나, 시각적 모델은 현재 예측 쪽으로 연속적으로 수렴하고, 시각적 모델의 새로운 스테이터스는 이전의 스테이터스, 현재 예측과의 불일치, 및 제시되는 객체에 적합한 특정 미리 결정된 기준 및 파라미터로부터 결정된다. 또한 시각적 모델에는 다른 객체, 특히 발사체와 상호작용을 검출하는 충돌 시스템이 결합된다. 집합적으로, 이들 특징은 분산된 대화식 시뮬레이션보다 더 현실감 있고 보다 정확한 (예를 들어, 시뮬레이팅된 차량을 추적하거나 타깃 지정할 때) 것으로 보이는 보다 미적으로 매력 있는 시각적 제공을 제공한다.
도 1을 참조하면, 분산된 대화식 시뮬레이션 시스템(100)은 유저(미도시)에 속한 스테이션으로 지정된 국부 스테이션(110), 및 다수의 원격 스테이션(140)을 포함하며, 이들 모두는 네트워크(120)(예를 들어, 인터넷)를 통해 서버(130)와 통신할 수 있다. 도시된 실시예에서, 원격 스테이션(140)은 원격 스테이션(140A, 140B, 및 140C)을 포함한다. 그러나, 이것은 필수사항이 아니며 원격 스테이션(140)은 임의의 개수의 원격 스테이션을 포함할 수 있다. 후술되는 바와 같이, 스테이션(110, 140A, 140B, 및 140C)은 선택적으로 서로 통신할 수 있다.
분산된 게임 시스템의 예를 사용하면, 서버(130)는 각 연결된 스테이션에 있는 유저들이 서로를 발견하고 게임을 배열하고 게임에 가입할 수 있게 하는 게임 네트워크 서버이다.
각 스테이션(110, 140A, 140B, 140C)은 게임 콘솔(111, 142, 144, 146)로 각각 구현될 수 있는 컴퓨팅 디바이스를 포함한다. 비제한적인 예로서, 게임 콘솔(111, 142, 144, 146)은 각각 워싱턴주의 레드몬드시에 소재한 마이크로소프트사(Microsoft Corporation)에 의해 제조되는 Xbox(360)로 구현될 수 있다. 추가적으로, 각 스테이션(110, 140A, 140B, 140C)은 제어기(113, 143, 145, 147)를 각각 포함한다. 각 스테이션(110, 140A, 140B, 140C)은 또한 디스플레이를 포함하지만, 국부 스테이션(110)의 디스플레이(112)만이 도 1에 도시되어 있다. 국부 스테이션(110)의 콘솔(111)은 연결(121)을 통해 서버(130)와 통신한다. 원격 스테이션(140)의 콘솔(142, 144, 146)은 연결(122, 123, 124)을 통해 각각 서버(130)와 통신한다.
일부 실시예에서, 콘솔(111)은 통신 채널(152, 153, 154)을 통해 각각 각 콘솔(142, 144, 146)과 직접 통신할 수 있으나, 콘솔(111, 142, 144, 146)은 컴퓨터 게임과 같은 분산된 대화식 시뮬레이션에서 함께 결합된다. 다른 실시예에서, 서버(130)는 스테이션(110, 140A, 140B, 140C) 사이에 통신을 처리한다. 이러한 실시예는 업로드 대역폭이 일반적으로 다운로드 대역폭보다 더 많이 제한되므로 매우 많은 시뮬레이션에서 많은 스테이션에 매우 적합할 수 있으나, 국부 스테이션(110)으로부터 각 원격 스테이션(140)으로 통신 볼륨은 원격 스테이션(140)으로부터 국부 스테이션(110)으로의 볼륨과 대략 동일하다. 서버(130)가 국부 콘솔(111)로부터 각 원격 콘솔(142, 144, 146)로 업데이트를 효과적으로 "방송"할 수 있게 함으로써, 상당한 송신 부담이 콘솔(111)로부터 경감된다. 그러나, 추가적인 설명을 간단히 하기 위하여, 이하에서는 2개의 콘솔(111 및 142)에 집중하고 서버(130)에 의해 중개되건 중개되지 않건 간에 이들 사이의 통신만을 고려한다. 그러나, 이 기술 분야에 통상의 지식을 가진 자라면 이해할 수 있는 바와 같이, 임의의 쌍의 콘솔(111, 142, 144, 146)들 사이에 통신이 유사한 방식으로 동작할 수 있다.
따라서, 도 2에서, 분산된 대화식 시뮬레이션의 내부 동작의 일부가 도시된다. 각 콘솔(111 및 142)은 분산된 시뮬레이션의 대응하는 국부적 표현을 데이터로 유지한다. 콘솔(111)에 유지되는 국부 표현은 국부 시뮬레이션(200)으로 도시된다. 콘솔(142)에 유지되는 국부 표현은 국부 시뮬레이션(250)으로 도시된다. 분산된 시뮬레이션은 정적 객체 및 동적 객체를 포함한다. 각 국부 시뮬레이션(200, 250)은 분산된 시뮬레이션의 정적 및 동적 객체 각각에 대해 별도의 객체를 포함한다. 예를 들어, 국부 시뮬레이션(200)은 국부 시뮬레이션(250)에서 정적 객체(251)에 대응하는 정적 객체(201)를 포함한다. 유사하게, 국부 시뮬레이션(200)은 국부 시뮬레이션(250)에서 정적 객체(252, 253, 254)에 각각 대응하는 동적 객체(202, 203, 204)를 포함한다.
각 콘솔(111, 142, 144, 146)은 특정 객체를 제어하는 일을 담당한다. 예를 들어, 콘솔(111)에서 플레이어는 제어기(113)를 사용하여 국부 모델 제어 모듈(220)에 입력을 제공하여, 동적 객체(202)(예를 들어, 시뮬레이팅된 차량)를 제어할 수 있다. 이 예에서, 국부 모델 제어 모듈(220)은 또한 예를 들어, 광산(mine), 발사체(projectile), 폭발물(explosion), 박스(box), 또는 다른 동적 객체일 수 있는 동적 객체(204)를 제어한다. 정적 객체(201)는 일반적으로 지형 및 종종 빌딩을 포함하고, 정적이어서 제어기(113)에 의해 제어되지 않는다. 경우에 따라(예를 들어, 주기적으로), 국부 모델 제어 모듈(220)은 업데이트(152A)를 (예를 들어, 채널(152)을 통해) 원격 콘솔(142)에 있는 원격 모델 제어 모듈(280)에 송신한다. 원격 모델 제어 모듈(280)은 국부 시뮬레이션(200)에 있는 동적 객체(202 및 204)와 동일한 국부 시뮬레이션(250)에 있는 동적 객체(252 및 254)를 제어하는 일을 담당한다.
제어기(111)가 담당하는 동적 객체(예를 들어, 동적 객체(202 및 204))의 적어도 각 일부분에 대해, 각 업데이트(152A)는 동적 객체의 식별, 동적 객체에 대한 유형 정보, 및 동적 객체의 동작 모드(예를 들어, "제어된" 또는 "비제어된")의 지시를 포함할 수 있는 식별된 동적 객체에 대한 스테이터스 정보를 포함할 수 있다. 일부 실시예에서, 이러한 정보는 하나 이상의 업데이트에 포함될 수 있다.
역으로, 국부 모델 제어 모듈(270)은 게임 제어기(143)로부터 입력을 수신하여 동적 객체(253)(예를 들어, 또 다른 차량)를 관리한다. 국부 모델 제어 모듈(270)로부터 원격 모델 제어 모듈(230)로 송신된 업데이트(152B)는 국부 시뮬레이션(200)에 있는 동적 객체의 적어도 일부분을 제어하는데 사용된다. 이 예에서, 업데이트(152B)는 객체(203)를 제어하며 이에 의해 콘솔(142)의 객체(253)(예를 들어, 유저에 의해 "운전되는" 차량)는 콘솔(111)을 구비하는 스테이션(110)에서 객체(203)로 보인다.
제어기(142)가 담당하는 동적 객체(예를 들어, 동적 객체(253))의 적어도 각 일부분에 대해, 각 업데이트(152B)는 동적 객체의 식별, 동적 객체에 대한 유형 정보, 및 동적 객체의 동작 모드(예를 들어, "제어된" 또는 "비제어된")의 식별을 포함할 수 있는 식별된 동적 객체에 대한 스테이터스 정보를 포함할 수 있다. 일부 실시예에서, 이러한 정보는 하나 이상의 업데이트에 포함될 수 있다.
국부 시뮬레이션(250)에 있는 정적 객체(251)는 국부 시뮬레이션(200)에 있는 객체(201)에 대응한다.
도 3은 예측자 모듈(310)에서 콘솔(142)로부터 업데이트(152B)를 수신할 때 콘솔(111)의 원격 모델 제어 모듈(230)의 내부 동작(300)을 도시한다.
예측자 모듈(310)은 가장 최근에 수신된 업데이트(152B)를 취득하고 이를 업데이트(152B)에 제시된 객체(예를 들어, 동적 객체(203))에 대응하는 룰 테이블(321)에 있는 미리 결정된 값과 비교한다. 설명의 편의를 위하여, 가장 최근에 수신된 업데이트는 동적 객체(203)를 나타낸다. 국부 시각적 스테이터스(323) 및 가장 최근의 원격 시뮬레이션 업데이트 간의 불일치가 충분하다면, 임펄스, 또는 "범프"는 불일치 및, 동적 객체(203)에 적합하고 동적 객체(203)의 물리적 모델에 적용되는 룰 테이블(321)에 있는 추가적인 정보로부터 결정된다. 이것은 후속 반복에서 동적 객체(203)의 미래의 스테이터스를 외삽하는데 사용되는 특정 속도 벡터를 효과적으로 증가시킨다. 이것은 도 4, 도 5a, 및 도 5b를 참조하여 아래에 보다 상세히 설명된다.
예측자 모듈(310)은 동적 객체(203)에 대한 디테일한 물리적 모델을 실행하며, 이는 국부 시뮬레이션(200)의 후속 반복에서 더 우수한 예측을 만들 수 있게 한다. 국부 물리적 표현에 적용되는 범프는 일정 양만큼 불연속이 개선되는 이미지 프로세싱에서 "샤프닝(sharpening)"과 다소 유사하다. 이 경우에, 범프는 물리적 모델에 임펄스로서 주입(injected)되고, 그 효과는 국부 시뮬레이션(200)의 후속 반복에서만 관찰될 수 있다. 새로운 업데이트(152B)가 도달할 때, 국부 시뮬레이션(200)의 그 다음 반복은 새로운 업데이트에서 제시된 바와 같이 원격으로 관리되는 동적 객체(253)의 스테이터스를 사용하며, 속도 범프를 추가하여 새로운 예측된 스테이터스(311)를 생성할 수 있다. 국부 시뮬레이션(200)의 후속 반복에서, 디테일한 물리적 시뮬레이션은 현재 예측된 스테이터스(311)로부터 외삽을 하여 새로운 예측된 스테이터스(311)를 획득한다.
그러나, 국부 예측된 스테이터스(311)를 사용하여 디스플레이(112)를 직접 구동하는 경우, 새로운 원격 시뮬레이션 업데이트(152B)가 도달할 때마다 국부 예측된 스테이터스(311)의 평활한 움직임에 불연속이 있을 수 있는데, 그 이유는 이전의 업데이트(152B)에 의해 기대되지 않았던 정보를 포함할 수 있기 때문이다.
이것을 치유하기 위해, 보간기 모듈(320)은 룰 테이블(321)을 사용하여 현재 국부 예측된 스테이터스(311) 쪽으로 미적으로 매력있는 방식으로 국부 시각적 스테이터스(323)를 이동시키려고 시도한다. 국부 시각적 스테이터스(323)의 이전의 값이 기초적으로 사용되고, 일반적으로, 새로운 업데이트(152B)는 국부 예측된 스테이터스(311)에 불연속적으로 영향을 미치므로, 디스플레이(112)에 대한 렌더링 모듈(350)에 의하여 생성된 객체의 이미지는 미적으로 매력있는 움직임을 보여주어서, 일반적으로 불연속성이 위장된다. 그 결과, 시각적 스테이터스(323)는 시간에 따라 현재 예측된 스테이터스(311)로 연속적으로 수렴한다.
보간기 모듈(320)은 또한 국부 충돌 스테이터스(322)를 유지한다. 그러나, 플레이어가 볼 수 있게 렌더링하는 것이 아니라, 객체의 충돌 볼륨은 논리적으로 시각적 모델로 진행한다. 이것은 발사체 무기, 및 차량 충돌에서와 같이 시뮬레이팅된 타깃 지정의 현장감을 개선시킨다. 세계에서 객체의 "입체감(solidness)"은 적절하고 객체의 위치에 대응한다. 예를 들어, 객체는 보이는 곳에서 (발사체 충돌 검출 모듈(340)에서 검출된 대로), 또는 복잡한 보간기 모듈(310)에서 발사(shot)될 수 있고, 장애물을 친 것으로 보이는 차량은 이 장애물을 손상시키고(또는 장애물에 의해 손상되고) 이로부터 리바운드되어, 국부 시각적 스테이터스(323)에 영향을 미칠 수 있다.
객체 움직임의 외관은 룰 테이블(321)에 있는 객체에 대한 기준 및 파라미터에 따라 예측자 모듈(310)에 의해 물리적 모델로 주입된 범프에 의해 개선될 수 있고, 기준 및 파라미터는 또한 도 4, 도 5a 및 도 5b를 참조하여 아래에 보다 상세히 설명되는 보간기 모듈(320)에 의해 사용하기 위해 포함된다.
도 4는 원격 모델 제어 모듈(230)에 의해 수행될 수 있는 프로세스(400)를 도시한다(도 2 및 도 3 참조). 블록(401)에서, 국부 시뮬레이션(200)의 반복은 동적 객체(203)가 국부 모델 제어 모듈(270)에 의해 원격으로 관리되는 것으로 시작한다.
다음에, 결정 블록(402)에서, 동적 객체(203)에 대한 새로운 업데이트(152B)가 국부 모델 제어 모듈(270)로부터 수신되었는지의 여부에 대해 결정이 이루어진다. 결정 블록(402)에서 결정이 "예"인 경우, 동적 객체(203)에 대한 새로운 업데이트(152B)가 수신된 것이고 블록(403)에서, 예측된 스테이터스(311)는 업데이트에 제공된 스테이터스와 동일하게 설정된다. 이후, 원격 모델 제어 모듈(230)은 블록(405)으로 진행한다. 그렇지 않으면, 결정 블록(402)에서 결정이 "아니오"인 경우, 새로운 업데이트(152B)는 수신되지 않은 것이고, 블록(404)에서, 디테일한 물리적 모델이 동적 객체(203)에 실행되어 예측된 스테이터스(311)에 대해 새로운 값이 제공된다. 이후, 원격 모델 제어 모듈(230)은 블록(405)으로 진행한다.
블록(405)에서, 새로운 예측된 스테이터스(311) 및 현재 시각적 스테이터스(323) 간의 불일치가 컴퓨팅된다.
프로세스(400)의 이전의 반복에서, 국부 시각적 스테이터스(323)가 설정되었을 수 있으나, 초기화되지 않았다면, 예측된 스테이터스(311)의 현재 값으로 설정되었을 수 있다. 이것이 수행되지 않았다 하더라도, 프로세스(400)는 시각적 스테이터스(323)에 대한 적절한 값으로 설계에 의해 신속히 수렴할 수 있다.
이후, 원격 모델 제어 모듈(230)은 결정 블록(406)으로 진행한다. 블록(402)에서 새로운 업데이트(152B)가 있고 블록(405)에서 컴퓨팅된 불일치가 동적 객체(203)의 현재 동작 모드에 대해 나타난 하나 이상의 값을 초과하는 경우 결정 블록(406)에서의 결정은 "예"이다. 결정 블록(406)에서의 결정이 블록(407)에서 "예"인 경우, 임펄스 또는 "속도 범프"(또는 "범프")가 예측된 스테이터스에 적용된다. 이것은 동적 객체(203)의 예측된 "물리적" 표현을 이동시키지 않으나, 블록(404)에서 물리적 모델의 미래의 반복에서 상이한 결과를 생성하기 위하여 표현에 속도를 변경시킨다. 이후, 원격 모델 제어 모듈(230)은 결정 블록(408)으로 진행한다.
결정 블록(406)에서 결정이 "아니오"인 경우 원격 모델 제어 모듈(230)은 결정 블록(408)으로 진행한다.
범프가 블록(407)에 적용되는지 아닌지에 상관없이, 프로세싱은 결정 블록(408)에서 계속하며 여기서 불일치가 동적 객체(203)에 적합한 룰 테이블(321)의 일부분 및 연관된 국부적으로 예측된 스테이터스(311)로부터 미리 결정된 "큰" 값보다 더 큰지의 여부에 대해 체크가 이루어진다. 결정 블록(408)에서 수행되는 체크의 보다 상세한 설명은 도 5a 및 도 5b에 도시되고, 아래에 관련된 설명이 제공된다. 불일치가 결정 블록(408)에서 "큰" 것으로 결정되면, 결정 블록(408)에서의 결정은 "예"이고 프로세스는 블록(409)에서 계속된다. 다른 한편, 결정 블록(408)에서의 결정이 "아니오"인 경우 프로세스는 결정 블록(410)에서 계속된다.
블록(409)에서, 시각적 스테이터스(323)에 대한 새로운 값이 예측된 스테이터스(311)의 현재 값으로 결정되고, 객체의 제공은 새로운 위치로 "워프(warp)"(예를 들어, 순간적으로 점프)할 수 있다. 이후, 블록(412)에서, 이 새로이 결정된 값이 시각적 스테이터스(323)에 적용된다.
일부 실시예에서, 블록(412)에서, 업데이트된 시각적 스테이터스는 객체 모델이 새로운 스테이터스를 수용할 때 더 변경되는데, 예를 들어, 차량의 휠이 지형을 따르는(terrain-following) 프로세스에 의하여 조정되어 휠이 지면과 외관상 접촉을 유지하게 하거나, 또는 차량이 점프를 통해 "공중"에 있을 때(즉, 새로운 시각적 스테이터스에 의해 한정된 위치 및 배향이 지형에서 충분히 높은 곳에 휠을 배치할 때) 휠이 서스펜션으로부터 적절히 매달려 있는 것으로 보일 수 있게 할 수 있다.
국부 충돌 스테이터스(322)는 적어도 그 계층적 루트에서 실질적으로 새로이 결정된 시각적 스테이터스(323)와 실질적으로 일치한다. 다시 말해, 장애물 또는 발사체와 임팩트를 검출하는 기술자에 의해 한정된 충돌 볼륨은 실질적으로 객체를 렌더링하는데 제공된 기술자의 시각적 모델과 의도된 관계를 구비한다. 일반적으로, 충돌 볼륨은 시각적 모델에 대해 크게 단순화되어 렌더링 모듈 350을 제공하여, 예를 들어 발사체 충돌 검출 모듈(340)에서 객체-지형, 객체-객체, 및 객체-발사체 간섭(interference)의 계산을 실질적으로 더 간단하게 할 수 있다.
일부 실시예에서, 국부 충돌 스테이터스(322)는 보간기 모듈(320)에 의해 심지어 반복적으로 사용되어, 블록(412)에서 시각적 스테이터스를 조정하여, 예를 들어, 객체가 지형을 통과하는 것으로 보이지 않는 것을 보장할 수 있다.
마지막으로, 시각적 스테이터스(323) 및 충돌 스테이터스(322)에 추가적인 조정을 하는 프로시저는 객체의 각 종류 또는 유형에 따라 변할 수 있고, 실질적으로 미적인 모델링 결정이다.
시각적 스테이터스(323)에 대한 조정이 완료된 후, 프로세스(400)는 블록(413)에서 동적 객체(203)에 대하여 종료한다.
그러나, 결정 블록(408)에서 체크한 결과 불일치가 결정 블록(410)에서 "크지" 않은 경우(즉, 결정 블록(408)에서의 결정이 "아니오"), 불일치가 미리 결정된 "작은" 값을 초과하는지의 여부에 대하여 체크가 이루어지며, 여기서 적절한 "작은" 값이 동적 객체(203)의 예측된 스테이터스(311)에 의해 룰 테이블(321)로부터 선택된다. 다시, 결정 블록(408)에서 수행된 체크의 보다 상세한 설명은 도 5a 및 도 5b에 제공되고, 아래에 관련 설명이 제공된다. 불일치가 "작은" 값을 초과하는 경우 결정 블록(410)에서의 결정은 "예"이고 블록(411)에서 시각적 스테이터스(323)에 대한 새로운 값이 룰 테이블(321)로부터 오는 동적 객체(203)의 예측된 스테이터스에 적합한 가중 및 다른 제한사항(constraint) 및 시각적 스테이터스(323)의 위치 및 회전 부분을 비교하고 조작하기 위한 이산 값과 함께, 현재 시각적 스테이터스(323) 및 현재 예측된 스테이터스의 "혼합"(또는 가중된 평균")으로 결정된다. 이후, 시각적 스테이터스(323)에 대한 새로운 값이 블록(412)에 적용된다.
하지만, 불일치가 결정 블록(410)에서 "작은 값"에 대한 체크를 초과하지 않으면 결정 블록(410)에서의 결정은 "아니오"이고 변경이 이루어지지 않고 시각적 스테이터스(323)는 이 반복에서 변치 않게 유지된다. 결정 블록(410)에서 수행되는 작은 불일치에 대한 테스트 또는 체크는 객체가 시각적으로 "안정화되는(coming to rest)" 것을 촉진한다. 이 경우에, 프로세스(400)는 동적 객체(203)에 대하여 이 반복에서 블록(413)에서 종료한다.
상이한 실시예에서, 또는 심지어 상이한 유형(또는 종류)의 객체에 대해, 또는 상이한 모드에 있는 동일한 객체에 대해, 블록(405)에서 결정된 불일치의 크기에 대해 결정 블록(406, 408, 및 410)에서 수행되는 테스트 또는 체크는 집합적 조치(collective measure)를 사용할 수 있고, 또는 룰 테이블(321)에 반영된 바와 같이 불일치의 특정 부분만을 분석할 수 있다. 예를 들어, 위치의 선형 조치는 회전(배향)의 조치와 비교하는 것이 곤란하다. 따라서, 스테이터스의 위치 및 회전 부분은 종종 개별적으로 비교되고, 일부 실시예에서, 어느 부분이 각 부분에 대해 대응하는 미리 결정된 값을 초과하는 경우, 전체 불일치가 초과한 것으로 결정된다. 일부 실시예에서, 또는 일부 객체에 대해, 위치의 추가적인 부분은 중요한 것으로 고려될 수 있고 룰 테이블(321)에서 특정 값이 제공될 수 있다. 예를 들어, 점프하는 두발 동물(예를 들어, 사람, 외계인, 등)에 대해, 불일치에 대한 더 타이트한 통제권이 지면 트랙(track)에 대해 요구될 수 있다, 즉, x-y 평면에 대한 고도(altitude)에서보다 x-y 평면 내에서의 위치에 대해 요구될 수 있다. 점프할 수 있는 두발 동물과 같은 객체에 대해, 별개의 미리 결정된 값이 x-y 평면으로 발사된 불일치의 부분으로부터 보다 엄격히 트리거될 수 있고, xyz에서 불일치의 전체적인 위치 부분에 대해서는 전체적으로 덜 엄격한(즉, 더 큰) 미리 결정된 값을 구비한다.
도 5a 및 도 5b는 룰 테이블(321)의 예시적인 부분을 각각 제공한다. 도 5a 는 제1 동적 객체 유형, 즉 시뮬레이팅된 전지형 만능차("ATV") 유형 객체(500)와 함께 사용하기 위한 예시적인 기준 및 파라미터를 포함한다. 도 5b는 제2 동적 객체 유형, 즉 비행(flier) 유형 객체(530)와 함께 사용하기 위한 예시적인 기준 및 파라미터를 포함한다. 도 5a 및 도 5b에 제공된 기준 및 파라미터는 예시적인 구현이고 발명을 제한하는 것으로 의도된 것이 아니다. 나아가, 룰 테이블(321)은 상이한 및/또는 추가적인 동적 객체 유형에 대한 부분을 포함할 수 있다. 룰 테이블(321)은 단일 테이블 또는 다수의 테이블로 구현될 수 있다.
도 5a를 참조하면, 일부 실시예에서, 룰 테이블(321)의 일부분(510)은 시뮬레이팅된 전지형 만능차("ATV") 유형 객체(500) 객체에 대해 지시되고 결정 블록(406, 408, 및(410))에서 수행된 테스트 또는 체크에 대응하는 다수의 미리 결정된 값, 및 블록(411)에서 시각적 스테이터스(323)(예를 들어, 혼합된) 및 블록(407)에서 예측된 스테이터스(311)를 변경하는데 사용되는 파라미터를 포함하고, 이들은 ATV 유형 객체, 예를 들어 동적 객체(203)를 프로세싱할 때 프로세스(400)에서 원격 모델 제어 모듈(230)에 의해 사용하기에 모두 적절한 것이다.
ATV 유형 객체(500)에 대한 기준(511)은 결정 블록(408)(예를 들어, 동적 객체(203)에 대해)에서 사용된다. 블록(402)으로부터 불일치가 "큰 값"을 초과하는지의 여부에 대해 결정 블록(408)에서의 결정은 3개의 비교 동작으로 분할된다.
제1 비교 동작은 불일치의 xyz 부분이 3개의 세계 유닛(World Unit: "WU")의 값보다 크기가 더 큰지의 여부에 대해 수행된다(이 예시적인 구현에서, 선형 측정은 미터(meter) 또는 피트(feet)와 유사하지만, 시뮬레이션에서는 편의적 표현을 위해 선택된 "세계 유닛"으로 이루어지고, 이 시뮬레이션 예에서 하나의 WU는 실제 세계에서 대략 2.5m에 대응한다). 제2 비교 동작은 불일치의 xy 부분이 100 WU의 값보다 크기가 더 큰지의 여부에 대해 수행된다. xy 부분이 100 WU보다 더 크면, 제1 비교 동작으로부터 xyz 부분은 3개의 세계 유닛보다 확실히 더 크다는 것이 주목된다. 이 비교 동작은 ATV 유형 객체(500)에 대해 xy 비교 동작을 디스에이블하기 위해 프로그래머의 속기(shorthand)로 기능할 수 있다. xy 불일치가 객체의 이러한 유형에 대해 기능하면, xy 불일치에 사용된 값은 xyz 불일치에 사용되는 것보다 더 작을 필요가 있다. 제3 비교 동작은 불일치의 각도 부분이 180도를 초과하는지의 여부에 대해 수행된다. 이들 3개의 비교 동작 중 어느 것이 불일치의 대응하는 부분이 기준(511)에 규정된 값을 초과하는 것으로 발견되면, 결정 블록(408)에서의 결정은 불일치가 "큰" 값을 초과하는 것이고(또는 결정 블록(408)에서의 결정이 "예"이다) 블록(409)에서 워프가 수행된다.
룰 테이블(321)의 부분(510)의 열(521 및 522)은 유형 ATV의 객체(예를 들어, ATV 유형 객체(500))가 제어된 경우 대(versus) 비제어(uncontrolled)된 경우에 사용하기 위해 상이한 미리 결정된 값 및 파라미터를 제공한다. 열(521)은 유형 ATV의 객체가 제어된 때에 사용되는 미리 결정된 값 및 파라미터를 제공하고 열(522)은 유형 ATV의 객체가 비제어된 때 사용되는 미리 결정된 값 및 파라미터를 제공한다. 이 실시예에서, 객체는, 플레이어의 입력(예를 들어, 게임 제어기(143)로부터)이 국부 모델 제어 모듈(예를 들어, 국부 모델 제어 모듈(270))에 영향을 미칠 때 또는, 이전에 설명된 바와 같이, Al 또는 다른 오퍼레이터 프로세스가 모델에 영향을 미치는 경우 "제어"된다. "제어된" 또는 "비제어된" 사항이 있는 경우에, 원격 시뮬레이션 업데이트(업데이트(152B)와 같은)는 동작 모드를 나타낼 수 있다.
ATV 유형 객체(500)에 대한 기준(512)은 결정 블록(410)(예를 들어, 동적 객체(203)에 대해)에서 수행된 테스트 또는 체크에 사용된다. 결정 블록(410)에서 결정은 블록(402)으로부터 불일치가 "작은 값"을 초과하는지의 여부에 대해 2개의 비교 동작으로 분할되고, 비교 동작을 위한 이 값들은 가장 최근의 원격 시뮬레이션 업데이트(152B)에 나타난 동작 모드에 따라 열(521 또는 522)로부터 온다. 제1 비교 동작은 불일치의 xyz 부분 또는 회전(배향) 부분은 0.5 WU 또는 45도의 값보다 크기가 각각 더 큰지의 여부에 대해 수행된다. 이 예에서, 동적 객체(203)가 "제어된" 것인지 또는 "비제어된" 것인지의 여부는 중요하지 않은데 그 이유는 이들 값이 두 열(521 및 522)에서 동일하기 때문이다. 효과를 위하여 이들 값(0.5 WU, 45도)은 각각 기준(511)에서 대응하는 값(3WU, 180도)보다 더 작아야 하는 것이 주목된다. 제2 비교 동작은 화합물 객체의 예측된 스테이터스(311)가 충분히 느리게(예를 들어, 0.1 WU/s 및 8도/s 미만) 이동할 때 더 타이트한 불일치 공차(예를 들어, "제어된" 모드에 있을 때 0.03 WU, 4도, 또는 "비제어된" 모드에 있을 때 0.03WU 또는 6도)를 사용하는 복합(compound) 비교 동작이다. 따라서, 결정 블록(410)은 불일치가 너무 크다면 블록(411)에서 혼합을 트리거하지만, 이 비교 동작은 속력에 따라 달라질 수 있다. 보다 느리게 이동하는 객체는 더 작은 불일치를 요구할 수 있다.
혼합이 블록(411)에서 요구되면, 이것은 부분(513)으로부터 동적 객체(203)에 적합한 파라미터 및 제한사항으로 수행된다. 혼합은 불일치의 일정 비율을 블록(405)으로부터 시각적 스테이터스(323)에 추가하여 블록(412)에서 새로운 시각적 스테이터스를 획득하게 하지만, 이 비율이 얼마이어야 하는지는 상당한 미적인 효과를 구비하는 것이어야 할 수 있고 상이한 상황 하에서 조정될 필요가 있다. 이 실시예에서, ATV 유형 객체(500)에 대해, 상한 및 하한 속력 임계값이 한정된다(동작 모드에 의해 달라질 수 있으나, 이 예에서는 그러하지 아니하다). 하한 속력 임계값의 속력 또는 그 이하의 속력에서, 시각적 스테이터스(323)에 추가된 불일치의 위치 및 회전 부분에 적합한 비율은 하한 임계값에서 불일치의 비율"이라고 표기된 엔트리로 제공된다. 유사하게, 상한 속력 임계값의 속력 또는 그 이상의 속력에서, 이 비율은 상한 임계값에서 불일치의 비율"이라고 표기된 엔트리로부터 취해진다. 상한 내지 하한 속력 임계값 사이의 속력에서, 이 비율은 상한 및 하한 임계값 비율로부터 보간될 수 있다. 예를 들어, 5 WU/s의 속도 및 0도/초의 회전을 구비하는 것으로 예측된 "제어된" 모드에서 동적 객체(203)에 대해, 위치의 혼합을 위해 불일치의 비율은 다음 수식을 사용하여 계산될 수 있다:
(예측된 속력 - 하한 속력 임계값)/(상한 속력 임계값 - 하한 속력 임계값) * (상한 임계값에서의 비율 - 하한 임계값에서의 비율) + (하한 임계값에서의 비율).
상기 수식을 사용하여, 상기 예에서 위치의 혼합을 위한 불일치의 비율은 0.4이다:
(5-0)/(10-0) * (0.03 - 0.05) + (0.05) = 5/10 * (-0.02) + (0.05) = 0.04.
회전을 혼합할 때 적용될 비율에 대한 유사한 컴퓨테이션은 회전에 대해 나타난 값을 사용할 수 있으나, 이 경우에, 회전 속력은 하한 속력 임계값(0)이거나 그 이하이므로, 0.04로 제공된 하한 임계값에서 불일치의 비율이 직접 사용된다.
혼합에 대한 최종 제한사항은 예측된 스테이터스(311)에 최소 폐쇄(closure) 율로 한정된다. 여기서, 예측된 스테이터스(311)의 속력이 하한 임계값이거나 그 이하인 경우, 수렴 현재 시각적 스테이터스(323)를 예측된 스테이터스(311) 쪽으로 최소로 수렴하는 특정 율이 요구된다. 대응하는 값은 예측된 스테이터스의 속력이 상한 임계값이거나 그 이상에 있을 때 공급되고, 다시, 전술한 것과 유사한 방식으로, 상한 내지 하한 임계값 사이의 속력에서, 부분(513)에서 제공된 요구되는 최소 수렴 율 파라미터는 보간될 수 있다.
적절한 비율이 결정되면, 시각적 스테이터스(323)의 위치 및 회전에 적용하는 것은 위치 부분에 대해 카테션(Cartesian) 보간 및 회전 부분에 대해 구형 선형 보간(또한 "Slerp"라고도 알려져 있는)에 의하여 수행된다. Slerp 구현은 회전에 대한 사원수(quaternion)를 사용할 수 있으나, 이것은 엄격히 요구되는 것은 아니다.
ATV 유형 객체(500)에 대한 기준(514)은 결정 블록(406)(예를 들어, 동적 객체(203)에 대해)에서 사용된다. 블록(402)에서 사용된 새로운 업데이트가 있었는지의 여부, 및 블록(405)으로부터 불일치가 범프를 보장할 만큼 "충분한"지의 여부에 대해 결정 블록(406)에서 결정하는 것은 복합(compound) 비교 동작이고, 비교 동작을 위한 값은 가장 최근의 원격 시뮬레이션 업데이트(152B)에 나타난 동작 모드에 따라 열(521 또는 522)로부터 온다. 이 실시예에서, 전술한 복합(compound) 비교 동작에서와 같이, 객체의 예측된 스테이터스(311)가 ("만약 속도 >"라고 표기된 부분(514)에 있는) 임계값보다 더 빨리 이동하는지의 여부 또는 불일치("또는 xyz 위치 또는 회전 불일치"라고 표기된)가 충분히 큰지의 여부를 알아보기 위해 테스트가 수행된다. 결정 블록(406)에서 비교 동작 중 어느 것이 초과하는 대응하는 파라미터를 발견하면, 결정 블록(406)은 불일치가 실제 "충분한" 것이라고 결정하고 범프가 블록(407)에서 수행된다.
범프에 대한 파라미터는 부분(515)에서 제공된다. 이 실시예에서, 범프는 효과적으로 초의 역수 단위(units of reciprocal seconds)를 구비하는 스케일 팩터(scale factor)에 불일치를 곱한 것("불일치 ×에 의한 범프"로 표기된 것)이고, 그 이유는 범프의 값이 블록(407)에서 예측된 스테이터스(311)에 추가된 속도이기 때문이다. 범프에 대한 값이 이런 방식으로 결정되면, 이것은 부분(515)의 파라미터 내에서 "그러나 ∼ 이상" 및 "∼ 이하"로 표기된 제한값을 더 적용받아, 디자이너로 하여금 범프의 효과를 한정할 수 있게 한다. 일반적으로 말하면, 범프의 효과는 범프가 클 수 있으면 시각적으로 부적절할 수 있다. 그러나, 범프가 자연히 작으면, 또는 그렇지 않고 억제되면, 그 결과는 원격 모델 제어 모듈(230)에 의해 제어된 객체의 미적 행동에 실질적 개선을 초래한다.
다른 예로서, 도 5b는 도 2에 도시된 국부 시뮬레이션(200 및 250)에 도시되지 않은 객체의 유형인 비행 유형 객체(530)에 대응하는 룰 테이블(321)의 일부분(540)을 도시한다. 도 5b를 다시 참조하면, 부분(540)에서, 열(551 및 552)은 도 5a의 열(521 및 522)에 각각 포함된 열로서 동일한 제어 모드에 대응하는 열을 각각 포함한다. 기준(541, 542 및 544)은 기준(511, 512 및 514)과 각각 동일한 방식으로 사용된다. 부분(543 및 545)에 있는 파라미터는 부분(513 및 515)에 있는 파라미터와 각각 동일한 방식으로 사용된다. 룰 테이블(321)에 제공된 기준 및 파라미터의 차이는 예를 들어, 디자이너에 의해 경험적으로 설정될 수 있다. 각 기준은 어느 조건이 프로세스(400)의 특정 요소가 적용되게 하는 조건, 및 각 파라미터가 시각적 결과에 영향을 미칠 수 있는지를 결정한다.
컴퓨팅 디바이스
도 6은 게임 콘솔(111, 142, 144, 146) 중 하나 이상의 콘솔을 구현할 수 있는 하드웨어 및 동작 환경을 도시한 다이어그램이다. 도 6의 설명은 구현을 실시할 수 있는 적절한 컴퓨터 하드웨어 및 적절한 컴퓨팅 환경의 간략한 일반적인 설명을 제공하기 위해 의도된 것이다. 요구되는 것은 아니지만, 구현은 프로세서에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터 실행가능한 명령의 일반적인 상황에서 설명된다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 또는 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 구성요소, 데이터 구조 등을 포함한다.
더욱이, 이 기술 분야에 통상의 지식을 가진 자라면 구현은 핸드헬드 디바이스, 멀티프로세서 시스템, 마이크로프로세서-기반 또는 프로그래밍가능한 소비자 전자장치, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 구비하는 다른 컴퓨터 시스템 구성에서 실시될 수 있는 것을 이해할 수 있을 것이다. 구현은 또한 통신 네트워크를 통해 링크된 원격 프로세싱 디바이스에 의해 태스크를 수행하는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산된 컴퓨팅 환경에서, 프로그램 모듈은 국부 및 원격 메모리 저장 디바이스에 위치될 수 있다.
도 6의 예시적인 하드웨어 및 동작 환경은 컴퓨팅 디바이스(12)의 형태의 일반 목적 컴퓨팅 디바이스를 포함한다. 컴퓨팅 디바이스(12)는 종래의 게임 콘솔, 셀룰러 전화, 태블릿 컴퓨터, 종래의 컴퓨터, 분산된 컴퓨터, 또는 임의의 다른 유형의 컴퓨터일 수 있다. 게임 콘솔(111, 142, 144, 146)은 각각 실질적으로 컴퓨팅 디바이스(12)와 실질적으로 동일할 수 있다. 그러나, 이것은 필수조건은 아니다.
컴퓨팅 디바이스(12)는 시스템 메모리(22), 프로세싱 유닛(21) 및 시스템 메모리(22)를 포함하는 여러 시스템 구성요소를 프로세싱 유닛(21)에 동작가능하게 연결하는 시스템 버스(23)를 포함한다. 단 하나 또는 하나를 초과하는 프로세싱 유닛(21)이 있을 수 있어서, 컴퓨팅 디바이스(12)의 프로세서는 단일 중앙-프로세싱 유닛("CPU"), 또는 병렬 프로세싱 환경이라고 일반적으로 언급되는 복수의 프로세싱 유닛을 포함한다. 다수의 프로세싱 유닛이 사용될 때, 프로세싱 유닛은 이종(heterogeneous)일 수 있다. 비제한적인 예로서, 이러한 이종 프로세싱 환경은 종래의 CPU, 종래의 그래픽 프로세싱 유닛(graphics processing unit: "GPU"), 부동 소수점 유닛(floating-point unit: "FPU"), 이들의 조합 등을 포함할 수 있다.
시스템 버스(23)는 메모리 버스 또는 메모리 제어기, 주변 버스, 및 여러 버스 아키텍처 중 어느 것을 사용하는 국부 버스를 포함하는 여러 유형의 버스 구조물 중 어느 것일 수 있다. 시스템 메모리(22)는 또한 간단히 메모리라고 지칭될 수 있고, 판독 전용 메모리(ROM)(24) 및 랜덤 액세스 메모리(RAM)(25)를 포함한다. 예를 들어 스타트업 동안 컴퓨팅 디바이스(12) 내 요소들 사이에 정보를 전송하는 것을 도와주는 기본 루틴을 포함하는 기본 입력/출력 시스템(basic input/output system: BIOS)(26)은 ROM(24)에 저장된다. 컴퓨팅 디바이스(12)는 하드 디스크(미도시)로부터 판독하거나 이에 기록하기 위한 하드 디스크 드라이브(27), 이동식 자기 디스크(29)로부터 판독하거나 이에 기록하기 위한 자기 디스크 드라이브(28), 및 CD ROM, DVD, 또는 다른 광 매체와 같은 이동식 광 디스크(31)로부터 판독하거나 이에 기록하기 위한 광 디스크 드라이브(30)를 더 포함할 수 있다.
하드 디스크 드라이브(27), 자기 디스크 드라이브(28), 및 광 디스크 드라이브(30)는 하드 디스크 드라이브 인터페이스(32), 자기 디스크 드라이브 인터페이스(33), 및 광 디스크 드라이브 인터페이스(34)에 의해 각각 시스템 버스(23)에 연결된다. 드라이브 및 그 연관된 컴퓨터-판독가능한 매체는 컴퓨터-판독가능한 명령, 데이터 구조, 프로그램 모듈, 및 컴퓨팅 디바이스(12)를 위한 다른 데이터의 비휘발성 저장을 제공한다. 이 기술 분야에 통상의 지식을 가진 자라면 자기 카세트, 플래시 메모리 카드, 솔리드 스테이트 메모리 디바이스("SSD"), USB 드라이브, 디지털 비디오 디스크, 베르누이(Bernoulli) 카트리지, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM) 등과 같은, 컴퓨터에 의해 액세스될 수 있는 데이터를 저장할 수 있는 임의의 유형의 컴퓨터 판독가능한 매체가 예시적인 동작 환경에서 사용될 수 있는 것으로 이해된다. 이 기술 분야에 통상의 지식을 가진 자에게는 명백한 바와 같이, 프로세싱 유닛(21)에 의해 액세스가능한 하드 디스크 드라이브(27) 및 다른 형태의 컴퓨터-판독가능한 매체(예를 들어, 이동식 자기 디스크(29), 이동식 광 디스크(31), 플래시 메모리 카드, SSD, USB 드라이브 등)는 시스템 메모리(22)의 구성요소로 고려될 수 있다.
다수의 프로그램 모듈은 하드 디스크 드라이브(27), 자기 디스크(29), 광 디스크(31), ROM(24), 또는 RAM(25), 운영 시스템(35), 하나 이상의 애플리케이션 프로그램(36), 다른 프로그램 모듈(37), 및 프로그램 데이터(38)를 포함하여 에 저장될 수 있다. 유저는 커맨드 및 정보를 키보드(40) 및 포인팅 디바이스(42)와 같은 입력 디바이스를 통해 컴퓨팅 디바이스(12)에 입력할 수 있다. 도 1을 참조하면, 입력 디바이스는 제어기(113, 143, 145, 147)를 포함한다. 입력 디바이스의 비제한적인 예로는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너, 터치 감지 디바이스(예를 들어, 스타일러스, 터치 패드, 터치 스크린 등), 비디오 카메라, 심도 카메라 등을 포함한다. 이들 및 다른 입력 디바이스는 종종 시스템 버스(23)에 결합된 직렬 포트 인터페이스(46)를 통해 프로세싱 유닛(21)에 연결되지만, 병렬 포트, 게임 포트, USB(universal serial bus), 또는 무선 인터페이스(예를 들어, 블루투스 인터페이스)와 같은 다른 인터페이스에 의해 연결될 수 있다.
모니터(47) 또는 다른 유형의 디스플레이 디바이스(예를 들어, 도 1에 도시된 디스플레이(112))는 또한 비디오 어댑터(48)와 같은 인터페이스를 통해 시스템 버스(23)에 연결될 수 있다. 디스플레이(112)는 텔레비전, 디스플레이 스크린, 터치 스크린 등으로 구현될 수 있다. 모니터(47)에 추가하여, 컴퓨터는 일반적으로 스피커, 프린터, 및 촉각 및/또는 다른 유형의 물리적 피드백을 제공하는 촉각 디바이스(예를 들어, 힘 피드백 게임 제어기)와 같은 다른 주변 출력 디바이스(미도시)를 포함한다.
전술한 입력 디바이스는 유저 입력 및 선택을 수신하도록 동작가능하다. 입력 및 디스플레이 디바이스는 함께 유저 인터페이스를 제공하는 것으로 설명될 수 있다.
컴퓨팅 디바이스(12)는 원격 컴퓨터(49)와 같은 하나 이상의 원격 컴퓨터에 논리적 연결을 사용하여 네트워킹된 환경에서 동작할 수 있다. 전술한 바와 같이, 2개 이상의 게임 콘솔(111, 142, 144, 146)이 선택적으로 네트워크(120)를 통해 서로 연결될 수 있다. 이들 논리적 연결은 컴퓨팅 디바이스(12)에 결합되거나 이의 일부에 결합된 (국부 컴퓨터로서) 통신 디바이스에 의해 달성된다. 구현은 특정 유형의 통신 디바이스로 제한되지 않는다. 원격 컴퓨터(49)는 다른 컴퓨터, 서버, 라우터, 네트워크 PC, 클라이언트, 메모리 저장 디바이스, 피어 디바이스 또는 다른 공통 네트워크 노드일 수 있고, 일반적으로 컴퓨팅 디바이스(12)에 대해 전술한 요소 중 많은 또는 모든 요소를 포함한다. 원격 컴퓨터(49)는 메모리 저장 디바이스(50)에 연결될 수 있다. 도 6에 도시된 논리적 연결은 LAN(local-area network)(51) 및 WAN(wide-area network)(52)을 포함한다. 이러한 네트워킹 환경은 기업의 광역 컴퓨터 네트워크, 인트라넷, 및 인터넷으로 흔한 것이다.
이 기술 분야에 통상의 지식을 가진 자라면 LAN은 전화 네트워크, 케이블 네트워크, 셀룰러 네트워크, 또는 전력선을 통해 방송파 신호를 사용하는 모뎀을 통해 WAN에 연결될 수 있는 것을 이해할 수 있을 것이다. 이러한 모뎀은 네트워크 인터페이스(예를 들어, 직렬 또는 다른 유형의 포트)에 의해 컴퓨팅 디바이스(12)에 연결될 수 있다. 나아가, 많은 랩탑 컴퓨터는 셀룰러 데이터 모뎀을 통해 네트워크에 연결될 수 있다.
LAN-네트워킹 환경에서 사용될 때, 컴퓨팅 디바이스(12)는 하나의 유형의 통신 디바이스인 네트워크 인터페이스 또는 어댑터(53)를 통해 LAN(51)에 연결된다. WAN-네트워킹 환경에 사용될 때, 컴퓨팅 디바이스(12)는 일반적으로 모뎀(54), 유형의 통신 디바이스, 또는 인터넷과 같은 광역 네트워크(WAN)(52)를 통해 통신을 수립하는 임의의 다른 유형의 통신 디바이스를 포함한다. 내부에 있거나 외부에 있을 수 있는 모뎀(54)은 직렬 포트 인터페이스(46)를 통해 시스템 버스(23)에 연결된다. 네트워킹된 환경에서, 퍼스널 컴퓨팅 디바이스(12)에 대해 도시된 프로그램 모듈, 또는 그 일부분은 원격 컴퓨터(49) 및/또는 원격 메모리 저장 디바이스(50)에 저장될 수 있다. 도시된 네트워크 연결은 예시적인 것이고 컴퓨터들 사이에 통신 링크를 수립하는 다른 수단 및 통신 디바이스들이 사용될 수 있는 것으로 이해된다.
컴퓨팅 디바이스(12) 및 관련된 구성요소는 본 명세서에서 개시된 개념의 하이 레벨 조망을 용이하게 하기 위하여 특정예로서 및 또한 추상적인 개념으로 제공된 것이다. 실제 기술적 설계 및 구현은 개시된 개념의 전체 특성을 유지하면서 특정 구현에 따라 변할 수 있다.
일부 실시예에서, 시스템 메모리(22)는 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서로 하여금 프로세스(400)의 전부 또는 일부를 수행하게 하는 컴퓨터 실행가능한 명령을 저장한다. 이러한 명령은 하나 이상의 비-일시적인 컴퓨터-판독가능한 매체에 저장될 수 있다.
모든 이러한 시스템에서와 같이, 시스템의 특정 특징, 유저 인터페이스의 특정사항, 및 프로세스의 성능은 예를 들어 시스템을 구현하는데 사용되는 아키텍처, 선택된 서버의 운영 시스템, 선택된 네트워크의 대역폭 및 다른 특성, 및 기록된 소프트웨어 코드에 따라 달라질 수 있다. 본 명세서에 구체적으로 도시되고 설명된 상술된 실시예의 여러 추가적인 변형은 제공된 개시 내용을 고려하면 이 기술 분야에 통상의 지식을 가진 자에게는 자명할 것이다.
전술한 실시예는 상이한 다른 구성요소 내에 포함되거나 이와 연결된 상이한 구성요소를 도시한다. 이러한 도시된 아키텍처는 단지 예시적인 것이고, 실제 많은 다른 아키텍처들이 동일한 기능을 달성하는 것으로 구현될 수 있는 것으로 이해된다. 개념적인 의미에서, 동일한 기능을 달성하는 구성요소들의 임의의 배열이 효과적으로 "연관"되어 원하는 기능을 달성하게 할 수 있다. 그리하여, 특정 기능을 달성하도록 조합된 임의의 2개의 구성요소는 아키텍처 또는 중간 구성요소에 상관없이 원하는 기능을 달성하도록 서로 "연관된" 것으로 볼 수 있다. 마찬가지로, 이렇게 연관된 임의의 2개의 구성요소는 또한 원하는 기능을 달성하도록 서로 "동작가능하게 연결된" 또는 "동작가능하게 결합된" 것으로 볼 수 있다.
본 발명의 특정 실시예가 도시되고 설명되었으나, 이 기술 분야에 통상의 지식을 가진 자에게는 본 명세서에 개시된 내용에 기초하여 본 발명 및 광의의 측면을 벗어남이 없이 변경과 변형이 이루어질 수 있고, 그리하여 첨부된 청구범위는 본 발명의 진정한 사상과 범위 내에 있는 모든 이러한 변경과 변형을 포함하는 것이라는 것은 자명한 것이다. 나아가, 본 발명은 첨부된 청구범위에 의해서만 한정되는 것으로 이해된다. 이 기술 분야에 통상의 지식을 가진 자라면 일반적으로 본 명세서에 사용된 용어 및 특히 첨부된 청구범위(예를 들어 첨부된 청구범위의 내용)에 사용된 용어는 일반적으로 "개방된" 용어로 의도된 것으로 이해된다(예를 들어, "포함하는"이라는 용어는 "포함하지만 이로 제한되지 않는"것으로 해석되고 "구비하는"이라는 용어는 "적어도 구비하는" 것으로 해석되고 "포함하는"이라는 용어는 "포함하지만 이로 제한되지 않는" 것으로 해석되고 이와 같이 이해된다). 이 기술 분야에 통상의 지식을 가진 자라면 도입된 청구항을 언급하는 특정 수가 의도된 경우, 이러한 의도는 청구범위에서 명시적으로 언급된 것이고, 이러한 언급이 없을 때에는 이러한 의도가 없는 것으로 더 이해된다. 예를 들어, 이해를 더 돕기 위해, 이하 첨부된 청구범위는 청구항을 언급하는데 "적어도 하나의" 및 "하나 이상의" 라는 어구의 사용을 포함할 수 있다. 그러나, 이러한 어구의 사용은 단수 표현에 의해 청구항을 언급하는 것이 동일한 청구항이 "하나 이상의" 또는 "적어도 하나의"라는 어구 및 단수 표현을 포함하는 경우에도 이러한 청구항의 언급을 포함하는 임의의 특정 청구항을 단 하나의 이러한 언급만을 포함하는 발명으로 제한하는 것으로 해석되어서는 안 된다(예를 들어, 단수 표현은 일반적으로 "적어도 하나의" 또는 "하나 이상의"을 의미하는 것으로 해석되어야 한다); 이는 청구항을 언급하는데 사용된 정관사를 사용하는 것에도 적용된다. 게다가, 청구항에 언급된 특정 수가 명시적으로 언급된 경우에도, 이 기술 분야에 통상의 지식을 가진 자라면 이러한 언급이 일반적으로 적어도 언급된 수를 의미하는 것으로 해석되어야 한다(예를 들어, 다른 수식구 없이 단지 "2개의 언급"이라는 말은 일반적으로 적어도 2개의 언급, 또는 2개 이상의 언급을 의미하는 것으로 해석되어야 한다).
따라서, 본 발명은 첨부된 청구범위에 의한 것을 제외하고는 제한되지 않는다.

Claims (39)

  1. 복수의 컴퓨팅 디바이스에서 분산된 시뮬레이션을 실질적으로 동시에 제공하는 방법으로서, 상기 복수의 컴퓨팅 디바이스는 상기 분산된 시뮬레이션의 제1 부분을 실행하는 제1 컴퓨팅 디바이스를 포함하고, 상기 제1 부분은 객체를 제어하며, 상기 방법은,
    a) 상기 복수의 컴퓨팅 디바이스 중 제2 컴퓨팅 디바이스에서, 상기 분산된 시뮬레이션의 제2 부분을 실행하는 단계로서, 상기 제2 부분은 제1 디스플레이 디바이스에서 디스플레이가능한 상기 객체의 제1 시각적 표현을 생성하는 것이고, 상기 제2 컴퓨팅 디바이스는 상기 객체 및 상기 제1 시각적 표현과 연관된 시각적 스테이터스를 포함하며, 상기 시각적 스테이터스는 적어도 하나의 파라미터값을 포함하고, 상기 제2 컴퓨팅 디바이스는 상기 객체의 제2 시각적 표현과 연관된 이전의 스테이터스를 포함하는 상기 제1 컴퓨팅 디바이스로부터 이전의 업데이트를 수신한 것인, 상기 제2 부분을 실행하는 단계;
    b) 상기 제2 컴퓨팅 디바이스에서, 상기 이전의 스테이터스에 적어도 부분적으로 기초하여 상기 객체의 예측된 스테이터스를 생성하는 단계로서, 상기 예측된 스테이터스는 적어도 하나의 속도 및 적어도 하나의 파라미터값을 포함하는 것인, 상기 객체의 예측된 스테이터스를 생성하는 단계;
    c) 상기 제2 컴퓨팅 디바이스에서, 상기 제1 컴퓨팅 디바이스로부터 업데이트를 수신하는 단계로서, 상기 업데이트는 상기 객체의 제3 시각적 표현과 연관된 새로운 스테이터스를 포함하며, 상기 새로운 스테이터스는 적어도 하나의 파라미터값을 포함하는 것인, 상기 업데이트를 수신하는 단계;
    d) 상기 제2 컴퓨팅 디바이스에서, 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값을 상기 새로운 스테이터스의 상기 적어도 하나의 파라미터값과 동일하게 설정하는 단계;
    e) 상기 제2 컴퓨팅 디바이스에 의해, 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값과 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값 간의 불일치를 결정하는 단계;
    f) 상기 불일치가 제1 임계값보다 더 클 때, 상기 제2 컴퓨팅 디바이스에 의해, 상기 예측된 스테이터스의 상기 적어도 하나의 속도를 변경하는 단계;
    g) 상기 불일치가 제2 임계값보다 더 클 때, 상기 제2 컴퓨팅 디바이스에 의해, 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 상기 시각적 스테이터스의 적어도 하나의 파라미터값을 변경하는 단계;
    h) 상기 제2 컴퓨팅 디바이스에 의해, 상기 시각적 스테이터스에 적어도 부분적으로 기초하여 상기 객체의 제4 시각적 표현을 렌더링하는 단계; 및
    i) 상기 제2 컴퓨팅 디바이스에 의해, 상기 객체의 상기 제4 시각적 표현을 상기 제1 디스플레이 디바이스에 디스플레이하는 단계를 포함하는 것인 방법.
  2. 제1항에 있어서, 상기 예측된 스테이터스는 제1 예측된 스테이터스이고, 상기 불일치는 제1 불일치이며, 상기 방법은,
    상기 제2 컴퓨팅 디바이스에 의해, 상기 예측된 스테이터스의 적어도 하나의 속도에 적어도 부분적으로 기초하여 제2 예측된 스테이터스를 생성하는 단계로서, 상기 제2 예측된 스테이터스는 적어도 하나의 파라미터값을 포함하는 것인, 상기 제2 예측된 스테이터스를 생성하는 단계;
    제2 불일치가 상기 제2 임계값보다 더 클 때, 상기 제2 컴퓨팅 디바이스에 의해, 상기 제2 예측된 스테이터스의 상기 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값을 변경하는 단계;
    상기 제2 컴퓨팅 디바이스에 의해, 상기 시각적 스테이터스에 적어도 부분적으로 기초하여 상기 객체의 제5 시각적 표현을 렌더링하는 단계; 및
    상기 제2 컴퓨팅 디바이스에 의해, 상기 객체의 상기 제5 시각적 표현을 상기 제1 디스플레이 디바이스에 디스플레이하는 단계를 포함하는 것인 방법.
  3. 제1항에 있어서, 상기 제1 컴퓨팅 디바이스에 의해 제2 디스플레이 디바이스에 디스플레이되고 있는 상기 객체의 상기 제3 시각적 표현과 사용하기 위한 것으로, 상기 객체의 상기 제4 시각적 표현은 상기 제1 컴퓨팅 디바이스에 의해 상기 제2 디스플레이 디바이스에 디스플레이된 상기 객체의 상기 제3 시각적 표현과 실질적으로 동시에 상기 제2 컴퓨팅 디바이스에 의해 상기 제1 디스플레이 디바이스에 디스플레이되는 것인 방법.
  4. 제1항에 있어서,
    상기 제2 컴퓨팅 디바이스에 의해, 상기 제2 컴퓨팅 디바이스에 의해 액세스가능한 저장 디바이스로부터 상기 제1 임계값을 획득하는 단계를 더 포함하는 방법.
  5. 제4항에 있어서, 상기 객체는 유형(type)을 구비하고,
    상기 제1 임계값은 상기 저장 디바이스에 저장된 테이블에 저장되며, 상기 제1 임계값은 상기 테이블에 있는 상기 객체의 상기 유형과 연관된 것인 방법.
  6. 제1항에 있어서, 상기 객체는 유형을 구비하고,
    상기 새로운 스테이터스의 상기 적어도 하나의 파라미터값은 적어도 하나의 속도를 포함하며,
    상기 제2 컴퓨팅 디바이스에 의해, 상기 예측된 스테이터스의 상기 적어도 하나의 속도를 변경하는 것은 상기 객체의 상기 유형과 연관된 범프값을 획득하는 것, 및 상기 범프값, 상기 불일치, 및 상기 새로운 스테이터스의 상기 적어도 하나의 속도의 함수로서 상기 예측된 스테이터스의 상기 적어도 하나의 속도를 계산하는 것을 포함하는 것인 방법.
  7. 제1항에 있어서, 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값은 적어도 하나의 속도를 포함하고,
    상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값은 적어도 하나의 속도를 포함하며,
    상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값과 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값 간의 불일치를 결정하는 것은 상기 예측된 스테이터스의 상기 적어도 하나의 속도와 상기 시각적 스테이터스의 상기 적어도 하나의 속도 간의 불일치를 결정하는 것을 포함하는 것인 방법.
  8. 제7항에 있어서, 상기 새로운 스테이터스의 상기 적어도 하나의 파라미터값은 적어도 하나의 속도를 포함하고,
    상기 예측된 스테이터스의 상기 적어도 하나의 속도는 상기 새로운 스테이터스의 상기 적어도 하나의 속도와 동일하게 설정된 것인 방법.
  9. 제1항에 있어서, 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값은 위치 정보 및 배향 정보 중 적어도 하나를 포함하고;
    상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값은 위치 정보 및 배향 정보 중 적어도 하나를 포함하며; 및
    상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값과 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값 간의 불일치를 결정하는 것은 상기 예측된 스테이터스의 위치 정보 및 배향 정보 중 상기 적어도 하나와 상기 시각적 스테이터스의 위치 정보 및 배향 정보 중 상기 적어도 하나 간의 불일치를 결정하는 것을 포함하는 것인 방법.
  10. 제9항에 있어서, 상기 새로운 스테이터스의 상기 적어도 하나의 파라미터값은 위치 정보 및 배향 정보 중 적어도 하나를 포함하고,
    상기 예측된 스테이터스의 위치 정보 및 배향 정보 중 상기 적어도 하나는 새로운 스테이터스의 위치 정보 및 배향 정보 중 적어도 하나와 동일하게 설정된 것인 방법.
  11. 제9항에 있어서, 상기 불일치가 제2 임계값보다 더 클 때 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값을 변경하는 것은,
    상기 불일치가 제3 임계값보다 더 큰지의 여부를 결정하는 단계로서, 상기 제3 임계값은 상기 제2 임계값보다 더 큰 것인, 상기 제3 임계값보다 더 큰지의 여부를 결정하는 단계; 및
    상기 불일치가 상기 제3 임계값보다 더 큰 것으로 결정되면, 상기 시각적 스테이터스의 위치 정보 및 배향 정보 중 상기 적어도 하나를 상기 예측된 스테이터스의 위치 정보 및 배향 정보 중 상기 적어도 하나와 동일하게 설정하는 단계를 더 포함하는 것인 방법.
  12. 제11항에 있어서, 상기 객체는 유형을 구비하고,
    상기 제3 임계값은 테이블에 저장되고 상기 테이블 내 상기 객체 유형과 연관되고,
    상기 방법은, 상기 제2 컴퓨팅 디바이스에 의해, 상기 테이블로부터 상기 제3 임계값을 획득하는 단계를 더 포함하는 것인 방법.
  13. 제11항에 있어서, 상기 불일치가 상기 제2 임계값보다 더 클 때 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값을 변경하는 단계는,
    상기 제2 컴퓨팅 디바이스에 의해, 상기 불일치가 상기 제3 임계값 미만일 때 혼합된 스테이터스를 결정하는 단계로서, 상기 혼합된 스테이터스는 상기 시각적 스테이터스의 위치 정보 및 배향 정보 중 상기 적어도 하나와 상기 예측된 스테이터스의 위치 정보 및 배향 정보 중 상기 적어도 하나에 적어도 부분적으로 기초하고, 상기 혼합된 스테이터스는 위치 정보 및 배향 정보 중 적어도 하나를 포함하는 것인, 상기 혼합된 스테이터스를 결정하는 단계, 및
    상기 시각적 스테이터스의 위치 정보 및 배향 정보 중 상기 적어도 하나를 상기 혼합된 스테이터스의 위치 정보 및 배향 정보 중 상기 적어도 하나와 동일하게 설정하는 단계를 더 포함하는 것인 방법.
  14. 제13항에 있어서, 상기 객체는 유형을 구비하고,
    상기 혼합된 스테이터스는 상기 객체의 상기 유형과 연관된 하나 이상의 파라미터값에 적어도 부분적으로 기초하여 결정되는 것인 방법.
  15. 제11항에 있어서, 상기 객체는 유형을 구비하며,
    상기 제2 및 제3 임계값은 테이블에 저장되고 상기 테이블 내 상기 객체 유형과 연관되며,
    상기 방법은, 상기 제2 컴퓨팅 디바이스에 의해, 상기 테이블로부터 상기 제2 및 제3 임계값을 획득하는 단계를 더 포함하는 것인 방법.
  16. 제9항에 있어서, 상기 불일치가 상기 제2 임계값보다 더 클 때 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값을 변경하는 단계는,
    상기 제2 컴퓨팅 디바이스에 의해, 상기 불일치가 제3 임계값 미만일 때 혼합된 스테이터스를 결정하는 단계로서, 상기 혼합된 스테이터스는 상기 시각적 스테이터스의 위치 정보 및 배향 정보 중 상기 적어도 하나와 상기 예측된 스테이터스의 위치 정보 및 배향 정보 중 상기 적어도 하나에 적어도 부분적으로 기초하고, 상기 혼합된 스테이터스는 위치 정보 및 배향 정보 중 적어도 하나를 포함하는 것인, 상기 혼합된 스테이터스를 결정하는 단계, 및
    상기 시각적 스테이터스의 위치 정보 및 배향 정보 중 상기 적어도 하나를 상기 혼합된 스테이터스의 위치 정보 및 배향 정보 중 상기 적어도 하나와 동일하게 설정하는 단계를 더 포함하는 것인 방법.
  17. 제1항에 있어서, 상기 불일치가 상기 제2 임계값보다 더 클 때 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값을 변경하는 단계는,
    상기 불일치가 상기 제2 임계값보다 더 큰 제3 임계값보다 더 큰지의 여부를 결정하는 단계; 및
    상기 불일치가 상기 제3 임계값보다 더 큰 것으로 결정되면, 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값을 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값과 동일하게 설정하는 단계를 더 포함하는 것인 방법.
  18. 제17항에 있어서, 상기 불일치가 상기 제2 임계값보다 더 클 때, 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값을 변경하는 단계는,
    상기 제2 컴퓨팅 디바이스에 의해, 상기 불일치가 상기 제3 임계값 미만인 경우 혼합된 스테이터스를 결정하는 단계로서, 상기 혼합된 스테이터스는 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값 및 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값에 적어도 부분적으로 기초하고, 상기 혼합된 스테이터스는 적어도 하나의 파라미터값을 포함하는 것인, 상기 혼합된 스테이터스를 결정하는 단계, 및
    상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값을 상기 혼합된 스테이터스의 상기 적어도 하나의 파라미터값과 동일하게 설정하는 단계를 더 포함하는 것인 방법.
  19. 제18항에 있어서, 상기 새로운 스테이터스의 상기 적어도 하나의 파라미터값은 상기 객체의 제어 모드를 포함하고, 상기 방법은,
    상기 객체의 제어 모드에 적어도 부분적으로 기초하여 복수의 제1 및 제2 임계값으로부터 상기 제2 및 제3 임계값 중 적어도 하나를 선택하는 단계를 더 포함하는 것인 방법.
  20. 제19항에 있어서, 상기 객체는 유형을 구비하고,
    상기 객체의 제어 모드에 적어도 부분적으로 기초하여 상기 복수의 제1 및 제2 임계값으로부터 상기 제2 및 제3 임계값 중 적어도 하나를 선택하는 단계는 상기 객체의 상기 유형에 적어도 부분적으로 기초하여 상기 복수의 제1 및 제2 임계값으로부터 상기 제2 및 제3 임계값 중 적어도 하나를 선택하는 단계를 더 포함하는 것인 방법.
  21. 제1항에 있어서, 상기 불일치가 상기 제2 임계값보다 더 클 때 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값을 변경하는 단계는,
    상기 제2 컴퓨팅 디바이스에서 국부 충돌 스테이터스를 결정하는 단계; 및
    상기 제2 컴퓨팅 디바이스에서 상기 국부 충돌 스테이터스에 기초하여 상기 시각적 스테이터스를 변경하는 단계를 더 포함하는 것인 방법.
  22. 제21항에 있어서, 지형을 포함하는 상기 분산된 시뮬레이션과 사용하기 위한 것으로, 상기 방법은,
    상기 객체가 상기 지형을 실질적으로 통과하지 않을 때까지는 상기 국부 충돌 스테이터스를 결정하는 단계 및 상기 국부 충돌 스테이터스에 기초하여 상기 시각적 스테이터스를 변경하는 단계를 반복하는 단계를 더 포함하는 것인 방법.
  23. 네트워크를 통해 서로 연결되고 복수의 객체를 포함하는 분산된 시뮬레이션의 일부분을 각각 실행하는 복수의 컴퓨팅 디바이스와 함께 사용하는 방법으로서, 상기 일부분은 상기 복수의 컴퓨팅 디바이스 중 제1 컴퓨팅 디바이스에 실행하며 상기 복수의 객체의 일부분을 제어하고 상기 복수의 객체의 상기 일부분의 적어도 하나의 객체와 관련된 업데이트를 상기 복수의 컴퓨팅 디바이스 중 제2 컴퓨팅 디바이스에 송신하며, 상기 방법은,
    a) 상기 제2 컴퓨팅 디바이스에서, 상기 제1 컴퓨팅 디바이스로부터 상기 제1 컴퓨팅 디바이스에 의해 제어되는 상기 복수의 객체의 상기 일부분의 제1 객체와 관련된 스테이터스 정보를 포함하는 이전의 업데이트를 수신하는 단계;
    b) 상기 제2 컴퓨팅 디바이스에서, 상기 제1 객체와 관련된 상기 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제1 객체의 제1 시각적 표현을 생성하고 디스플레이하는 단계로서, 상기 제2 컴퓨팅 디바이스는 상기 제1 객체 및 상기 제1 시각적 표현과 연관된 시각적 스테이터스 정보를 포함하는 것인, 상기 제1 시각적 표현을 생성하고 디스플레이하는 단계;
    c) 상기 제2 컴퓨팅 디바이스에서, 상기 제1 컴퓨팅 디바이스로부터 스테이터스 정보를 포함하는 새로운 업데이트를 수신하는 단계로서, 상기 새로운 업데이트는 상기 이전의 업데이트 후에 수신된 것인, 상기 새로운 업데이트를 수신하는 단계;
    d) 상기 제2 컴퓨팅 디바이스에서, 상기 이전의 업데이트의 상기 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제1 객체에 대해 예측된 스테이터스 정보를 결정하는 단계로서, 상기 예측된 스테이터스 정보는 적어도 하나의 속도값을 포함하는 것인, 상기 예측된 스테이터스 정보를 결정하는 단계;
    e) 상기 새로운 업데이트의 상기 스테이터스 정보가 상기 제1 객체와 관련된 것인지의 여부를 결정하는 단계;
    f) 상기 제2 컴퓨팅 디바이스가 상기 새로운 업데이트의 상기 스테이터스 정보가 상기 제1 객체와 관련된 것이라고 결정하면, 상기 예측된 스테이터스 정보의 적어도 일부분을 상기 새로운 업데이트의 상기 스테이터스 정보의 적어도 일부분과 동일하게 설정하는 단계;
    g) 상기 시각적 스테이터스 정보와 상기 예측된 스테이터스 정보 간의 불일치를 결정하는 단계;
    h) 상기 불일치가 제1 임계값보다 더 클 때, 상기 예측된 스테이터스 정보의 상기 적어도 하나의 속도값을 변경하는 단계;
    i) 상기 불일치가 제2 임계값보다 더 클 때, 상기 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 상기 시각적 스테이터스 정보를 변경하는 단계;
    j) 상기 제2 컴퓨팅 디바이스에 의해, 상기 시각적 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제1 객체의 제2 시각적 표현을 렌더링하는 단계; 및
    k) 상기 제2 컴퓨팅 디바이스에 의해, 상기 제1 객체의 상기 제2 시각적 표현을 디스플레이 디바이스에 디스플레이하는 단계를 포함하는 것인 방법.
  24. 제23항에 있어서, 상기 예측된 스테이터스 정보는 제1 예측된 스테이터스 정보이고, 상기 불일치는 제1 불일치이며, 상기 방법은,
    상기 제2 컴퓨팅 디바이스에 의해, 상기 제1 예측된 스테이터스 정보의 상기 적어도 하나의 속도 값에 적어도 부분적으로 기초하여 제2 예측된 스테이터스 정보를 생성하는 단계;
    상기 시각적 스테이터스 정보와 상기 제2 예측된 스테이터스 정보 사이의 제2 불일치를 결정하는 단계;
    상기 제2 불일치가 상기 제2 임계값보다 더 클 때, 상기 제2 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 상기 시각적 스테이터스 정보를 변경하는 단계;
    상기 제2 컴퓨팅 디바이스에 의해, 상기 시각적 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제1 객체의 제3 시각적 표현을 렌더링하는 단계; 및
    상기 제2 컴퓨팅 디바이스에 의해, 상기 제1 객체의 상기 제3 시각적 표현을 상기 디스플레이 디바이스에 디스플레이하는 단계를 더 포함하는 것인 방법.
  25. 제23항에 있어서, 상기 제2 컴퓨팅 디바이스에서 실행하며 상기 복수의 객체의 제2 부분을 제어하는 상기 분산된 시뮬레이션의 상기 일부분과 사용하기 위한 것으로, 상기 방법은,
    상기 복수의 객체의 상기 제2 부분의 적어도 하나의 객체와 관련된 업데이트를 상기 제1 컴퓨팅 디바이스에 송신하는 단계를 더 포함하는 것인 방법.
  26. 제23항에 있어서, 상기 제2 컴퓨팅 디바이스에서 실행하며 상기 복수의 객체의 제2 부분을 제어하는 상기 분산된 시뮬레이션의 상기 일부분과 사용하기 위한 것이고, 상기 방법은,
    유저 인터페이스 디바이스를 통해 유저 입력을 수신하는 단계로서, 상기 유저 입력이 상기 복수의 객체의 상기 제2 부분의 선택된 객체의 스테이터스를 변경하는 것인, 상기 유저 입력을 수신하는 단계;
    상기 선택된 객체와 관련된 스테이터스 정보를 포함하는 업데이트를 생성하는 단계; 및
    상기 선택된 객체와 관련된 상기 업데이트를 상기 제1 컴퓨팅 디바이스에 송신하는 단계를 더 포함하는 것인 방법.
  27. 제23항에 있어서, 상기 네트워크를 통해 상기 복수의 컴퓨팅 디바이스에 연결된 서버, 및 상기 제2 컴퓨팅 디바이스에서 실행하며 상기 복수의 객체의 제2 부분을 제어하는 상기 분산된 시뮬레이션의 상기 일부분과 사용하기 위한 것으로, 상기 방법은,
    상기 복수의 객체의 상기 제2 부분의 적어도 하나의 객체와 관련된 업데이트를 상기 서버에 송신함으로써 상기 복수의 컴퓨팅 디바이스 중 다른 컴퓨팅 디바이스에 전송(forwarding)하는 단계를 더 포함하는 것인 방법.
  28. 복수의 객체를 포함하는 분산된 시뮬레이션의 일부분을 각각 실행하는 복수의 컴퓨팅 디바이스와 함께 사용하기 위한 방법으로서, 상기 일부분은 상기 복수의 컴퓨팅 디바이스 중 제1 컴퓨팅 디바이스에서 실행하며 상기 복수의 객체의 일부분을 제어하고 상기 복수의 객체의 상기 일부분의 적어도 하나의 객체와 관련된 업데이트를 상기 복수의 컴퓨팅 디바이스 중 적어도 제2 컴퓨팅 디바이스에 송신하고, 상기 방법은,
    a) 상기 제2 컴퓨팅 디바이스에서, 상기 제1 컴퓨팅 디바이스로부터 상기 제1 컴퓨팅 디바이스에 의해 제어된 상기 복수의 객체의 상기 일부분의 제1 객체와 관련된 스테이터스 정보를 포함하는 이전의 업데이트를 수신하는 단계;
    b) 상기 제2 컴퓨팅 디바이스에서, 상기 제1 객체와 관련된 상기 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제1 객체의 제1 시각적 표현을 생성하고 디스플레이하는 단계로서, 상기 제2 컴퓨팅 디바이스는 상기 제1 객체 및 상기 제1 시각적 표현과 연관된 시각적 스테이터스 정보를 포함하는 것인, 상기 제1 객체의 제1 시각적 표현을 생성하고 디스플레이하는 단계;
    c) 상기 제2 컴퓨팅 디바이스에서, 상기 제1 컴퓨팅 디바이스로부터 스테이터스 정보를 포함하는 새로운 업데이트를 수신하는 단계로서, 상기 새로운 업데이트는 상기 이전의 업데이트 후에 수신된 것인, 상기 새로운 업데이트를 수신하는 단계;
    d) 상기 제2 컴퓨팅 디바이스에서, 상기 이전의 업데이트의 상기 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제1 객체에 대해 예측된 스테이터스 정보를 결정하는 단계;
    e) 상기 제2 컴퓨팅 디바이스에서, 상기 새로운 업데이트의 상기 스테이터스 정보가 상기 제1 객체와 관련되었는지의 여부를 결정하는 단계;
    f) 상기 제2 컴퓨팅 디바이스가 상기 새로운 업데이트의 상기 스테이터스 정보가 상기 제1 객체와 관련된 것이라고 결정하면, 상기 제2 컴퓨팅 디바이스에서, 상기 예측된 스테이터스 정보의 적어도 일부분을 상기 새로운 업데이트의 상기 스테이터스 정보의 적어도 일부분과 동일하게 설정하는 단계;
    g) 상기 제2 컴퓨팅 디바이스에서, 상기 시각적 스테이터스 정보와 상기 예측된 스테이터스 정보 간의 불일치를 결정하는 단계;
    h) 상기 불일치가 제1 임계값보다 더 클 때, 상기 제2 컴퓨팅 디바이스에서, 상기 시각적 스테이터스 정보의 적어도 일부분을 상기 예측된 스테이터스 정보의 적어도 일부분과 동일하게 설정하는 단계;
    i) 상기 불일치가 상기 제1 임계값 미만이고 상기 제1 임계값 미만인 제2 임계값보다 더 클 때, 상기 제2 컴퓨팅 디바이스에 의해, 상기 시각적스테이터스 정보 및 상기 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 혼합된 스테이터스 정보를 결정하고, 상기 시각적 스테이터스 정보의 적어도 일부분을 상기 혼합된 스테이터스 정보의 적어도 일부분과 동일하게 설정하는 단계;
    j) 상기 제2 컴퓨팅 디바이스에 의해, 상기 시각적 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제1 객체의 제2 시각적 표현을 렌더링하는 단계; 및
    k) 상기 제2 컴퓨팅 디바이스에서, 상기 제1 객체의 상기 제2 시각적 표현 을 디스플레이 디바이스에 디스플레이하는 단계를 포함하는 것인 방법.
  29. 네트워크를 통해 서로 연결되고 복수의 객체를 포함하는 분산된 시뮬레이션의 일부분을 각각 실행하는 복수의 컴퓨팅 디바이스와 함께 사용하기 위한 방법으로서, 상기 일부분은 상기 복수의 컴퓨팅 디바이스 중 제1 컴퓨팅 디바이스에서 실행하며 상기 복수의 객체의 제1 부분을 제어하고 상기 복수의 객체의 상기 제1 부분의 적어도 하나의 객체와 관련된 업데이트를 상기 복수의 컴퓨팅 디바이스 중 제2 컴퓨팅 디바이스에 송신하며, 상기 일부분은 상기 제2 컴퓨팅 디바이스에 실행하며 상기 복수의 객체의 제2 부분을 제어하고 상기 복수의 객체의 상기 제2 부분의 적어도 하나의 객체와 관련된 업데이트를 상기 제1 컴퓨팅 디바이스에 송신하고, 상기 방법은,
    상기 제2 컴퓨팅 디바이스에서, 상기 복수의 객체의 상기 제1 부분의 제1 객체의 제1 시각적 표현 및 상기 복수의 객체의 상기 제2 부분의 제2 객체의 제1 시각적 표현을 렌더링하는 단계로서, 상기 제1 객체의 상기 제1 시각적 표현은 시각적 스테이터스 정보와 연관된 것인, 상기 렌더링하는 단계;
    상기 제2 컴퓨팅 디바이스에서, 유저 입력 디바이스를 통해, 상기 제2 객체의 상기 제1 시각적 표현을 변경하는 입력을 수신하고, 상기 제1 객체의 상기 제1 시각적 표현을 변경하기 위해 상기 제2 컴퓨팅 디바이스에 의해 사용가능한 상기 제1 컴퓨팅 디바이스로부터 업데이트를 경우에 따라 수신하는 단계로서, 각 상기 업데이트는 상기 제1 컴퓨팅 디바이스로부터 수신되고 상기 제1 객체와 관련된 스테이터스 정보를 포함하는 것인, 상기 수신하는 단계;
    상기 제2 객체의 상기 제1 시각적 표현이 변하면, 상기 제2 컴퓨팅 디바이스에서, 업데이트를 상기 네트워크를 통해 상기 제1 컴퓨팅 디바이스로 경우에 따라 송신하는 단계로서, 상기 업데이트는 상기 제2 객체의 제2 시각적 표현을 변경하기 위해 상기 제1 컴퓨팅 디바이스에 의해 사용가능한 상기 제2 객체와 관련된 스테이터스 정보를 포함하는 것인, 상기 송신하는 단계;
    상기 제2 컴퓨팅 디바이스에서, 적어도 하나의 속도를 포함하는 상기 제1 객체에 대해 예측된 스테이터스 정보를 경우에 따라 생성하는 단계;
    각 상기 업데이트가 상기 제2 컴퓨팅 디바이스에서 수신된 후, 상기 예측된 스테이터스 정보를 상기 업데이트의 상기 스테이터스 정보와 동일하게 설정하는 단계;
    상기 제2 컴퓨팅 디바이스에서, 상기 예측된 스테이터스 정보와 상기 제1 객체의 상기 제1 시각적 표현과 연관된 상기 시각적 스테이터스 정보 간의 불일치를 결정하는 단계;
    상기 제2 컴퓨팅 디바이스에서, 상기 불일치가 제1 임계값보다 더 클 때, 상기 적어도 하나의 속도를 변경함으로써 상기 예측된 스테이터스 정보를 업데이트하는 단계;
    상기 제2 컴퓨팅 디바이스에서, 상기 불일치가 제2 임계값보다 더 클 때, 상기 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제1 객체의 상기 제1 시각적 표현과 연관된 상기 시각적 스테이터스 정보를 변경하는 단계; 및
    상기 제2 컴퓨팅 디바이스에서, 상기 시각적 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제2 객체의 상기 제1 시각적 표현을 재렌더링하는 단계를 포함하는 것인 방법.
  30. 제29항에 있어서, 상기 제1 객체는 유형을 구비하고, 상기 제1 및 제2 임계값은 테이블에 저장되고 상기 테이블 내 상기 제1 객체의 상기 유형과 연관되며, 상기 방법은,
    상기 제2 컴퓨팅 디바이스에서 상기 테이블 내 상기 제1 및 제2 임계값을 룩업하는 단계를 더 포함하는 것인 방법.
  31. 제29항에 있어서, 상기 불일치가 상기 제2 임계값보다 더 클 때 상기 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제1객체의 상기 제1 시각적 표현과 연관된 상기 시각적 스테이터스 정보를 변경하는 단계는,
    상기 불일치가 제3 임계값보다 더 클 때, 상기 시각적 스테이터스 정보를 상기 예측된 스테이터스 정보와 동일하게 설정하는 단계; 및
    상기 불일치가 상기 제3 임계값 미만이고 상기 제2 임계값보다 더 클 때, 상기 제2 컴퓨팅 디바이스에 의해, 상기 시각적 스테이터스 정보 및 상기 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 혼합된 스테이터스 정보를 결정하고, 상기 시각적 스테이터스 정보를 상기 혼합된 스테이터스 정보와 동일하게 설정하는 단계를 포함하되, 상기 제3 임계값은 상기 제2 임계값보다 더 큰 것인 방법.
  32. 하나 이상의 프로세서에 의해 실행될 때 분산된 시뮬레이션의 제1 부분을 실행하는 제1 컴퓨팅 디바이스와 함께 사용하기 위한 방법을 수행하는 컴퓨터 실행가능한 명령을 저장하는 하나 이상의 컴퓨터 판독가능한 매체로서, 상기 제1 부분은 객체를 제어하고, 상기 방법은,
    상기 분산된 시뮬레이션의 제2 부분을 실행하는 단계로서, 상기 제2 부분은 제1 디스플레이 디바이스에 디스플레이가능한 상기 객체의 제1 시각적 표현을 생성하고, 시각적 스테이터스는 상기 객체 및 상기 제1 시각적 표현과 연관되며, 상기 시각적 스테이터스는 적어도 하나의 파라미터값을 포함하는 것인, 상기 제2 부분을 실행하는 단계;
    b) 상기 제1 컴퓨팅 디바이스로부터 수신된 이전의 업데이트의 이전의 스테이터스에 적어도 부분적으로 기초하여 상기 객체의 예측된 스테이터스를 생성하는 단계로서, 상기 이전의 스테이터스는 상기 객체의 제2 시각적 표현과 연관되고, 상기 예측된 스테이터스는 어도 하나의 속도 및 적어도 하나의 파라미터값을 포함하는 것인, 상기 객체의 예측된 스테이터스를 생성하는 단계;
    c) 상기 제1 컴퓨팅 디바이스로부터 업데이트를 수신하는 단계로서, 상기 업데이트는 상기 객체의 제3 시각적 표현과 연관된 새로운 스테이터스를 포함하고, 상기 새로운 스테이터스는 적어도 하나의 파라미터값을 포함하는 것인, 상기 업데이트를 수신하는 단계;
    d) 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값을 상기 새로운 스테이터스의 상기 적어도 하나의 파라미터값과 동일하게 설정하는 단계;
    e) 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값과 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값 간의 불일치를 결정하는 단계;
    f) 상기 불일치가 제1 임계값보다 더 클 때, 상기 예측된 스테이터스의 상기 적어도 하나의 속도를 변경하는 단계;
    g) 상기 불일치가 제2 임계값보다 더 클 때, 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 상기 시각적 스테이터스의 적어도 하나의 파라미터값을 변경하는 단계;
    h) 상기 시각적 스테이터스에 적어도 부분적으로 기초하여 상기 객체의 제4 시각적 표현을 렌더링하는 단계; 및
    i) 상기 객체의 상기 제4 시각적 표현을 상기 제1 디스플레이 디바이스에 디스플레이하는 단계를 포함하는 것인, 하나 이상의 컴퓨터 판독가능한 매체.
  33. 제32항에 있어서, 상기 예측된 스테이터스는 제1 예측된 스테이터스이고, 상기 불일치는 제1 불일치이며, 상기 방법은,
    상기 예측된 스테이터스의 상기 적어도 하나의 속도에 적어도 부분적으로 기초하여 제2 예측된 스테이터스를 생성하는 단계로서, 상기 제2 예측된 스테이터스는 적어도 하나의 파라미터값을 포함하는 것인, 상기 생성하는 단계;
    제2 불일치가 상기 제2 임계값보다 더 클 때, 상기 제2 예측된 스테이터스의 상기 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값을 변경하는 단계;
    상기 시각적 스테이터스에 적어도 부분적으로 기초하여 상기 객체의 제5 시각적 표현을 렌더링하는 단계; 및
    상기 객체의 상기 제5 시각적 표현을 상기 제1 디스플레이 디바이스에 디스플레이하는 단계를 더 포함하는 것인, 하나 이상의 컴퓨터 판독가능한 매체.
  34. 제32항에 있어서, 상기 불일치가 상기 제2 임계값보다 더 클 때, 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값을 변경하는 단계는,
    상기 불일치가 제3 임계값보다 더 큰지의 여부를 결정하는 단계로서, 상기 제3 임계값은 상기 제2 임계값보다 더 큰 것인, 상기 제3 임계값보다 더 큰지의 여부를 결정하는 단계;
    상기 불일치가 상기 제3 임계값보다 더 큰 것으로 결정되면, 상기 시각적 스테이터스의 파라미터값 중 적어도 하나를 상기 예측된 스테이터스의 파라미터값 중 적어도 하나와 동일하게 설정하는 단계; 및
    상기 불일치가 상기 제3 임계값 미만인 것으로 결정되면, 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값 및 상기 예측된 스테이터스의 상기 적어도 하나의 파라미터값에 적어도 부분적으로 기초하여 혼합된 스테이터스를 결정하고, 상기 시각적 스테이터스의 상기 적어도 하나의 파라미터값을 상기 혼합된 스테이터스의 파라미터값 중 적어도 하나와 동일하게 설정하는 단계를 더 포함하되, 상기 혼합된 스테이터스는 적어도 하나의 파라미터값을 포함하는 것인, 하나 이상의 컴퓨터 판독가능한 저장 매체.
  35. 복수의 객체를 포함하는 분산된 시뮬레이션을 구현하는 시스템으로서, 상기 시스템은,
    네트워크를 통해 서로 연결된 복수의 컴퓨팅 디바이스로서, 각 컴퓨팅 디바이스가 상기 분산된 시뮬레이션의 일부분을 실행하도록 구성된 것인, 상기 복수의 컴퓨팅 디바이스를 포함하되,
    상기 복수의 컴퓨팅 디바이스 중 제1 컴퓨팅 디바이스는 상기 복수의 객체의 일부분을 제어하고 상기 복수의 객체의 상기 일부분의 적어도 하나의 객체와 관련된 업데이트를 상기 복수의 컴퓨팅 디바이스 중 제2 컴퓨팅 디바이스에 송신하는 상기 분산된 시뮬레이션의 제1 부분을 실행하고, 상기 제2 컴퓨팅 디바이스는,
    상기 제1 컴퓨팅 디바이스로부터, 상기 제1 컴퓨팅 디바이스에 의해 제어된 상기 복수의 객체의 상기 부분의 제1 객체와 관련된 스테이터스 정보를 포함하는 이전의 업데이트를 수신하는 동작;
    상기 제1 객체와 관련된 상기 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제1 객체의 제1 시각적 표현을 생성하는 동작;
    상기 제1 시각적 표현을 디스플레이 디바이스에 디스플레이하는 동작으로서, 상기 제2 컴퓨팅 디바이스는 상기 제1 객체 및 상기 제1 시각적 표현과 연관된 시각적 스테이터스 정보를 포함하는 것인, 상기 디스플레이하는 동작;
    상기 제1 컴퓨팅 디바이스로부터 스테이터스 정보를 포함하는 새로운 업데이트를 수신하는 동작으로서, 상기 새로운 업데이트는 상기 이전의 업데이트 후에 수신된 것인, 상기 수신하는 동작;
    상기 이전의 업데이트의 상기 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제1 객체에 대해 예측된 스테이터스 정보를 결정하는 동작으로서, 상기 예측된 스테이터스 정보는 적어도 하나의 속도값을 포함하는 것인, 상기 결정하는 동작;
    상기 새로운 업데이트의 상기 스테이터스 정보가 상기 제1 객체와 관련되었는지의 여부를 결정하는 동작;
    상기 제2컴퓨팅 디바이스가 상기 새로운 업데이트의 상기 스테이터스 정보가 상기 제1 객체와 관련된 것이라고 결정하면, 상기 예측된 스테이터스 정보의 적어도 일부분을 상기 새로운 업데이트의 상기 스테이터스 정보의 적어도 일부분과 동일하게 설정하는 동작;
    상기 시각적 스테이터스 정보와 상기 예측된 스테이터스 정보 간의 불일치를 결정하는 동작;
    상기 불일치가 제1 임계값보다 더 클 때, 상기 예측된 스테이터스 정보의 상기 적어도 하나의 속도값을 변경하는 동작;
    상기 불일치가 제2 임계값보다 더 클 때, 상기 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 상기 시각적 스테이터스 정보를 변경하는 동작;
    상기 시각적 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제1 객체의 제2 시각적 표현을 렌더링하는 동작; 및
    상기 제1 객체의 상기 제2 시각적 표현을 상기 디스플레이 디바이스에 디스플레이하는 동작을 수행하도록 구성된 것인 시스템.
  36. 제35항에 있어서, 상기 예측된 스테이터스 정보는 제1 예측된 스테이터스 정보이고, 상기 불일치는 제1 불일치이며, 상기 제2 컴퓨팅 디바이스는,
    상기 제1 예측된 스테이터스 정보의 상기 적어도 하나의 속도 값에 적어도 부분적으로 기초하여 제2 예측된 스테이터스 정보를 생성하는 동작;
    상기 시각적 스테이터스 정보와 상기 제2 예측된 스테이터스 정보 사이의 제2 불일치를 결정하는 동작;
    상기 제2 불일치가 제2 임계값보다 더 클 때, 상기 제2 예측된 스테이터스 정보에 적어도 부분적으로 기초하여 상기 시각적 스테이터스 정보를 변경하는 동작;
    상기 시각적 스테이터스 정보에 적어도 부분적으로 기초하여 상기 제1 객체의 제3 시각적 표현을 렌더링하는 동작; 및
    상기 제1 객체의 상기 제3 시각적 표현을 상기 디스플레이 디바이스에 디스플레이하는 동작을 수행하도록 구성된 것인 시스템.
  37. 제35항에 있어서, 상기 제2 컴퓨팅 디바이스에서 실행하는 상기 분산된 시뮬레이션의 상기 일부분은 상기 복수의 객체의 제2 부분을 제어하고, 상기 제2 컴퓨팅 디바이스는 상기 복수의 객체의 상기 제2 부분의 적어도 하나의 객체와 관련된 업데이트를 상기 제1 컴퓨팅 디바이스에 송신하도록 더 구성된 것인 시스템.
  38. 제35항에 있어서, 상기 제2 컴퓨팅 디바이스에서 실행하는 상기 분산된 시뮬레이션의 상기 일부분은 상기 복수의 객체의 제2 부분을 제어하고, 상기 제2 컴퓨팅 디바이스는,
    유저 인터페이스 디바이스를 통해 상기 복수의 객체의 상기 제2 부분의 선택된 객체의 스테이터스를 변경하는 유저 입력을 수신하는 동작;
    유저 인터페이스 디바이스를 통해 유저 입력을 수신하는 동작으로서, 상기 유저 입력이 상기 복수의 객체의 상기 제2 부분의 선택된 객체의 스테이터스를 변경하는 것인, 상기 유저 입력을 수신하는 동작;
    상기 선택된 객체와 관련된 스테이터스 정보를 포함하는 업데이트를 생성하는 동작; 및
    상기 선택된 객체와 관련된 상기 업데이트를 상기 제1 컴퓨팅 디바이스에 송신하는 동작을 수행하도록 더 구성된 것인 시스템.
  39. 제35항에 있어서, 상기 네트워크를 통해 상기 복수의 컴퓨팅 디바이스에 연결된 서버를 더 포함하되, 상기 제2 컴퓨팅 디바이스에서 실행하는 상기 분산된 시뮬레이션의 상기 일부분은 상기 복수의 객체의 제2 부분을 제어하고, 상기 제2 컴퓨팅 디바이스는 상기 복수의 객체의 상기 제2 부분의 적어도 하나의 객체와 관련된 업데이트를 상기 서버에 송신함으로써 상기 복수의 컴퓨팅 디바이스 중 다른 컴퓨팅 디바이스에 전송하도록 더 구성된 것인 시스템.
KR1020137031710A 2011-05-03 2012-05-03 분산된 대화식 시뮬레이션에서 객체의 개선된 제공을 위한 장치 및 방법 KR101939860B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161482162P 2011-05-03 2011-05-03
US61/482,162 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 (2)

Publication Number Publication Date
KR20140031279A KR20140031279A (ko) 2014-03-12
KR101939860B1 true KR101939860B1 (ko) 2019-01-17

Family

ID=47108237

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137031710A KR101939860B1 (ko) 2011-05-03 2012-05-03 분산된 대화식 시뮬레이션에서 객체의 개선된 제공을 위한 장치 및 방법

Country Status (10)

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

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 中国科学技术大学 一种视力障碍模拟方法及装置
WO2018005671A1 (en) * 2016-06-28 2018-01-04 Against Gravity Corp. 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
CN110770760B (zh) * 2017-05-19 2024-01-12 渊慧科技有限公司 视觉交互网络系统及其方法、训练方法和计算机存储介质
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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020142843A1 (en) 2001-03-29 2002-10-03 Koninklijke Philips Electronics N.V. Compensating for network latency in a multi-player game
US20100241692A1 (en) 2009-03-20 2010-09-23 Sony Computer Entertainment America Inc., a Delaware Corporation Methods and systems for dynamically adjusting update rates in multi-player network gaming

Family Cites Families (15)

* 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 ゲームシステム及びゲーム方法
KR100510339B1 (ko) * 2004-08-13 2005-08-26 엔에이치엔(주) 역학 정보를 이용한 화면 갱신 방법 및 시스템
JP4807517B2 (ja) * 2004-11-26 2011-11-02 株式会社セガ 情報処理装置、データ処理方法、プログラム、および記録媒体
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020142843A1 (en) 2001-03-29 2002-10-03 Koninklijke Philips Electronics N.V. Compensating for network latency in a multi-player game
US20100241692A1 (en) 2009-03-20 2010-09-23 Sony Computer Entertainment America Inc., a Delaware Corporation Methods and systems for dynamically adjusting update rates in multi-player network gaming

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101939860B1 (ko) 분산된 대화식 시뮬레이션에서 객체의 개선된 제공을 위한 장치 및 방법
US20110119332A1 (en) Movement animation method and apparatus
US10933327B2 (en) Network-based video game editing and modification distribution system
US8668582B1 (en) Accommodating latency in a server-based application
US8909506B2 (en) Program, information storage medium, information processing system, and information processing method for controlling a movement of an object placed in a virtual space
CN107875633B (zh) 改善模拟中的模型的运动动画的计算机实现方法及系统
US20140035908A1 (en) Constraint evaluation in directed acyclic graphs
US11666830B2 (en) Local game execution for spectating and spectator game play
US11113861B2 (en) Imitating motion capture clips using a neural network
US20230334744A1 (en) Method and apparatus for generating walk animation of virtual role, device and storage medium
US20230186541A1 (en) System for customizing in-game character animations by players
US9433863B2 (en) Video processing using concurrent outcome simulation threads
CN112843683A (zh) 虚拟角色的控制方法、装置、电子设备及存储介质
Chen et al. A path-assisted dead reckoning algorithm for distributed virtual environments
US11794104B2 (en) Systems and methods for pivoting player-controlled avatars in video games
CN116196611A (zh) 基于挥手动作的体感游戏方法
US8732102B2 (en) System and method for using atomic agents to implement modifications
Friðriksson et al. Become your Avatar: Fast Skeletal Reconstruction from Sparse Data for Fully-tracked VR.
NZ617145B2 (en) Apparatus and method for improved presentation of objects in a distributed interactive simulation
Roberts et al. Evolving spaceship designs for optimal control and the emergence of interesting behaviour
KR20230146221A (ko) 규칙기반 및 딥러닝기반 인공지능 컴퓨터 그래픽 게임 프로그래밍 시스템
CN110496393A (zh) 虚拟对象的运动轨迹控制方法及装置、介质、电子设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right