KR102612811B1 - 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치 - Google Patents

정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치 Download PDF

Info

Publication number
KR102612811B1
KR102612811B1 KR1020227043276A KR20227043276A KR102612811B1 KR 102612811 B1 KR102612811 B1 KR 102612811B1 KR 1020227043276 A KR1020227043276 A KR 1020227043276A KR 20227043276 A KR20227043276 A KR 20227043276A KR 102612811 B1 KR102612811 B1 KR 102612811B1
Authority
KR
South Korea
Prior art keywords
client
target object
synchronization target
ownership
clients
Prior art date
Application number
KR1020227043276A
Other languages
English (en)
Other versions
KR20230003311A (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 KR20230003311A publication Critical patent/KR20230003311A/ko
Application granted granted Critical
Publication of KR102612811B1 publication Critical patent/KR102612811B1/ko

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/31Communication aspects specific to video games, e.g. between several handheld game devices at close range
    • 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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
    • 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
    • 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/5593Details of game data or player data management involving scheduling aspects
    • 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/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8082Virtual reality
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Communication Control (AREA)

Abstract

복수의 사용자 단말이 참가하는 구성으로서, 복수의 사용자 단말의 데이터를 동기하는 상황에 있어서, 처리 부담이나 통신 부담의 증가를 억제하는 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치를 제공한다.
서버 장치(1)는, 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속되고, 오브젝트의 소유권을 갖는 클라이언트로부터 상기 동기 대상 오브젝트의 차분을 수신하는 데이터 수신 수단(101)과, 차분에 의해, 동기 대상 오브젝트를 복제한 레플리카(120a, 120b, 120c…)를 갱신하는 데이터 갱신 수단(104)과, 차분을 복수의 클라이언트 중 소유권을 갖는 클라이언트 이외에 송신하는 데이터 송신 수단(102)을 갖는다.

Description

정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치
본 발명은 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치에 관한 것이다.
종래의 기술로서, 사용자 단말의 사용자 오브젝트와 시뮬레이터의 시뮬레이트 대상을 동기하는 정보 처리 장치가 제안되어 있다(예컨대, 특허문헌 1 참조).
특허문헌 1에 개시된 정보 처리 장치는, 미리 정해진 시뮬레이트 대상의 거동을 시뮬레이트하는 개별 시뮬레이터와, 사용자로부터 입력되는 지시에 따라 사용자 오브젝트의 거동을 결정하는 사용자 단말과 접속되고, 정보 처리 장치는 사용자 오브젝트 및 시뮬레이트 대상의 카피(copy)를 유지하며, 사용자 단말은, 미리 정한 타이밍 결정 룰에 기초하여 정해지는 동기 타이밍마다, 시뮬레이트 대상의 정보를, 정보 처리 장치를 통해 개별 시뮬레이터로부터 취득하고, 동기 타이밍 외의 시점에서, 마지막으로 취득한 시뮬레이트 대상의 정보에 기초하여, 시뮬레이트 대상의 거동을 예측하며, 그 예측의 결과를 사용자에게 제시한다. 이러한 구성에 있어서, 처리 부담이나 통신 부담을 경감한다.
[특허문헌 1] 일본 특허 공개 제2007-185446호 공보
그러나, 특허문헌 1의 정보 처리 장치는, 사용자 오브젝트 및 시뮬레이트 대상의 카피를 유지하고, 사용자 오브젝트의 시야 범위에 포함되는 시뮬레이트 대상의 카피를 사용자 단말에 송신하기 때문에, 처리 부담이나 통신 부담을 경감하지만, 정보 처리 장치에 있어서 시뮬레이트 대상의 충돌 판정을 행하여, 상호 작용을 실시하도록 대응하는 시뮬레이터에 통지하는 것이기 때문에, 상기 판정을 위해서 정보 처리 장치의 처리 부담이 있고, 시뮬레이터에 대해서는 사용자 오브젝트 및 다른 시뮬레이트 대상의 카피를 송신하지 않는 것이기 때문에, 복수의 사용자 단말이 참가하는 구성에 있어서 복수의 사용자 단말의 데이터를 동기하는 상황에는 그대로 적용할 수 없다고 하는 문제가 있다.
따라서 본 발명의 목적은, 복수의 사용자 단말이 참가하는 구성으로서, 복수의 사용자 단말의 데이터를 동기하는 상황에 있어서, 처리 부담이나 통신 부담의 증가를 억제하는 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치를 제공하는 것에 있다.
본 발명의 일 양태는, 상기 목적을 달성하기 위해서, 이하의 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치를 제공한다.
[1] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 정보 처리 장치.
[2] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 정보 처리 장치.
[3] 상기 수신 수단은, 상기 복수의 클라이언트가 참가하는 가상 공간에 클라이언트가 참가했을 때에, 상기 클라이언트가 소유권을 갖는 동기 대상 오브젝트를 수신하여 상기 복제 오브젝트로서 기록 매체에 저장하는 상기 [1] 또는 [2]에 기재된 정보 처리 장치.
[4] 상기 수신 수단은, 상기 클라이언트가 새롭게 오브젝트를 생성했을 때에, 상기 새롭게 생성한 오브젝트를 동기 대상 오브젝트로서 복제하여 상기 복제 오브젝트를 기록 매체에 저장하는 상기 [1] 또는 [2]에 기재된 정보 처리 장치.
[5] 상기 송신 수단은, 클라이언트가 참가했을 때, 또는 상기 클라이언트가 새롭게 오브젝트를 생성했을 때에, 기록 매체에 저장한 상기 복제 오브젝트, 또는 상기 동기 대상 오브젝트를, 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 상기 [3] 또는 [4]에 기재된 정보 처리 장치.
[6] 상기 수신 수단은, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하지 않는 상기 [1]∼[5] 중 어느 하나에 기재된 정보 처리 장치.
[7] 상기 갱신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신한 경우, 상기 복제 오브젝트를 갱신하지 않는 상기 [1]∼[5] 중 어느 하나에 기재된 정보 처리 장치.
[8] 상기 송신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신한 경우, 상기 변경 내용 정보를, 상기 소유권을 갖는 클라이언트에 송신하지 않는 상기 [1]∼[5] 중 어느 하나에 기재된 정보 처리 장치.
[9] 상기 갱신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 수신하여, 상기 복제 오브젝트를 갱신하는 상기 [1]∼[8] 중 어느 하나에 기재된 정보 처리 장치.
[10] 상기 클라이언트가, 상기 복수의 클라이언트가 참가하는 가상 공간으로부터 퇴출되었을 때에, 상기 클라이언트가 소유권을 갖고 있던 상기 동기 대상 오브젝트에 대응하는 복제 오브젝트의 소유권을, 상기 소유권의 이양(移讓)이 허가되어 있는 경우에, 미리 정한 룰에 기초하여 상기 클라이언트 이외의 다른 클라이언트에 이양하는 관리 수단으로서 더 기능시키는 상기 [1]∼[9] 중 어느 하나에 기재된 정보 처리 장치.
[11] 상기 클라이언트가, 상기 클라이언트가 참가하는 가상 공간으로부터 퇴출되었을 때에, 상기 클라이언트가 소유권을 갖고 있던 상기 동기 대상 오브젝트에 대응하는 복제 오브젝트의 소유권의 이양이 허가되어 있지 않은 경우에, 상기 복제 오브젝트를 삭제하는 관리 수단으로서 더 기능시키고,
상기 송신 수단은, 상기 클라이언트 이외의 다른 클라이언트에 유지되어 있는 상기 복제 오브젝트에 대응하는 오브젝트를 삭제하도록 상기 다른 클라이언트에 지시하는 상기 [1]∼[8] 중 어느 하나에 기재된 정보 처리 장치.
[12] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 컴퓨터를,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단으로서 기능시키기 위한 데이터 동기 프로그램.
[13] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 컴퓨터를,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단으로서 기능시키기 위한 데이터 동기 프로그램.
[14] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치에 있어서,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 단계와,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 단계와,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 단계를 갖는 데이터 동기 방법.
[15] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치에 있어서,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 단계와,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 단계와,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 단계를 갖는 데이터 동기 방법.
[16] 오브젝트를 서로 동기하는 복수의 클라이언트와,
상기 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 정보 처리 장치를 구비한 데이터 동기 시스템.
[17] 오브젝트를 서로 동기하는 복수의 클라이언트와,
상기 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 정보 처리 장치를 구비한 데이터 동기 시스템.
[18] 상기 복수의 클라이언트는, 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 상기 정보 처리 장치에 송신하는 상기 [16]∼[18] 중 어느 하나에 기재된 데이터 동기 시스템.
[19] 정보 처리 장치를 통해 다른 클라이언트와 오브젝트를 서로 동기하는 클라이언트로서의 단말 장치로서,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로부터의 상기 동기 대상 오브젝트의 변경 내용 정보를, 상기 정보 처리 장치를 통해 수신하는 수신 수단과,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 상기 정보 처리 장치와 통신 가능하게 접속되는 클라이언트로서의 단말 장치.
[20] 정보 처리 장치를 통해 다른 클라이언트와 오브젝트를 서로 동기하는 클라이언트로서의 단말 장치로서,
동기 대상 오브젝트를 복제한 복제 오브젝트가 자기 클라이언트에 있어서 갱신된 경우,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 상기 자기 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 정보 처리 장치에 송신하는 송신 수단을 갖는 상기 정보 처리 장치와 통신 가능하게 접속되는 클라이언트로서의 단말 장치.
[21] 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 상기 정보 처리 장치에 송신하는 상기 [19] 또는 [20]에 기재된 클라이언트로서의 단말 장치.
청구항 1, 2, 12, 13, 14, 15, 16, 17, 19, 20에 따른 발명에 의하면, 복수의 사용자 단말이 참가하는 구성으로서, 복수의 사용자 단말의 데이터를 동기하는 상황에 있어서, 처리 부담이나 통신 부담의 증가를 억제할 수 있다.
청구항 3에 따른 발명에 의하면, 동기 대상 오브젝트의 소유권을 갖는 클라이언트가 참가했을 때에, 상기 동기 대상 오브젝트를 복제하여 복제 오브젝트를 생성할 수 있다.
청구항 4에 따른 발명에 의하면, 동기 대상 오브젝트의 소유권을 갖는 클라이언트가 새롭게 오브젝트를 생성했을 때에, 상기 새롭게 생성한 오브젝트를 동기 대상 오브젝트로서 복제하여 복제 오브젝트를 생성할 수 있다.
청구항 5에 따른 발명에 의하면, 소유권을 갖는 클라이언트가 참가했을 때, 또는 소유권을 갖는 클라이언트가 새롭게 오브젝트를 생성했을 때에 생성한 복제 오브젝트를, 복수의 클라이언트 중 소유권을 갖는 클라이언트 이외에 송신할 수 있다.
청구항 6에 따른 발명에 의하면, 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하지 않도록 할 수 있다.
청구항 7에 따른 발명에 의하면, 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신한 경우, 복제 오브젝트를 갱신하지 않도록 할 수 있다.
청구항 8에 따른 발명에 의하면, 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하여, 복제 오브젝트를 갱신한 경우, 상기 갱신한 복제 오브젝트를, 소유권을 갖는 클라이언트에 송신하지 않도록 할 수 있다.
청구항 9에 따른 발명에 의하면, 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 동기 대상 오브젝트와의 차분을 수신하여, 복제 오브젝트를 갱신하도록 할 수 있다.
청구항 10에 따른 발명에 의하면, 클라이언트가 퇴출되었을 때에, 상기 클라이언트가 소유권을 갖고 있던 동기 대상 오브젝트에 대응하는 복제 오브젝트의 소유권을, 상기 소유권의 위양(委讓)이 허가되어 있는 경우에, 미리 정한 룰에 기초하여 상기 클라이언트 이외의 다른 클라이언트에 위양할 수 있다.
청구항 11에 따른 발명에 의하면, 클라이언트가 퇴출되었을 때에, 상기 클라이언트가 소유권을 갖고 있던 동기 대상 오브젝트에 대응하는 복제 오브젝트의 소유권의 위양이 허가되어 있지 않은 경우에, 상기 복제 오브젝트를 삭제하고, 상기 클라이언트 이외의 다른 클라이언트에 유지되어 있는 복제 오브젝트에 대응하는 오브젝트를 삭제하도록 상기 다른 클라이언트에 지시할 수 있다.
청구항 18에 따른 발명에 의하면, 복수의 클라이언트는, 정보 처리 장치로부터 자기가 소유권을 갖는 동기 대상 오브젝트의 복제 오브젝트를 수신한 경우, 상기 복제 오브젝트를 수신 거부하도록 할 수 있다.
청구항 21에 따른 발명에 의하면, 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 상기 정보 처리 장치에 송신하도록 할 수 있다.
도 1은 실시형태에 따른 동기 시스템의 구성의 일례를 도시한 개략도이다.
도 2는 실시형태에 따른 서버 장치의 구성예를 도시한 블록도이다.
도 3은 참가자 관리 정보의 구성을 도시한 도면이다.
도 4는 레플리카(replica) 관리 정보의 구성을 도시한 도면이다.
도 5는 동기 동작의 일례를 설명하기 위한 흐름도이다.
도 6은 소유권에 기초한 동기 동작의 일례를 설명하기 위한 흐름도이다.
도 7은 도중 참가에서의 동기 동작의 일례를 설명하기 위한 흐름도이다.
도 8은 도중 퇴출에서의 동기 동작의 일례를 설명하기 위한 흐름도이다.
도 9는 도중 퇴출에서의 동기 동작의 다른 예를 설명하기 위한 흐름도이다.
[실시형태]
본 실시형태에서의 동기 시스템에 있어서, 복수의 참가자가 공통의 가상 공간에서의 활동, 예컨대 게임을 행하는 다인수 참가형 게임(MMOG: Massively Multiplayer Online Game)이 실행된다.
다인수 참가형 게임에서는 가상 공간에 있어서 시간의 경과와 함께, 참가자의 활동이 서로 관련된다. 복수의 참가자에 의해 조작되는 복수의 가상의 캐릭터는, 시간의 경과에 따라 대화하고, 전투하며, 혹은 아이템을 모으는 등의 활동을 행한다. 그리고 이 활동에 의해 캐릭터는 소유하는 아이템, 전투에 관한 수치나 행동에 대한 경험치를 증감한다.
이러한 가상 공간에서, 클라이언트 단말에서는, 가상의 캐릭터나 아이템에 의한, 활동의 시간 경과에 따른 변화의 상황이 동기하여 표시되어, 참가자는 동일한 가상 공간을 체험할 수 있다. 바꿔 말하면, 각 클라이언트 사이에서, 가상의 캐릭터나 아이템과 같은, 게임상에 존재하는 오브젝트를 동기시킬 필요가 있다.
즉, 상기한 바와 같은 다인수 참가형 게임으로서의 온라인 게임이나, 그 외 회의 시스템 등의 네트워크 애플리케이션에서는, 참가자의 단말 사이에서, 도큐먼트나 동화상 등의 콘텐츠 정보를 동기시키는 기술이 이용된다. 여기서, 참가자 인수나 동기 대상의 콘텐츠(동기 대상 오브젝트)의 수가 커지면 동기에 필요한 데이터량이 증가하고, 동기의 지연(래그, 혹은, 레이턴시)이 증대하여, 네트워크 애플리케이션으로서 사용에 견딜 수 없게 된다.
MMOG나 FPS(First-Person Shooter) 등 게임의 세계에서는, 동기의 지연은 치명적이며, 게임으로서 성립하지 않게 된다. 그 때문에, 동기 대상 오브젝트의 수나 참가자 인수를 줄이는 고안이 이루어지고 있다.
동기 대상 오브젝트의 수를 줄이기 위해서는, 게임 설계에 고안이 필요하다. 참가인수를 줄이기 위해서, 공유하는 가상 공간(룸)을 분할하거나, 혹은, 인수 제한을 설정하여 동일한 가상 공간(룸)을 복수 준비하거나 한다. 단, 이 방법에서는, 참가하고 있는 룸이 상이한 참가자는 게임 체험을 공유할 수 없다. 그 때문에, 게임 체험을 완전히 공유하기 위해서는, 동일한 룸에 참가하는 것이 바람직하다.
단일 룸에 수용 가능한 공유 오브젝트나 참가자의 수의 제한을 크게 할 수 있으면, 게임 설계의 자유도나 참가자의 게임 체험을 크게 개선할 수 있다. 이후, 단일 룸에 수용 가능한 공유 오브젝트나 참가자의 수를 크게 하고, 동기의 지연을 억제하기 위한 동기 시스템의 구성에 대해 설명한다.
(동기 시스템의 구성)
도 1은 실시형태에 따른 동기 시스템의 구성의 일례를 도시한 개략도이다.
이 동기 시스템은, 정보 처리 장치로서의 서버 장치(1)와, 클라이언트로서의 단말 장치(2a, 2b, 2c)를 네트워크에 의해 서로 통신 가능하게 접속함으로써 구성된다. 장치나 네트워크는, 클라우드나 퍼스널 컴퓨터나 게임 단말이나 LAN이나 인터넷이어도 좋고, 가상 머신이나 가상 네트워크 등이어도 좋다.
서버 장치(1)는, 서버형의 정보 처리 장치이고, 조작자가 조작하는 단말 장치(2a, 2b, 2c)의 요구에 따라 동작하는 것이며, 본체 내에 정보를 처리하기 위한 기능을 갖는 CPU(Central Processing Unit)나 HDD(Hard Disk Drive) 또는 플래시 메모리, 휘발성 메모리, LAN 보드(무선/유선) 등의 전자 부품을 구비한다. 서버 장치(1)는, 단말 장치(2a, 2b, 2c)와 통신하여, 데이터의 송수신을 행함으로써 단말 장치(2a, 2b, 2c) 상에서 취급하는 데이터의 동기를 행하는 것이며, 예컨대, 게임 서버 등이다. 또한, 서버 장치(1)는, 복수의 클러스터에 의해 구성해도 좋고, 분산 처리를 실행하도록 구성해도 좋다. 혹은, 클라우드 환경에 있어서 가상 머신으로서 구성해도 좋다.
단말 장치(2a, 2b, 2c)는, 단말형의 정보 처리 장치이고, 프로그램에 기초하여 동작하는 것이며, 본체 내에 정보를 처리하기 위한 기능을 갖는 CPU나 HDD 또는 플래시 메모리 등의 전자 부품을 구비한다. 단말 장치(2a, 2b, 2c)는, 예컨대, MMOG 등의 프로그램에 기초하여 동작하고, 동작의 결과로서 데이터를 서버 장치(1)에 대해 축차 출력하며, 서버 장치(1)로부터 다른 단말의 동작의 결과로서의 데이터를 수신하여 각 단말 장치(2a, 2b, 2c) 사이에서 고빈도로 게임 오브젝트를 동기하는 것이다. 또한, 단말 장치(2)는 3개의 장치로 그려져 있으나 단일 혹은 2개의 장치여도 좋고, 4 이상의 장치로 구성해도 좋으며, 바람직하게는, 1000대 오더의 단말 장치가 접속되는 것과 같은 경우여도 통신 가능한 구성을 제공한다.
네트워크(4)는, 고속 통신이 가능한 통신 네트워크이고, 예컨대, 인트라넷이나 LAN(Local Area Network) 등의 유선 또는 무선의 통신망이다.
일례로서, 서버 장치(1) 및 단말 장치(2a, 2b, 2c)는, 게임의 진행에 따라 각 장치 내에서 오브젝트로서 유지하고 있는 정보(동기 대상 오브젝트)를, 각 장치 사이에서 동기하기 위해서 동작하고, 각 장치 내의 오브젝트의 카피를 레플리카(복제 오브젝트)로서 유지하며, 상기 레플리카의 소유권을 관리하면서 레플리카를 각 장치에서 카피하여(터셔리 카피로서) 유지하기 위해서 레플리카의 송수신(릴레이)을 함으로써 동기 동작의 보조를 행한다. 또한, 서버 장치(1)는 실제로는 동기 동작을 행하고 있는 것이 아니라, 릴레이를 행하는 것이지만, 동기를 위한 릴레이를 보다 광의로 「동기」, 이 동작을 「동기 동작」이라고 하는 경우가 있다. 또한, 보다 구체적으로는, 소유권을 갖는 사용자의 단말 장치에서의 오브젝트의 갱신에 의해서만 서버 장치(1)의 레플리카의 내용이 갱신되고, 소유권을 갖지 않는 다른 사용자의 단말 장치에서의 오브젝트(터셔리 카피)의 갱신은 행해지지 않는다. 이후, 서버 장치(1)가 릴레이 서버가 되어 단말 장치(2a, 2b, 2c) 사이에서 오브젝트의 동기를 행할 때의 구성, 동작의 상세에 대해, 실시형태에서 구체적으로 설명한다.
또한, 본 실시형태에서 사용하는 「오브젝트」, 「클래스」, 「필드」, 「인스턴스」 등의 어구는, 예컨대, Java(등록 상표), C++, C#, Python, JavaScript(등록 상표), Ruby 등에서 이용되는 동 어구와 같은 뜻으로 이용되지만, 이후, 클래스, 및 인스턴스화된 클래스(인스턴스)를 총칭하여 「오브젝트」라고 하는 경우가 있다. 「클래스」는, 프로그램을 실행하기 위한 처리를 통합한 것이며, 클래스 중에는 처리를 실행하는 메소드, 메소드가 처리를 실행할 때에 이용하는 변수로서 필드가 포함된다. 오브젝트는 0개 이후의 필드를 갖고, 각 필드는, 단수 또는 복수의 필드명, 필드값을 갖는다.
(서버 장치의 구성)
도 2는 실시형태에 따른 서버 장치(1)의 구성예를 도시한 블록도이다.
서버 장치(1)는, CPU(Central Processing Unit) 등으로 구성되고, 각부를 제어하며, 각종의 프로그램을 실행하는 제어부(10)와, 플래시 메모리 등의 기억 매체로 구성되며 정보를 기억하는 기억부(11)와, 휘발성 기록 매체로 구성되며 일시적으로 정보를 기억하는 메모리(12)와, 네트워크를 통해 외부와 통신하는 통신부(13)를 구비한다.
제어부(10)는, 데이터 동기 프로그램으로서의 데이터 처리 프로그램(110)을 실행함으로써, 참가자 관리 수단(100), 데이터 수신 수단(101), 데이터 송신 수단(102), 레플리카 관리 수단(103), 데이터 갱신 수단(104) 등으로서 기능한다.
참가자 관리 수단(100)은, 통상 룸 ID가 부여된 룸이라고 불리는 공통의 가상 공간에 참가하는 참가자에게 상기 참가자의 사용자 ID, 상기 참가자의 단말 장치의 소켓 ID 등을 기록하여 상기 룸의 참가자 관리 정보(111)로서 기억부(11)에 저장한다. 단일의 가상 공간밖에 제공하지 않는 시스템에서는, 룸을 구별할 필요가 없기 때문에, 룸 ID가 불필요한 경우도 있다.
데이터 수신 수단(101)은, 통신부(13)를 통해 단말 장치(2a, 2b, 2c)로부터 각각이 소유하는 동기 대상의 데이터로서, 제로 개 이상 임의 개의 오브젝트를 수신하여 복제하고, 복제 오브젝트로서 레플리카(120a), 레플리카(120b), 레플리카(120c)를 메모리(12)에 저장한다.
데이터 송신 수단(102)은, 참가자 관리 정보(111)와 레플리카 관리 정보(112)의 송신 룰에 기초하여 송신처로서 정해진 단말에 레플리카(120a), 레플리카(120b), 레플리카(120c)를, 통신부(13)를 통해 송신한다.
레플리카 관리 수단(103)은, 레플리카(120a), 레플리카(120b), 레플리카(120c)가 생성되었을 때에 상기 레플리카(120a), 레플리카(120b), 레플리카(120c)의 레플리카 ID와, 상기 레플리카 ID의 레플리카의 소유권을 갖는 소유자의 사용자 ID, 동기하는 이용자를 나타내는 송신 룰, 이양의 가부 등의 폴리시(policy)를 기록하여 레플리카 관리 정보(112)로서 기억부(11)에 저장한다.
데이터 갱신 수단(104)은, 레플리카(120a), 레플리카(120b), 레플리카(120c)에 대응하는 오브젝트가 갱신된 경우에, 데이터 수신 수단(101)에 의해 레플리카 관리 정보(112)에 기초하여 소유권을 갖는 사용자의 단말 장치로부터 그 차분을 수신하여, 갱신한다. 또한, 차분을 수신하는 것이 네트워크의 정보량을 억제하는 관점에서 바람직하지만, 갱신된 오브젝트 그 자체를 수신해도 좋다. 또한, 데이터 송신 수단(102)은, 참가자 관리 정보(111)와 레플리카 관리 정보(112)에 기초하여 송신처로서 정해진 단말에, 차분을 보낸다. 또한, 차분을 송신하는 것이 네트워크의 정보량을 억제하는 관점에서 바람직하지만, 갱신된 오브젝트 그 자체를 송신해도 좋다.
기억부(11)는, 제어부(10)를 전술한 각 수단(100-104)으로서 동작시키는 데이터 처리 프로그램(110), 참가자 관리 정보(111), 레플리카 관리 정보(112) 등을 기억한다. 기억부는, 릴레이셔널·데이터베이스나 파일 시스템 등을 이용한다. 또한, 고속화를 위해서, Redis 등 인 메모리 데이터베이스를 이용, 혹은, 병용해도 좋다.
메모리(12)는, 레플리카(120a, 120b, 120c…) 및 그 외의 정보를 일시적으로 기억한다.
또한, 단말 장치(2a, 2b, 2c)는, 서버 장치(1)와 동일한 구성에 더하여, 조작부 및 표시부를 구비한다. 서버 장치(1)와 구성이 공통되는 부분에 대해서는 설명을 생략한다.
도 3은 참가자 관리 정보(111)의 구성을 도시한 도면이다.
참가자 관리 정보(111)는, 가상 공간인 룸마다 작성되고, 참가자를 식별하기 위한 사용자 ID와, 참가자의 사용자명과, 참가자가 조작하는 단말 장치 및 서버 장치(1)의 IP 어드레스, 포트 번호 등의 송수신에 필요한 정보를 포함하는 소켓(TCP 소켓 혹은 UDP 소켓)의 소켓 ID와, 상기 룸에 참가한 일시를 나타내는 참가 일시를 갖는다. 또한 참가자의 룸 내에서의 역할, 소속 그룹, 공유 오브젝트 갱신 시의 송신, 수신하는 동기 대상 오브젝트의 선정 룰(거리가 가깝다, 시계에 들어와 있다), 수신의 형식 혹은 그 프리퍼런스(디폴트)를 기술해도 좋다.
도 4는 레플리카 관리 정보(112)의 구성을 도시한 도면이다.
레플리카 관리 정보(112)는, 가상 공간인 룸마다 작성되고, 레플리카를 식별하기 위한 레플리카 ID와, 상기 레플리카의 소유권을 갖는 참가자 ID를 나타내는 소유자와, 동기하기 위해서 상기 레플리카를 송신해야 할 송신의 룰과, 상기 레플리카의 소유권이 이전 가능한지의 여부를 나타내는 이양을 갖는다. 또한, 이양할 수 있는 경우에는 이전 방법의 룰이나, 오브젝트 갱신 시의 송신, 수신의 데이터 형식 혹은 그 프리퍼런스를 기술해도 좋다. 또한, 송신의 룰은, 클라이언트 단말의 성능, 클라이언트 단말의 네트워크 상황, 소유권을 갖는 사용자의 역할, 소속 그룹에 의해 정의해도 좋고(도 4 내의 「그룹 α」), 상기 오브젝트에 대한 거리가 가깝다, 시계에 들어와 있다 등의 기준에 의해 정의해도 좋다(도 4 내의 「거리 50 이내」). 혹은, 클라이언트 단말의 성능, 클라이언트 단말의 네트워크 상황으로 정의해도 좋다.
(정보 처리 장치의 동작)
다음으로, 본 실시형태의 작용을, (1) 기본 동작, (2) 동기 동작, (3) 도중 참가·퇴출 동작으로 나누어 설명한다.
(1) 기본 동작
복수의 사용자가, 복수의 게임 오브젝트를 동기시켜 동일한 가상 공간(룸)에서의 체험(게임 플레이)을 공유하기 위해서, 동일한 가상 공간에 참가한다. 설명에서는 간단을 위해서, 단일의 가상 공간만을 제공하는 게임의 예를 설명한다. 사용자는 게임에 참가하기 위해서 서버에 접속하면, 참가 사용자의 유무·다과(多寡)에 관계없이, 항상 계속 존재하는 유일한 룸에 참가하는 것으로 한다. 게임이 복수의 룸을 사용하는 경우에는, 룸 정보 관리 기능으로 룸마다 대응하는 참가자 관리 정보(111)와 레플리카 관리 정보(112)에의 링크 정보(룸에 대응된 참가자 관리 정보 ID 및 레플리카 관리 정보 ID)를 유지 관리한다. 먼저, 단말 장치(2a, 2b, 2c)는, 예컨대, 네트워크 대전형 게임의 프로그램을 실행하는 것이며, 공통의 가상 공간에서 게임을 플레이하기 위해서 서버 장치(1)에 대해 룸에의 참가 요구를 송신한다. 또한, 게임의 진행은 각 단말 장치(2a, 2b, 2c)에서 행하고, 서버 장치(1)는, 게임의 진행은 행하지 않고, 후술하는 오브젝트의 동기 동작만을 행한다.
서버 장치(1)의 참가자 관리 수단(100)은, 룸에의 참가 요구를 수신하면, 참가자에 대해 사용자 ID, 사용자명, 소켓 ID, 참가 일시와 함께 기억부(11)의 상기 룸 ID에 관련된 참가자 관리 정보(111)에 기록한다.
룸에의 참가는 게임 디자인에 따라 여러 가지 형태가 생각된다. 게임이 단일의 룸밖에 제공하지 않는 경우에는, 참가한(로그인 등) 사용자는 전부 디폴트의 룸에 참가한다. 게임이 복수의 룸을 제공하는 경우에는, 참가한 사용자는 대기소에 해당하는 로비라고 하는 특수한 룸(인수 제한이 있으면 복수 로비가 존재하는 경우도 있음)에 입장한 후, 목적의 룸으로 이동하는 형태도 있다. 또한, 게임이 복수의 룸을 제공하는 경우에는, 사용자가 이전에 참가하고 있던 룸으로 복귀하는 형태도 있다. 룸이 신규로 작성된 경우에는, 혼자서 게임이 개시되어도 좋고, 참가자가 몇 사람 모이고 나서 적당한 타이밍에 게임이 개시되어도 좋다. 또한, 이미 룸 내에서 게임이 개시되어 있는 경우에는, 참가하는 사용자는, 도중 참가로서 취급된다(후술하는 「(3) 도중 참가·퇴출 동작」 참조.). 본 발명에서는 룸에의 참가 방법은 특별히 한정하지 않는다. 또한, 복수의 룸이 준비되는 경우에는, 룸 관리 테이블을 준비하여 관리한다.
단말 장치(2a, 2b, 2c)는, 게임의 플레이 중에는, 프로그램의 실행에 따라 복수의 오브젝트(캐릭터, 무기, 아이템 등)를 축차 생성, 갱신, 삭제하여 처리한다. 서버 장치(1)는, 단말 장치(2a, 2b, 2c)에서의 오브젝트의 동기를 위한 릴레이 동작을 행한다. 이하, 예컨대, 게임의 플레이 중에 있어서, 단말 장치(2a, 2b, 2c)의 모든 오브젝트가 동기된 후, 단말 장치(2a)에 있어서 새로운 동기 대상 오브젝트가 생성된 경우에 대해, 동기 동작을 설명한다.
(2) 동기 동작
도 5는 동기 동작의 일례를 설명하기 위한 흐름도이다.
먼저, 단말 장치(2a)는, 게임의 진행에 따라 새로운 동기 대상 오브젝트로서의 오브젝트 A0을 생성한다(S120a). 다음으로, 단말 장치(2a)는, 상기 오브젝트 A0의 프라이머리 카피 A0을 생성하여(S121a), 서버 장치(1)에 송신한다. 또한, 프라이머리 카피를 생성하는 이유는, 오브젝트 A0이 경시적으로 변화하는 것이기 때문에, 어떤 타이밍(미리 정한 동기 타이밍 또는 변화가 발생한 타이밍 등)에서의 오브젝트의 상태를 나타내는 데이터로서 프라이머리 카피를 생성하여 동기용의 정보로서 취급한다. 또한, 프라이머리 카피를 생성하는 다른 이유는, 이후의 동기에 있어서, 경시 변화에 의한 차분을 확인하기 위해서도, 직전의 동기에 사용한 정보는 필요해지는 경우가 있다. 한편, 실장에 따라서는, 프라이머리 카피를 만들지 않고, 오브젝트 A0을 직접 동기용의 정보로서 취급하여, 서버 장치(1)에 송신해도 좋다. 혹은, 특히 복수의 오브젝트로 구성되는 복합 오브젝트에서는, 양자의 조합이어도 좋다. 이하의 설명에서는, 프라이머리 카피와 동기 대상 오브젝트는 엄밀히 구별하지 않는다.
서버 장치(1)의 데이터 수신 수단(101)은, 통신부(13)를 통해 단말 장치(2a)로부터 동기 대상의 데이터로서 오브젝트의 프라이머리 카피를 수신하여 복제하고, 세컨더리 카피로서 레플리카 A0을 메모리(12)에 저장한다(S110).
서버 장치(1)의 레플리카 관리 수단(103)은, 레플리카 A0이 생성되었을 때에, 예컨대, 상기 레플리카 A0의 소유자 「U001」[단말 장치(2a)의 사용자], 송신처 룰로서 「단말 장치(2a)의 사용자 이외」, 이양의 가부 「OK」 등의 폴리시를 기록하여 레플리카 관리 정보(112)를 갱신하여 기억부(11)에 저장한다. 폴리시는, 오브젝트의 종류마다 고정으로 정의(예컨대, 디폴트로서, 송신처는 소유자 이외의 룸 참가자 전원, 이양은 불가 등)되어 있어도 좋고, 단말 장치(2a)가 오브젝트를 작성할 때에 지정하거나 해도 좋으며, 소유권을 갖는 단말 장치(2a)가 게임 진행에 따라 수시로 지정이나 변경을 해도 좋고, 송신처의 단말 장치(2b)가 단말 장치(2a)와는 가상 공간 상에서의 거리가 떨어지는 등의 이유로 일시적으로 수취하지 않는 지정을 해도 좋다.
다음으로, 서버 장치(1)의 데이터 송신 수단(102)은, 레플리카 관리 정보(112)에 기초하여 송신처로서 정해진 사용자의 단말 장치(2b, 2c)[필요에 따라 참가자 관리 정보(111) 등을 참조하여]에 레플리카 A0을, 통신부(14)를 통해 송신한다.
단말 장치(2b, 2c)는, 서버 장치(1)로부터 레플리카 A0을 수신하여 복제하고, 터셔리 카피로서의 터셔리 A0을 메모리에 저장한다(S120b, S120c). 단말 장치(2b, 2c)는, 상기 터셔리 A0에 의해 동기된 오브젝트에 기초하여 게임을 진행한다. 또한, 이후의 단계에서 터셔리의 차분 갱신을 행하는 경우에는, 게임의 진행에 의해, 터셔리를 직접 변경하지 않는 것과 같은 고안이 필요하다. 만일, 게임의 진행에 따른 상호 작용이나 래그를 저감시키기 위한 움직임 예측으로, 터셔리의 내용을 변경하는 것과 같은 경우에는, 미리 게임 진행용으로 터셔리의 카피를 이용하여 게임의 진행에 따라 조작하고, 이후에 서버 장치(1)로부터 차분 갱신 정보가 보내져 온 경우에는, 터셔리에 차분을 적용·갱신한 터셔리로, 게임 진행용의 터셔리의 카피를 치환하여 동기시킨다. 순식간에 치환하면, 차분이 크거나, 혹은, 움직임이 원활하지 않은 경우에는, 터셔리의 카피의 필드값은, 갱신 후의 터셔리의 필드값에 시간을 들여 매끄럽게 일치시키는 등 하여, 사용자 체험을 향상시켜도 좋다.
다음으로, 단말 장치(2a)는, 게임의 진행과 함께 또한 오브젝트 A0의 필드값 등을 변경하여 오브젝트 A1로 한다(S122a). 다음으로, 단말 장치(2a)는, 상기 오브젝트 A1에 대응시켜 프라이머리 카피를 갱신(프라이머리 카피 A1)하고, 오브젝트 A0에 대응하는 프라이머리 카피 A0과의 차분 A01을 생성하며(S123a), 차분 A01로서 변경된 필드의 갱신 정보를 서버 장치(1)에 송신한다. 바람직하게는, 동기 대상 오브젝트의 모든 필드 중, 이전회 동기 정보를 송신하고 나서의 차분이 게임 콘텐츠에 따라 미리 정하고 있는 임계값(threshold)을 초과하여 충분히 크고, 동기 상태를 유지하는 데에는 갱신이 필요한 필드에 대해서만, 필드명과 필드값의 페어로 하여, 갱신이 필요한 필드의 개수만을 리스트 정보로서 통합하여 송신한다. 제로 개의 경우, 송신하지 않거나, 혹은, 0개의 갱신으로서 송신한다. 또한, 필드명이 긴 경우 등은, 필드명은 번호 등으로 코딩하여, 데이터 사이즈를 압축하는 것과 같은 데이터 직렬화(data serialization) 기법을 이용해도 좋다.
서버 장치(1)의 데이터 수신 수단(101)은, 통신부(13)를 통해 단말 장치(2a)로부터 차분 A01을 수신하고(S111), 데이터 갱신 수단(104)에 의해 메모리(12)의 레플리카 A0을 레플리카 A1로 갱신한다(S112).
다음으로, 서버 장치(1)의 데이터 송신 수단(102)은, 레플리카 관리 정보(112)에 기초하여 송신처로서 정해진 단말 장치(2b, 2c)에 레플리카 A0의 차분 A01을, 통신부(14)를 통해 송신한다.
단말 장치(2b, 2c)는, 서버 장치(1)로부터 차분 A01을 수신하고(S121b, S121c), 메모리의 터셔리 A0을 터셔리 A1로 갱신하며(S122b, S122c), 상기 터셔리 A1에 의해 동기된 오브젝트에 기초하여 게임을 진행한다. 단말 장치(2a, 2b, 2c)는 각각이 로컬에 보존하고 있는 프라이머리 카피와 터셔리 카피를 동기 대상 오브젝트의 최신 상태라고 가정하여, 각각 독립적으로 사용자 조작의 처리나 물리 시뮬레이션을 행하면서 게임을 진행한다. 그 결과, 각각의 프라이머리 카피에 변경이 발생한 경우에는, S422a 및 S423a에 상당하는 처리를 행하여, 차분을 서버 장치(1)에 송신하는 것을 반복한다.
또한, 상기 동작은, 소유권을 갖는 사용자 ID 「U001」의 단말 장치(2a)가 오브젝트 A0의 생성, 변경을 행하는 경우에 대해 설명하였으나, 삭제도 행할 수 있고, 삭제된 경우에는, 서버 장치(1)에 삭제했다는 취지를 통지하고, 서버 장치(1)가 다른 단말 장치(2b, 2c)에 대해 삭제했다는 취지를 통지한다. 또한, 상기 동작은, 소유권을 갖는 사용자 ID 「U001」의 단말 장치(2a)가 오브젝트 A0을 1개만 생성하는 경우에 대해 설명하였으나, 단말 장치(2a, 2b, 2c) 각각이 생성하는 오브젝트의 개수에 제한은 없고, 오브젝트는 각각이 2개 이상 생성해도 좋고, 1개도 생성하지 않아도 좋다.
또한, 단말 장치(2a)는, 오브젝트에 변경이 없는 경우에는 서버 장치(1)에 통지하지 않음으로써 통신량을 억제하지만, 변경이 없는 경우에도 통지하는 사양으로 해도 좋다. 또한, 단말 장치(2a)는, 오브젝트에 변경이 있었던 경우, 차분 정보를 송신하여 통신량을 억제하지만, 필드의 일부라도 변경이 있었던 경우, 혹은, 변경이 있어도 없어도 정기적으로, 변경이 없는 필드도 포함시켜 오브젝트 전체를 통지하는 사양으로 해도 좋다. 또한, 이들 사양을 정적, 동적으로, 동기 대상 오브젝트마다 전환하여 통지하는 사양으로 해도 좋다.
다음으로, 오브젝트가 갱신된 경우의 동기의 룰에 대해 설명한다.
도 6은 소유권에 기초한 동기 동작의 일례를 설명하기 위한 흐름도이다.
단말 장치(2a)의 오브젝트 A0(S220a, S221a)이 레플리카 A0으로서 서버 장치(1)에서 복제되고(S210), 서버 장치(1)로부터 단말 장치(2b, 2c)에 터셔리 A0으로서 복제된 상태(S220b, S220c)를 전제로 하고, 그 후, 단말 장치(2b)에 있어서 게임의 진행에 따라 터셔리 A0이 갱신되어 터셔리 A0 '로 변화한 경우(S221b), 상기 터셔리 A0 '의 오리지널인 오브젝트 A0의 소유권은 단말 장치(2a)의 사용자로 정의되어 있기 때문에, 단말 장치(2b)에 의해 갱신된 터셔리 A0 '와 터셔리 A0의 차분 A00 '(S222b)에 의해 서버 장치(1)의 레플리카 A0, 다른 단말 장치(2a)의 오브젝트 A0, 단말 장치(2c)의 터셔리 A0은 갱신되지 않는다.
이와 같이 터셔리 A0 '에 의한 동기의 금지는, 터셔리 A0과 터셔리 A0 '의 차분 A00 '를 단말 장치(2b)가 서버 장치(1)에 송신하지 않는 것(가), 서버 장치(1)가 상기 차분 A00 '(S211)를 수신해도 동기 처리를 하지 않는(레플리카에 대해 갱신 처리를 하지 않고, 갱신 정보의 송신 처리도 하지 않음)(무시, 파기함) 것(나), 서버 장치(1)가 상기 차분 A00 '를 자신의 레플리카 A0에 적용하지 않고 갱신하지 않고, 단말 장치(2a)[및 단말 장치(2c)]에 송신하지 않는 것(다), 또는 단말 장치(2a)가 상기 차분 A00 '를 수신해도 동기 처리를 하지 않는(프라이머리 카피, 오브젝트의 어느 것에 대해서도 갱신 처리를 하지 않음) 것(라) 중 어느 하나에 의해 실현된다. 소유권을 갖는 사용자의 단말 장치 이외에서의 오브젝트 갱신에 기초한 동기의 금지는 가∼라의 어느 방법, 혹은 이들 1개 이상의 임의의 조합으로 실현해도 좋으나, 가∼라 중 가를 채용함으로써 가장 네트워크 통신으로 송수신되는 정보량이 적어지고, 나, 다, 라의 순으로, 네트워크 통신으로 송수신되는 정보량이 증가해 가기 때문에, 가∼라의 순으로 바람직한 구성이다. 또한, 게임의 부정(치트(cheat))을 방지하기 위해서, 서버 검증은 통상 행해지는 경우가 많기 때문에, 가 및 나의 조합이 적합한 최소 구성이다.
(3) 도중 참가·퇴출 동작
다음으로, 단말 장치(2a)가 도중 참가하는 경우에 대해 설명한다. 단말 장치(2b)가 오브젝트 B0을 생성하고 있고 단말 장치(2b)의 사용자가 상기 오브젝트 B0의 소유권을 가지며, 단말 장치(2c)가 오브젝트 C0을 생성하고 있고 단말 장치(2c)의 사용자가 오브젝트 C0의 소유권을 갖고 있는 것을 전제로 한다.
도 7은 도중 참가에서의 동기 동작의 일례를 설명하기 위한 흐름도이다.
먼저, 단말 장치(2a)는, 먼저 룸에 참가한다. 서버 장치(1)는 참가자 관리 정보(111)에 단말 장치(2a)에 관련된 사용자 U001의 정보를 추가한다. 또한, 단말 장치(2a)는, 도중 참가와 함께 새로운 오브젝트 A0으로서, 예컨대, 새로운 캐릭터를 생성한다(S320a). 다음으로, 단말 장치(2a)는, 상기 오브젝트 A0의 프라이머리 카피를 생성하여(S321a), 서버 장치(1)에 송신한다.
서버 장치(1)의 데이터 수신 수단(101)은, 통신부(13)를 통해 단말 장치(2a)로부터 동기 대상의 데이터로서 오브젝트의 프라이머리 카피를 수신하여 복제하고, 세컨더리 카피로서 레플리카 A0을 메모리(12)에 저장한다(S310).
서버 장치(1)의 레플리카 관리 수단(103)은, 레플리카 A0이 생성되었을 때에 상기 레플리카 A0의 소유자 「U001」[단말 장치(2a)의 사용자], 송신처 룰로서 「단말 장치(2a)의 사용자 이외」, 이양의 가부 「OK」 등의 폴리시를 기록하여 레플리카 관리 정보(112)를 갱신하여 기억부(11)에 저장한다.
다음으로, 서버 장치(1)의 데이터 송신 수단(102)은, 레플리카 관리 정보(112)에 기초하여 송신처로서 정해진 단말 장치(2b, 2c)에 레플리카 A0을, 통신부(14)를 통해 송신한다.
단말 장치(2b, 2c)는, 서버 장치(1)로부터 레플리카 A0을 수신하여 복제하고, 터셔리 카피로서 터셔리 A0을 메모리에 저장한다(S320b, S320c).
또한, 서버 장치(1)의 데이터 송신 수단(102)은, 다른 단말 장치(2b, 2c)의 사용자가 소유권을 갖는 오브젝트의 레플리카를 미리 관리하고 있기 때문에(S311), 레플리카 관리 정보(112)에 기초하여 송신처로서 정해진 단말 장치(2a)에 레플리카 B0, C0을, 통신부(14)를 통해 송신한다. 또한, 상기 송신은, 오브젝트 A0의 동기 동작보다 먼저 행해지는 것이어도 좋다.
단말 장치(2a)는, 서버 장치(1)로부터 레플리카 B0, C0을 수신하여 복제하고, 터셔리 카피로서 터셔리 B0, C0을 메모리에 저장한다(S322a). 이들 일련의 동작에 의해, 단말 장치(2a)는, 단말 장치(2b, 2c)와 통신하지 않고 서버 장치(1)와만 통신하여 참가 동작이 완료된다. 여기서는, 이미 참가하고 있던 단말은 2대이지만, 이미 천대의 단말이 참가하고 있는 경우에도, 단말 장치(2a)는 서버 장치(1)와만 통신함으로써 참가를 완료할 수 있고, 이미 참가가 끝난 천대의 단말은, 각각이 소유하는 동기 대상 오브젝트를, 단말 장치(2a)에 통지할 필요가 없어, 단말 장치(2a)가 도중 참가하는 것에 의한 네트워크 및 각 단말 장치의 부하는 작다.
다음으로, 단말 장치(2a)가 도중 퇴출하는 경우에 대해 설명한다.
도 8은 도중 퇴출에서의 동기 동작의 일례를 설명하기 위한 흐름도이다.
단말 장치(2a)는 오브젝트 A0을 생성하고(S420a), 갱신하여 오브젝트 A1로 하며(S422a), 단말 장치(2b, 2c)에 터셔리 A0, A1이 각각 동기된 후(S422b, S422c)에 퇴출하는(S424a) 것으로 한다. 먼저, 도 4에 도시된 바와 같이, 레플리카 관리 정보(112)의 레플리카 ID 「A」의 이양 항목이 「OK」인 경우에 대해 설명한다. 여기서, 이양 항목이 「OK」인 오브젝트의 예로서는, 게임 중에서 사용되는 아이템 등을 들 수 있으나 캐릭터(NPC: Non Playing Character)나 적이어도 좋다.
단말 장치(2a)는, 퇴출을 서버 장치(1)에 요구한다. 서버 장치(1)의 참가자 관리 수단(100)은, 참가자 관리 정보(111)로부터 단말 장치(2a)에 관련된 사용자 정보를 삭제한다. 또한, 서버 장치(1)의 레플리카 관리 수단(103)은, 레플리카 관리 정보(112)의 이양 항목을 확인하여, 이양 항목이 「OK」이면, 다음 소유자를 단말 장치(2b)의 사용자로 변경하여 레플리카 관리 정보(112)의 내용을 갱신하고(S413), 단말 장치(2b)에 소유권이 변경되었다는 취지를 통지한다.
단말 장치(2b)는, 소유권이 단말 장치(2b)로 변경되었다는 취지의 통지를 서버 장치(1)로부터 접수하면, 기억하고 있던 터셔리 A1을 자기에게 소유권이 있는 오브젝트 A1로 변경함(S423b)으로써 퇴출 동작이 완료된다. 또한, 여기서, 퇴출(S424a)은 단말 장치(2a)가 명시적으로 서버 장치(1)에 통지하였으나, 갑작스러운 회선 단절 등으로, 퇴출을 통지할 수 없는 경우도 있다. 그 경우에도, 서버 장치(1)가, 단말 장치(2a)가 절단(소켓이 클로즈한 등)을 검출한 경우, 퇴출 통지를 명시적으로 수신한 경우와 마찬가지로 퇴출 및 소유권의 변경 처리를 완료할 수 있다.
또한, 이양 항목이 [OK]인 경우, 어떤 사용자에게 이양할지 미리 정해 두어도 좋고, 퇴출 시에 정해도 좋으며, 참가의 일시순으로 이양해도 좋고, 랜덤하게 할당해도 좋으며, 처리 능력이 높은 단말의 사용자에게 할당해도 좋고, 네트워크 환경이 좋은 단말[대역이 큰, 레이턴시/RTT(round-trip time)가 작은, 통신이 안정(RTT가 안정되게 작은)되어 있는]의 사용자에게 할당해도 좋다.
다음으로, 레플리카 관리 정보(112)의 레플리카 ID 「A」의 이양 항목이 「NG」인 경우에 대해 설명한다. 여기서, 이양 항목이 「NG」인 오브젝트의 예로서는, 게임 중에서 플레이되는 캐릭터(사용자 자신의 아바타)나 적이지만, 게임 중에서 사용되는 아이템 등이어도 좋다.
도 9는 도중 퇴출에서의 동기 동작의 다른 예를 설명하기 위한 흐름도이다.
단말 장치(2a)는, 퇴출(S524a)을 서버 장치(1)에 요구한다. 서버 장치(1)는, 레플리카 관리 정보(112)의 이양 항목을 확인하여, 이양 항목이 「NG」이면, 상기 레플리카 A1에 관한 정보를 삭제하여 참가자 관리 정보(111) 및 레플리카 관리 정보(112)의 내용을 갱신[단말 장치(2a)에 관련된 사용자 정보의 삭제, 단말 장치(2a)에 관련된 사용자가 소유하는 동기 대상 오브젝트의 삭제]하고(S513), 단말 장치(2b, 2c)에 레플리카 A1이 삭제되었다는 취지를 통지한다.
단말 장치(2b, 2c)는, 서버 장치(1)로부터 레플리카 A1이 삭제되었다는 취지의 통지를 접수하면, 기억하고 있던 터셔리 A1을 삭제함(S523b, S523c)으로써 퇴출 동작이 완료된다.
(실시형태의 효과)
상기한 실시형태에 의하면, 단말 장치(2a)가 다른 모든 단말 장치(2b, 2c)로부터 동기 대상의 오브젝트를 수신하지 않고, 서버 장치(1)가 모든 단말 장치에서 생성된 오브젝트의 레플리카를 보존하며, 단말 장치(2a)가 서버 장치(1)로부터 동기 대상의 오브젝트를 수신하도록 했기 때문에, 복수의 단말 장치가 참가하는 구성으로서, 복수의 단말 장치의 데이터를 서로 동기하는 상황에 있어서, 통신 부담의 증가를 억제할 수 있다. 또한, 서버 장치(1)는 게임을 진행하지 않기 때문에, 처리 부담을 경감할 수 있다. 그 결과, 1000 사용자 규모의 게임의 오브젝트 동기가 가능해진다.
또한, 도중 참가는, 서버로부터 레플리카를 수신하여 터셔리를 작성하는 것만으로 충분하기 때문에, 다른 클라이언트로부터 오브젝트를 수신할 필요가 없어, 통신 부담 및 처리 부담의 증가를 억제할 수 있다.
[다른 실시형태]
또한, 본 발명은 상기 실시형태에 한정되지 않고, 본 발명의 취지를 일탈하지 않는 범위에서 여러 가지 변형이 가능하다.
또한, 상기한 실시형태에서는, 소유권을 갖는 사용자가 갱신한 오브젝트가 서버 장치(1)의 레플리카를 갱신하고, 또한, 동일한 룸의 나머지 클라이언트에 갱신 정보를 전파하는 구성으로 했기 때문에, 게임 진행에서의 모순 해결은 소유자 클라이언트 우선의 모순 해결이 되지만, 게임에서의 아바타는 각 클라이언트 자신이 소유하는 게임 디자인이면, 평등을 실현할 수 있다. 소유자 클라이언트끼리의 경합은 게임의 디자인으로 해결하는 것으로 한다. 예컨대, 직접 상호 관계를 갖지 않는 것과 같은 디자인으로 하든지, RPC(Remote Procedure Call)와 같은 다른 메커니즘, 다른 오브젝트를 통해, 상호 관계를 갖도록 하여, 직접 동기 대상 오브젝트끼리가 상호 관계를 갖지 않도록 디자인하면 된다.
또한, 상기한 실시형태에서는, 클라이언트 사이에서 동기하면서 게임을 진행하는 수법에 대해서는, 기존 기술을 적용할 수 있기 때문에 상세한 내용을 생략하였다. 특히 세계 각지에서 많은 인원수가 참가하는 것과 같은 가상 환경에서는, 동기 대상 오브젝트에 관한 정보의 전달에 지연이나 결손이 발생할 가능성이 있다. 그 때문에 정보의 전달에는 가상 공간의 종류(게임의 쟝르)나 동기 대상 오브젝트의 종류에 따라, 본 발명이 제안하는 수법에 더하여, 여러 가지 일반적인 고안을 병용할 필요가 있다.
먼저, 네트워크의 지연을 취급하기 위해서는, 각 클라이언트는 참가하고 있는 가상 공간 내의 가상 공간 시각을 동기시켜, 가상 공간 시각을 동기 대상 오브젝트에 관한 통신 정보에 첨부하는 경우가 많다.
네트워크의 지연을 처리하기 위해서는, 가상 공간 내에 참가하는 클라이언트 개개에서 게임 진행에 어긋남을 발생시키는 동기 방법이 널리 이용된다. 즉, 단말 장치(2a, 2b, 2c)는 각각 독립적으로 가상 공간을 진행하지만, 각각이 진행 중인 가상 공간 내의 시각은 약간 일치하지 않게 된다. 만일, 단말 장치(2a)와 단말 장치(2b)를 나란히 볼 수 있었다고 하면, 단말 장치(2a)가 단말 장치(2b)에 비해 약간 가상 공간 시각이 빠른 것과 같은 일이 발생한다[어떤 사상이 단말 장치(2b)에서 발생한 후에, 단말 장치(2a)에서도 발생함]. 특히 단말 장치(2a)와 단말 장치(2b)가 지리적으로 떨어져 설치되어 있을 때, 또한, 단말 장치(2a) 및 단말 장치(2b)와 서버 장치(1)와의 각각의 거리에 큰 차이가 있을 때에 현저해진다[예컨대, 서버 장치(1), 단말 장치(2a), 및 단말 장치(2b)가, 각각 동경, 오사카, 및 뉴욕에 존재하는 경우].
또한, 네트워크의 손실을 처리하기 위해서, 통신 프로토콜에 의해 재송이 행해지는 경우가 있다. 재송에 의해, 더욱 동기 대상 오브젝트에 관한 정보의 전달이 지연된다.
또한, 동기 대상 오브젝트에 관한 정보의 송신 빈도를 줄이기 위해서, 전술한 임계값에 의한 처리뿐만 아니라, 송신 빈도를 제한하는 것도 널리 행해진다. 가상 공간의 진행을 프레임(적당한 시간 간격으로 게임의 상태를 샘플링하고, 그 샘플링의 빈도로, 동기를 취함)으로 관리하는 경우에는, 프레임 레이트(매초 20회 등)에 의해 프라이머리 카피를 갱신한다. 임계값에 의한 갱신 제어와 조합하는 경우도 있다. 프레임 관리는, 가상 공간 공통의 각 프레임 시각에서, 각 단말 장치가 동기를 취하는 것이다. 보다 구체적으로는, 가상 공간 내의 특정한 공통 가상 공간 시각마다 각 클라이언트에서 프라이머리 카피가 갱신(임계값 등의 조건도 필요에 따라 고려함)되고, 그 갱신의 타이밍에서 상기 프레임의 프레임 시각(가상 공간 시각 혹은 프레임의 일련 번호)을 첨부하여 갱신 정보(차분 혹은 전부)로서 정보 처리 장치(1)에 송부한다. 한편, 각 단말 장치는, 타단말의 프라이머리 카피의 갱신 정보를 각각의 갱신 시의 프레임 시각과 함께 수신한다. 단말 장치가 수신하는 타단말의 갱신 정보에 첨부되어 있는 프레임 시각은, 지연이 없는 상태에서는, 최신의 프라이머리 카피의 프레임 시각과 일치한다. 지연이 있는 상태에서는, 단말 장치의 존재 장소, 네트워크 환경, 혹은, 통신 상태의 일시적 변화 등 여러 가지 이유에 의해, 단말 장치가 수신하는 갱신 정보에 첨부되는 프레임 시각은 각각을 소유하는 단말 장치에 따라 상이하고, 일반적으로는, 단말 자신의 프라이머리 카피의 프레임 시각보다 오래된 것이 된다. 상이한 프레임 시각의 프라이머리 카피와 터셔리 카피에 기초하여, 게임을 단순히 진행하면, 단말 사이에서의 동기의 괴리가 커지는 경우가 있다. 그러한 경우에는, 예컨대, 먼저, 각 단말로부터 수신하는 프레임 시각의 어긋남을 미리 측정해 두고, 평균적으로 가장 느린 프레임 시각을 보내오는 단말의 프레임 시각에 맞춰 게임을 진행하도록 할 수도 있다. 그 경우에는, 수 프레임분의 갱신 정보를 단말 장치에서 버퍼링하고, 동일 프레임 시각의 것을 조합하여, 게임을 엄밀히 진행한다. 그러나, 래그가 0.1초 이상(매초 20프레임의 경우이면 2프레임 이상의 지연)이 되면, 게임 쟝르에 따라서도 달라지지만, 사용자 체험이 나빠진다. 이 이상의 상세한 내용은 생략하지만, 여러 가지 고안, 절충안을 이용하여, 게임 쟝르에 맞춘 수법이 취해진다. 모바일 단말 등에서는, 프레임의 지연이 동적으로 크게 변화하기 때문에, 다른 대응도 필요해진다.
혹은, 통신로의 특질로부터, 가상 공간 내의 가상 공간 시각 정보를 첨부하는 경우도 있다. TCP/IP나 RUDP(Reliable UDP) 등 신뢰성이 있는 통신 프로토콜을 이용하고 있는 경우에는 수신하는 공유 오브젝트의 갱신 정보의 가상 공간 시간 순서의 교체는 발생하지 않는다. 한편, 매회, 동기 대상 오브젝트 전체를 송신하여, 신뢰성을 보증하지 않는 UDP 등의 프로토콜을 이용하여, 통신의 결손을 상정하여, 동기 대상 오브젝트 전체를 갱신 정보로서 전달하고 있는 경우에는, 갱신 정보의 도달이 일부 결손되거나, 갱신 정보의 도착이 프라이머리 카피에 첨부되어 있던 가상 공간 시각의 순으로 되지 않고, 뒤바뀌거나 하는 경우가 있다. 그러한 경우, 단말 장치는, 갱신 정보에 첨부되어 있는 가상 공간 시각을 이용하여, 수신한 정보를 교체하거나, 혹은, 오래된 갱신 정보를 수신한 경우에는 불필요한 오래된 정보는 파기하거나 등 하여, 오브젝트를 동기시켜, 게임의 진행을 행한다.
또한, 참가자 관리 정보(111)는, 참가자 오브젝트에의 링크를 참가순으로 리스트로서 관리하는 것이어도 좋다. 각 링크의 참가자 정보로부터 대응하는 통신에 필요한 정보를 취득하여 서버 장치(1)가 단말 장치(2a, 2b, 2c)와 통신을 행하는 것이어도 좋다.
상기 실시형태에서는 제어부(10)의 각 수단(100∼104)의 기능을 프로그램으로 실현하였으나, 각 수단의 전부 또는 일부를 ASIC 등의 하드웨어에 의해 실현해도 좋다. 또한, 상기 실시형태에서 이용한 프로그램을 CD-ROM 등의 기록 매체에 기억하여 제공할 수도 있다. 또한, 상기 실시형태에서 설명한 상기 단계의 교체, 삭제, 추가 등은 본 발명의 요지를 변경하지 않는 범위 내에서 가능하다. 또한, 각 수단의 기능은 적절히 다른 수단에 결합해도 좋고, 복수의 수단으로 분리해도 좋다.
복수의 사용자 단말이 참가하는 구성으로서, 복수의 사용자 단말의 데이터를 동기하는 상황에 있어서, 처리 부담이나 통신 부담의 증가를 억제하는 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치를 제공한다.
또한, 본 발명의 다른 양태는, 상기 목적을 달성하기 위해서, 이하의 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치를 제공한다.
[1] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
동기 대상 오브젝트의 소유권을 갖는 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 정보 처리 장치.
[2] 상기 수신 수단은, 클라이언트가 참가했을 때에, 상기 클라이언트가 소유권을 갖는 동기 대상 오브젝트를 수신하여 상기 복제 오브젝트로서 기록 매체에 저장하는 상기 [1]에 기재된 정보 처리 장치.
[3] 상기 수신 수단은, 상기 클라이언트가 새롭게 오브젝트를 생성했을 때에, 상기 새롭게 생성한 오브젝트를 동기 대상 오브젝트로서 복제하여 상기 복제 오브젝트를 기록 매체에 저장하는 상기 [1]에 기재된 정보 처리 장치.
[4] 상기 송신 수단은, 클라이언트가 참가했을 때, 또는 상기 클라이언트가 새롭게 오브젝트를 생성했을 때에, 기록 매체에 저장한 상기 복제 오브젝트, 또는 상기 동기 대상 오브젝트를, 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 상기 [2] 또는 [3]에 기재된 정보 처리 장치.
[5] 상기 수신 수단은, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하지 않는 상기 [1]∼[4] 중 어느 하나에 기재된 정보 처리 장치.
[6] 상기 갱신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신한 경우, 상기 복제 오브젝트를 갱신하지 않는 상기 [1]∼[4] 중 어느 하나에 기재된 정보 처리 장치.
[7] 상기 송신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신한 경우, 상기 변경 내용 정보를, 상기 소유권을 갖는 클라이언트에 송신하지 않는 상기 [1]∼[4] 중 어느 하나에 기재된 정보 처리 장치.
[8] 상기 갱신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 수신하여, 상기 복제 오브젝트를 갱신하는 상기 [1]∼[7] 중 어느 하나에 기재된 정보 처리 장치.
[9] 상기 클라이언트가 퇴출되었을 때에, 상기 클라이언트가 소유권을 갖고 있던 상기 동기 대상 오브젝트에 대응하는 복제 오브젝트의 소유권을, 상기 소유권의 이양이 허가되어 있는 경우에, 미리 정한 룰에 기초하여 상기 클라이언트 이외의 다른 클라이언트에 이양하는 관리 수단으로서 더 기능시키는 상기 [1]∼[8] 중 어느 하나에 기재된 정보 처리 장치.
[10] 상기 클라이언트가 퇴출되었을 때에, 상기 클라이언트가 소유권을 갖고 있던 상기 동기 대상 오브젝트에 대응하는 복제 오브젝트의 소유권의 이양이 허가되어 있지 않은 경우에, 상기 복제 오브젝트를 삭제하는 관리 수단으로서 더 기능시키고,
상기 송신 수단은, 상기 클라이언트 이외의 다른 클라이언트에 유지되어 있는 상기 복제 오브젝트에 대응하는 오브젝트를 삭제하도록 상기 다른 클라이언트에 지시하는 상기 [1]∼[8] 중 어느 하나에 기재된 정보 처리 장치.
[11] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 컴퓨터를,
동기 대상 오브젝트의 소유권을 갖는 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단으로서 기능시키기 위한 데이터 동기 프로그램.
[12] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치에 있어서,
동기 대상 오브젝트의 소유권을 갖는 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하는 단계와,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 단계와,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 단계를 갖는 데이터 동기 방법.
[13] 오브젝트를 서로 동기하는 복수의 클라이언트와,
상기 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
동기 대상 오브젝트의 소유권을 갖는 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 정보 처리 장치
를 구비한 데이터 동기 시스템.
[14] 상기 복수의 클라이언트는, 상기 정보 처리 장치로부터 자기가 소유권을 갖는 동기 대상 오브젝트의 복제 오브젝트를 수신한 경우, 상기 복제 오브젝트를 수신 거부하는 상기 [13]에 기재된 데이터 동기 시스템.
[15] 상기 복수의 클라이언트는, 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 상기 정보 처리 장치에 송신하는 상기 [13] 또는 [14]에 기재된 데이터 동기 시스템.
[16] 다른 클라이언트와 오브젝트를 서로 동기하는 클라이언트로서의 단말 장치로서,
동기 대상 오브젝트의 소유권을 갖는 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 정보 처리 장치
와 통신 가능하게 접속되는 클라이언트로서의 단말 장치.
[17] 상기 정보 처리 장치로부터 자기가 소유권을 갖는 동기 대상 오브젝트의 복제 오브젝트를 수신한 경우, 상기 복제 오브젝트를 수신 거부하는 상기 [16]에 기재된 클라이언트로서의 단말 장치.
[18] 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 상기 정보 처리 장치에 송신하는 상기 [16] 또는 [17]에 기재된 클라이언트로서의 단말 장치.
1: 서버 장치 2: 단말 장치
4: 네트워크 10: 제어부
11: 기억부 12: 메모리
13: 통신부 100: 참가자 관리 수단
101: 데이터 수신 수단 102: 데이터 송신 수단
103: 레플리카 관리 수단 104: 데이터 갱신 수단
110: 데이터 처리 프로그램 111: 참가자 관리 정보
112: 레플리카 관리 정보

Claims (21)

  1. 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
    상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
    상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보의 오브젝트를 역직렬화(deserialization)하여, 상기 소유권을 갖는 클라이언트의 상기 동기 대상 오브젝트를 복제한 복제 오브젝트의 필드값을 갱신하는 갱신 수단과,
    상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단
    을 갖는 정보 처리 장치.
  2. 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
    상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
    상기 변경 내용 정보의 오브젝트를 역직렬화(deserialization)하여, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트의 상기 동기 대상 오브젝트를 복제한 복제 오브젝트의 필드값을 갱신하는 갱신 수단과,
    상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단
    을 갖는 정보 처리 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 수신 수단은, 상기 복수의 클라이언트가 참가하는 가상 공간에 클라이언트가 참가했을 때에, 상기 클라이언트가 소유권을 갖는 동기 대상 오브젝트를 수신하여 상기 복제 오브젝트로서 기록 매체에 저장하는 것인, 정보 처리 장치.
  4. 제1항 또는 제2항에 있어서,
    상기 수신 수단은, 상기 클라이언트가 새롭게 오브젝트를 생성했을 때에, 상기 새롭게 생성한 오브젝트를 동기 대상 오브젝트로서 복제하여 상기 복제 오브젝트를 기록 매체에 저장하는 것인, 정보 처리 장치.
  5. 제3항에 있어서,
    상기 송신 수단은, 클라이언트가 참가했을 때, 또는 상기 클라이언트가 새롭게 오브젝트를 생성했을 때에, 기록 매체에 저장한 상기 복제 오브젝트, 또는 상기 동기 대상 오브젝트를, 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 것인, 정보 처리 장치.
  6. 제1항 또는 제2항에 있어서,
    상기 수신 수단은, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하지 않는 것인, 정보 처리 장치.
  7. 제1항 또는 제2항에 있어서,
    상기 갱신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신한 경우, 상기 복제 오브젝트를 갱신하지 않는 것인, 정보 처리 장치.
  8. 제1항 또는 제2항에 있어서,
    상기 송신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신한 경우, 상기 변경 내용 정보를, 상기 소유권을 갖는 클라이언트에 송신하지 않는 것인, 정보 처리 장치.
  9. 제1항 또는 제2항에 있어서,
    상기 갱신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 수신하여, 상기 복제 오브젝트를 갱신하는 것인, 정보 처리 장치.
  10. 제1항 또는 제2항에 있어서,
    상기 클라이언트가, 상기 복수의 클라이언트가 참가하는 가상 공간으로부터 퇴출되었을 때에, 상기 클라이언트가 소유권을 갖고 있던 상기 동기 대상 오브젝트에 대응하는 복제 오브젝트의 소유권을, 상기 소유권의 이양(移讓)이 허가되어 있는 경우에, 미리 정한 룰에 기초하여 상기 클라이언트 이외의 다른 클라이언트에 이양하는 관리 수단으로서 더 기능시키는, 정보 처리 장치.
  11. 제1항 또는 제2항에 있어서,
    상기 클라이언트가, 상기 클라이언트가 참가하는 가상 공간으로부터 퇴출되었을 때에, 상기 클라이언트가 소유권을 갖고 있던 상기 동기 대상 오브젝트에 대응하는 복제 오브젝트의 소유권의 이양이 허가되어 있지 않은 경우에, 상기 복제 오브젝트를 삭제하는 관리 수단으로서 더 기능시키고,
    상기 송신 수단은, 상기 클라이언트 이외의 다른 클라이언트에 유지되어 있는 상기 복제 오브젝트에 대응하는 오브젝트를 삭제하도록 상기 다른 클라이언트에 지시하는 것인, 정보 처리 장치.
  12. 매체에 저장된 데이터 동기 프로그램으로서,
    오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 컴퓨터를,
    상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
    상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보의 오브젝트를 역직렬화(deserialization)하여, 상기 소유권을 갖는 클라이언트의 상기 동기 대상 오브젝트를 복제한 복제 오브젝트의 필드값을 갱신하는 갱신 수단과,
    상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단
    으로서 기능시키기 위한, 매체에 저장된 데이터 동기 프로그램.
  13. 매체에 저장된 데이터 동기 프로그램으로서,
    오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 컴퓨터를,
    상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
    상기 변경 내용 정보의 오브젝트를 역직렬화(deserialization)하여, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트의 상기 동기 대상 오브젝트를 복제한 복제 오브젝트의 필드값을 갱신하는 갱신 수단과,
    상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단
    으로서 기능시키기 위한, 매체에 저장된 데이터 동기 프로그램.
  14. 데이터 동기 방법으로서,
    오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치에 있어서,
    상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 단계와,
    상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보의 오브젝트를 역직렬화(deserialization)하여, 상기 소유권을 갖는 클라이언트의 상기 동기 대상 오브젝트를 복제한 복제 오브젝트의 필드값을 갱신하는 단계와,
    상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 단계
    를 포함하는, 데이터 동기 방법.
  15. 데이터 동기 방법으로서,
    오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치에 있어서,
    상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 단계와,
    상기 변경 내용 정보의 오브젝트를 역직렬화(deserialization)하여, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트의 상기 동기 대상 오브젝트를 복제한 복제 오브젝트의 필드값을 갱신하는 단계와,
    상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 단계
    를 포함하는, 데이터 동기 방법.
  16. 데이터 동기 시스템으로서,
    오브젝트를 서로 동기하는 복수의 클라이언트와,
    상기 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
    상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
    상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보의 오브젝트를 역직렬화(deserialization)하여, 상기 소유권을 갖는 클라이언트의 상기 동기 대상 오브젝트를 복제한 복제 오브젝트의 필드값을 갱신하는 갱신 수단과,
    상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단
    을 갖는 정보 처리 장치
    를 구비한, 데이터 동기 시스템.
  17. 데이터 동기 시스템으로서,
    오브젝트를 서로 동기하는 복수의 클라이언트와,
    상기 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
    상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
    상기 변경 내용 정보의 오브젝트를 역직렬화(deserialization)하여, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트의 상기 동기 대상 오브젝트를 복제한 복제 오브젝트의 필드값을 갱신하는 갱신 수단과,
    상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단
    을 갖는 정보 처리 장치
    를 구비한, 데이터 동기 시스템.
  18. 제16항 또는 제17항에 있어서,
    상기 복수의 클라이언트는, 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 상기 정보 처리 장치에 송신하는 것인, 데이터 동기 시스템.
  19. 정보 처리 장치를 통해 다른 클라이언트와 오브젝트를 서로 동기하는 클라이언트로서의 단말 장치로서,
    동기 대상 오브젝트를 복제한 복제 오브젝트가 자기(自己) 클라이언트에 있어서 갱신된 경우,
    상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 상기 자기 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우에만, 상기 동기 대상 오브젝트를 복제한 상기 복제 오브젝트가 상기 자기 클라이언트에 있어서 갱신된 정보인 변경 내용 정보를 상기 정보 처리 장치에 송신하는 송신 수단을 갖고, 상기 정보 처리 장치와 통신 가능하게 접속되는, 클라이언트로서의 단말 장치.
  20. 제19항에 있어서,
    상기 동기 대상 오브젝트의 상기 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 상기 정보 처리 장치에 송신하는, 클라이언트로서의 단말 장치.
  21. 삭제
KR1020227043276A 2021-06-14 2022-06-14 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치 KR102612811B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2021098419 2021-06-14
JPJP-P-2021-098419 2021-06-14
PCT/JP2022/023717 WO2022264989A1 (ja) 2021-06-14 2022-06-14 情報処理装置、データ同期プログラム、データ同期方法、データ同期システム及び端末装置

Publications (2)

Publication Number Publication Date
KR20230003311A KR20230003311A (ko) 2023-01-05
KR102612811B1 true KR102612811B1 (ko) 2023-12-11

Family

ID=84526508

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020227043276A KR102612811B1 (ko) 2021-06-14 2022-06-14 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치
KR1020247004936A KR20240023706A (ko) 2021-06-14 2022-06-14 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치
KR1020237016620A KR102638092B1 (ko) 2021-06-14 2022-06-14 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020247004936A KR20240023706A (ko) 2021-06-14 2022-06-14 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치
KR1020237016620A KR102638092B1 (ko) 2021-06-14 2022-06-14 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치

Country Status (7)

Country Link
US (3) US11766608B2 (ko)
EP (2) EP4145805A4 (ko)
JP (2) JP7274161B1 (ko)
KR (3) KR102612811B1 (ko)
CN (2) CN115943619B (ko)
AU (1) AU2022293125B2 (ko)
WO (2) WO2022264990A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240231639A9 (en) * 2022-10-21 2024-07-11 Western Digital Technologies, Inc. Data Storage Device and Method for Reducing Read Disturbs When Reading Redundantly-Stored Data
CN117009146B (zh) * 2023-09-28 2024-03-08 金篆信科有限责任公司 数据同步方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008022573A (ja) * 1999-05-10 2008-01-31 Telefon Ab L M Ericsson 通信ネットワークにおける方法及び装置
US20170197149A1 (en) * 2006-06-30 2017-07-13 Sony Interactive Entertainment America Llc Dead reckoning in a gaming environment

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000157724A (ja) * 1998-11-24 2000-06-13 Sega Enterp Ltd ネットワークを利用したゲームシステム、ネットワークに接続可能なゲーム機及びこのゲーム機のためのプログラムが記録された媒体
US6763371B1 (en) * 1999-05-10 2004-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for collaborative communication in a communication network
JP2004135051A (ja) * 2002-10-10 2004-04-30 Sony Corp 情報処理システム、サービス提供装置および方法、情報処理装置および方法、記録媒体、並びにプログラム
KR20050023495A (ko) * 2003-08-28 2005-03-10 (주)트라이헤드론 다자간 네트웍 게임에서의 데이타 동기화 방법
JPWO2006025255A1 (ja) 2004-08-30 2008-05-08 松下電器産業株式会社 多人数参加型アプリケーションを実行するクライアント端末装置、グループ形成方法及びグループ形成プログラム
JP4995451B2 (ja) * 2005-11-04 2012-08-08 任天堂株式会社 ゲームプログラムおよびゲーム機
JP4139409B2 (ja) 2006-01-16 2008-08-27 株式会社ソニー・コンピュータエンタテインメント シミュレータシステム
US20080282090A1 (en) * 2007-05-07 2008-11-13 Jonathan Leybovich Virtual Property System for Globally-Significant Objects
JP4950978B2 (ja) 2008-10-08 2012-06-13 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
US8856136B2 (en) 2009-08-17 2014-10-07 Diagonal, Inc. Information update system
US8785737B2 (en) * 2011-07-29 2014-07-22 Monsanto Technology Llc Soybean variety A1026091
JP5831412B2 (ja) * 2012-09-14 2015-12-09 コニカミノルタ株式会社 情報共有システム及び共有端末並びに共有制御プログラム
JP6506527B2 (ja) * 2014-10-14 2019-04-24 キヤノン株式会社 情報処理装置とデータ同期方法、データ同期システムおよびプログラム
US10484249B1 (en) * 2015-09-18 2019-11-19 Amazon Technologies, Inc. Dynamic distribution of simulation load
CN105468358B (zh) 2015-11-17 2019-11-05 腾讯科技(深圳)有限公司 一种移动游戏的数据处理方法以及装置
WO2018098037A1 (en) * 2016-11-22 2018-05-31 Cox Automotive, Inc. Multiple agent distributed ledger architecture
JP6523378B2 (ja) * 2017-07-20 2019-05-29 株式会社コロプラ ゲームプログラム、ゲームプログラムを実行する方法、および情報処理装置
US11020660B2 (en) * 2019-02-21 2021-06-01 Sony Interactive Entertainment LLC Transactional memory synchronization between multiple sessions of a video game
CN110694266B (zh) * 2019-10-23 2023-07-18 网易(杭州)网络有限公司 一种游戏状态的同步方法、展示方法及装置
CN112642143B (zh) * 2020-12-30 2022-11-15 明日世界(上海)网络科技有限公司 一种实现信息同步的方法、装置、存储介质和电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008022573A (ja) * 1999-05-10 2008-01-31 Telefon Ab L M Ericsson 通信ネットワークにおける方法及び装置
US20170197149A1 (en) * 2006-06-30 2017-07-13 Sony Interactive Entertainment America Llc Dead reckoning in a gaming environment

Also Published As

Publication number Publication date
US11766608B2 (en) 2023-09-26
KR102638092B1 (ko) 2024-02-16
US20230394759A1 (en) 2023-12-07
KR20240023706A (ko) 2024-02-22
US20240252915A1 (en) 2024-08-01
US20230088340A1 (en) 2023-03-23
US11992753B2 (en) 2024-05-28
EP4145805A4 (en) 2024-08-14
KR20230003311A (ko) 2023-01-05
EP4239980A4 (en) 2024-01-24
JP7462197B2 (ja) 2024-04-05
EP4145805A1 (en) 2023-03-08
JP2023103259A (ja) 2023-07-26
KR20230074619A (ko) 2023-05-30
EP4239980A1 (en) 2023-09-06
CN116583328A (zh) 2023-08-11
CN115943619A (zh) 2023-04-07
CN115943619B (zh) 2024-05-28
WO2022264989A1 (ja) 2022-12-22
CN116583328B (zh) 2024-09-13
AU2022293125B2 (en) 2023-10-05
JPWO2022264990A1 (ko) 2022-12-22
AU2022293125A1 (en) 2023-08-03
WO2022264990A1 (ja) 2022-12-22
JP7274161B1 (ja) 2023-05-16

Similar Documents

Publication Publication Date Title
KR102612811B1 (ko) 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치
Hu et al. Scalable peer-to-peer networked virtual environment
US10086279B2 (en) Cross-realm zones for interactive gameplay
US7610505B2 (en) Violations in a peer-to-peer relay network
JP2000511667A (ja) ネットワークを介してマルチユーザデータベースへのアクセスを同期させる場合の待ち時間の減少
EP2843903A1 (en) Peer-to-peer relay network
US20050086287A1 (en) Spectators in a peer-to-peer relay network
Chen et al. Network game design: Hints and implications of player interaction
Saldana et al. QoE and latency issues in networked games
WO2003053531A1 (en) Massive multiplayer real-time persistant network game engine
JP7148941B1 (ja) 情報処理装置、データ同期プログラム、データ同期方法、データ同期システム及び端末装置
Kelly They laughed, they cried, they killed monsters: How friendships thrived in video games during the pandemic
Ferretti Interactivity maintenance for event synchronization in massive multiplayer online games.
JP3998466B2 (ja) ネットワークゲームシステムおよびネットワークゲーム処理方法
Ferretti et al. An optimistic obsolescence-based approach to event synchronization for massively multiplayer online games
Behnke Increasing the supported number of participants in distributed virtual environments
JP2024062819A (ja) プログラム、および仮想空間制御装置
Jamin Networking Multiplayer Games
Bobrovich et al. Implementation of the Server Part of the Mobile MMO-game in Space Stylistics
JP2024062816A (ja) ゲームプログラム、およびゲームシステム
CN113509719A (zh) 多版本应用的计算机系统、运行方法、装置及介质
JP2009183315A (ja) ネットワークゲームシステム、ネットワークゲーム方法およびネットワークゲームプログラム
Guo et al. Tree-based server-middleman-client architecture: improving scalability and reliability for voting-based network games in ad hoc wireless networks
CN102325130A (zh) 一种客户端嵌入的ArkNet的网游系统
Fritsch Next Generation massive multiplayer games in a mobile context

Legal Events

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