KR20020096890A - 분산 처리 시스템, 분산 처리 방법, 및 그 방법을 이용할수 있는 클라이언트 단말 - Google Patents

분산 처리 시스템, 분산 처리 방법, 및 그 방법을 이용할수 있는 클라이언트 단말 Download PDF

Info

Publication number
KR20020096890A
KR20020096890A KR1020020031901A KR20020031901A KR20020096890A KR 20020096890 A KR20020096890 A KR 20020096890A KR 1020020031901 A KR1020020031901 A KR 1020020031901A KR 20020031901 A KR20020031901 A KR 20020031901A KR 20020096890 A KR20020096890 A KR 20020096890A
Authority
KR
South Korea
Prior art keywords
event
time
change
server
state
Prior art date
Application number
KR1020020031901A
Other languages
English (en)
Other versions
KR100523785B1 (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 KR20020096890A publication Critical patent/KR20020096890A/ko
Application granted granted Critical
Publication of KR100523785B1 publication Critical patent/KR100523785B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 분산 처리 시스템에 있어서 통신에 의해 발생하는 지연의 영향을 경감시키는 기술을 제공하기 위한 것으로, 분산 처리 시스템에 있어서, 사용자 단말은, 서버로부터 전달된 다른 사용자 단말에서 발생한 이벤트 정보를 수신한다. 이벤트 정보가 네트워크 상에서 전송되고 있는 동안에, 이미 처리 서버 상의 모델은 사용자 단말 상의 모델과 달라지게 된다. 따라서, 상태 변화 보정부(210)는, 처리부(208)에서 처리되고 있는 모델의 상태를, 처리 서버 상의 모델의 상태와 같아지도록, 연속적으로 상태를 천이시킨다.

Description

분산 처리 시스템, 분산 처리 방법, 및 그 방법을 이용할 수 있는 클라이언트 단말{DISTRIBUTED PROCESSING SYSTEM, DISTRIBUTED PROCESSING METHOD AND CLIENTS TERMINAL CAPABLE OF USING THE METHOD}
본 발명은, 분산 처리 기술에 관한 것이다. 본 발명은 특히, 시간적으로 변화하는 사상(事象)을 시뮬레이트시키기 위한 분산 처리 시스템, 그 분산 처리 시스템에 이용할 수 있는 클라이언트 단말, 및 그 분산 처리 시스템에 이용할 수 있는 분산 처리 방법에 관한 것이다.
네트워크 통신의 인프라가 구축되고 있는 오늘날, 네트워크를 통해서 원격 사용자와 커뮤니케이션을 할 수 있는 환경이 확립되어 왔다. 이러한 환경을 이용하여, 집에 있으면서도 원격 사용자와 대전할 수 있는, 이른바 네트워크 게임이 인기를 누리고 있다. 종래, 인터넷 등을 이용한 네트워크 게임에서는, 각 클라이언트는 게임 환경을 제공하는 서버에 접속하고, 그 서버 상에 전개되는 게임 공간 안에서, 다른 클라이언트와 대전하는 구조로 되어 있었다.
그러나, 클라이언트와 서버 사이의 통신은, 물론 순식간에 이루어지는 것이 아니라, 어느 정도의 지연이 있음을 각오해야 한다. 트럼프나 오델로 등, 리얼 타임의 묘화 처리나 민첩한 응답(response)을 필요로 하지 않는 게임의 경우에는, 그 지연 시간은 그다지 중요하지 않지만, 슈팅 게임이나 레이싱 게임 등, 매우 고속의 묘화 처리와 응답을 필요로 하는 게임의 경우에는, 사소한 지연이더라도 사용자에게 부자연스러운 인상을 주게 되는 수가 있다. 특히, 회선 품질이 떨어지는 네트워크를 이용하고 있는 사용자에게는 치명적인 문제이다.
본 발명은 이러한 과제를 감안하여 이루어진 것으로, 그 목적은, 분산 처리 시스템에 있어서, 통신에 의해 발생하는 지연의 영향을 경감시키는 기술을 제공하는 데 있다
도 1은 실시의 형태에 따른 분산 처리 시스템의 전체 구성을 도시하는 도면이다.
도 2는 처리 서버 또는 어느 사용자 단말 내에서 발생한 이벤트가, 다른 사용자 단말에 통지되는 모습을 나타내는 도면이다.
도 3은 처리 서버의 내부 구성을 도시하는 도면이다.
도 4는 사용자 단말의 내부 구성을 도시하는 도면이다.
도 5a, 도 5b, 도 5c, 도 5d는 상태 변화 보정부의 동작을 설명하기 위한 도면이다.
도 6은 상태 변화 보정부에 있어서의 보정 순서를 나타내는 플로우챠트이다.
도 7은 시간 보정부의 동작을 설명하기 위한 도면이다.
도 8은 시간 보정부에 의해 이벤트 처리의 시간이 조정되는 모습을 나타내는 도면이다.
도 9는 시간 보정부에 있어서의 보정 순서를 설명하기 위한 플로우챠트이다.
* 도면의 주요부분에 대한 설명 *
10 : 분산 처리 시스템50 : 네트워크
100 : 처리 서버104 : 수신부
106 : 송신부108 : 처리부
200 : 사용자 단말204 : 수신부
206 : 송신부208 : 처리부
210 : 상태 변화 보정부212 : 시간 보정부
본 발명의 한 형태는, 분산 처리 시스템에 관한 것이다. 이 분산 처리 시스템은, 서버와 복수개의 클라이언트 단말을 포함하고, 시간적으로 변화하는 사상을 시뮬레이트시키는 분산 처리 시스템으로서, 상기 서버에 관한 구성에 [제 1]을 붙이고, 상기 클라이언트 단말에 관한 구성에 [제 2]를 붙여서 표현할 때, 상기 서버는, 상기 사상을 관리하고, 상기 클라이언트 단말은, 상기 사상을 시뮬레이트시켜서 상기 사상에 관한 정보를 사용자에게 출력하며, 상기 클라이언트 단말은, 상기 사용자의 조작에 의해 발생하는 상기 사상의 변화를 상기 서버에 통지하는 제 2 송신부를 포함하고, 상기 서버는, 상기 복수개의 클라이언트 단말로부터 통지되는 상기 변화를 수신하는 제 1 수신부와, 상기 변화에 따라 상기 사상을 시뮬레이트시키는 제 1 처리부와, 하나의 클라이언트 단말로부터 통지된 상기 변화를, 각각의 클라이언트 단말에 통지하는 제 1 송신부를 포함하며, 상기 클라이언트 단말은, 상기 서버로부터 상기 변화를 수신하는 제 2 수신부와, 상기 변화에 따라 상기 사상을 시뮬레이트시키는 제 2 처리부와, 상기 서버로부터 상기 클라이언트 단말에 상기 변화가 통지될 때의 지연 시간에 근거하여, 상기 제 1 처리부에서의 상기 사상의 상태를 산출하고, 상기 제 2 처리부에서의 상기 사상의 상태를 상기 제 1 처리부에서의 사상의 상태에 동기시키기 위해, 상기 사상의 상태를 연속적으로 변화시키는 상태 변화 보정부를 포함한다.
이 분산 처리 시스템에서는, 서버와 각 클라이언트 단말의 쌍방이, 사상을 시뮬레이트시키고 있다. 그렇기 때문에, 서버가 각 클라이언트 단말에서 발생한 사상의 변화에 관한 정보를 모두 취득하여, 그것을 각각의 클라이언트 단말에 브로드캐스트함으로써 동기를 취한다. 이 때, 서버와 클라이언트 단말 사이의 통신에서 발생하는 지연으로 인해, 사상이 불연속적으로 변화하는 경우가 있는데, 이것을 연속적인 변화가 되도록 보정함으로써 부자연스러움을 경감시킨다.
본 발명의 다른 형태는, 분산 처리 시스템에 관한 것이다. 이 분산 처리 시스템은, 서버와 복수개의 클라이언트 단말을 포함하고, 시간적으로 변화하는 사상을 시뮬레이트시키는 분산 처리 시스템으로서, 상기 서버에 관한 구성에 [제 1]을 붙이고, 상기 클라이언트 단말에 관한 구성에 [제 2]를 붙여서 표현할 때, 상기 서버는, 상기 사상을 관리하고, 상기 클라이언트 단말은, 상기 사상을 시뮬레이트시켜서 상기 사상에 관한 정보를 사용자에게 출력하며, 상기 클라이언트 단말은, 상기 사용자의 조작에 의해 발생하는 상기 사상의 변화를 상기 서버에 통지하는 제 2 송신부를 포함하고, 상기 서버는, 상기 복수개의 클라이언트 단말로부터 통지되는 상기 변화를 수신하는 제 1 수신부와, 상기 변화에 따라 상기 사상을 시뮬레이트시키는 제 1 처리부와, 하나의 클라이언트 단말로부터 통지된 상기 변화를, 각각의 클라이언트 단말에 통지하는 제 1 송신부를 포함하며, 상기 클라이언트 단말은, 상기 서버로부터 상기 변화를 수신하는 제 2 수신부와, 상기 변화에 따라 상기 사상을 시뮬레이트시키는 제 2 처리부와, 상기 변화를 수신했을 때, 상기 제 2 처리부에서 사용되는 로컬 시간을, 상기 서버로부터 상기 클라이언트 단말에 상기 변화가 통지될 때의 지연 시간만큼 되돌린 후, 소정의 시간이 경과할 때까지의 동안에, 상기 제 1 처리부에서 사용되는 공통 시간을 따라 잡기 위해 시간의 진행을 빠르게 하는 시간 보정부를 포함한다. 공통 시간의 예로서, 세계시(world time)를 사용해도 무방하다.
이러한 분산 처리 시스템에서는, 서버와 클라이언트 단말 사이의 통신에서 발생하는 지연으로 인한 시간의 오차를 보정하기 위해, 클라이언트 단말의 로컬 시간을 일단 사상의 변화가 발생한 시각까지 되돌리고, 그 후의 시간의 진행을 빠르게 하여 공통 시간을 따라 잡도록 한다.
이 분산 처리 시스템은, 상기 지연 시간에 근거하여, 상기 제 1 처리부에서의 상기 사상의 상태를 산출하고, 상기 제 2 처리부에서의 상기 사상의 상태를 상기 제 1 처리부에서의 사상의 상태로 연속적으로 변화시키는 상태 변화 보정부를 더 포함해도 무방하다.
상기 클라이언트 단말은, 상기 사용자의 조작에 의해 상기 사상의 변화가 발생했을 경우에, 그 변화를 상기 서버로부터 수신하기 전에, 상기 제 2 처리부가 그 변화를 시뮬레이션에 반영시킬 수도 있다. 각 클라이언트 단말은, 각각 사상을 시뮬레이트시키고 있기 때문에, 자신의 단말에서 발생한 사상의 변화를 리얼 타임으로 반영할 수 있다.
본 발명의 또 다른 형태는, 클라이언트 단말에 관한 것이다. 이 클라이언트 단말은, 시간적으로 변화하는 사상을 시뮬레이트시키고, 상기 사상에 관한 정보를 사용자에게 출력하는 클라이언트 단말로서, 상기 사용자의 조작을 입력하는 입력부와, 상기 입력부에 입력된 사용자의 조작에 의해 발생하는 상기 사상의 변화를, 상기 사상을 관리하는 서버에 통지하는 송신부와, 상기 서버로부터 다른 클라이언트 단말에서 발생한 상기 사상의 변화를 수신하는 수신부와, 상기 변화에 따라 상기 사상을 시뮬레이트시키는 처리부와, 상기 사상에 관한 정보를 사용자에게 출력하는 출력부와, 상기 서버로부터 해당 클라이언트 단말에 상기 변화가 통지될 때의 지연 시간에 근거하여, 상기 서버에서의 상기 사상의 상태를 산출하고, 상기 처리부에서의 상기 사상의 상태를 상기 서버에서의 사상의 상태로 연속적으로 변화시키는 상태 변화 보정부를 포함한다.
본 발명의 또 다른 형태는, 클라이언트 단말에 관한 것이다. 이 클라이언트 단말은, 시간적으로 변화하는 사상을 시뮬레이트시키고, 상기 사상에 관한 정보를 사용자에게 출력하는 클라이언트 단말로서, 상기 사용자의 조작을 입력하는 입력부와, 상기 입력부에 입력된 사용자의 조작에 의해 발생하는 상기 사상의 변화를, 상기 사상을 관리하는 서버에 통지하는 송신부와, 상기 서버로부터 다른 클라이언트 단말에서 발생한 상기 사상의 변화를 수신하는 수신부와, 상기 변화에 따라 상기 사상을 시뮬레이트시키는 처리부와, 상기 사상에 관한 정보를 사용자에게 출력하는 출력부와, 상기 변화를 수신했을 때, 상기 처리부에서 사용되는 로컬 시간을, 상기 서버로부터 상기 클라이언트 단말에 상기 변화가 통지될 때의 지연 시간만큼 되돌린 후, 소정의 시간이 경과할 때까지의 동안에, 상기 서버에서 사용되는 공통 시간을 따라 잡기 위해 시간의 진행을 빠르게 하는 시간 보정부를 포함한다.
본 발명의 또 다른 형태는, 분산 처리 방법에 관한 것이다. 이 분산 처리 방법은, 시간적으로 변화하는 사상을 복수개의 단말에서 동시에 시뮬레이트시키는 단계와, 제 1 단말에서 발생한 이벤트를 제 2 단말에 통지하는 단계와, 상기 통지하는 단계에 필요한 시간에 근거하여 상기 제 1 단말에서의 사상의 상태를 예측하는 단계와, 상기 제 2 단말에서의 사상의 상태를, 예측된 상기 제 1 단말에서의 사상의 상태로 연속적으로 변화시키는 단계를 포함한다.
후술하는 바와 같이, 도 5에서 설명하는 보정의 순서는, 이 방법의 바람직한 이용예이다.
본 발명의 또 다른 형태는, 분산 처리 방법에 관한 것이다. 이 분산 처리 방법은, 시간적으로 변화하는 사상을 복수개의 단말에서 동시에 시뮬레이트시키는 단계와, 제 1 단말에서 발생한 이벤트를 제 2 단말에 통지하는 단계와, 제 2 단말에 있어서, 상기 통지에 필요한 시간을 뺌으로써 상기 이벤트가 본래 종료되어야 할 시각을 취득하는 단계와, 제 2 단말에 있어서, 상기 통지에 필요한 시간의 영향을 제거하기 위해 상기 이벤트가 본래 종료되어야 할 시각에 상기 이벤트가 종료되도록, 그 이벤트를 구성하는 상태의 변화를 가속화시키는 단계를 포함한다.
후술하는 바와 같이, 도 8에서 설명하는 순서는, 이 방법의 바람직한 이용예이다. 본 예에서는, 이벤트의 시작은 검을 치켜드는 동작에 대응하고, 이벤트의 종료는 검을 내리치는 동작에 대응한다. 검을 내리치는 동작을 동기시키기 위해, 검을 치켜들고 나서 내리치기까지의 동작을 통상시보다 빨리 해서, 통지할 때의 지연분을 만회한다.
본 발명의 또 다른 형태는, 컴퓨터 프로그램에 관한 것이다. 이 프로그램은 어느 단말(이하, 자신의 단말이라고 함)에서 동작하는 것으로, 시간적으로 변화하는 사상을 다른 단말과 동시에 시뮬레이트시키는 단계와, 상기 다른 단말에서 발생한 이벤트의 통지를 자신의 단말에서 수신하는 단계와, 상기 통지에 필요한 시간에 근거하여 상기 다른 단말에서의 사상의 상태를 예측하는 단계와, 상기 자신의 단말에서의 사상의 상태를, 예측된 상기 다른 단말에서의 사상의 상태로 연속적으로 변화시키는 단계를, 자신의 단말인 컴퓨터에 실행시키는 것이다.
본 발명의 또 다른 형태도 컴퓨터 프로그램에 관한 것이다. 이 프로그램은, 시간적으로 변화하는 사상을 다른 단말에서 동시에 시뮬레이트시키는 단계와, 상기 다른 단말에서 발생한 이벤트의 통지를 자신의 단말에서 수신하는 단계와, 상기 자신의 단말에 있어서, 상기 통지에 필요한 시간을 뺌으로써 상기 이벤트가 본래 종료되어야 할 시각을 취득하는 단계와, 상기 자신의 단말에 있어서, 상기 통지에 필요한 시간의 영향을 제거하기 위해 상기 이벤트가 본래 종료되어야 할 시각에 상기이벤트가 종료되도록, 그 이벤트를 구성하는 상태의 변화를 가속화시키는 단계를, 자신의 단말인 컴퓨터에 실행시키는 것이다.
한편, 이상의 구성 요소의 임의의 조합, 본 발명의 표현을 장치, 방법, 시스템, 컴퓨터 프로그램의 사이에서 변환한 것 또한, 본 발명의 형태로서 유효하다.
도 1은, 실시의 형태에 따른 분산 처리 시스템(10)의 전체 구성을 도시한다. 분산 처리 시스템(10)에 있어서, 처리 서버(100) 및 복수개의 사용자 단말(200)은, 네트워크(50)를 통해서 접속되어 있다. 네트워크(50)는, 인터넷, LAN, WAN, 공중망, 휴대 전화 패킷망, 전용 케이블 등의 각종 유선 통신, 전자파 등을 이용한 각종 무선 통신 등이어도 상관없다. 본 실시의 형태의 분산 처리 시스템(10)은, 네트워크 게임, 채팅 시스템 등의 커뮤니케이션 툴, 카 네비게이션 시스템, 버추얼 리얼리티, 각종 시뮬레이션 등, 시간 변화하는 사상을 포함한 전자적인 공간(이하, 간단히 [공간]이라고도 함)을 여러 사용자가 공유하는 시스템에 이용된다. 본 실시의 형태에서는, 적당히 네트워크 게임을 예를 들어 설명하기로 한다.
이하, 분산 시스템(10)에서 표현되는 전자적인 공간을, 간단히 [공간]이라고 한다. 이러한 공간은, 시간 변화하는 복수개의 사상으로 구성된다. 예를 들어, 레이싱 게임을 실현하는 분산 시스템(10)의 경우, 진행하고 있는 게임 자체가 [공간]이다. 또한, 공간을 구성하는 부분 공간, 즉 공간 내에 설치된 오브젝트 또는 사상을, 이하 [모델]이라고도 한다. 예를 들면, 레이싱 게임의 경우에는, 사용자가 조작하는 단체(單體)의 각각이 [모델]이다. 또한, 모델의 상태 변화를 일으키는 이벤트를, 이하 간단히 [이벤트]라고도 한다. 예를 들어, 레이싱 게임의 경우에는, 사용자의 핸들 조작, 액셀 조작, 브레이크 조작 등에 의해 이벤트가 발생한다. 물론, 이벤트는 유저 드리븐(user-driven)에서만 발생하는 것이 아니라, 시스템을 구축하는 프로그램이나 외적 요인에 의해 발생하는 수도 있다.
본 실시의 형태의 분산 처리 시스템(10)은, 처리 서버(100)가 공간을 일원 관리하지 않고, 각 사용자 단말(200)도 각각 공간을 시뮬레이트시킨다. 공간을 처리 서버(100)가 일원 관리하는 시스템에서는, 각 사용자 단말(200)은, 항상 네트워크(50)를 통해서 처리 서버(100) 내의 공간을 관측하고, 그 관측 결과를 토대로 공간의 현재 상태를 사용자에게 출력한다. 이 때, 처리 서버(100)와의 사이의 통신에 어느 정도의 시간을 필요로 하기 때문에, 사용자 단말(200)에서 행한 조작이 처리 서버(100)에 전달되고, 그 조작에 근거하여 처리 서버(100) 내의 공간이 갱신되며, 그 갱신 결과가 사용자 단말(200)에 반영될 때까지는, 지연이 발생하는 것을 모면할 수 없다. 그러므로, 레이싱 게임 등, 사상의 시간 변화가 비교적 고속이고, 리얼 타임의 처리를 필요로 하는 시스템에는 부적합하다.
그에 대해, 본 실시의 형태의 분산 처리 시스템(10)에서는, 각 사용자 단말(20) 자신이 공간을 시뮬레이트시키고 있기 때문에, 사용자의 조작을 리얼 타임으로 받아들여, 공간을 갱신할 수 있다. 예컨대, 레이싱 게임에 있어서의 사용자의 핸들 조작이나 액셀 조작 등, 리얼 타임으로 공간을 갱신해야 하는 사상에 대해서는, 각 사용자 단말(200) 내의 공간에 리얼 타임으로 반영하여, 묘화 처리를 행한다. 이것에 의해, 사용자는 지연을 별로 느끼지 않고 게임을 즐길 수 있다.
물론, 각 사용자 단말(200)이 각각의 공간을 독립해서 갱신해 나가면, 각각의 공간이 전혀 달라지게 되므로, 어떤 방법 이로든 동기를 취할 필요가 있다. 본 실시의 형태의 분산 처리 시스템(10)에서는, 각 사용자 단말(200)에서 발생한 이벤트는 처리 서버(100)에 전달되고, 처리 서버(100)가 전체 사용자 단말(200)에 멀티캐스트한다. 이것에 의해, 처리 서버(100)내의 공간과, 각 사용자 단말(200) 내의 공간 사이에서 동기를 취한다.
즉, 사용자 단말(200) 내에서 발생하는 이벤트에 의해, 개개의 사용자 단말(200)이 독립적으로 처리할 수 있는 이벤트는, 그 사용자 단말(200) 내의 공간에 즉각 반영된다. 한편, 다른 사용자 단말(200) 또한, 처리 서버(100)에서 발생한 이벤트는, 몇 분인가의 통신 지연을 가지고 사용자 단말(200)에 전달되어, 그 사용자 단말(200)내의 공간에 반영된다.
도 2는, 처리 서버(100) 또는 어느 사용자 단말(200) 내에서 발생한 이벤트가, 다른 사용자 단말(200)에 통지되는 모습을 나타낸다. 여기에서, p0및 p1은, 모델의 상태를 기술한 시간(t)의 함수이다. 이들은 스칼라 함수로는 한정되지 않으며, 벡터 함수이어도 상관없으나, 기재의 편의상, 함수 p라고 썼을 경우에는 벡터 함수도 포함하는 것으로 한다. 어느 시각(T1)에, 처리 서버(100)내의 모델 M의 상태가 p0에서 p1로 변화했다고 가정한다. 이러한 상태 변화는, 처리 서버(100)로부터 각 사용자 단말(200)에 일제히 통지된다. 처리 서버(100)로부터의 통지는, 처리 서버(100)와 각 사용자 단말(200) 사이의 네트워크(50)의 통신 상황에 의해, 몇 분인가의 지연을 가지고 각 사용자 단말(200)에 도착한다. 어느 사용자단말(200)내의 모델 M'에는, 시각(T2)에 상태 변화의 발생 통지가 도착했다고 가정한다.
시각(T2)에 있어서의 처리 서버(100)내의 모델 M의 상태는 p1(T2)인데, 사용자 단말(200)내의 모델 M'은 시각(T1)에 상태 변화가 있었던 사실을 알리지 않고 진행하고 있기 때문에, 시각(T2)에서의 모델 M'의 상태는 p0(T2)이다. 사용자 단말(200)은, 상태 변화의 통지를 받으면, 상태 함수 p1로부터 시각(T2)에 있어서의 모델 M'의 상태 p1(T2)을 산출하여, 모델 M'의 상태를 갱신한다. 이것에 의해, 사용자 단말(200)내의 모델 M'을 처리 서버(100)내의 모델 M에 동기시킬 수 있다. 그러나, 시각(T2)에 상태 p0(T2)에서 상태 p1(T2)로 모델 M'의 상태를 변경하면, 상태가 불연속적으로 변화함으로써, 예를 들어, 이동중인 물체가 갑자기 다른 장소로 점프하거나, 동작이 불연속적으로 되거나 해서, 사용자에게 부자연스러운 인상을 줄 가능성이 있다.
따라서, 본 실시의 형태에서는, 처리 서버(100)와 각 사용자 단말(200)에 분산하여 설치된 공간을 동기시킬 때, 모델의 상태를 연속적으로 변화시킴으로써, 부자연스러움을 경감시키는 방법을 제안한다. 또한, 네트워크 지연으로 인한 시간의 오차를 보정하는 방법을 제안한다.
도 3은, 처리 서버(100)의 내부 구성을 도시한다. 처리 서버(100)는, 통신부(102), 수신부(104), 송신부(106), 처리부(108), 및 시간 관리부(110)를 포함한다. 통신부(102)는, 사용자 단말(200)과의 사이에서 정보를 주고받는다. 통신부(102)는, 통신에 필요한 모뎀 등의 하드웨어와 통신을 제어하는 드라이버, 기타 프로그램을 구비한다. 수신부(104)는, 각 사용자 단말(200)에서 발생한 이벤트를 수신하여 처리부(108)에 전달한다. 송신부(106)는, 각 사용자 단말(200)에 이벤트를 송신한다.
처리부(108)는, 공간 내에서 발생하는 각종 이벤트를 처리하고, 공간을 시뮬레이트시킨다. 이러한 구성은, 하드웨어 컴포넌트에서 볼 때, 임의의 컴퓨터의 CPU, 메모리, 메모리에 로드된 프로그램 등에 의해 실현되는데, 여기에서는 그들의 제휴에 의해 실현되는 기능 블록을 그리고 있다. 따라서, 이 기능이 하드웨어에 의해서만, 소프트웨어에 의해서만, 또는 그들의 조합에 의해서 여러 가지 형태로 실현할 수 있음은, 당업자라면 이해할 수 있는 바이다.
각 사용자 단말(200)로부터 수신부(104)를 통해서 이벤트가 전달되면, 처리부(108)는, 그 정보를 토대로 모델을 갱신하고, 송신부(106)를 통해서 전체의 사용자 단말(200)에 갱신 정보를 통지한다. 처리 서버(100)에서 시뮬레이트되는 공간은, 분산 처리 시스템(10) 내에서 기준이 되는 공간이다. 처리부(108)는, 각 사용자 단말(200)이 개별적으로 처리하지 않고 처리 서버(100)에서 일원 관리하는 편이 나은 이벤트, 예를 들면 롤 플레잉 게임에 있어서 하나밖에 없는 아이템을 캐릭터가 골라내는 등의 배타 처리가 필요한 이벤트를 관리해도 무방하다. 시간 관리부(110)는, 처리 서버(100) 및 각 사용자 단말(200)에 있어서의 전체 공간이 공통으로 사용하는 공통 시간을 관리한다. 시간 관리부(110)는, 각 사용자단말(200)과 시각을 동기시키기 위해, 시각 동기 신호를 수시로 각 사용자 단말(200)에 송신할 수도 있다.
도 4는, 사용자 단말(200)의 내부 구성을 도시한다. 사용자 단말(200)은, 통신부(202), 수신부(204), 송신부(206), 처리부(208), 입력부(214), 및 표시부(216)를 포함한다. 통신부(202)는, 처리 서버(100)와의 사이에서 정보를 주고받는다. 수신부(204)는, 다른 사용자 단말(200)에서 발생한 이벤트를 수신하여 처리부(208)에 전달한다. 송신부(206)는, 입력부(214)에 입력된 사용자의 조작에 의해 발생한 이벤트를 처리 서버(100)에 송신한다. 입력부(214)는, 마우스, 키보드, 게임 컨트롤러 등의 입력 장치로부터 입력되는 사용자로부터의 지시를 접수한다. 표시부(216)는, 디스플레이, 액정 표시 장치 등의 표시 장치에 정보를 표시한다.
처리부(208)는, 처리 서버(100)로부터 전달되거나, 또는 입력부(214)를 통해서 사용자로부터 전달되는 각종 이벤트를 처리하여, 공간을 시뮬레이트시킨다. 처리부(208)는, 자신의 단말의 입력부(214)에 입력된 조작에 의해 발생한 이벤트를, 처리 서버(100)로부터의 통지를 기다리지 않고 실행시켜도 무방하다. 이것에 의해, 신속한 응답이 필요한 이벤트인 경우에도, 지체없이 실행할 수 있다. 단, 상술한 바와 같이, 배타성이 있는 이벤트에 대해서는, 일단 처리 서버(100)에 이벤트의 발생을 전달하고, 실행의 허락 여부를 청한다. 처리부(208)는, 상태 변화 보정부(210) 및 시간 보정부(212)를 포함한다. 이러한 구성은, 하드웨어에 의해서만, 소프트웨어에 의해서만, 또는 그들의 조합에 의해서 여러 가지 형태로 실현할 수있다.
상태 변화 보정부(210)는, 처리 서버(100)로부터의 이벤트 통지가 지연되어 도착함으로 인한, 모델의 불연속적인 상태 변화를 보정한다. 도 2를 참조하면, 처리 서버(100)로부터의 상태 변화 통지가 지연되어 도착함으로써, 사용자 단말(200)내의 모델 M'의 상태와, 처리 서버(100) 내의 모델 M의 상태 사이에 격차가 생기게 된다. 여기에서, 동기를 취하기 위해, 시각(T2)에 상태 p0(T2)에서 상태 p1(T2)로 갱신하면, 불연속적으로 상태가 변해 버려, 사용자에게 부자연스러운 인상을 줄지도 모른다. 그래서, 상태 변화 보정부(210)는, 시각(T2)에서부터 소정의 시간을 들여서 연속적으로 상태 p0(T2)에서 상태 p1(T2)로 이행시킨다. 즉, 상태 p0(T2)과 상태 p1(T2)의 차분을, 소정의 시간을 들여서 서서히 가산해 나간다. 예를 들어, 보정 파라미터 d(t)를,
로 하고,
에 의해, 연속적으로 p1(t)의 상태로 이행시킨다. 여기에서, a는 감쇠 정수이고, 0<a<1이다. 이 보정 파라미터 d(t)는, 시각(T2)의 직후에는 값이 크고, 시간이 경과함에 따라 값이 작아지도록 설정되어 있기 때문에, 시각(T2) 직후의 변화량은 크지만, 그 후 점차 상태 p1에 가까워지기 때문에, 사용자에게 자연스러운 인상을 줄 수 있다.
보정 파라미터 d(t)는, 상태 p0(T2)에서 상태 p1(T2)로 선형으로 변화시키는 것이어도 상관없으며, 2차 함수나 3차 함수 등의 고차 다항식 함수, 지수 함수, 그밖에 임의의 함수에 의해 곡선적으로 변화시키는 것이어도 무방하다. 요컨대, 소정의 시간을 경과했을 때, p'(t)가 p(t)+(p0(T2)-p1(T2))와 같아지도록 설정되어 있으면 된다. 순조로운 상태 변화를 실현하기 위해, 베지에(bezier) 함수나 스플라인(spline) 함수 등에 의해 근사화시켜서 상태 함수 p'(t)를 산출해도 무방하다.
상기와 같은 보정은, 표시부(216)에 표시하기 위한 묘화 처리에만 적용하고, 모델 M'의 상태 함수는, 단순히 시각(T2)에 있어서 p0에서 p1로 갱신할 수도 있다. 이것에 의해, 사용자에게는 연속적인 변화를 제시할 수 있는 동시에, 내부적인 처리를 간략히 할 수 있다. 또한, 상태 변화의 종류나, 그 때의 공간의 상황에 따라, 보정 파라미터 d(t)를 변경해도 무방하다. 예를 들어, 상태 변화가 빈번히 발생하고 있는 상황하에서는, 그것을 따라가기 위해서 a의 값을 크게 취해서 재빨리 상태를 변화시키고, 상태 변화가 거의 일어나지 않는 상황하에서는, a의 값을 작게 취해서 천천히 상황을 변화시켜도 무방하다. 또한, 상태 변화가 표시 화면 위를 이동하는 물체의 속도나 좌표 등에 관한 것일 때에는, 베지에 함수에 의해 근사화시켜서 물체가 매끄럽게 이동하도록 하고, 상태 변화가 캐릭터의 속성값의 변화 등 사용자에게 직접 제시되지 않은 것일 때에는, 보정을 하지 않고 불연속적으로 상태를 변화시켜도 무방하다.
도 5a, 도 5b, 도 5c, 도 5d는, 상태 변화 보정부(210)의 동작을 설명하기 위한 도면이다. 도 5a, 도 5b, 도 5c, 도 5d는, 화면(300) 위를 이동하는 오브젝트(302)의 위치의 경시 변화를 도시하고 있다. 도 5a는, 시각(T1)에 있어서의 오브젝트(302)의 위치(1)를 나타낸다. 이 때, 오브젝트(302)는, 우측 윗방향(도면 중에서 실선 화살표로 나타낸 방향)으로 이동중이다. 도 5b는, 시각(T2)에 있어서의 오브젝트(302)의 위치(2)를 나타낸다. 이 때, 처리 서버(100)내의 모델 M에서는, 오브젝트(302)의 이동 방향이 좌측 윗방향(도면 중에서 점선 화살표로 나타낸 방향)으로 변경되었다고 가정한다. 그러나, 사용자 단말(200)내의 모델 M'에서는, 오브젝트(302)의 이동 방향은 여전히 우측 윗방향(도면 중에서 실선 화살표로 나타낸 방향)이다.
도 5c는, 시각(T3)에 있어서의 오브젝트(302)의 위치(3)를 나타낸다. 사용자 단말(200)내의 모델 M'에서는, 오브젝트(302)는 위치(3')에 도달하였으나, 처리 서버(100)내의 모델 M에서의 오브젝트(302)의 위치는 3이다. 이 때, 사용자 단말(200)은, 처리 서버(100)로부터 시각(T2)에 오브젝트(302)의 이동 방향이 좌측 윗방향으로 변경되었다는 통지가 수신되었다고 가정한다. 여기에서, 오브젝트(302)의 위치를 3'에서 3으로 변경하면, 오브젝트(302)가 화면상에서 갑자기 점프하게 되어, 사용자에게 부자연스러운 인상을 주게 된다.
도 5d는, 상태 변화 보정부(210)에 의해 보정된 오브젝트(302)의 이동 궤적을 나타낸다. 상태 변화 보정부(210)는, 시각(T3)에서 시각(T4)까지의 동안에, 위치 3에서 위치 4로 오브젝트(302)를 이동시킨다. 이것에 의해, 좌표를 점프시키지 않고, 처리 서버(100)내의 모델 M에서의 오브젝트(302)의 상태에 동기시킬 수 있다. 도 5d에 있어서, 점선은 처리 서버(100)에 있어서의 오브젝트(302)의 이동 궤적을 나타내고, 실선은 사용자 단말(200)에 있어서의 오브젝트(302)의 이동 궤적을 나타낸다. 통신의 지연 영향으로 인해, 이동 궤적은 약간 달라지는데, 이러한 보정에 의해, 지연의 영향을 경감시킬 수 있다.
도 5에 도시한 예에서는, 화면 위를 이동하는 물체의 상태 변화에 대해 설명하였으나, 그 밖의 임의의 상태 변화에 대해서도, 동일한 수법에 의해 보정할 수 있다.
도 6은, 상태 변화 보정부(210)에 있어서의 보정 순서를 나타내는 플로우챠트이다. 먼저, 사용자 단말(200)에 있어서 모델 M이 S(p0(t), t0)로 표현되는 상태에 있다고 가정한다(S100). 여기에서, p0(t)은 모델 M의 상태 함수, t0은 초기 시각을 나타낸다. 사용자 단말(200)이 처리 서버(100)로부터, 상태 변화 정보S(p1(t), t1)를 수신하면(S102), 상태 변화 보정부(210)는 보정 함수 d(t)를 산출한다(S104). 계속해서, 처리부(208)는, 모델 M의 상태를 S(p1(t), t1)로 갱신하고(S106), 묘화시의 파라미터 p1'(t)을 갱신한다(S108). 이후, 파라미터 p1'(t)을 이용하여 묘화 처리하고, 묘화 처리에서는 연속적인 상태 변화를 실현한다.
다음으로, 도 4에 되돌아가서, 시간 보정부(212)에 대해 설명한다. 시간 보정부(212)는, 처리 서버(100)로부터의 이벤트 통지가 지연되어 도착함으로 인한, 시간의 오차를 보정한다.
도 7은, 시간 보정부(212)의 동작을 설명하기 위한 도면이다. 공통 시간에 있어서의 시각(T0)에, 처리 서버(100)에 있어서 이벤트가 발생하고, 그 통지가 시각(T1)에 사용자 단말(200)에 도착했다고 가정한다. 이 때, 시간 보정부(212)는, 로컬 시간을 시각(T0)으로 되돌려, 처리부(208)에 그 이벤트 처리의 개시를 지시한다. 그리고, 공통 시간을 따라 잡기 위해서, 시간의 진행을 빠르게 한다. 도 7의 예에서는, 일단 지연된 로컬 시간이, 시각(T5)에 공통 시간을 따라 잡고 있다. 이것에 의해, 시간의 관리는 시간 보정부(212)가 하고, 처리부(208)는 시간의 지연을 의식하지 않고 이벤트 처리를 할 수 있기 때문에, 실장이 용이해진다. 이벤트 통지의 지연이 컸을 때에는, 그만큼 직후의 이벤트가 실제보다 고속으로 실행되게 되는데, 소급시키는 시간이나, 공통 시간을 따라 잡을 때까지의 시간은, 이벤트의 종류나, 그 때의 공간의 상황에 따라서, 사용자에게 부자연스러운 인상을 주지 않을 정도로 설계되면 된다. 시간 보정부(212)는, 모델마다 시간을 관리하여, 이벤트가 통지된 모델의 시간만 소급시켜도 되고, 사용자 단말(200)내의 공간 전체의 시간을 소급시킬 수도 있다.
도 8은, 시간 보정부(212)에 의해 이벤트 처리의 시간이 조정되는 모습을 나타내는 도면이다. 공통 시간에 있어서의 시각(T1)에, 처리 서버(100)에서 이벤트가 발생하고, 그 통지가 시각(T2)에 사용자 단말(200a)에, 시각(T2')에 사용자 단말(200b)에, 시각(T2'')에 사용자 단말(200c)에, 각각 도착했다고 가정한다. 이 때, 그 동작의 개시에서 종료까지 필요한 시간을 미리 알고 있는 경우에는, 각 사용자 단말(200)의 시간 보정부(212)는, 동작의 종료 예정 시각(T3)을 산출하고, 그 시각까지 동작이 종료되도록 시간의 진행을 조정한다. 예를 들면, 네트워크에 의해 접속된 복수개의 게임기가 가로로 나열되어 있을 때, 뒤쪽에서 게임의 상황을 보고 있는 관객은 전체 게임기의 화면을 동시에 볼 수 있다. 이 때, 상술한 예에서는, 어느 동작의 개시, 예컨대 검을 치켜드는 동작이 시작되는 타이밍은, 통신의 지연으로 인해 각 게임기에서 약간 차이가 나지만, 그 동작의 종료, 예컨대 치켜든 검이 내리쳐지는 타이밍은, 전체 게임기에서 동기시킬 수 있기 때문에, 지연으로 인한 부자연스러움을 줄일 수 있다.
도 9는, 시간 보정부(212)에 있어서의 보정 순서를 설명하기 위한 플로우챠트이다. 먼저, 사용자 단말(200)은, 과거의 시각(T1)에 발생한 모델 M에 관한 이벤트 정보를 수신한다(S200). 그러면, 시간 보정부(212)는, 모델 M의 로컬 시각(TM)을 T1로 갱신한다(S202). 계속해서, 시간 보정부(212)는, 공통 시각(TW)과 로컬 시각(TW)의 차(dT)(=TW-TM)를 산출한다(S204). dT가, 한 번의 단계에서 보정할 수 있는 시간의 최대값(dTMAX) 이하이면(S206의 Y), 로컬 시각(TM)에 dT를 가산한다(S208). dT가 dTMAX보다 크면(S206의 N), 로컬 시각(TM)에 dTMAX를 가산한다(S210). 로컬 시각(TM)이 공통 시각(TW)과 같아지면(S212의 Y), 보정 처리가 종료된다. 로컬 시각(TM)이 공통 시각(TW)을 따라 잡지 못할 때에는(S212의 N), S204로 되돌아가고, 보정 처리가 반복된다.
이상과 같이, 본 실시의 형태의 분산 처리 시스템(10)에 의하면, 각 사용자 단말(200)에도 공간을 시뮬레이트시킴으로써, 자신의 단말에서 발생한 이벤트를 신속하게 공간에 반영시킬 수 있다. 또한, 네트워크를 통해서 전달된 이벤트에 대해서도, 보정 처리에 의해 지연의 영향을 경감시킬 수 있다. 또한, 처리를 분산시키고 있기 때문에, 처리 서버(100)에 부하가 집중되어 퍼포먼스가 열화되는 것을 방지할 수 있다.
이상, 본 발명을 실시의 형태를 토대로 설명하였다. 본 실시의 형태는 예시한 것으로, 그들의 각 구성 요소나 각 처리 프로세스의 조합에 여러 가지의 변형예가 가능한 것과, 또한 그러한 변형예도 본 발명의 범위에 있음은 당업자라면 이해할 수 있는 바이다.
실시의 형태에서는, 처리 서버(100)가 각 사용자 단말(200)에서 발생한 이벤트를 취득하고, 그것을 전체 사용자 단말(200)에 브로드캐스트하였다. 그러나, 처리 서버(100)를 설치하지 않고, 어느 하나의 사용자 단말(200)이 이와 동일한 기능을 가지고 있어도 무방하다. 또한, 사용자 단말(200) 자신이, 다른 사용자단말(200)을 향해서 이벤트의 발생을 통지해도 무방하다.
실시의 형태에서는, 처리 서버(100)가 공통 시간을 관리하는 시간 관리부(110)를 가지고 있었으나, 이것은 각 사용자 단말(200)에 설치되어 있어도 상관없다.
본 발명에 따르면, 분산 처리 시스템에 있어서, 통신에 의해 발생하는 지연의 영향을 경감시키는 기술을 제공할 수 있다.

Claims (10)

  1. 서버와 복수개의 클라이언트 단말을 포함하고, 시간적으로 변화하는 사상(事象)을 시뮬레이트시키는 분산 처리 시스템으로서,
    상기 서버에 관한 구성에 [제 1]을 붙이고, 상기 클라이언트 단말에 관한 구성에 [제 2]를 붙여서 표현할 때,
    상기 서버는, 상기 사상을 관리하는 것이고,
    상기 클라이언트 단말은, 상기 사상을 시뮬레이트시켜서 상기 사상에 관한 정보를 사용자에게 출력하는 것이며,
    상기 클라이언트 단말은,
    상기 사용자의 조작에 의해 발생하는 상기 사상의 변화를 상기 서버에 통지하는 제 2 송신부를 포함하고,
    상기 서버는,
    상기 복수개의 클라이언트 단말로부터 통지되는 상기 변화를 수신하는 제 1 수신부와,
    상기 변화에 따라 상기 사상을 시뮬레이트시키는 제 1 처리부와,
    하나의 클라이언트 단말로부터 통지된 상기 변화를, 각각의 클라이언트 단말에 통지하는 제 1 송신부를 포함하며,
    상기 클라이언트 단말은,
    상기 서버로부터 상기 변화를 수신하는 제 2 수신부와,
    상기 변화에 따라 상기 사상을 시뮬레이트시키는 제 2 처리부와,
    상기 서버로부터 상기 클라이언트 단말에 상기 변화가 통지될 때의 지연 시간에 근거하여, 상기 제 1 처리부에서의 상기 사상의 상태를 산출하고, 상기 제 2 처리부에서의 상기 사상의 상태를 상기 제 1 처리부에서의 사상의 상태에 동기시키기 위해, 상기 사상의 상태를 연속적으로 변화시키는 상태 변화 보정부를 더 포함하는 것을 특징으로 하는 분산 처리 시스템.
  2. 서버와 복수개의 클라이언트 단말을 포함하고, 시간적으로 변화하는 사상을 시뮬레이트시키는 분산 처리 시스템으로서,
    상기 서버에 관한 구성에 [제 1]을 붙이고, 상기 클라이언트 단말에 관한 구성에 [제 2]를 붙여서 표현할 때,
    상기 서버는, 상기 사상을 관리하는 것이고,
    상기 클라이언트 단말은, 상기 사상을 시뮬레이트시켜서 상기 사상에 관한 정보를 사용자에게 출력하는 것이며,
    상기 클라이언트 단말은,
    상기 사용자의 조작에 의해 발생하는 상기 사상의 변화를 상기 서버에 통지하는 제 2 송신부를 포함하고,
    상기 서버는,
    상기 복수개의 클라이언트 단말로부터 통지되는 상기 변화를 수신하는 제 1 수신부와,
    상기 변화에 따라 상기 사상을 시뮬레이트시키는 제 1 처리부와,
    하나의 클라이언트 단말로부터 통지된 상기 변화를, 각각의 클라이언트 단말에 통지하는 제 1 송신부를 포함하며,
    상기 클라이언트 단말은,
    상기 서버로부터 상기 변화를 수신하는 제 2 수신부와,
    상기 변화에 따라 상기 사상을 시뮬레이트시키는 제 2 처리부와,
    상기 변화를 수신했을 때, 상기 제 2 처리부에서 사용되는 로컬 시간을, 상기 서버로부터 상기 클라이언트 단말에 상기 변화가 통지될 때의 지연 시간만큼 되돌린 후, 소정의 시간이 경과할 때까지의 동안에, 상기 제 1 처리부에서 사용되는 공통 시간을 따라 잡기 위해 시간의 진행을 빠르게 하는 시간 보정부를 더 포함하는 것을 특징으로 하는 분산 처리 시스템.
  3. 제 2 항에 있어서,
    상기 지연 시간에 근거하여, 상기 제 1 처리부에서의 상기 사상의 상태를 산출하고, 상기 제 2 처리부에서의 상기 사상의 상태를 상기 제 1 처리부에서의 사상의 상태로 연속적으로 변화시키는 상태 변화 보정부를 더 포함하는 것을 특징으로 하는 분산 처리 시스템.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 클라이언트 단말은, 상기 사용자의 조작에 의해 상기 사상의 변화가 발생했을 경우에, 그 변화를 상기 서버로부터 수신하기 전에, 상기 제 2 처리부가 그 변화를 시뮬레이션에 반영시키는 것을 특징으로 하는 분산 처리 시스템.
  5. 시간적으로 변화하는 사상을 시뮬레이트시키고, 상기 사상에 관한 정보를 사용자에게 출력하는 클라이언트 단말로서,
    상기 사용자의 조작을 입력하는 입력부와,
    상기 입력부에 입력된 사용자의 조작에 의해 발생하는 상기 사상의 변화를, 상기 사상을 관리하는 서버에 통지하는 송신부와,
    상기 서버로부터 다른 클라이언트 단말에서 발생한 상기 사상의 변화를 수신하는 수신부와,
    상기 변화에 따라 상기 사상을 시뮬레이트시키는 처리부와,
    상기 사상에 관한 정보를 사용자에게 출력하는 출력부와,
    상기 서버로부터 해당 클라이언트 단말에 상기 변화가 통지될 때의 지연 시간에 근거하여, 상기 서버에서의 상기 사상의 상태를 산출하고, 상기 처리부에서의 상기 사상의 상태를 상기 서버에서의 사상의 상태로 연속적으로 변화시키는 상태 변화 보정부를 포함하는 것을 특징으로 하는 클라이언트 단말.
  6. 시간적으로 변화하는 사상을 시뮬레이트시키고, 상기 사상에 관한 정보를 사용자에게 출력하는 클라이언트 단말로서,
    상기 사용자의 조작을 입력하는 입력부와,
    상기 입력부에 입력된 사용자의 조작에 의해 발생하는 상기 사상의 변화를, 상기 사상을 관리하는 서버에 통지하는 송신부와,
    상기 서버로부터 다른 클라이언트 단말에서 발생한 상기 사상의 변화를 수신하는 수신부와,
    상기 변화에 따라 상기 사상을 시뮬레이트시키는 처리부와,
    상기 사상에 관한 정보를 사용자에게 출력하는 출력부와,
    상기 변화를 수신했을 때, 상기 처리부에서 사용되는 로컬 시간을, 상기 서버로부터 상기 클라이언트 단말에 상기 변화가 통지될 때의 지연 시간만큼 되돌린 후, 소정의 시간이 경과할 때까지의 동안에, 상기 서버에서 사용되는 공통 시간을 따라 잡기 위해 시간의 진행을 빠르게 하는 시간 보정부를 포함하는 것을 특징으로 하는 클라이언트 단말.
  7. 시간적으로 변화하는 사상을 복수개의 단말에서 동시에 시뮬레이트시키는 단계와,
    제 1 단말에서 발생한 이벤트를 제 2 단말에 통지하는 단계와,
    상기 통지하는 단계에 필요한 시간에 근거하여 상기 제 1 단말에서의 사상의 상태를 예측하는 단계와,
    상기 제 2 단말에서의 사상의 상태를, 예측된 상기 제 1 단말에서의 사상의 상태로 연속적으로 변화시키는 단계를 포함하는 것을 특징으로 하는 분산 처리 방법.
  8. 시간적으로 변화하는 사상을 복수개의 단말에서 동시에 시뮬레이트시키는 단계와,
    제 1 단말에서 발생한 이벤트를 제 2 단말에 통지하는 단계와,
    제 2 단말에 있어서, 상기 통지에 필요한 시간을 뺌으로써 상기 이벤트가 본래 종료되어야 할 시각을 취득하는 단계와,
    제 2 단말에 있어서, 상기 통지에 필요한 시간의 영향을 제거하기 위해 상기 이벤트가 본래 종료되어야 할 시각에 상기 이벤트가 종료되도록, 그 이벤트를 구성하는 상태의 변화를 가속화시키는 단계를 포함하는 것을 특징으로 하는 분산 처리 방법.
  9. 시간적으로 변화하는 사상을 다른 단말과 동시에 시뮬레이트시키는 단계와,
    상기 다른 단말에서 발생한 이벤트의 통지를 자신의 단말에서 수신하는 단계와,
    상기 통지에 필요한 시간에 근거하여 상기 다른 단말에서의 사상의 상태를 예측하는 단계와,
    상기 자신의 단말에서의 사상의 상태를, 예측된 상기 다른 단말에서의 사상의 상태로 연속적으로 변화시키는 단계를, 컴퓨터에 실행시키는 것을 특징으로 하는 컴퓨터 프로그램.
  10. 시간적으로 변화하는 사상을 다른 단말에서 동시에 시뮬레이트시키는 단계와,
    상기 다른 단말에서 발생한 이벤트의 통지를 자신의 단말에서 수신하는 단계와,
    상기 자신의 단말에 있어서, 상기 통지에 필요한 시간을 뺌으로써 상기 이벤트가 본래 종료되어야 할 시각을 취득하는 단계와,
    상기 자신의 단말에 있어서, 상기 통지에 필요한 시간의 영향을 제거하기 위해 상기 이벤트가 본래 종료되어야 할 시각에 상기 이벤트가 종료되도록, 그 이벤트를 구성하는 상태의 변화를 가속화시키는 단계를, 컴퓨터에 실행시키는 것을 특징으로 하는 컴퓨터 프로그램.
KR10-2002-0031901A 2001-06-18 2002-06-07 분산 처리 시스템, 분산 처리 방법, 및 그 방법을 이용할수 있는 클라이언트 단말 KR100523785B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001184158A JP2003006127A (ja) 2001-06-18 2001-06-18 分散処理システム、分散処理方法、およびその方法を利用可能なクライアント端末
JPJP-P-2001-00184158 2001-06-18

Publications (2)

Publication Number Publication Date
KR20020096890A true KR20020096890A (ko) 2002-12-31
KR100523785B1 KR100523785B1 (ko) 2005-10-26

Family

ID=19023968

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0031901A KR100523785B1 (ko) 2001-06-18 2002-06-07 분산 처리 시스템, 분산 처리 방법, 및 그 방법을 이용할수 있는 클라이언트 단말

Country Status (3)

Country Link
US (1) US20020194269A1 (ko)
JP (1) JP2003006127A (ko)
KR (1) KR100523785B1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1804945B1 (en) 2004-09-21 2022-04-13 Timeplay Inc. System, method and handheld controller for multi-player gaming
US8819103B2 (en) * 2005-04-08 2014-08-26 Palo Alto Research Center, Incorporated Communication in a distributed system
US7791741B2 (en) * 2005-04-08 2010-09-07 Palo Alto Research Center Incorporated On-the-fly state synchronization in a distributed system
US7873962B2 (en) * 2005-04-08 2011-01-18 Xerox Corporation Distributed control systems and methods that selectively activate respective coordinators for respective tasks
US7706007B2 (en) * 2005-04-08 2010-04-27 Palo Alto Research Center Incorporated Synchronization in a distributed system
JP4754259B2 (ja) 2005-04-27 2011-08-24 任天堂株式会社 ゲームプログラム、ゲーム装置、通信ゲームシステムおよびゲーム制御方法
JP4776978B2 (ja) * 2005-05-18 2011-09-21 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及びゲーム装置
JP3957725B2 (ja) * 2005-10-04 2007-08-15 任天堂株式会社 通信ゲームプログラムおよび通信ゲームシステム
JP3995257B2 (ja) 2005-10-04 2007-10-24 任天堂株式会社 通信ゲームプログラムおよび通信ゲームシステム
US8423333B2 (en) 2006-01-16 2013-04-16 Sony Corporation System for managing objects of virtual space
JP5196729B2 (ja) * 2006-04-11 2013-05-15 任天堂株式会社 通信ゲームシステム
EP2044543A4 (en) * 2006-04-13 2012-07-04 Yosef Mizrachi METHOD AND DEVICE FOR PROVIDING GAME SERVICES AND MOVING WITH VIDEO CONTENT
US20080242409A1 (en) * 2007-03-30 2008-10-02 Ntn Buzztime, Inc. Video Feed Synchronization in an Interactive Environment
US8566386B2 (en) * 2007-10-02 2013-10-22 Microsoft Corporation Logging of rich entertainment platform service history for use as a community building tool
JP4892765B2 (ja) * 2008-08-26 2012-03-07 啓蔵 渡邉 ネットワークゲームシステム及びプログラム
JP4705179B2 (ja) * 2009-03-26 2011-06-22 株式会社コナミデジタルエンタテインメント 端末装置、端末装置の制御方法、ならびに、プログラム
JP5017381B2 (ja) * 2010-01-15 2012-09-05 株式会社コナミデジタルエンタテインメント ゲームシステム及びゲーム端末
CN102404279B (zh) * 2010-09-07 2015-07-15 腾讯科技(深圳)有限公司 一种网络中移动距离的精确判断方法和系统
CN102685095A (zh) * 2011-12-26 2012-09-19 北京安天电子设备有限公司 基于风险级别事件处理的方法及系统
JP5437431B2 (ja) * 2012-04-20 2014-03-12 任天堂株式会社 通信ゲームシステム
JP5992739B2 (ja) * 2012-06-28 2016-09-14 株式会社スクウェア・エニックス 電子機器、制御方法、及びプログラム
JP5827410B2 (ja) 2012-10-03 2015-12-02 グリー株式会社 オンラインゲームの同期方法及びサーバ装置
JP6292707B2 (ja) * 2013-10-22 2018-03-14 任天堂株式会社 情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法
US10135890B2 (en) * 2015-03-06 2018-11-20 Sony Interactive Entertainment LLC Latency-dependent cloud input channel management
JP2017037404A (ja) * 2015-08-07 2017-02-16 株式会社あかつき 情報処理装置、情報処理システム、及び情報処理プログラム
US11058946B2 (en) * 2017-01-12 2021-07-13 Mz Ip Holdings, Llc System and method for managing event data in a multi-player online game
JP6897284B2 (ja) * 2017-04-27 2021-06-30 株式会社セガ ゲーム装置、プログラム及びゲームシステム
JP6255526B1 (ja) * 2017-06-14 2017-12-27 株式会社 ディー・エヌ・エー 情報処理装置、ゲームプログラム、及び、情報処理方法
JP6229092B1 (ja) * 2017-06-22 2017-11-08 株式会社 ディー・エヌ・エー 通信ゲームシステム及び通信ゲーム処理方法
JP6917075B2 (ja) * 2019-03-12 2021-08-11 株式会社コナミデジタルエンタテインメント ゲームシステム
WO2022209450A1 (ja) * 2021-03-30 2022-10-06 ソニーグループ株式会社 情報処理装置、情報処理システムおよび情報処理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2732792B1 (fr) * 1995-04-06 1997-06-06 Benkel Gerard Systeme electronique de competition et procede de mise en oeuvre
US5865624A (en) * 1995-11-09 1999-02-02 Hayashigawa; Larry Reactive ride simulator apparatus and method
US5860862A (en) * 1996-01-05 1999-01-19 William W. Junkin Trust Interactive system allowing real time participation
US5898834A (en) * 1996-08-16 1999-04-27 Starwave Corporation System, method, and medium for control of objects in a multi-platform environment
US6080063A (en) * 1997-01-06 2000-06-27 Khosla; Vinod Simulated real time game play with live event
US6582308B1 (en) * 1997-03-23 2003-06-24 Kabushiki Kaisha Sega Enterprises Image processing device and character aspect design device
JP3990051B2 (ja) * 1998-10-02 2007-10-10 株式会社バンダイナムコゲームス ゲーム装置及び情報記憶媒体
JP2001087543A (ja) * 1999-09-22 2001-04-03 Square Co 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
US20020111210A1 (en) * 2001-02-15 2002-08-15 Luciano Robert Anthony Anonymous player identifiers in a gaming environment

Also Published As

Publication number Publication date
US20020194269A1 (en) 2002-12-19
KR100523785B1 (ko) 2005-10-26
JP2003006127A (ja) 2003-01-10

Similar Documents

Publication Publication Date Title
KR100523785B1 (ko) 분산 처리 시스템, 분산 처리 방법, 및 그 방법을 이용할수 있는 클라이언트 단말
CN111167116B (zh) 一种平滑显示的方法、终端和计算机存储介质
US11344799B2 (en) Scene change hint and client bandwidth used at encoder for handling video frames after a scene change in cloud gaming applications
US10771565B2 (en) Sending application input commands over a network
Yates et al. Timely cloud gaming
EP1158741B1 (en) Method and apparatus for distributed simulation
EP4037787B1 (en) Synchronization and offset of vsync between cloud gaming server and client
US11539960B2 (en) Game application providing scene change hint for encoding at a cloud gaming server
EP2456160A1 (en) Method and device for synchronizing time of network games
CN114344892B (zh) 一种数据处理方法和相关装置
WO2002092177A2 (en) Method and arrangement for providing an interactive game including three-dimensional graphics
CN112206511A (zh) 游戏中的动作同步方法、装置、电子设备及存储介质
CN114728202A (zh) 在服务器处重叠编码与传输
JP6913809B1 (ja) ゲームシステム、エッジ側サーバ、クラウド側サーバ、ゲーム端末及びゲーム制御方法
Khan et al. A Reusable Component for Communication and Data Synchronization in Mobile Distributed Interactive Applications

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080714

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee