KR20070055615A - 동기 통신 방법 및 동기 통신 장치 - Google Patents

동기 통신 방법 및 동기 통신 장치 Download PDF

Info

Publication number
KR20070055615A
KR20070055615A KR1020077009111A KR20077009111A KR20070055615A KR 20070055615 A KR20070055615 A KR 20070055615A KR 1020077009111 A KR1020077009111 A KR 1020077009111A KR 20077009111 A KR20077009111 A KR 20077009111A KR 20070055615 A KR20070055615 A KR 20070055615A
Authority
KR
South Korea
Prior art keywords
synchronous
input information
information
synchronization
communication
Prior art date
Application number
KR1020077009111A
Other languages
English (en)
Other versions
KR100909302B1 (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 KR20070055615A publication Critical patent/KR20070055615A/ko
Application granted granted Critical
Publication of KR100909302B1 publication Critical patent/KR100909302B1/ko

Links

Images

Classifications

    • A63F13/12
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • 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/10Protocols in which an application is distributed across nodes in the network
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

통신 회로에 접속된 복수의 정보 단말이 정상의 통신 상태로 있는지의 여부를 판단하는 판단 수단과, 판단 수단의 결과에 의해, 복수의 정보 단말 중 적어도 하나의 정보 단말의 통신 상태에 이상이 발생하여 상기 복수의 정보 단말 중 다른 정보 단말과 동기를 취할 수 없다고 판단된 경우에는 동기가 취해지지 않은 상기 동기째 직전의 동기째의 입력 정보를 간주 입력 정보로서 설정하는 입력 정보 설정 수단과, 입력 정보 설정 수단에 의해 설정된 간주 입력 정보에 근거하여 소정의 연산 처리를 실행하고 동기가 취해지지 않은 동기째의 동기 상태를 구하는 연산 수단을 구비하고, 판단 수단이 이상이 발생한 정보 단말의 통신 상태가 회복하여 복수의 정보 단말 중 다른 정보 단말과 동기가 취해진다고 판단할 때까지, 각 처리를 반복하는 통신 회선에 접속된 복수의 정보 단말 사이에서 동기를 취하면서 통신 처리를 행하는 동기 통신 장치.

Description

동기 통신 방법 및 동기 통신 장치{SYNCHRONIZED COMMUNICATION METHOD AND SYNCHRONIZED COMMUNICATION DEVICE}
본 발명은 통신 회선에 의해 접속된 복수의 정보처리 단말 사이에서 동기를 취하면서 통신 처리를 행하는 동기 통신 장치 및 동기 통신 방법에 관한 것이다.
종래의 동기 통신 장치로서는 예를 들면, 일본 특개평 02-041190호 공보에 기재되어 있는 바와 같은 패밀리 컴퓨터 통신 시스템이 알려져 있다. 이 패밀리 컴퓨터 통신 시스템은 통신 회선을 통하여 접속된 적어도 2 대의 패밀리 컴퓨터 사이에서 통신을 행하는 것이며, 각 패밀리 컴퓨터의 입력부로부터 입력된 데이터의 시간적 편차를 보정하는 수단을 구비하고, 반복 발생하는 번호 코드를 키 스캔 펄스에 동기시켜서 상대측 장치에 송출하고, 상대측에서는 번호 코드를 이용하여 시간적 편차를 보정하도록 구성되어 있다.
도 16은 상기 패밀리 컴퓨터 통신 시스템에 있어서의 데이터의 타이밍을 설명하기 위한 타이밍 차트이며, 도 1을 참조하여 이하에 이 패밀리 컴퓨터 통신 시스템의 동작을 설명한다.
도 16에 있어서 (a) 및 (b)는 각 패밀리 컴퓨터로부터 발생하는 키 스캔 펄스를 나타내고 있고, 이 키 스캔 펄스 (a), (b)에 의해 키패드 상태가 데이터로서 패밀리 컴퓨터에 수용된다. 통신 어댑터를 이용하면, (c), (d)에 나타내는 바와 같이, 상대측의 모뎀에 데이터를 송출할 때에 시각 t1 ~ t2, t3 ~ t4 사이의 시간에 상당하는 지연이 발생한다. 2개의 패밀리 컴퓨터로 동시에 게임을 행하려면 도면 중 m 및 n 으로 나타내는 한 쌍의 데이터의 차례가 올바르게 패밀리 컴퓨터에 송출되는 것이 필요하다. 즉, m 의 펄스 시에 수용한 플레이어의 데이터와, n 의 펄스 시에 수용한 상대의 데이터가 올바른 순서로 각각의 패밀리 컴퓨터의 데이터로서 입력되는 것이 필요하다.
통신의 지연에 의해 도 16에서는 n+3 의 펄스 시에 한 쪽에서부터 다른 쪽의 패밀리 컴퓨터로 데이터가 입력되고, m+3 의 펄스 시에 다시, 다른 쪽에서부터 한 쪽의 패밀리 컴퓨터로 데이터가 입력된다. 예를 들면, m, n의 타이밍으로 수용한 데이터를 m+3, n+3 의 타이밍까지 송출을 지연시키면, 쌍방의 패밀리 컴퓨터에 송출되는 데이터가 3 펄스만큼씩 지연된 한 쌍의 것으로 된다.
쌍방의 패밀리 컴퓨터의 전원이 동시에 온(ON)으로 된다고는 할 수 없으므로, m 과 n 과의 시간차가 최고 1 펄스 변화한다. 이 때문에, N 펄스로 되었다고 하면, 도 1에 나타내는 바와 같이 m 일 때의 데이터는 N+2 일 때에는 상대측에 보내진다. 그러나, N 일 때의 데이터는 m+4 가 될 때까지 보내질 수 없다. 이대로의 상태로 패밀리 컴퓨터에 데이터를 송출하면, 필요한 데이터가 필요한 때에 수취될 수 없게 되고, 2 개의 패밀리 컴퓨터가 각각의 동작을 하고 만다. 상기로부터 명백한 바와 같이, 패밀리 컴퓨터 사이에 있어서 발생하는 지연은 데이터 통신의 지연과 키 스캔 펄스의 지연의 합으로 된다.
여기서, 데이터 통신의 지연은 하드 및 통신 속도에 의존하므로, 비교적 일정하다. 그러나, 키 스캔 펄스의 지연은 기기를 동작시키는 타이밍에 의해 변화하는 동시에, 2 대의 기기에 있어서의 키 스캔 펄스의 위상차에 의해 서서히 변화한다. 이것을 보정하기 위해, 키 스캔 펄스에 동기시켜서 반복 발생하는 번호 코드를 상대측에 송출한다. 번호 코드를 수취한 측에서는 자신의 데이터를 이 번호 코드의 내용으로부터 동기시켜서 송출한다.
지연을 검출하여 동기시켜서 데이터를 송출하려면, 상대의 번호 코드와 자신의 번호 코드를 기억시켜서 타이머를 동작시킨다. 다음에 자신의 스캔 펄스로 타이머를 정지시키면, 상대의 데이터의 입력시부터 자신의 스캔 펄스의 발생시까지의 지연이 측정된다. 상기 동작을 수 회 행하게 하여 평균값을 구한다. 이 평균값과 미리 세트된 수치를 비교함으로써 지연이 정확하게 검출된다.
가변 시프트 레지스터는 자신이 수용한 키 데이터를 수 펄스만큼 지연시키기 위해 필요한 것이며, 예를 들면 m 의 펄스의 데이터를 m+3 으로 패밀리 컴퓨터에 송출하는 경우, 3단의 시프트 레지스터가 필요하게 된다. 이 지연시키는 펄스 수는 변동하는 키 스캔 펄스에 추종시키기 위해 가변으로 하는 것이 필요하게 된다.
요컨대, 상기 패밀리 컴퓨터 통신 시스템은 N 동기째에 입력된 정보를, N+m(단 m>O 인 정수) 동기째의 정보처리에 이용함으로써, 통신의 지연에 의한 처리 속도의 저하를 방지하도록 구성되어 있다.
그러나, 상술한 패밀리 컴퓨터 통신 시스템에서는 소정 시간내에 상대로부터 입력 정보를 수신할 수 없었던 경우, 정보를 수신할 때까지의 동안 대기하는 것을 필요로 하기 때문에, 동기 처리의 일시 정지를 일으키고, 패밀리 컴퓨터 통신 시스템을 이용하는 이용자에게 위화감을 준다. 특히 인터넷 등의 통신 품질이 보증되어 있지 않은 통신 회선을 이용하는 경우에는 수 초 간격으로 일시 정지를 일으키는 경우가 있어서, 시스템의 상품 가치를 현저하게 손상하게 된다고 하는 문제점이 있었다.
본 발명은 상기 종래의 패밀리 컴퓨터 통신 시스템에 있어서의 문제점에 감안하여 이루어진 것이며, 소정 시간내에 상대로부터의 입력 정보를 수신할 수 없었던 경우라도, 동기 처리를 일시 정지하는 일 없이, 동기 처리를 진행시킬 수 있는 동기 통신 방법 및 동기 통신 장치를 제공하는 것을 그 과제로 하는 것으로 한다.
본 발명의 상기 과제는 통신 회선에 접속된 복수의 정보 단말 사이에 동기를 취하면서 통신 처리를 행하는 동기 통신 장치로서, 상기 통신 회로에 접속된 상기 복수의 정보 단말이 정상적인 통신 상태로 있는지의 여부를 판단하는 판단 수단과, 상기 판단 수단의 결과에 의해, 상기 복수의 정보 단말 중 적어도 하나의 정보 단말의 통신 상태에 이상이 발생하여 해당 복수의 정보 단말 중 다른 정보 단말과 동기가 취해지고 있지 않다고 판단된 경우에는 동기가 취해지지 않은 이 동기째 직전의 동기째의 입력 정보를 간주(deemed) 입력 정보로서 설정하는 입력 정보 설정 수단과, 상기 입력 정보 설정 수단에 의해 설정된 간주 입력 정보에 근거하여 소정의 연산 처리를 실행하여 상기 동기가 취해지지 않은 동기째의 동기 상태를 구하는 연산 수단을 구비하고, 상기 판단 수단이 상기 이상이 발생한 정보 단말의 통신 상태가 회복하여 상기 복수의 정보 단말 중 다른 정보 단말과 동기가 취해진다고 판단할 때까지, 상기 각 처리를 반복하는 것을 특징으로 하는 동기 통신 장치에 의해서 달성된다.
본 발명의 상기 과제는 통신 회선에 접속된 복수의 정보 단말 사이에서 동기를 취하면서 통신 처리를 행하는 동기 통신 방법으로서, 상기 통신 회로에 접속된 상기 복수의 정보 단말이 정상의 통신 상태로 있는지의 여부를 판단하는 단계와, 상기 판단의 결과에 의해, 상기 복수의 정보 단말 중 적어도 하나의 정보 단말의 통신 상태에 이상이 발생하여 해당 복수의 정보 단말 중 다른 정보 단말과 동기가 취해져 있지 않다고 판단된 경우에는 동기가 취해지지 않은 이 동기째 직전의 동기째의 입력 정보를 간주 입력 정보로서 설정하는 단계와, 상기 설정된 간주 입력 정보에 근거하여 소정의 연산 처리를 실행하고 상기 동기가 취해지지 않은 동기째의 동기 상태를 구하는 단계와, 상기 이상이 발생한 정보 단말의 통신 상태가 회복하여 상기 복수의 정보 단말 중 다른 정보 단말과 동기가 취해질 때까지 상기 각 단계를 반복하는 단계를 구비하는 것을 특징으로 하는 동기 통신 방법에 의해 달성된다.
도 1은 본 발명에 의한 동기 통신 장치의 일 실시 형태인, 복수의 이용자가 동시에 참가하는 형식의 동기 통신 게임 시스템의 구성을 나타내는 개략 블록도.
도 2는 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도.
도 3은 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도.
도 4는 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도.
도 5는 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도.
도 6은 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도.
도 7은 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도.
도 8은 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도.
도 9는 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도.
도 10은 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도이다.
도 11은 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도.
도 12는 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도.
도 13은 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도.
도 14는 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도.
도 15는 도 1에 나타내는 동기 통신 게임 시스템의 동작을 설명하기 위한 동작 플로우도.
도 16은 종래의 패밀리 컴퓨터 통신 시스템에 의한 데이터의 타이밍을 나타내는 타이밍 차트.
도 17은 도 1에 나타내는 동기 통신 게임 시스템의 다른 실시 형태에 있어서의 동작을 설명하기 위한 동작 플로우도.
도 18은 도 1에 나타내는 동기 통신 게임 시스템의 다른 실시 형태에 있어서의 동작을 설명하기 위한 동작 플로우도.
도 19는 도 1에 나타내는 동기 통신 게임 시스템의 다른 실시 형태에 있어서의 동작을 설명하기 위한 동작 플로우도.
도 20은 도 1에 나타내는 동기 통신 게임 시스템의 다른 실시 형태에 있어서의 동작을 설명하기 위한 동작 플로우도.
도 21은 도 17부터 도 20에 나타낸 동작의 개략을 설명하기 위한 플로우차트.
<부호의 설명>
1 동기 통신 게임 시스템
10 동기 서버
20 통신 네트워크
30a 정보 단말
30b 정보 단말
40a 외부 정보 입력부
40b 외부 정보 입력부
50a 동기 클라이언트(client)
50b 동기 클라이언트
60a 연산부
60b 연산부
70a 정보 출력부
70b 정보 출력부
본 발명의 동기 통신 장치에서, 상기 연산 수단은 상기 소정의 연산 처리로서 상기 동기가 취해지지 않은 동기째에 있어서의 게임의 동기 상태를 얻기 위한 연산 처리를 실행하도록 구성해도 된다.
본 발명의 동기 통신 장치에서, 상기 연산 수단은 상기 정보 단말을, 동기 상태를 백업한 것으로 되돌리도록 구성해도 된다.
본 발명의 동기 통신 장치에서, 상기 입력 정보를 간주 입력 정보로서 계속 설정해도, 상기 판단 수단이 모든 상기 정보 단말을 동일한 동기 상태로 구비하는 것이 불가능하다고 판단한 경우에는 상기 연산 수단은 상기 정보 단말을, 동기 상태를 백업한 것으로 되돌리도록 구성해도 된다.
본 발명의 동기 통신 장치에서, 상기 연산 수단은 상기 간주 입력 정보를 이용하고 있는 동안에 실제의 입력 정보를 보존하고, 통상의 동기 처리가 재개되었을 때에, 입력 정보로서 상기 보존한 정보를 임의의 수만큼 건너뛰어서 이용하도록 구성해도 된다.
본 발명의 동기 통신 장치에서, 상기 연산 처리는 게임 캐릭터의 위치의 계산, 정답 판정, 득점 계산 중 어느 하나 또는 둘 이상의 조합이라도 무방하다.
본 발명의 동기 통신 장치에서, 상기 입력 정보 설정 수단은 동기가 취해지지 않은 동기째의 입력 정보 대신에, 동기가 취해지지 않은 상기 동기째보다 전인 임의의 동기째의 입력 정보를 간주 입력 정보로서 설정하도록 구성해도 된다.
본 발명의 동기 통신 방법에서, 상기 연산하는 단계는 상기 소정의 연산 처리로서 상기 동기가 취해지지 않은 동기째에 있어서의 게임의 동기 상태를 얻기 위한 연산 처리를 실행하도록 구성해도 된다.
본 발명의 동기 통신 방법에서, 상기 연산하는 단계는 상기 정보 단말을, 동기 상태를 백업한 것으로 되돌리도록 구성해도 된다.
본 발명의 동기 통신 방법에서, 상기 입력 정보를 간주 입력 정보로서 계속 설정해도, 상기 판단하는 단계에서 모든 상기 정보 단말을 동일한 동기 상태로 구비하는 것이 불가능하다고 판단한 경우에는 상기 연산하는 단계 수단은 상기 정보 단말을, 동기 상태를 백업한 것으로 되돌리도록 구성해도 된다.
본 발명의 동기 통신 방법에서, 상기 연산하는 단계는 상기 간주 입력 정보를 이용하고 있는 동안에 실제의 입력 정보를 보존하고, 통상의 동기 처리가 재개되었을 때에, 입력 정보로서 해당 보존한 정보를 임의의 수만큼 건너뛰어서 이용하도록 구성해도 된다.
본 발명의 동기 통신 방법에서, 상기 연산 처리는 게임 캐릭터의 위치의 계산, 정답 판정, 득점 계산 중 어느 하나 또는 둘 이상의 조합이라도 무방하다.
본 발명의 동기 통신 방법에서, 상기 입력 정보를 설정하는 단계는 동기가 취해지지 않은 동기째의 입력 정보 대신에, 동기가 취해지지 않은 상기 동기째보다 전인 임의의 동기째의 입력 정보를 간주 입력 정보로서 설정하도록 구성해도 된다.
실시예 1
이하, 첨부한 도면을 참조하여 본 발명에 의한 동기 통신 방법 및 동기 통신 장치의 매우 적합한 실시 형태를 설명한다.
도 1은 본 발명에 의한 동기 통신 장치의 일 실시 형태인 복수의 이용자가 동시에 참가하는 형식의 동기 통신 게임 시스템의 구성을 나타내는 개략 블럭도이다.
도 1에 나타내는 동기 통신 게임 시스템(1)은 동기 통신 처리를 행하기 위해 서버로서의 역할을 수행하는 판단 수단인 동기 서버(10)와, 동기 서버(10) 및 정보 단말(30)에 접속되며 또한 그들 사이의 데이터 통신을 행하는 통신 회선인 통신 네트워크(20)와, 소정의 데이터를 입출력하도록 구성되며 또한 게임 참가자측에 배치된 2 개의 정보 단말(30a, 30b)을 포함하는 정보 단말(30)에 의해 구성되어 있다.
본 실시예에서는 정보 단말(30)은 두 개의 정보 단말(30a, 30b)에 의해 구성되어 있으나, 본 발명은 이들에 한정되는 것이 아니며, 3 이상의 정보 단말(30a ~ 30N)(N = c ~ z)로 구성되어도 무방하다. 여기서는 간략화하기 위해, 2 개의 단말 장치(30a, 30b)의 경우에 대해 설명한다.
도 1의 동기 통신 게임 시스템(1)은 게임 참가자가 통신 네트워크(20)를 통하여 각자의 정보 단말(30a, 30b)을 동기 서버(10)에 접속함으로써, 서로의 정보를 서로 교환할 수 있도록 구성되어 있다.
정보 단말(30a, 30b)은 입력 정보 설정 수단의 일부를 구성하는 외부 정보 입력부(40a, 40b)와, 동기 통신 처리를 행하기 위해 클라이언트로서의 역할을 수행하는 입력 정보 설정 수단의 일부를 구성하는 동기 클라이언트(50a, 50b)와, 연산 수단인 연산부(60a, 60b)와, 정보 출력부(70a, 70b)에 의해 구성되어 있다.
이하, 동기 클라이언트(50a, 50b)를 종합하여 부르는 경우에는 단순히 동기 클라이언트(50)로 나타낸다. 동일하게 연산부(60a, 60b)에 대해서도, 종합하여 부르는 경우에는 이하 단순히 연산부(60)로 나타낸다.
또, 동기 클라이언트(50a), 연산부(50a)에 관한 단계에 대해서는 SXXXXa(XXXX는 임의의 수치)로 나타내고, 동기 클라이언트(50b), 연산부(50b)에 관한 단계에 대해서는 SXXXXb(XXXX는 임의의 수치)로 나타내나, 양 쪽을 구별하지 않고 종합하여 부르는 경우에는 말미의 a 나 b 를 생략하고 SXXXX(XXXX는 임의의 수치)로 나타내는 것으로 한다.
다음에, 도 2를 참조하여, 도 1에 나타내는 동기 통신 게임 시스템(1)으로 실제로 게임이 행해질 때의 동작을 설명한다. 전제로서, 지금부터 N 회째의 동기 처리를 실행하는 것으로 한다.
먼저, 정보 단말(30a)의 동기 클라이언트(50a)는 게임 참가자에 의해 외부 정보 입력부(40a)에 입력되어 있는 입력 정보 a_N 을 취득한다(단계 S000Oa).
동기 클라이언트(50a)는 입력 정보 a_N 을 동기 서버(10)에 송신한다(단계 S0001a). 입력 정보 a_N 을 수신한 동기 서버(10)는 입력 정보 a_N 을 모든 대전 상대의 동기 클라이언트(50), 본 실시예에서는 동기 클라이언트(50b)에만 송신한다(단계 S0002a).
동일하게, 정보 단말(30b)의 동기 클라이언트(50b)는 게임 참가자에 의해 외부 정보 입력부(50b)에 입력되어 있는 입력 정보 b_N 을 취득하고(단계 S0000b), 동기 서버(10)에 송신한다(단계 S0001b). 동기 서버(10)에 의해 수신된 입력 정보 b_N 은 동기 클라이언트(50a)로 송신된다(단계 S0002b).
동기 클라이언트(50a)는 동기 서버(10)로부터 송신된 입력 정보 b_N 을 수신하고(단계 S0003a), N 동기째의 입력 정보, 즉 입력 정보 a_N, 입력 정보 b_N (이하, 입력 정보 INa_N 으로 나타냄)를 구비할 수 있다.
동일하게, 동기 클라이언트(50b)는 입력 정보 a_N 을 수신하고(단계 S0003b), N 동기째의 입력 정보, 즉 입력 정보 a_N, 입력 정보 b_N(이하, 입력 정보 INb_N 으로 나타냄)를 구비할 수 있다. 여기서, 입력 정보 INa_N = 입력 정보 INb_N 이나, 이와 같이 양 동기 클라이언트(50a, 50b)에 있어서의 N 동기째의 입력 정보가 동일한 경우, 이하, 대표하여 입력 정보 IN_N 로 나타낸다.
이와 같이 하여, N 번째의 동기 처리를 행하기 위해 필요한 전체 정보 단말(30a, 30b)의 입력 정보 IN_N 을, 각각의 동기 클라이언트(50a, 50b)로 공유할 수 있다.
이어서, 동기 클라이언트(50a)는 입력 정보 IN_N 을 연산부(60a)에 양도한다(단계 S0004a). 연산부(60a)는 입력 정보 IN_N 과, 정보 단말(30a)에 있어서 직전의 게임의 동기 상태 Sa_N-1 을 바탕으로 연산 처리를 실행하고, N 동기째의 게임의 동기 상태 Sa_N 을 산출한다(단계 S0005a). 동기 상태 Sa_N 은 정보 출력부(70a)에 의해 표시된다.
동일하게, 동기 클라이언트(50b)에서도 입력 정보 IN_N 과, 정보 단말(30b)에 있어서 직전의 게임의 동기 상태 Sb_N-1 을 바탕으로 연산 처리를 실행하고, N 동기째의 게임의 동기 상태 Sb_N 이 산출된다. 동기 상태 Sb_N 은 정보 출력부(70b)에 의해 표시된다.
여기서, 동기 상태 Sa_N-1 = 동기 상태 Sb_N-1 이라면, 입력 정보 INa_N = 입력 정보 INb_N 이기 때문에, 동기 상태 Sa_N = 동기 상태 Sb_N 으로 된다(이와 같이 N 동기째의 동기 상태가 동일한 경우, 이하, 대표하여 동기 상태 S_N 으로 나타냄).
이와 같이 하여 정보 단말(30a, 30b)은 동일한 입력 정보를 공유하는 것으로 동일한 동기 상태를 공유할 수 있다.
동기 클라이언트(50a, 50b)는 동기 회수 N 을 N+1 에 진행시켜서 다음의 동기 처리(단계 S000Oa ~, 단계 S0000b ~ )를 동일하게 반복한다. 양 쪽의 동기 클라 이언트(50a, 50b)에 있어서 동일한 입력 정보가 계속 공유되는 한, 동일한 동기 상태가 공유된다.
다음에, 도 3을 이용하여 게임의 도중에 동기 클라이언트(50a)와 동기 서버(10)와의 사이의 통신 상태가 일시적으로 악화된 경우의 동작을 설명한다.
여기서는 동기 클라이언트(50a)와 동기 서버(10)와의 사이의 통신이 악화된 경우를 상정한다. 이 때, 동기 클라이언트(50a)는 소정 시간내에 입력 정보 a_N 을 동기 서버(10)에 송신할 수 없다(단계 S0101a).
종래의 기술을 이용한 경우에는 당연히 상대로부터의 정보를 수신할 수도 없고, 통신 상태가 회복하여 상대로부터의 정보를 수신할 때까지 동기 처리를 일시 정지하고 있었다. 이 때문에 게임의 도중에 돌연 화면의 움직임이 멈추고, 게임 이용자에게 위화감을 주며, 게임의 상품 가치를 현저히 내리는 원인으로도 되어 있었다. 이하에 계속되는 본 실시예의 설명에서, 이와 같은 일시 정지를 일으키는 일 없이 처리를 진행하는 방법을 나타낸다.
이 이후의 처리는 상술한 일시 정지를 방지하는 처리로 이루어지지만, 그 동안도 동기 클라이언트(50a)는 서버(10)에 입력 정보 a_N 의 송신이 성공할 때까지 재발송 처리를 계속하는 것에 주의한다. 또, 이 때의 동기 회수(N)를 일반적으로 이용되는 동기 회수(N)와 구별하기 위해 이하 W 로 표기한다.
동기 클라이언트(50a)는 소정 시간내에 입력 정보 a_W 를 송신할 수 없기 때문에, 통신 상태가 악화되어 있다고 판단한다. 이 때문에, 이 이후는 통신 상태의 악화에 의해 동기 처리가 일시 정지되는 것을 회피하는 처리를 행한다. 구체적으로 는 먼저, W-1 동기째까지는 정상적으로 처리할 수 있었음을 동기 서버(10)에 송신하려고 한다(단계 S0107a). 실제로는 통신 상태가 나쁘기 때문에, 송신할 수 있을 때까지 재발송 처리를 계속하나(단계 S0107a), 상기와 같이, 이것과 병행하여 이하의 처리를 행한다. 또, 이하 특히 예고가 없는 한은 통신 상태가 나쁘기 때문에 정보의 송수신을 하지 못하고 재발송 처리(또는 수신 대기 처리)를 행하는 경우는 그 재발송 처리 등과 병행하여 그 이후의 처리를 행하는 것으로 한다.
한편, 동기 클라이언트(50b)는 입력 정보 b_W 를 동기 서버(10)에 송신한다(단계 S0101b). 동기 서버(10)는 수신한 입력 정보 b_W 를 동기 클라이언트(50a)에 송신한다. 실제로는 통신 상태가 나쁘기 때문에, 송신할 수 있을 때까지 재발송 처리를 계속한다(단계 S0102b). 동기 클라이언트(50b)는 정보 단말(30a)측의 통신 상태가 나쁘기 때문에 소정 시간내에 입력 정보 a_W 를 수신할 수 없다(단계 S0103b). 동기 클라이언트(50b)는 통신 상태가 악화되어 있다고 판단하고, 상기와 동일하게 수신 대기 상태를 유지하면서 일시 정지를 회피하는 처리에 들어간다. 동기 클라이언트(50b)는 W-1 동기째까지 정상적으로 처리할 수 있었음을 동기 서버(10)에 송신한다 (단계 S0104b).
동기 서버(10)는 동기 클라이언트(50b)가 W-1 동기째까지는 정상적으로 처리할 수 있었음을 수신한다(단계 S0105b).
다음에, 도 4를 참조하여 도 3에 계속되는 동작을 설명한다. 동기 클라이언트(50a)는 연산부(60a)에 통신 상태가 악화되고 있음을 통지한다(단계 S0201a). 연산부(60a)는 현재 유지하기 직전의 게임의 동기 상태 S_W-1 을 백업한다(단계 S0202a).
동기 클라이언트(50a)는 통신 상태의 악화 때문에 입력 정보 INa_W 를 작성할 수 없다. 이 때문에, 대신에 직전의 입력 정보(= INa_W-1 = IN_W-1)를 「간주 입력 정보」로서 연산부(60a)에 건네준다(단계 S0203a). 연산부(60a)는 정규의 입력 정보 대신에 받은 간주 입력 정보 IN_W-1 을 바탕으로 연산 처리를 실행하고, W 동기째에 있어서의 게임의 동기 상태를 산출한다(단계 S0204a). 여기서 산출된 동기 상태 Sa_W 는 「간주 입력 정보」를 이용하여 산출되어 있기 때문에 정보 단말(30a)측에 있어서의 「임시의」값으로 된다. 동기 클라이언트(50a)는 동기 회수(W)를 W+1 로 진행하게 하여 다음의 임시 동기 처리(단계 S0203a ~ )를 동일하게 반복한다. 즉, 간주 입력 정보 IN_W-1 을 이용하여 「임시의」N 동기째의 동기 상태 Sa_N 을 산출하는 것을 반복한다. 이와 같이 하여, 일시적으로 통신 상태가 악화되어도, 동기 처리를 일시 정지하는 일 없이 계속할 수 있다.
동기 클라이언트(50b)에 있어서도, 동일하게 통신 상태의 악화를 통지하고(단계 S0201b), 동기 상태의 백업(단계 S0202b)을 행하고, 「간주 입력 정보」를 이용하여 임시의 동기 처리를 반복한다(단계 S0203b ~ ). 이들의 반복은 통신 상태가 회복할 때까지 행하게 된다.
이하, 도 5 ~ 도 8을 참조하여, 통신 상태가 회복한 후의 경우의 동작을 설명한다. 통신 상태가 회복한 것에 의해, 도 3의 단계(S0101a)에 있어서 송신된 「정보 단말(30a)측에 있어서 W-1 동기째까지 정상적으로 처리할 수 있었다」라고 하 는 정보가 동기 서버(10)에 도달한다(단계 S0301a).
동기 서버(10)는 모든 동기 클라이언트(50)에서 정상적으로 행해진 동기 회수가 동일 회수인지의 여부를 판단한다(단계 S0302). 본 실시예의 경우는 모든 동기 클라이언트(50)에 있어서 W-1 동기째까지 정상적으로 동기 처리가 행해지며, W 동기째로부터는 「간주 입력」을 이용한 임시의 동기 처리를 행하고 있고, 정상적으로 행해진 동기 회수가 일치하는 것으로 한다. 이와 같은 경우에는 모든 동기 클라이언트(50)에 대하여 동일한 입력 정보가 계속 건네져 온 것(즉, 입력 정보 INa_N = 입력 정보 INb_N 인 것)이 보증되고, 동기 상태가 동일한 것(즉, 동기 상태 Sa_N = 동기 상태 Sb_N 인 것)이 보증된다.
이 때문에, 모든 동기 클라이언트(50)에 있어서, 동기 회수를 동일하게 구비한 후에 통상의 동기 처리를 재개하면, 모든 동기 클라이언트(50)에 있어서의 동기 상태는 동일하게 유지되게 된다. 이 때문에, 이후의 처리에 있어서 모든 동기 클라이언트(50)에 있어서 동기 회수를 동일하게 구비하는 것을 목표로 한다.
동기 서버(10)는 모든 동기 클라이언트(50)에 통신이 회복했다고 하는 것을 전달한다(단계 S0303). 이 후, 동기 클라이언트(50)와 동기 서버(10)와의 사이에서 1회의 통신을 행하나(구체적으로는 단계 S0305 ~ 단계 S0505 까지), 그 통신을 행하는 동안에 필요한 동기 처리 회수를 통지한다(단계 S0303). 이 회수는 지금까지 서버, 클라이언트 간에 행해져 온 통신 시간에 근거하여 개산(槪算)된다. 예를 들면, 1 회의 통신에 70ms 걸리고, 1 회의 동기 처리에 32ms 걸린다고 하면, 70÷32 = 2 나머지 6 이며, 필요한 동기 회수는 2+1 = 3 회로 된다. 본 실시예의 경우, K 회로 한다.
또한, 상대의 동기 클라이언트(50)가 어느 회까지 정상적으로 동기 처리를 행하였는가, 및 상대의 동기 클라이언트(50)가 어느 회까지 자기의 동기 정보를 송신했는가를 송신한다(단계 S0303).
동기 서버(10)로부터 통신 회복의 통지를 받은 시점에서, 동기 클라이언트(50a)에 있어서 이루어진 임시 동기 처리의 회수를 M 회로 한다. 동일하게 동기 클라이언트(50b)에 있어서 이루어진 임시 동기 처리의 회수를 L 회로 한다. 동기 클라이언트(50a)는 동기 서버(10)로부터 통신 회복 통지를 수신하고(단계 S0304a), 현재의 처리를 끝내고 있는 동기 회수(= W+M-1)를 동기 서버(10)에 돌려보낸다(단계 S0305a). 동일하게 동기 클라이언트(50b)도 동기 서버(10)로부터 통신 회복을 수신하고(단계 S0304b), 현재 처리를 끝내고 있는 동기 회수(= W+L-1)를 동기 서버(10)에 돌려보낸다(단계 S0305b). 동기 서버(10)는 모든 클라이언트(50)로부터 현재 처리를 종료하고 있는 동기 회수를 수신한다(단계 S0306).
또, 각 동기 클라이언트(50)는 단계 S0304에 있어서 상대가 어느 회까지 각자의 동기 정보를 송신했는가를 수신하고 있다. 이 때문에, 각 동기 클라이언트(50)는 상대가 자기 앞으로 송신한 정보로 아직 자신이 수신하고 있지 않는 것이 얼마 있는지를 알 수 있다. 구체적으로는 동기 클라이언트(50a)는 입력 정보 b_W 를 수신하고 있지 않고, 동기 클라이언트(50b)는 입력 정보 a_W 를 수신하고 있지 않다. 통신 상태가 회복한 것으로, 동기 클라이언트(50a)는 입력 정보 b_W 를 수신할 수 있다(단계 S0403a). 동일하게 통신 상태가 회복한 것으로, 동기 서버(10)는 입력 정보 a_W 를 수신할 수 있다(단계 S0402a).
입력 정보 a_W 를 수신한 동기 서버(10)는 입력 정보 a_W 를 동기 클라이언트(50b)에 송신한다(단계 S0402a). 동기 클라이언트(50b)는 입력 정보 a_W 를 수신한다(단계 S0403b). 또, 이들의 각 처리가 끝나는 것을 기다릴 필요도 없기 때문에, 이하의 처리가 병행하여 행해지는 것에 주의한다. 또 여기서 수신된 a_W, b_W는 유지해 둘 필요가 없기 때문에 파기된다.
동기 클라이언트(50a)는 동기 서버(10)로부터의 통지(단계 S0505a)가 있을 때까지는 간주 입력 정보 INa 를 이용하여 임시 동기 처리를 계속 실행, 표시하고(단계 S0501a, S0502a), 동기 처리가 일시 정지하는 것을 막는다. 동기 클라이언트(50b)에 있어서도 동일하다(단계 S0501b, 단계 S0502b). 그 동안, 동기 서버(10)측에 있어서는 다음에 말하는 처리가 병행하여 행해지게 된다.
상기 서버(10)는 수신한 동기 회수의 차(= L-M)를 없애기 위해서는 이 이후, 각 동기 클라이언트(50)가 어느 정도의 속도로 몇 회의 동기 처리를 행하면 되는가를 산출한다(단계 S0503). 예를 들면, 동기 클라이언트(50a)에 의해 송신된 회수가 1036 회이며, 동기 클라이언트(50b)에 의해 송신된 회수가 1039 회인 경우, 그 차는 3 회이다. 동기 클라이언트(50a)에 있어서, 1 동기 처리를 32ms 의 속도로 9 회 실시하는 한편, 동기 클라이언트(50b)에 있어서, 1 동기 처리를 48ms 의 속도로 6 회 행하면, 양 동기 클라이언트(50)에 있어서의 동기 회수와 동기 상태가 동일 시각(= 288ms 후)에 최종적으로 일치한다.
동기 서버(10)는 산출한 동기 처리의 속도와 회수를 각 동기 클라이언트 (50)에 대하여 통지한다(단계 S0504). 또한 그 동안도, 앞서 말한 바와 같이, 동기 클라이언트(50)는 동기 처리가 정지하지 않도록, 간주 입력 정보 INa 를 이용하여 임시 동기 처리를 반복하고 있다(단계 S0501, 단계 S0502). 또, 상기 동기 서버(10)로부터의 통지는 단계 S0303에서 산출된 동기 회수(= K 회) 이내에 행하게 된다. 만약, K 회 이내에 상기 동기 서버(10)로부터의 통지를 수신할 수 없었던 경우에는 수신할 수 있을 때까지 처리가 일시 정지되기 때문에, K는 충분히 크게 취해 둘 필요가 있다.
동기 클라이언트(50a)는 동기 서버(10)로부터 동기 클라이언트(50b)와 동기 회수를 맞추기 위해 필요한 동기 처리 속도, 및 임시 동기 처리 회수(= J 회)를 받는다(단계 S0505a). 동기 클라이언트(50a)는 K 회의 임시 동기 처리를 통상의 속도로 종료(단계 S0506, 단계 S0507)한 후, 동기 서버(10)로부터 수취한 동기 처리 속도에 따라 J 회의 임시 동기 처리를 반복한다 (단계 S0601a, 단계 S0602a).
동기 클라이언트(50b)에 있어서도 동일하게, 동기 서버(10)로부터 동기 처리 속도, 및 임시 동기 처리 회수(= J-L+M 회)를 수취한다(단계 S0505b). 동기 클라이언트(50b)는 동일하게 K 회의 임시 동기 처리를 통상의 속도로 종료한 후, 동기 서버(10)로부터 받은 동기 처리 속도에 따라, J-L+M 회의 임시 동기 처리를 반복한다(단계 S0601b, 단계 S0602b).
이 시점에서, 동기 클라이언트(50a)에 있어서의 동기 처리 회수는 (W-1)+M+K+J 회로 된다. 또, 동기 클라이언트(50b)에 있어서의 동기 처리 회수는 (W-1)+L+K+(J-L+M) 회 = (W-1)+M+K+J 회로 되며, 양 동기 클라이언트(50)에 있어서의 동기 회수는 동일하게 된다. 즉, 동기 클라이언트(50a)와 동기 클라이언트(50b)는 동일한 동기 상태를 공유하고 있는 상태로 돌아간다. 이후는 통상대로의 동기 처리(단계 S000Oa ~ 단계 S0006a, 단계 S0000b ~ 단계 S0006b)를 반복할 수 있다.
이것에 의해, 통신 상태가 악화되었을 경우라도, 상대의 정보를 수신할 때까지 대기 상태에 들어가 동기 처리를 일시 정지하는 일 없이 처리를 계속한다고 하는 효과를 얻을 수 있다.
다음에, 도 9를 참조하여 통신 상태가 악화되는 타이밍이 전회에 비해 미묘하게 어긋난 경우에 대해 설명한다.
여기서는 동기 회수 N 이 N = W 인 경우를 상정한다. 동기 클라이언트(50a)는 동기 서버(10)에 입력 정보 a_W 를 송신한다(단계 S1001a). 동기 서버(10)는 입력 정보 a_W 를 수신한다. 이번에는 이 입력 정보 a_W의 수신 완료 후에 정보 단말(30a)측의 통신 상태가 악화되는 것으로 한다. 동기 서버(10)는 수신한 입력 정보 a_W 를 동기 클라이언트(50b)에 송신한다(단계 S1002a).
동일하게, 동기 클라이언트(50b)는 입력 정보 b_W 를 동기 서버에 송신한다 (단계 S1001b). 동기 서버는 입력 정보 b_W 를 수신하나, 이미 정보 단말(30a)측의 통신 상태가 악화되어 있기 때문에, 입력 정보 b_W 를 상대에게 송신할 수 없다(단계 S1002b).
통신 상태가 악화되어 있기 때문에, 동기 클라이언트(50a)는 소정 시간내에 입력 정보 b_W 를 수신할 수 없다(단계 1003a).
한편, 동기 클라이언트(50b)는 입력 정보 a_W 를 수신할 수 있으므로(단계 S1003b), 동기 입력 정보 INb_W 를 작성할 수 있다(단계 S1004b). 연산부(60b)는 동기 입력 정보 INb_W 를 수취하고, W 동기째의 정상적인 처리를 실행하고, W 동기째 상태를 표시한다(단계 S1005b). 이 때문에, 동기 클라이언트(50b)의 동기 회수는 동기 클라이언트(50a)에 비해 하나 진행하게 된다.
계속하여, 동기 클라이언트(50b)는 동기 회수를 W+1 로 진행하고, 입력 정보 b_W+1 을 동기 서버(10)에 송신한다(단계 S1006b). 동기 서버(10)는 입력 정보 b_W+1 을 수신하나, 전회와 동일하게, 정보 단말(30a)측의 통신 상태가 나쁘기 때문에 입력 정보 b_W 를 동기 클라이언트(50a)에 송신할 수 없다(단계 S1007b).
동기 클라이언트(50a)는 입력 정보 b_W 를 수신할 수 없고(단계 S1003a) 통신 상태가 악화되어 있다고 판단한다. 이 때문에, 동기 처리가 일시 정지되는 것을 막는 처리를 이후 실시한다. 상기 같이, W-1 동기째까지는 정상적으로 처리할 수 있었던 것을 동기 서버(10)에 송신한다(단계 S1004a). 실제로는 통신 상태가 나쁘기 때문에 재발송 처리를 계속한다.
한편, 동기 클라이언트(50b)도 소정 시간내에 입력 정보 a_W 를 수신할 수 없다(단계 S1008b). 동기 클라이언트(50b)도 동일하게 통신 상태가 악화되어 있다고 판단하고, W 동기째까지는 정상적으로 처리할 수 있었음을 동기 서버(10)에 송신한다(단계 S1009b).
동기 클라이언트(50a)는 W-1 동기째까지 정상적으로 처리를 행한 것에 대해, 동기 클라이언트(50b)는 W 동기째까지도 정상적으로 처리를 행하고 있는 것에 주의한다.
동기 클라이언트(50a)는 연산부(60a)에 통신 상태가 악화되어 있는 것을 통지한다 (단계 S1101a). 연산부(60a)는 직전의 동기 상태 S_W-1 을 백업한다(단계 S1102a). 동기 클라이언트(50a)는 동기 처리가 일시 정지되는 것을 막기 위해, 직전의 동기 입력 정보 IN_W-1 을 「간주 입력 정보」로서 이용하면서, 전회와 동일하게 임시의 동기 처리를 행한다(단계 S1103a, 단계 S1104a).
한편, 동기 클라이언트(50b)도 동일하게 연산부(60b)에 통신 상태가 악화되어 있는 것을 통지한다(단계 S1101b). 연산부(60b)는 직전의 동기 상태 (S_W)를 백업한다(단계 S1102b). 여기서, 연산부(60a)는 동기 회수가 W-1 일 때의 동기 상태를 백업한 것에 대해, 연산부(60b)는 동기 회수가 W 일 때의 동기 상태의 백업을 행하고 있는 것에 주의한다.
동기 클라이언트(50)는 동기 처리가 일시 정지되는 것을 막기 위해, 직전의 동기 입력 정보 IN_W 를 「간주 입력 정보」로서 이용하면서, 동일하게 임시의 동기 처리를 행한다(단계 S1103b, 단계 S1104b).
여기서, 동기 클라이언트(50a)는 「간주 입력 정보」로서 동기 입력 정보 IN_W-1 을 이용하고 있는 것에 대해, 동기 클라이언트(50b)는 「간주 입력 정보」로서 동기 입력 정보 IN_W 를 이용하고 있는 것에 주의한다.
다음에, 도 11을 참조하여 통신 상태가 회복된 후의 경우에 대해 설명한다.
통신 상태가 회복한 것에 의해, 도 9의 단계 S1004a에 있어서 송신된 「정보 단말(30a)측에 있어서 W-1 동기째까지 정상적으로 처리할 수 있었다」라고 하는 정보가 동기 서버(10)에 도달한다(단계 S1201a). 동기 서버(10)는 모든 동기 클라이 언트로 정상적으로 행해진 동기 회수가 동일 회수인지의 여부를 판단한다(단계 S1202). 본 실시 예의 경우는 정보 단말(30a)측에 있어서 W-1 동기째인 것에 대해 정보 단말(30b)측에 있어서는 W 동기째까지 정상적으로 처리가 행해지고 있다. 동기 서버(10)는 동기 입력 정보 INb_W 가 동기 입력 정보 IN_W-1 과 동일한 입력 내용인지의 여부를 체크한다(단계 S1203).
동기 입력 정보 INb-W 와 동기 입력 정보 INb_W-1 이 동일한 경우를 고려한다. 정보 단말(30a)측에 있어서는 통신 상태의 악화를 통지(단계 S1101a)한 후, 「간주 입력 정보」로서 동기 입력 정보 INa_W-1 이 계속 이용되고 있다. 한편, 정보 단말(30b)측에 있어서는 「간주 입력 정보」로서 동기 입력 정보 INb_W 가 계속 이용되어 있다. 여기서, 정보 단말(30a)측, 정보 단말(30b)측 각각에 있어서 계속 이용되고 있는 「간주 입력 정보」의 동기 회수가 W-1 과 W 로 동일하지 않으나, 결과적으로 양자에서 계속 이용되고 있는 입력 정보는 동일한 것으로 된다.
왜냐하면, 동기 입력 정보 INb_W = 동기 입력 정보 INb_W-1 이며, 동기 입력 정보 INa_W-1 = 동기 입력 정보 INb_W-1 이기 때문이다(W-1 동기째까지는 정상적으로 동기 처리가 행해지고 있기 때문에, 쌍방에 있어서의 입력 정보는 동일한 것에 주의함). 따라서, 임의의 동기 회수 N에 있어서, 동기 입력 정보 INa_N = 동기 입력 정보 INb_N 인 것이 보증되며, 동기 상태 Sa-N = 동기 상태 Sb_N 인 것이 보증된다.
이 때문에, 모든 동기 클라이언트(50)에 있어서 동기 회수를 동일하게 구비 한 후에, 통상의 동기 처리를 재개하면, 전체 클라이언트(50)에 있어서의 동기 상태는 동일하게 유지되게 된다. 이 상황은 상기의 예(도 5 참조)와 완전히 동일하며 동일한 처리(도 7 및 도 8의 단계 S0303 ~ 단계 S0306)를 행하는 것으로, 통상의 동기 처리 재개로 이끌 수 있다. 상기와 다른 점은 동기 클라이언트(50b)가 입력 정보 b_W+1 까지 송신하고 있는(단계 S1006b) 점이다(단계 S0101b, 단계 S1001b, 단계 S1006b를 비교).
다음에, 도 12를 참조하여 도 6에서 설명한 처리에 대응하는 처리를 설명한다.
각 동기 클라이언트(50)는 단계 S0304에 있어서 상대가 어느 회까지 각자의 동기 정보를 송신했는지를 수신하고 있다. 이 때문에, 각 동기 클라이언트(50)는 상대가 자기 앞으로 송신한 정보에서 아직 자신이 수신하고 있지 않는 것이 얼마 있는가를 알 수 있다. 구체적으로는 동기 클라이언트(50a)는 입력 정보 b_W, 및 입력 정보 b_W+1 을 수신하고 있지 않다. 또, 동기 클라이언트(50b)는 입력 정보 a_W+1 을 수신하고 있지 않다. 또, 동기 클라이언트(50a)는 상대가 입력 정보 a_W+1 까지 수신 대기인 것을 알 수 있으나, 현 시점에서는 아직 입력 정보 a_W+1 을 송신하고 있지 않는 것에 주의한다.
통신 상태가 회복한 것으로, 동기 클라이언트(50a)는 입력 정보 b_W 를 수신할 수 있다(단계 S1303a). 계속하여, 동기 클라이언트(50b)가 입력 정보 a_W+1 의 수신을 기다리고 있는 것으로부터, 동기 클라이언트(50a)는 입력 정보 a_W+1 을 송신한다(단계 S1304a). 동기 서버(10)는 입력 정보 a_W+1 을 수신하여 상대에게 송 신한다(단계 S1305a). 동기 클라이언트(50b)는 입력 정보 a_W+1 을 수신한다(단계 S1306b). 또, 동기 클라이언트(50a)는 단계 S1007b에 있어서 송신된 입력 정보 b_W+1 을 수신한다(단계 S1306a). 이상의 처리에 의해, 송수신 대기의 상태를 모두 해소할 수 있다.
다음에, 단계 S1203에 있어서 동기 입력 정보 INb_W 와 동기 입력 정보 INb_W-1 이 동일하지 않았던 경우의 처리에 대해 설명한다. 이 경우, W 이상의 N에 있어서 동기 입력 정보 INa_N 과 동기 입력 정보 INb_N 이 동일하지 않게 된다. 즉, 각각의 동기 클라이언트(50)에 있어서 다른 입력 정보가 계속 건네져 온 것으로 된다. 따라서, W 이상의 N에 있어서 동기 상태 Sa_N 과 동기 상태(Sb-N)는 동일한 것이 보증되지 않게 된다. 이 때문에, 각 동기 클라이언트(50)에 있어서의 동기 상태를 통신 상태가 악화되기 직전의 백업된 상태로 되돌린 다음, 통상의 동기 처리를 재개할 필요가 있다.
또한, 이 상태인 채로 갑자기 백업한 상태로 되돌리면, 동기 클라이언트 (50a)의 동기 회수는 W-1 로 돌아오는(단계 S1102a) 것에 대해, 동기 클라이언트(50b)의 동기 회수는 W 까지밖에 돌아오지 않는다(단계 S1102b).
계속하여, 동기 클라이언트(50b)는 입력 정보 a_W+1 의 수신 대기 상태로 돌아온다(단계 S1008b의 계속). 입력 정보 a_W+1 이 동기 클라이언트(50b)에 전달되기 위해서는 동기 클라이언트(50a)가 입력 정보 b_W 를 수신하고, 동기 회수(W)에 있어서의 연산 처리를 행한 후, 입력 정보 a_W+1 을 송신하고, 이것이 동기 서버 (10)를 경유하여 동기 클라이언트(50b)에 송신되지 않으면 안된다. 이 작업에는 통상보다 장시간을 요하기 때문에, 동기 클라이언트(50b)가 소정 시간내에 입력 정보 a_W+1 을 수신할 수 없었던 경우, 다시 통신 상태가 악화되고 있다고 오판하고, 동기 처리가 일시 정지되는 것을 막는 처리를 재차 개시하고 만다.
이와 같은 상태는 일시 정지 방지 처리의 연쇄를 초래하고, 결과적으로 전혀 입력 처리를 접수하지 않는 상태를 일으킬 가능성이 있다. 이 때문에, 다시 일시 정지 방지 처리가 개시되지 않는 것과 같은 상태로 한 다음 동기 처리를 재개하기 위해, 이하의 수속을 밟는다.
다음에, 도 13을 참조하여, 상기의 목적을 완수하기 위한 처리에 대해 설명한다.
동기 서버(10)는 동기 클라이언트(50)에 통신 상태가 회복한 것을 통지하는(단계 S1401) 동시에, 동기 상태를 S1102에 있어서 백업한 상태로 되돌리는 것이 필요함을 통지한다(단계 S1401).
동기 클라이언트(50)는 통신 상태가 회복한 것을 수신하고(단계 S1402), 백업한 상태로 되돌릴 필요가 있음을 안다.
여기서, 도 14를 참조하여, 각 동기 클라이언트(50)에 있어서 동기 입력 정보를 상대와 맞추기 위한 처리에 대해 설명한다.
동기 클라이언트(50a)는 단계 S1002b에서 송신된 입력 정보 b_W 를 수신한다(단계 S1503a). 이것에 의해, 동기 입력 정보 IN_W 를 작성할 수 있으나, 이것은 후에 이용하기 위해 백업해 둔다(단계 S1503a).
계속하여, 동기 클라이언트(50a)는 입력 정보 a_W+1 을 송신한다(단계 S1504a). 입력 정보 a_W+1 을 수신한 동기 서버(10)는 동기 클라이언트(50b)에 송신한다(단계 S1505a). 동기 클라이언트(50b)는 입력 정보 a_W+1 을 수신한다(단계 S1506b). 이것에 의해, 동기 입력 정보 IN_W+1 을 작성할 수 있으나, 이것은 후에 이용하기 위해 백업해 둔다(단계 S1506b).
계속하여, 동기 클라이언트(50a)는 단계 S1007b에서 송신된 b_W+1 을 수신한다(단계 S1506a). 동일하게 동기 입력 정보 IN_W+1 을 작성할 수 있으나, 이것도 후에 이용하기 위해 백업해 둔다(단계 S1506a).
이 시점에서, 양 동기 클라이언트(50)에 있어서, W+1 동기째까지의 입력 정보를 준비할 수 있었던 것으로 된다. 또한, 이들의 처리 중에도 각 동기 클라이언트(50)에 있어서는 「간주 입력 정보」를 이용한 임시의 동기 처리가 행해지고 있는(단계 S1103a, 단계 S1104a, 단계 S1103b, 단계 S1104b) 것에 의해, 동기 처리가 일시 정지되는 것을 막고 있다.
각 동기 클라이언트(50)는 W+1 동기째의 동기 입력 정보 IN_W+1 의 작성이 완료된 시점에서, 동기 서버(10)에 대해 완성된 취지를 통지한다(단계 S1403a, 단계 S1403b). 동기 서버(10)는 모든 동기 클라이언트(50)로부터 필요한 입력 정보의 작성이 완료한 것을 수신한다(단계 S1404). 동기 서버(10)는 백업 상태로 되돌린 후, 통상의 동기 처리로 돌아올 때까지의 동안, 각 동기 클라이언트(50)에 있어서 어느 정도의 동기 처리 속도로 몇 회 동기 처리를 행하면 동일 시각에 동기 회수가 일치할 수 있는가를 계산한다(단계 S1405).
구체적으로는 동기 클라이언트(50)와 동기 클라이언트(50b)에 있어서의 동기 회수의 차는 1 회이다. 따라서, 동기 클라이언트(50a)에 있어서 1 동기 처리를 32ms 로 2 회 행하는데 대해, 동기 클라이언트(50b)에 있어서는 1 동기 처리를 64ms 로 1 회 행하면 64ms 경과 후에 양 쪽의 동기 회수는 일치하고, 동기 상태도 일치한다. 동기 서버(10)는 계산 결과를 각 동기 클라이언트(50)에 통지한다(단계 S1405). 동기 클라이언트(50)는 동기 상태를 백업한 상태로 되돌리도록 지시를 받는다(단계 S1406). 동기 클라이언트(50a)는 동기 상태를 S_W-1 로 되돌린다(단계 S1406a). 한편, 동기 클라이언트(50b)는 동기 상태를 S_W 로 되돌린다(S1406b).
다음에, 도 15를 참조하여, 통상의 동기 처리로 돌아올 때까지의 처리에 대해 설명한다.
동기 클라이언트(50)에 있어서 동기 상태로 되돌린 시각을 t = Oms 로 한다. 동기 클라이언트(50a)에 있어서, 작성이 끝난 동기 입력 정보 IN_W(단계 S1503a)를 이용하여 시각 t = 32ms 에 있어서 W 동기째의 처리를 실행하여 표시한다(단계 S1601a, 단계 S1602a). 또한, 작성이 끝난 동기 입력 정보 IN_W+1(단계 S1506a)을 이용하여 시각 t = 64ms 에 있어서 W+1 동기째의 처리를 실행하여 표시한다(단계 S1601b, 단계 S1602b).
이와 같이 하여 동기 상태를 백업한 것으로 되돌렸을 때부터 64ms 후에 있어서, 모든 동기 클라이언트(50)에 있어서의 동기 회수, 동기 상태를 동일하게 구비 할 수 있다. 이후는 통상의 처리를 행하는 것으로 동기 처리를 일시 정지하는 일 없이 처리를 계속할 수 있다.
실시예 2
다음에, 본 발명의 제2의 실시 형태로서 도 11에 나티내는 동기 통신 게임 시스템을 이용한 다른 동기 처리 동작에 대해 설명한다.
먼저, 도 17을 참조하여, N 동기째에 입력된 정보를, N+m(단 m>O 인 정수) 동기째의 처리에 이용하면서 게임의 진행을 진행시키는 경우에 대해 설명한다. 또한, 동기 클라이언트(50)끼리 사이에서 데이터 송수신을 행하기 위해 동기 서버(10)는 상술한 실시 형태(이하, 제1의 실시 형태라고도 칭함)와 동일하게 데이터의 중계 처리를 행하나, 이 데이터의 중계 처리에 대해서는 도면의 간략화를 위해 그 설명을 생략한다.
이하, 구체적으로 m = 2 인 경우에 대해 설명한다. 현재, N+2 동기째의 처리를 행하려고 하고 있는 것으로 한다(단계 S2003a ~ 및 단계 S2003b ~ ). 동기 클라이언트(50a)는 입력 정보로서 IN_N+2 를 이용하는 대신에 2 동기 전의 입력 정보 IN_N(= a_N 및 b_N)을 이용한다. b_N 는 2 동기도 전에 동기 클라이언트(50b)로부터 송신되고 있다(단계 S2001b). 이 때문에, N 동기째, N+1 동기째의 처리를 행하는 동안에 b_N 이 동기 클라이언트(50a)에 송신되고 있으면, 동기 클라이언트(50b)로부터의 입력 정보의 수신을 기다리는 일 없이 처리를 진행시킬 수 있다.
동기 클라이언트(50a)는 IN_N+2 를 건네는 대신에 IN_N 을 연산부(60a)에 건넨다(단계 S2003a). 연산부(60a)는 IN_N 을 바탕으로 N+2 동기째의 처리를 행한다( 단계 S2004a). 동기 클라이언트(50b)에서도 동일한 처리가 행하게 된다. 이와 같이 모든 동기 클라이언트(50)에 있어서 동일한 입력 정보를 공유할 수 있고, 동일한 동기 상태를 공유할 수 있다.
다음에, 도 18을 이용하여 게임의 도중에, 동기 클라이언트(50a)와 동기 서버(10)와의 사이의 통신 상태가 일시적으로 나빠진 경우의 동작을 설명한다. 구체적으로, 동기 클라이언트(50a)에 있어서 W 동기째의 처리를 행하려고 하고 있을 때에, a_W 의 송신을 행할 수 있었으나, b_W-2 를 수신할 수 없었던 경우를 상정한다(단계 S2101a). 상술한 실시 형태와 동일하게, 동기 클라이언트(50a)는 동기 서버(10)에 대해 통신 상태 악화 때문에 W_1 동기째까지 정상적으로 처리할 수 있었던 것을 송신할 수 있을 때까지 재발송 처리를 계속한다(단계 S2102a).
또 동일하게 동기 클라이언트(50b)와 동기 서버(10)와의 사이의 통신 상태도 일시적으로 악화된 경우를 상정하고, 동기 클라이언트(50b)에 있어서도 동일하게 b_W 의 송신을 실시할 수 있었으나, a_W-2 를 수신할 수 없었던 경우를 상정한다(단계 S2101b). 상술한 실시 형태와 동일하게, 동기 클라이언트(5Ob)는 동기 서버(10)에 대해 통신 상태 악화 때문에 W-1 동기째까지 정상적으로 처리할 수 있었던 것을 송신할 수 있을 때까지 재발송 처리를 계속한다(단계 S2102b).
동기 클라이언트(50a)는 상술한 실시 형태와 동일하게 연산부(60a)에 대해 통신 상태가 악화된 것을 통지한다(단계 S0201a와 동일). 상술한 실시 형태와 동일하게 연산부(60a)는 S_W-1 을 백업한다(단계 S0202a와 동일). 동기 클라이언트(50b)에 있어서도 동일하게, 통신 상태의 악화를 연산부(60b)에 통지하고(단계 S0201b와 동일), 연산부(60b)는 S_W-1 을 백업한다(단계 S0202b와 동일). 상술한 실시 형태와 동일하게, 동기 클라이언트 (50a)는 간주 입력 정보로서 IN_W-1 을 연산부(60a)에 계속 양도한다(단계 S0203a와 동일).
연산부(60a)는 상술한 실시 형태와 동일하게 간주 입력 정보 IN_W-1 을 이용하여 W 동기째 이후의 처리를 행한다(단계 S0204a와 동일). 동기 클라이언트(50b), 연산부(60b)에 대해서도 동일한 처리를 행한다. 이와 같이, 통신 상태가 악화된 경우라도, 정상적인 입력 정보 대신에 간주 입력 정보를 이용하여 처리를 행함으로써, 동기 처리의 일시 정지를 막을 수 있고 화면이 일시 정지하는 등의 위화감을 이용자에 주지 않아도 된다.
다음에, 동기 클라이언트(50a)와 동기 서버(10)와의 사이의 통신 상태, 및 동기 클라이언트(50b)와 동기 서버(10)와의 사이의 통신 상태가 회복된 경우의 처리에 대해 설명한다. 상술한 실시 형태와 동일하게, S2102a에 있어서 송신중이였던 「W-1 동기째까지 정상적으로 처리할 수 있었다」라고 하는 정보가 동기 클라이언트(50a)로부터 동기 서버(10)에 대해 송신된다(단계 S0301a와 동일). 동기 클라이언트(50b)에 대해서도 동일하게 「W-1 동기째까지 정상적으로 처리할 수 있었다」라고 하는 정보가 동기 서버(10)에 대하여 송신된다. 상술한 실시 형태와 동일하게, 동기 서버(10)는 모든 동기 클라이언트(50)에 있어서 정상적으로 행해진 동기 회수가 동일했는지를 조사한다(단계 S0302와 동일).
본 실시 형태에 있어서는 모든 동기 클라이언트(50)에 있어서 정상적으로 행해진 동기 회수는 W-1 과 동일하다. 동기 서버(10)는 상술한 실시 형태와 동일하게 동기 클라이언트(50)에 대해 통신이 회복한 것을 통지하고, 다음의 서버 간 통신까지에 필요한 동기 클라이언트(50)측에서의 동기 처리 회수(상술한 실시 형태와 동일하게, K 회로 함), 및 상대의 동기 클라이언트(50)가 어느 회까지 정상적으로 동기 처리를 행했는지 하는 것을 송신한다(단계 S0303과 동일).
통신의 회복 통지를 받은 각 동기 클라이언트(50)는 상술한 실시 형태와 동일하게 현재의 동기 회수를 동기 서버(10)에 통지하고, 동기 서버(10)는 이것을 수신한다(단계 S0305a, 단계 S0305b, 단계 S0306과 동일). 이번에도 상술한 실시 형태와 동일하게, 동기 클라이언트(50a)에 있어서 이루어진 임시 동기 처리의 회수를 M 회로 하고, 동기 클라이언트(50b)에 있어서 이루어진 임시 동기 처리의 회수를 L 회로 한다.
또, 상술한 실시 형태와 동일하게, 각 동기 클라이언트(50)는 상대가 자기 앞으로 송신한 정보로 아직 자신이 수신하고 있지 않는 것을 수신한다(단계 S0402a, 단계 S0403a와 동일).
동기 서버(10)는 상술한 실시 형태와 동일하게 수신한 동기 회수의 차(= L-M)를 없애기 위해 필요한 각 동기 클라이언트(50)에 있어서의 임시의 동기 처리 회수와 속도를 산출한다(단계 S0503와 동일). 동기 서버(10)는 상술한 실시 형태와 동일하게, 각 동기 클라이언트(50)에 대해 산출한 처리 속도와 회수를 통지한다(단계 S0504와 동일).
각 동기 클라이언트(50)는 상술한 실시 형태와 동일하게, 필요 회수만큼 간주 입력 정보를 이용한 동기 처리를 행한 후, 통상의 동기 처리를 재개할 수 있다( 도 7, 도 8에 동일). 동기 처리를 재개할 때의 동기 회수를 V 회로 한다. 본 실시 형태에 있어서는 V 동기째의 처리를 행하는데 V-m 동기째의 입력 정보를 이용한다. 이 때문에, 동기 처리를 재개할 때까지의 사이에 미리 V-m, V-m+1,··· V-1 동기째의 입력 정보를 구비하여 두는 것이 바람직하다. 이와 같이 설정함으로써, V 동기째의 처리를 행하기 위해, V-m 동기째의 입력 정보가 상대로부터 도달하는 것을 기다릴 필요가 없고, 신속하게 다음의 동기 처리를 행할 수 있다.
다음에, m = 2 인 경우에 있어서 동기 클라이언트(50a)와 동기 서버(10)와의 사이의 통신 상태만이 일시적으로 악화된 경우에 대한 처리 방법을 설명한다. 구체적으로는 동기 클라이언트(50a)에 있어서 W 회째의 동기 처리를 행하려 하고 있을 때에, a_W 의 송신을 행할 수 있었으나, b_W-2 를 수신할 수 없었던 경우를 상정한다(단계 S2201a). 상술한 실시 형태와 동일하게, 동기 클라이언트(50a)는 통신 상태 악화 때문에 W-1 동기째까지 정상적으로 처리할 수 있었음을 동기 서버(10)에 송신할 수 있을 때까지 재발송 처리를 계속한다(단계 S2202a).
한편, 동기 클라이언트(50b)는 동기 서버(10)로부터 a_W 까지 수신할 수 있기 때문에, W+2 동기째까지 정상적으로 처리를 진행할 수 있다(단계 S2201b ~ 단계 S2206b). 동기 클라이언트(50b)는 a_W+1 을 수신할 수 없기 때문에 동기 서버(10)에 대해 통신 상태 악화 때문에 W+2 동기째까지 정상적으로 처리할 수 있었음을 송신한다(단계 S2207b).
상술한 실시 형태와 동일하게, 동기 클라이언트(50a)는 연산부(60a)에 대해 통신 상태가 악화된 것을 통지하고, 연산부(60a)는 S_W-1 을 백업한다 (단계 S1101a, 단계 S1102a와 동일). 이후, 통상의 동기 처리가 재개될 때까지의 동안, 간주 입력 정보 INa_W-1 을 이용하여 임시의 동기 처리를 행한다(단계 S1103a, 단계 S1104a와 동일). 동기 클라이언트과 50b에 대해서도 동일하게 S_W+2 를 백업하고, INb_W+2 를 간주 입력 정보로서 이용하면서 임시의 동기 처리를 행한다(단계 S1101b ~ 단계 S1104b와 동일).
다음에, 동기 클라이언트(50a)와 동기 서버(10)와의 사이의 통신 상태가 회복했을 때의 처리에 대해 설명한다. 단계 S2202a에 있어서 송신된 정보가 동기 서버(10)에게 도달한다(단계 S1201a와 동일). 이번은 각 동기 클라이언트(50)에 있어서 정상적으로 행해진 동기 회수가 다르기 때문에(W-1 ≠ W+2), INb_W+2, INb_W+1, INb_W, INb_W-1 이 모두 동일했는지를 확인한다(단계 S1203). 만약, 이들 모두가 동일했던 경우는 각 연산부에 있어서 전혀 동일한 입력 정보가 계속 전달되어 온 것으로 되며, 각 동기 회수에 있어서의 동기 상태는 동일하게 된다. 상술한 실시 형태와 동일하게, 각 동기 클라이언트(50)의 동기 회수를 일치시키면, 동기 상태를 동일하게 할 수 있고 통상의 동기 처리를 재개할 수 있다. 이 이후의 처리는 상술한 실시 형태와 동일한 처리로 된다.
다른 한편, INb_W+2, INb_W+1, INb_W, INb_W-1 중 어느 하나라도 다른 경우는 각 동기 클라이언트에 있어서 다른 입력 정보가 전달되어 있는 것으로 되며, 이미 각 동기 클라이언트에 있어서의 동기 상태가 동일함은 보증할 수 없다. 이 때문에, 상술한 실시 형태와 동일하게, 동기 서버(10)는 각 동기 클라이언트(50)에 대해 동기 상태를 백업한 상태로 되돌릴 필요가 있음을 통지한다(단계 S1401과 동일 ). 이후, 상술한 실시 형태와 동일하게, 작성이 끝난 입력 정보를 준비하고, 산출된 처리 속도에 따라 동기 처리를 행한 후, 통상의 동기 처리를 재개할 수 있다. 또, 상술한 실시 형태와 동일하게, 동기 처리를 재개할 때의 회수를 V 로 한 경우, 동기 처리를 재개할 때까지의 동안에 미리 V-m, V-m+1,···V-1 동기째의 입력 정보를 구비하여 두는 것이 바람직하다.
또, 상술한 실시 형태에서는 간주 입력 정보가 이용되기 시작하고부터 통상의 동기 처리가 재개될 때까지 사이에 이용자가 행한 단추 조작 등은 모두 무시되고 만다. 이것을 막기 위해, 간주 입력 정보를 이용하고 있는 동안은 실제의 입력 정보를 별도 보존해 두고, 통상의 동기 처리가 재개된 시점에서 보존해 둔 정보를 입력 정보로서 이용하는 것으로, 이용자가 행한 입력 처리를 파기하지 않고 이용할 수 있다. 단, 보존한 모든 정보를 이용하고 있으면 항상 이용자가 입력한 정보가 지연되어 이용되는 것으로 되며, 이용자는 항상 위화감을 느끼게 된다. 이것을 막기 위해, 예를 들면 도 20에 나타내는 바와 같이, 보존한 정보를 하나 건너 이용하는 것으로 최종적으로는 이용자가 입력한 정보를 지체 없이 이용할 수 있고, 이용자가 입력한 정보의 일부를 반영시킬 수 있다.
입력 정보의 건너뛰기에 대해서는 하나 건너뛰기에 한정되는 것은 아니다. 예를 들면, N 을 1 이상의 정수로서 n 개 건너뛰게 한 입력 정보를 이용해도 된다.
상술한 바와 같이 구성함으로써, 간주 입력 정보를 이용하고 있는 동안의 실제의 입력 정보를 보존해 두고, 다음에 그 입력 정보를 n 개 건너뛰어서 이용하는 것으로, 이용자가 입력한 정보를 모두 파기하는 것을 막는 것이 가능하게 된다.
여기서, 상술한 지금까지의 처리의 개요를, 도 21을 참조하여 종합해 설명한다.
도 1에 나타낸 동기 통신 게임 시스템(1)은 동기 처리를 실행하고(단계 S3001), 각 동기마다 통신 장해가 발생하고 있는지의 여부를 체크하며(단계 S3002), 상기 단계 S3002에서 통신 장해가 발생하고 있다고 판단된 경우에는 현재의 정상적인 동기 상태를 백업한다(단계 S3003). 한편, 상기 단계 S3002에서 통신 장해가 발생하고 있지 않다고 판단된 경우에는 상기 단계 S3001로 돌아와서, 동기 처리를 실행한다.
상기 단계 S3003에 이어서, 그 이후 정상적인 동기 처리가 재개될 때까지, 직전의 정상적인 입력 정보를 간주 입력 정보로서 이용하여, 임시의 동기 처리를 실시한다(단계 S3004). 이어서, 통신 상태가 회복했는지의 여부를 판단하고(단계 S3005), 상기 단계 S3005에서 통신 상태가 회복했다고 판단되며 또한 회복이 확인된 경우에는 모든 클라이언트에 있어서 동일 동기째에 있어서 임시의 동기 처리가 개시되었는지의 여부를 판단하고(단계 S3006), 상기 단계 S3006에서 모든 클라이언트에 있어서 동일 동기째에 있어서 임시의 동기 처리가 개시되어 있다고 판단된 경우는 모든 클라이언트에 있어서 동기 회수가 동일하게 되도록 조정하고, 다음에 이용하게 되는 입력 정보를 사전에 준비하고(단계 S3007), 통상의 동기 처리를 재개한다(단계 S3008).
다른 한편, 상기 단계 S3006에서 모든 클라이언트에 있어서 동일 동기째에 있어서 임시의 동기 처리가 개시되어 있지 않다고 판단된 경우에는 각 클라이언트 에서 이용된 동기 정보(간주 입력 정보를 포함)가 결과적으로 동일한 것이었는지를 판단하고(단계 S3009), 상기 단계 S3009에 있어서의 판단의 결과, 동일한 것이었던 경우에는 상술한 단계 S3007의 처리를 행하고, 상술한 단계 S3008에서 나타낸 통상의 동기 처리를 재개한다.
다른 한편, 상기 단계 S3009에 있어서의 판단의 결과, 각 클라이언트에서 이용된 동기 정보가 동일한 것이 아니었던 경우에는 다음에 이용하게 되는 입력 정보를 사전에 준비하고(단계 S3010), 각 클라이언트의 동기 상태를 백업해 둔 동기 상태로 되돌린다(단계 S3011). 그리고, 동기 상태를 백업해 둔 것으로 되돌린 후, 상술한 단계 S3008에서 나타낸, 통상의 동기 처리를 재개한다.
본 발명의 동기 통신 장치에 의하면, 상기 구성에 의해, 소정 시간내에 상대로부터의 입력 정보를 수신할 수 없어도 동기 처리를 실행할 수 있으므로, 동기 처리를 일시 정지하는 일 없이, 동기 처리를 진행시킬 수 있다고 하는 효과를 나타낸다.
동일하게, 본 발명의 동기 통신 방법에 의하면, 상기 단계에 의해 소정 시간내에 상대로부터의 입력 정보를 수신할 수 없어도 동기 처리를 실행할 수 있으므로, 동기 처리를 일시 정지하는 일 없이, 동기 처리를 진행시킬 수 있다고 하는 효과를 나타낸다.

Claims (14)

  1. 통신 회선에 접속된 복수의 정보 단말 사이에서 동기를 취하면서 통신 처리를 행하는 동기 통신 장치에 있어서,
    상기 통신 회로에 접속된 상기 복수의 정보 단말이 정상의 통신 상태로 있는지의 여부를 판단하는 판단 수단과,
    상기 판단 수단의 결과에 의해, 상기 복수의 정보 단말 중 적어도 하나의 정보 단말의 통신 상태에 이상이 발생하여 상기 복수의 정보 단말 중 다른 정보 단말과 동기가 취해져 있지 않다고 판단된 경우에는 동기가 취해지지 않은 상기 동기째 직전의 동기째의 입력 정보를 간주(deemed) 입력 정보로서 설정하는 입력 정보 설정 수단과,
    상기 입력 정보 설정 수단에 의해 설정된 간주 입력 정보에 근거하여 소정의 연산 처리를 실행하고 상기 동기가 취해지지 않은 동기째의 동기 상태를 구하는 연산 수단을 구비하고,
    상기 판단 수단이 상기 이상이 발생한 정보 단말의 통신 상태가 회복하여 상기 복수의 정보 단말 중 다른 정보 단말과 동기가 취해진다고 판단할 때까지, 상기 각 처리를 반복하는 것을 특징으로 하는 동기 통신 장치.
  2. 제1항에 있어서,
    상기 연산 수단은 상기 소정의 연산 처리로서 상기 동기가 취해지지 않은 동 기째에 있어서의 게임의 동기 상태를 얻기 위한 연산 처리를 실행하는 것을 특징으로 하는 동기 통신 장치.
  3. 제1항에 있어서,
    상기 연산 수단은 상기 정보 단말을, 동기 상태를 백업한 것으로 되돌리는 것을 특징으로 하는 동기 통신 장치.
  4. 제1항에 있어서,
    상기 입력 정보를 간주 입력 정보로서 계속 설정해도, 상기 판단 수단이 모든 상기 정보 단말을 동일한 동기 상태로 구비하는 것이 불가능하다고 판단한 경우에 상기 연산 수단은 상기 정보 단말을, 동기 상태를 백업한 것으로 되돌리는 것을 특징으로 하는 동기 통신 장치.
  5. 제1항에 있어서,
    상기 연산 수단은 상기 간주 입력 정보를 이용하고 있는 동안에 실제의 입력 정보를 보존하고, 통상의 동기 처리가 재개되었을 때에 입력 정보로서 상기 보존한 정보를 임의의 수만큼 건너뛰어서 이용하는 것을 특징으로 하는 동기 통신 장치.
  6. 제1항에 있어서,
    상기 연산 처리는 게임 캐릭터의 위치의 계산, 정답 판정, 득점 계산 중 어 느 하나 또는 둘 이상의 조합인 것을 특징으로 하는 동기 통신 장치.
  7. 제1항에 있어서,
    상기 입력 정보 설정 수단은 동기가 취해지지 않은 동기째의 입력 정보 대신에, 동기가 취해지지 않은 상기 동기째보다 전인 임의의 동기째의 입력 정보를 간주 입력 정보로서 설정하는 것을 특징으로 하는 동기 통신 장치.
  8. 통신 회선에 접속된 복수의 정보 단말 사이에서 동기를 취하면서 통신 처리를 행하는 동기 통신 방법에 있어서,
    상기 통신 회로에 접속된 상기 복수의 정보 단말이 정상의 통신 상태로 있는지의 여부를 판단하는 단계와,
    상기 판단의 결과에 의해, 상기 복수의 정보 단말 중 적어도 하나의 정보 단말의 통신 상태에 이상이 발생하여 상기 복수의 정보 단말 중 다른 정보 단말과 동기가 취해져 있지 않다고 판단된 경우에는 동기가 취해지지 않은 상기 동기째 직전의 동기째의 입력 정보를 간주 입력 정보로서 설정하는 단계와,
    상기 설정된 간주 입력 정보에 근거하여 소정의 연산 처리를 실행하여 상기 동기가 취해지지 않은 동기째의 동기 상태를 구하는 단계와,
    상기 이상이 발생한 정보 단말의 통신 상태가 회복하여 상기 복수의 정보 단말 중 다른 정보 단말과 동기가 취해질 때까지 상기 각 단계를 반복하는 단계를 구비하는 것을 특징으로 하는 동기 통신 방법.
  9. 제8항에 있어서,
    상기 연산하는 단계는 상기 소정의 연산 처리로서 상기 동기가 취해지지 않은 동기째에 있어서의 게임의 동기 상태를 얻기 위한 연산 처리를 실행하는 것을 특징으로 하는 동기 통신 방법.
  10. 제8항에 있어서,
    상기 연산하는 단계는 상기 정보 단말을, 동기 상태를 백업한 것으로 되돌리는 것을 특징으로 하는 동기 통신 방법.
  11. 제8항에 있어서,
    상기 입력 정보를 간주 입력 정보로서 계속 설정해도, 상기 판단하는 단계에서 모든 상기 정보 단말을 동일한 동기 상태로 구비하는 것이 불가능하다고 판단한 경우에 상기 연산하는 단계 수단은 상기 정보 단말을, 동기 상태를 백업한 것으로 되돌리는 것을 특징으로 하는 동기 통신 방법.
  12. 제8항에 있어서,
    상기 연산하는 단계는 상기 간주 입력 정보를 이용하고 있는 동안에 실제의 입력 정보를 보존하고, 통상의 동기 처리가 재개되었을 때에, 입력 정보로서 상기 보존한 정보를 임의의 수만큼 건너뛰어서 이용하는 것을 특징 하는 동기 통신 방 법.
  13. 제8항에 있어서,
    상기 연산 처리는 게임 캐릭터의 위치의 계산, 정답 판정, 득점 계산 중 어느 하나 또는 둘 이상의 조합인 것을 특징으로 하는 동기 통신 장치.
  14. 제8항에 있어서,
    상기 입력 정보를 설정하는 단계는 동기가 취해지지 않은 동기째의 입력 정보 대신에, 동기가 취해지지 않은 상기 동기째보다 전인 임의의 동기째의 입력 정보를 간주 입력 정보로서 설정하는 것을 특징으로 하는 동기 통신 방법.
KR1020077009111A 2004-10-21 2005-10-14 동기 통신 방법 및 동기 통신 장치 KR100909302B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00306376 2004-10-21
JP2004306376 2004-10-21
JP2004323762 2004-11-08
JPJP-P-2004-00323762 2004-11-08
PCT/JP2005/018936 WO2006043473A1 (ja) 2004-10-21 2005-10-14 同期通信方法および同期通信装置

Publications (2)

Publication Number Publication Date
KR20070055615A true KR20070055615A (ko) 2007-05-30
KR100909302B1 KR100909302B1 (ko) 2009-07-24

Family

ID=36202889

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077009111A KR100909302B1 (ko) 2004-10-21 2005-10-14 동기 통신 방법 및 동기 통신 장치

Country Status (4)

Country Link
US (1) US7840711B2 (ko)
JP (1) JP3984643B2 (ko)
KR (1) KR100909302B1 (ko)
WO (1) WO2006043473A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007105471A1 (ja) * 2006-03-07 2007-09-20 Nec Corporation 資源情報管理装置、システム、方法、及びプログラム
US8595336B1 (en) * 2008-02-01 2013-11-26 Wimm Labs, Inc. Portable universal personal storage, entertainment, and communication device
US8161195B2 (en) * 2009-03-25 2012-04-17 Microsoft Corporation Adaptable management in sync engines
JP2011045504A (ja) * 2009-08-26 2011-03-10 Namco Bandai Games Inc プログラム、情報記憶媒体及びゲーム装置
US8307052B2 (en) 2009-12-29 2012-11-06 International Business Machines Corporation Method and system for communication sessions
JP6221498B2 (ja) * 2013-08-15 2017-11-01 富士通株式会社 情報処理システム及び情報処理システムの制御方法
JP5602963B1 (ja) * 2014-01-30 2014-10-08 グリー株式会社 ゲーム管理プログラム、ゲーム管理方法及びゲーム管理システム
EP3496044A4 (en) * 2016-07-15 2019-10-09 Nurve, Inc. PICTURE DISPLAY AND PICTURE DISPLAY SYSTEM
CN107423015B (zh) 2017-07-24 2018-07-20 腾讯科技(深圳)有限公司 游戏内容的同步显示方法和装置
JP7222628B2 (ja) * 2018-08-03 2023-02-15 株式会社バンダイナムコエンターテインメント ゲームシステム及びプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0698224B2 (ja) * 1988-08-01 1994-12-07 株式会社広布 テレビゲーム用通信システム
JP3101051B2 (ja) * 1992-01-29 2000-10-23 富士通株式会社 同期確立方法
US5751220A (en) 1995-07-14 1998-05-12 Sensormatic Electronics Corporation Synchronized network of electronic devices including back-up master units
US5987376A (en) * 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
AU2001251341A1 (en) * 2000-04-08 2001-10-23 Sun Microsystems, Inc. Resynchronizing media during streaming
US20030046433A1 (en) * 2001-07-25 2003-03-06 Omer Luzzatti Method to synchronize information between online devices
US20060154710A1 (en) * 2002-12-10 2006-07-13 Nokia Corporation Method and device for continuing an electronic multi-player game, in case of an absence of a player of said game

Also Published As

Publication number Publication date
KR100909302B1 (ko) 2009-07-24
US20080126568A1 (en) 2008-05-29
US7840711B2 (en) 2010-11-23
JP3984643B2 (ja) 2007-10-03
JPWO2006043473A1 (ja) 2008-08-07
WO2006043473A1 (ja) 2006-04-27

Similar Documents

Publication Publication Date Title
KR100909302B1 (ko) 동기 통신 방법 및 동기 통신 장치
US6934766B1 (en) Method and apparatus for exchanging event information between computer systems that reduce perceived lag times by subtracting actual lag times from event playback time
US5775996A (en) Method and apparatus for synchronizing the execution of multiple video game systems in a networked environment
CN104375789B (zh) 拼接屏的同步显示方法及系统
US20160357493A1 (en) Synchronization of videos in a display wall
CN113365127B (zh) 局域网多屏显示同步方法及装置
WO2003051046A3 (en) Apparatus and method for synchronizing presentation from bit streams based on their content
KR20000016241A (ko) 기준 클록 신호를 가지는 네트워크로 데이터를 동기적으로 전송하기 위한 방법 및 시스템
CN103597468A (zh) 用于视频通信系统中改进的交互式内容共享的系统和方法
CN103165104A (zh) 用于拼接屏的视频信号同步显示方法
US11573758B2 (en) Display device and multi-display system
EP2999260B1 (en) Control method, device and system for video playing
JP2011035503A (ja) 同期再生方法、他再生端末選択領域映像再生方法、同期再生停止方法、同期再生システムおよびプログラム
KR920002839B1 (ko) 필드편향용 제어신호 발생용 회로
US10805507B2 (en) Method and system for configuring cameras to capture images
JP6689171B2 (ja) 音声処理システム、該音声処理システムに適用される音声認識サーバおよび中継処理装置群、該中継処理装置群に適用される音声処理方法、該音声認識サーバに適用される音声変換方法、ならびにプログラム
JP3979229B2 (ja) 映像表示装置及び同期制御プログラム
US5657247A (en) Method of playing back a sequence of images, in particular an animated sequence, as received successively in digitized form from a remote source, and corresponding apparatus
JP3692386B2 (ja) 通信ネットワークシステムの同期動作方法、および通信ネットワークシステム
JPH08130540A (ja) ストリームデータ同期送信装置及び方法
CN114390155B (zh) 信号备份显示的方法、装置、电子设备和存储介质
JPH0241190A (ja) テレビゲーム用通信システム
JP5194997B2 (ja) 冗長切替制御システム、方法及びプログラム
CN113988569A (zh) 坐席管理系统、图像显示方法、图像显示装置及输出设备
JP2000295206A (ja) ゲームシステム、ゲーム装置、ゲームデータ配信装置、画像データ配信システムおよび情報記憶媒体

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130612

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee