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

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

Info

Publication number
KR20240023706A
KR20240023706A KR1020247004936A KR20247004936A KR20240023706A KR 20240023706 A KR20240023706 A KR 20240023706A KR 1020247004936 A KR1020247004936 A KR 1020247004936A KR 20247004936 A KR20247004936 A KR 20247004936A KR 20240023706 A KR20240023706 A KR 20240023706A
Authority
KR
South Korea
Prior art keywords
information
synchronization
client
target object
virtual space
Prior art date
Application number
KR1020247004936A
Other languages
English (en)
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 KR20240023706A publication Critical patent/KR20240023706A/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/35Details of 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/31Communication aspects specific to video games, e.g. between several handheld game devices at close range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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/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
    • 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

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)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Communication Control (AREA)

Abstract

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

Description

정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치{INFORMATION PROCESSING DEVICE, DATA SYNCHRONIZATION PROGRAM, DATA SYNCHRONIZATION METHOD, DATA SYNCHRONIZATION SYSTEM AND TERMINAL DEVICE}
본 발명은 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치에 관한 것이다.
종래의 기술로서, 사용자 단말의 사용자 오브젝트와 시뮬레이터의 시뮬레이트 대상을 동기하는 정보 처리 장치가 제안되어 있다(예컨대, 특허문헌 1 참조).
특허문헌 1에 개시된 정보 처리 장치는, 미리 정해진 시뮬레이트 대상의 거동을 시뮬레이트하는 개별 시뮬레이터와, 사용자로부터 입력되는 지시에 따라 사용자 오브젝트의 거동을 결정하는 사용자 단말과 접속되고, 정보 처리 장치는 사용자 오브젝트 및 시뮬레이트 대상의 카피(copy)를 유지하며, 사용자 단말은, 미리 정한 타이밍 결정 룰에 기초하여 정해지는 동기 타이밍마다, 시뮬레이트 대상의 정보를, 정보 처리 장치를 통해 개별 시뮬레이터로부터 취득하고, 동기 타이밍 외의 시점에서, 마지막으로 취득한 시뮬레이트 대상의 정보에 기초하여, 시뮬레이트 대상의 거동을 예측하며, 그 예측의 결과를 사용자에게 제시한다. 이러한 구성에 있어서, 처리 부담이나 통신 부담을 경감한다.
특허문헌 1: 일본 특허 공개 제2007-185446호 공보
그러나, 특허문헌 1의 정보 처리 장치는, 사용자 오브젝트 및 시뮬레이트 대상의 카피를 유지하고, 사용자 오브젝트의 시야 범위에 포함되는 시뮬레이트 대상의 카피를 사용자 단말에 송신하기 때문에, 처리 부담이나 통신 부담을 경감하지만, 정보 처리 장치에 있어서 시뮬레이트 대상의 충돌 판정을 행하여, 상호 작용을 실시하도록 대응하는 시뮬레이터에 통지하는 것이기 때문에, 상기 판정을 위해서 정보 처리 장치의 처리 부담이 있고, 시뮬레이터에 대해서는 사용자 오브젝트 및 다른 시뮬레이트 대상의 카피를 송신하지 않는 것이기 때문에, 복수의 사용자 단말이 참가하는 구성에 있어서 복수의 사용자 단말의 데이터를 동기하는 상황에는 그대로 적용할 수 없다고 하는 문제가 있다. 이 문제는, 특히 매우 많은 사용자 단말이 참가하거나, 또한 도중 참가나 도중 퇴출이 자유로워 사용자 단말이 수시로 교체되거나 하는 것과 같은 메타버스나 다인수 참가형 게임(MMOG: Massively Multiplayer Online Game)에서는 현재화(顯在化)한다.
따라서 본 발명의 목적은, 복수의 사용자 단말이 참가하는 구성으로서, 복수의 사용자 단말의 데이터를 동기하는 상황에 있어서, 처리 부담이나 통신 부담의 증가를 억제하는 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치를 제공하는 것에 있다.
본 발명의 일 양태는, 상기 목적을 달성하기 위해서, 이하의 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치를 제공한다.
[1]
1 이상의 가상 공간에 참가하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
상기 가상 공간의 동기 대상 오브젝트는 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트와 소유권을 갖지 않는 클라이언트로 구성되는 동기 그룹의 클라이언트 사이에서 동기되는 것이며,
상기 동기 그룹의 클라이언트 중, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로부터 각각 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 동기 그룹의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 정보 처리 장치.
[2]
상기 클라이언트가 1 이상의 상기 동기 그룹에 속하는 상기 [1]에 기재된 정보 처리 장치.
[3]
상기 동기 그룹은, 상기 동기 대상 오브젝트 중 서로의 사용자 정보의 동기를 행하는 클라이언트로 구성되는 상기 [1]에 기재된 정보 처리 장치.
[4]
상기 동기 그룹은, 상기 동기 대상 오브젝트 중 가상 공간을 구성하는 콘텐츠를 재현하기 위한 지형 정보의 동기를 행하는 클라이언트로 구성되는 상기 [1]에 기재된 정보 처리 장치.
[5]
상기 동기 대상 오브젝트 중 상기 지형 정보에 대응하는 동기 대상 오브젝트의 소유권을 갖는 클라이언트는, 서버 상의 더미 클라이언트인 상기 [4]에 기재된 정보 처리 장치.
[6]
상기 지형 정보의 편집권을 갖는 클라이언트로부터의 조작 내용에 기초하여 상기 지형 정보를 편집하는 편집 수단으로서 더 기능시키는 상기 [4]에 기재된 정보 처리 장치.
[7]
상기 가상 공간의 상기 동기 대상 오브젝트를 포함하는 오브젝트에 대응한 식별자를 발행하는 지형 정보 관리 수단으로서 더 기능시키는 상기 [6]에 기재된 정보 처리 장치.
[8]
상기 식별자는, 상기 클라이언트가 상기 가상 공간의 콘텐츠에의 액세스에 이용되는 상기 [7]에 기재된 정보 처리 장치.
[9]
상기 가상 공간의 콘텐츠에의 액세스는, 상기 클라이언트의 상기 가상 공간에의 참가인 상기 [8]에 기재된 정보 처리 장치.
[10]
상기 가상 공간의 콘텐츠에의 액세스는, 상기 클라이언트의 상기 콘텐츠의 편집인 상기 [8]에 기재된 정보 처리 장치.
[11]
상기 가상 공간의 콘텐츠에의 액세스는, 상기 클라이언트에서의 상기 가상 공간에의 참가를 위한 프로그램의 기동인 상기 [9]에 기재된 정보 처리 장치.
[12]
상기 가상 공간의 콘텐츠에의 액세스는, 상기 클라이언트에서의 상기 콘텐츠의 편집을 위한 웹 사이트에의 액세스이며, 상기 웹 사이트에의 액세스를 위한 웹 브라우저의 기동인 상기 [10]에 기재된 정보 처리 장치.
[13]
상기 수신 수단은, 상기 복수의 클라이언트가 참가하는 동기 그룹에 클라이언트가 참가했을 때에, 상기 클라이언트가 소유권을 갖는 동기 대상 오브젝트를 수신하여 상기 복제 오브젝트로서 기록 매체에 저장하는 상기 [1]에 기재된 정보 처리 장치.
[14]
상기 복수의 클라이언트가 참가하는 동기 그룹에 클라이언트가 참가했을 때에, 상기 클라이언트가 가상 공간을 구성하는 콘텐츠를 재현하기 위한 지형 정보의 편집권을 갖는 경우, 상기 송신 수단은, 상기 복제 오브젝트를 상기 클라이언트의 동기 대상 오브젝트로서 상기 클라이언트에 송신하고, 또한 소유권을 이양(移讓)하는 상기 [1]에 기재된 정보 처리 장치.
[15]
상기 수신 수단은, 상기 클라이언트가 새롭게 오브젝트를 생성했을 때에, 상기 새롭게 생성한 오브젝트를 동기 대상 오브젝트로서 복제하여 상기 복제 오브젝트를 기록 매체에 저장하는 상기 [1]에 기재된 정보 처리 장치.
[16]
상기 송신 수단은, 클라이언트가 참가했을 때, 또는 상기 클라이언트가 새롭게 오브젝트를 생성했을 때에, 기록 매체에 저장한 상기 복제 오브젝트, 또는 상기 동기 대상 오브젝트를, 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 상기 [13] 내지 [15] 중 어느 하나에 기재된 정보 처리 장치.
[17]
상기 수신 수단은, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하지 않는 상기 [13] 내지 [15] 중 어느 하나에 기재된 정보 처리 장치.
[18]
상기 갱신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신한 경우, 상기 복제 오브젝트를 갱신하지 않는 상기 [13] 내지 [15] 중 어느 하나에 기재된 정보 처리 장치.
[19]
상기 송신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신한 경우, 상기 변경 내용 정보를, 상기 소유권을 갖는 클라이언트에 송신하지 않는 상기 [13] 내지 [15] 중 어느 하나에 기재된 정보 처리 장치.
[20]
상기 갱신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 수신하여, 상기 복제 오브젝트를 갱신하는 상기 [13] 내지 [15] 중 어느 하나에 기재된 정보 처리 장치.
[21]
상기 클라이언트가, 상기 복수의 클라이언트가 참가하는 동기 그룹으로부터 퇴출되었을 때에, 상기 클라이언트가 소유권을 갖고 있던 상기 동기 대상 오브젝트에 대응하는 복제 오브젝트의 소유권을, 상기 소유권의 이양이 허가되어 있는 경우에, 미리 정한 룰에 기초하여 상기 클라이언트 이외의 다른 클라이언트에 이양하는 관리 수단으로서 더 기능시키는 상기 [13] 내지 [15] 중 어느 하나에 기재된 정보 처리 장치.
[22]
상기 클라이언트가, 상기 클라이언트가 참가하는 동기 그룹으로부터 퇴출되었을 때에, 상기 클라이언트가 소유권을 갖고 있던 상기 동기 대상 오브젝트에 대응하는 복제 오브젝트의 소유권의 이양이 허가되어 있지 않은 경우에, 상기 복제 오브젝트를 삭제하는 관리 수단으로서 더 기능시키고,
상기 송신 수단은, 상기 클라이언트 이외의 다른 클라이언트에 유지되어 있는 상기 복제 오브젝트에 대응하는 오브젝트를 삭제하도록 상기 다른 클라이언트에 지시하는 상기 [13] 내지 [15] 중 어느 하나에 기재된 정보 처리 장치.
[23]
가상 공간에 참가하는 복수의 클라이언트와 네트워크로 접속된 컴퓨터를 기능시키기 위한 데이터 동기 프로그램이 저장된 컴퓨터 판독 가능 기록 매체로서,
상기 가상 공간의 동기 대상 오브젝트는 상기 오브젝트의 소유권을 갖는 클라이언트와 소유권을 갖지 않는 클라이언트로 구성되는 동기 그룹의 클라이언트 사이에서 동기되는 것이며,
상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로부터 각각 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 동기 그룹의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단으로서 기능시키기 위한 데이터 동기 프로그램이 저장된 컴퓨터 판독 가능 기록 매체.
[24]
가상 공간에 참가하는 복수의 클라이언트와,
상기 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
상기 가상 공간의 동기 대상 오브젝트는 상기 오브젝트의 소유권을 갖는 클라이언트와 소유권을 갖지 않는 클라이언트로 구성되는 동기 그룹의 클라이언트 사이에서 동기되는 것이며,
상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로부터 각각 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 동기 그룹의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 정보 처리 장치를 구비한 데이터 동기 시스템.
[25]
상기 복수의 클라이언트는, 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 상기 정보 처리 장치에 송신하는 상기 [24]에 기재된 데이터 동기 시스템.
[26]
정보 처리 장치를 통해 다른 클라이언트와 네트워크로 접속되는, 가상 공간에 참가하는 클라이언트로서의 단말 장치로서,
상기 가상 공간의 동기 대상 오브젝트는 상기 오브젝트의 소유권을 갖는 클라이언트와 소유권을 갖지 않는 클라이언트로 구성되는 동기 그룹의 클라이언트 사이에서 동기되는 것이며,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우에만, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로부터의 상기 동기 대상 오브젝트의 변경 내용 정보를, 상기 정보 처리 장치를 통해 수신하는 수신 수단과,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 동기 그룹의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖고, 상기 정보 처리 장치와 통신 가능하게 접속되는 클라이언트로서의 단말 장치.
[27]
정보 처리 장치를 통해 다른 클라이언트와 네트워크로 접속되는, 가상 공간에 참가하는 클라이언트로서의 단말 장치로서,
상기 가상 공간의 동기 대상 오브젝트는 상기 오브젝트의 소유권을 갖는 클라이언트와 소유권을 갖지 않는 클라이언트로 구성되는 동기 그룹의 클라이언트 사이에서 동기되는 것이며,
동기 대상 오브젝트를 복제한 복제 오브젝트가 자기(自己) 클라이언트에 있어서 갱신된 경우,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 상기 자기 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우에만, 상기 동기 대상 오브젝트를 복제한 상기 복제 오브젝트가 상기 자기 클라이언트에 있어서 갱신된 정보인 변경 내용 정보를 상기 정보 처리 장치에 송신하는 송신 수단을 갖고, 상기 정보 처리 장치와 통신 가능하게 접속되는 클라이언트로서의 단말 장치.
[28]
상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 상기 정보 처리 장치에 송신하는 상기 [26] 또는 [27]에 기재된 클라이언트로서의 단말 장치.
[29]
상기 정보 처리 장치에 의해 발행된 식별자에 의해 상기 가상 공간에의 액세스 및 상기 가상 공간을 구성하는 콘텐츠를 재현하기 위한 지형 정보의 편집 웹 사이트에 액세스하는 상기 [26] 또는 [27]에 기재된 클라이언트로서의 단말 장치.
[30]
1 이상의 가상 공간에 참가하는 복수의 클라이언트와 네트워크로 접속된 가상 공간 관리 제공 장치로서,
상기 가상 공간의 동기 대상 오브젝트는 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트와 소유권을 갖지 않는 클라이언트로 구성되는 동기 그룹의 클라이언트 사이에서 동기되는 것이며,
상기 동기 그룹의 클라이언트 중, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로부터 각각 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 동기 그룹의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 가상 공간 관리 제공 장치.
본원발명에 의하면, 복수의 사용자 단말이 참가하는 구성으로서, 복수의 사용자 단말의 데이터를 동기하는 상황에 있어서, 처리 부담이나 통신 부담의 증가를 억제할 수 있다.
도 1은 실시형태에 따른 동기 시스템의 구성의 일례를 도시한 개략도이다.
도 2는 지형 정보(에어리어) 및 룸(월드)의 관계를 도시한 개략도이다.
도 3은 실시형태에 따른 서버 장치의 구성예를 도시한 블록도이다.
도 4는 지형 정보(에어리어 관리 정보)의 구성을 도시한 도면이다.
도 5는 룸 관리 정보의 구성을 도시한 도면이다.
도 6은 어떤 룸의 참가자 관리 정보의 구성을 도시한 도면이다.
도 7은 어떤 에어리어의 레플리카(replica) 관리 정보의 구성을 도시한 도면이다.
도 8은 어떤 룸의 레플리카 관리 정보의 구성을 도시한 도면이다.
도 9는 동기 동작의 일례를 설명하기 위한 흐름도이다.
도 10은 소유권에 기초한 동기 동작의 일례를 설명하기 위한 흐름도이다.
도 11은 도중 참가에서의 동기 동작의 일례를 설명하기 위한 흐름도이다.
도 12는 도중 퇴출에서의 동기 동작의 일례를 설명하기 위한 흐름도이다.
도 13은 도중 퇴출에서의 동기 동작의 다른 예를 설명하기 위한 흐름도이다.
도 14는 에어리어 소유자가 도중 참가했을 때의 동기 동작의 일례를 설명하기 위한 흐름도이다.
도 15는 에어리어 소유자가 도중 참가했을 때의 동기 동작의 다른 예를 설명하기 위한 흐름도이다.
도 16은 에어리어마다 관리하는 에어리어 정보의 동기 오브젝트와 룸마다 관리하는 비에어리어 정보의 동기 오브젝트의 동기 동작의 관계를 도시한 도면이다.
[실시형태]
본 실시형태에서의 동기 시스템에 있어서, 복수의 참가자가 공통의 가상 공간에서의 활동, 예컨대, 메타버스나 다인수 참가형 게임(MMOG: Massively Multiplayer Online Game)이 실행된다. 상기 가상 공간에는 지면, 건물, 방 및 이들에 부수되는 것(가구, 시계, 도어 등), 나아가서는 상기 지면, 건물, 방에 있어서 제공되는 서비스 및 상기 서비스에 있어서 실행되는 프로그램 등이 준비되는데, 이들은 후술하는 지형 정보로서 관리된다. 이들 가상 공간의 지형 정보는, 가상 공간에서 행할 수 있는 체험(이후, 「게임 체험」이라고 하는 경우도 있음)의 콘텐츠 정보에 상당한다. 본 실시형태에서는, 이들 지형 정보도 서버에서 일원적으로 관리하여, 가상 공간에 참가할 때에 서버로부터 취득하는 것을 가능하게 한다. 미리 참가자 단말에 다운로드나 전송을 하고 있는 경우에 비해, 보다 많은 콘텐츠를, 보다 최신의 상태로 경험하는 것이 가능해진다. 또한, 최신의 콘텐츠 정보가 서버에서 관리되기 때문에, 참가자가 콘텐츠의 개발이나 수정에 기여하는 것도 가능해진다.
메타버스나 다인수 참가형 게임에서는 가상 공간에 있어서 시간의 경과와 함께, 참가자의 활동이 서로 관련된다. 복수의 참가자에 의해 조작되는 복수의 가상의 캐릭터는, 시간의 경과에 따라 대화하고, 전투하며, 공동 투쟁하고, 협동 작업하거나, 혹은 아이템을 모으는 등의 활동을 행한다. 그리고 이 활동에 의해 캐릭터는 소유하는 아이템, 전투에 관한 수치나 행동에 대한 경험치를 증감한다. 캐릭터 사이의 인터랙션에 의해, 가상 공간에서의 체험을 공유하여, 몰입감이나 일체감을 느낀다. 또한, 지형 정보에 포함되는 지면, 건물, 방 및 이들에 부수되는 것도 캐릭터의 조작에 의해 변화한다(예컨대, 지면의 변형, 건물의 증축, 철거, 가구의 이동, 시계의 동작, 도어의 개폐 등).
이러한 가상 공간에서, 클라이언트 단말에서는, 가상의 캐릭터나 아이템, 지형 정보에 의한, 활동의 시간 경과에 따른 변화의 상황이 동기하여 표시되고, 참가자는 동일한 가상 공간을 체험할 수 있다. 바꿔 말하면, 각 클라이언트 사이에서, 가상의 캐릭터나 아이템과 같은, 메타버스 또는 게임 상에 존재하는 오브젝트 및 지형 정보를 동기시킬 필요가 있다.
특히, 메타버스에서는, 참가자의 홈 월드, 참가자 작성의 월드 등, 참가자가 자유롭게 작성, 수정, 커스터마이즈(customize)할 수 있는 룸(월드, 에어리어)을 정의할 수 있는 경우가 많다. 마음에 드는 취미의 세계관[애니메이션, 우주 여행, 고양이, 미니 게임, 던전(dungeon) 등]을 표현하는 개인의 룸이거나, 인터넷 판매나 쇼룸이나 전시회를 목적으로 하는 기업의 룸이거나 한다. 또한, 룸, 월드, 에어리어는 가상 공간과 같은 뜻인 경우가 많으나, 본 실시형태에서는, 에어리어와 룸은 가상 공간의 전부 혹은 일부에서 체험을 공유할 수 있는 일정한 영역에 대응한다. 이후, 가상 공간은, 본 실시형태가 제공되는 가상 공간의 전부(체험 공유의 장소로서 분할된 일정한 영역의 집합체, 혹은, 본 실시형태를 이용한 가상 공간 애플리케이션이나 가상 공간 서비스가 제공하는 가상 공간의 전역)를 의미하는 경우도 있고, 체험 공유의 장소로서 분할된 일정한 영역인 가상 공간의 일부를 의미하는 경우도 있다. 특별히 구별할 필요가 있을 때에는, 전자를 1 이상의 가상 공간 등이라고 부르는 경우도 있고, 후자는 후술하는 바와 같이 에어리어 혹은 룸이라고 부르는 경우도 있다. 여러 가지 제한이나 사정으로, 동일한 콘텐츠(에어리어에 대응)를 체험할 수 있는 가상 공간(룸에 대응)이 복수 존재하는 경우가 있고, 동일한 가상 공간에 동시에 입장했다고 생각했지만, 다른 가상 공간(룸, 참가자에게 있어서는 패러렐 월드 상태가 됨)에 할당되어, 동일한 에어리어의 콘텐츠를 체험할 수 있음에도 불구하고, 그 가상 공간(룸)이 서로 만날 수 없는 경우가 있다. 본 실시형태에서는, 가상 공간의 콘텐츠 그 자체를 유니크하게 존재하는 에어리어라고 부르고, 에어리어에 참가한 참가자가 실제로 체험하는 가상 공간을 0개 이상 존재하는 룸이라고 불러 구별해서 사용하는 경우가 있다. 단일의 가상 공간(에어리어)에 참가할 수 있는 단일의 가상 체험의 공간(룸)밖에 존재하지 않는 경우에는, 에어리어와 룸은 거의 같은 뜻이다.
즉, 상기한 바와 같은 메타버스나 다인수 참가형 게임으로서의 온라인 게임이나, 그 외 회의 시스템 등의 네트워크 애플리케이션에서는, 참가자의 단말 사이에서, 도큐먼트나 동화상 등의 콘텐츠 정보를 동기시키는 기술이 이용된다. 여기서, 참가자 인수나 동기 대상의 콘텐츠(동기 대상 오브젝트. 이후, 가상의 캐릭터나 아이템, 지형 정보 등도 포함하여, 시간 경과에 따른 변화의 상황을 동기시키는 대상 전부를 「동기 대상 오브젝트」라고 부름)의 수가 커지면 동기에 필요한 데이터량이 증가하고, 동기의 지연(래그, 혹은, 레이턴시)이 증대하여, 네트워크 애플리케이션으로서 사용에 견딜 수 없게 된다.
또한, 이상과 같은 동기 대상 오브젝트는, 바꿔 말하면, 에어리어 정보와 비에어리어 정보의 2종류로 구별된다. 에어리어 정보는, 상기 설명한 지형 정보이고, 지형에 상관없이 가상 공간을 구성하는 콘텐츠(에어리어)를 재현하는 데 필요한 에어리어의 속성 정보로, 동기 대상 정보를 포함하며, 예컨대, 지면, 건물, 방 및 이들에 부수되는 것으로, 캐릭터의 조작에 의해서도 변화해도 좋다(예컨대, 지면의 변형, 건물의 증축, 철거, 가구의 이동, 시계의 동작, 도어의 개폐 등). 비에어리어 정보는, 에어리어 정보 이외의 동기 대상 정보로, 주로 참가자의 속성 정보이다. 캐릭터, 소유하는 아이템, 전투에 관한 수치나 행동에 대한 경험치 등이다. 에어리어 정보와 비에어리어 정보의 구별의 경계, 동기 대상의 오브젝트의 지정은 게임 디자인에 따라 변경 가능하다. 예컨대, 에어리어 정보는 에어리어의 콘텐츠의 내용을 관리하며, 협동 작업의 결과가 적용되어 유지된다. 한편, 비에어리어 정보는 룸 내에서 활동하는 사용자나 사용자의 소유물의 상태를 관리하며, 진행 중인 작업 경과 등을 유지한다(이후, 가상 공간에서 활동하는 사용자나 사용자의 소유물의 상태 등 사용자가 일의적으로 관리·운용하는 정보인 아바타, 복장·무기 등의 장비나 소지품을 전부 총칭하여, 사용자 정보라고 부르는 경우가 있다. 사용자 정보를 서로 공유함으로써, 가상 공간(룸)의 참가자는 서로의 아바타의 활동을 인식, 공유할 수 있다.). 에어리어 정보 및 비에어리어 정보는, 각각의 대표적인 것이 지형 정보 및 사용자 정보이지만, 이들에 한정되는 것은 아니다. 단, 이후의 설명에서는, 주로 지형 정보와 사용자 정보에 대해 설명하지만, 각각의 설명은 에어리어 정보 및 비에어리어 정보의 설명이라고 바꿔 읽을 수 있다.
메타버스, 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대 오더의 단말 장치가 접속되는 것과 같은 경우라도 통신 가능한 구성을 제공한다. 또한, 메타버스, MMOG 등의 프로그램은, 독립된 애플리케이션이어도 좋고, 웹 브라우저 상에서 동작하는 프로그램이어도 좋다.
네트워크는, 고속 통신이 가능한 통신 네트워크이고, 예컨대, 인터넷, 인트라넷이나 LAN(Local Area Network)이나 제5세대 이동 통신 시스템(5G) 등의 유선 또는 무선의 통신망이다.
일례로서, 서버 장치(1) 및 단말 장치(2a, 2b, 2c)는, 메타버스 상에서의 활동, 게임의 진행에 따라 각 장치 내에서 오브젝트로서 유지하고 있는 정보(동기 대상 오브젝트)를, 각 장치 사이에서 동기하기 위해서 동작하고, 각 장치 내의 오브젝트의 카피를 레플리카(복제 오브젝트)로서 유지하며, 상기 레플리카의 소유권을 관리하면서 레플리카를 각 장치에서 카피하여 (터셔리 카피로서) 유지하기 위해서 레플리카의 송수신(릴레이)을 함으로써 동기 동작의 보조를 행한다. 또한, 서버 장치(1)는 실제로는 동기 동작을 행하고 있는 것이 아니라, 릴레이를 행하는 것이지만, 동기를 위한 릴레이를 보다 광의로 「동기」, 이 동작을 「동기 동작」, 「동기 처리」라고 하는 경우가 있다. 또한, 보다 구체적으로는, 소유권을 갖는 사용자의 단말 장치에서의 오브젝트의 갱신에 의해서만 서버 장치(1)의 레플리카의 내용이 갱신되고, 동기 동작에 의해 소유권을 갖지 않는 다른 사용자의 단말 장치에서의 오브젝트(터셔리 카피)가 갱신된다. 소유권을 갖지 않는 다른 사용자의 단말 장치에서의 소유권을 갖지 않는 오브젝트(터셔리 카피)의 갱신은 행해지지 않는다. 이후, 서버 장치(1)가 릴레이 서버가 되어 단말 장치(2a, 2b, 2c) 사이에서 오브젝트의 동기를 행할 때의 구성, 동작의 상세에 대해, 실시형태에서 구체적으로 설명한다.
또한, 본 실시형태에서 사용하는 「오브젝트」, 「클래스」, 「필드」, 「인스턴스」 등의 어구는, 예컨대, Java(등록 상표), C++, C#, Python, JavaScript(등록 상표), Ruby 등에서 이용되는 동 어구와 같은 뜻으로 이용되지만, 이후, 클래스, 및 인스턴스화된 클래스(인스턴스)를 총칭하여 「오브젝트」라고 하는 경우가 있다. 「클래스」는, 프로그램을 실행하기 위한 처리를 통합한 것이며, 클래스 중에는 처리를 실행하는 메소드, 메소드가 처리를 실행할 때에 이용하는 변수로서 필드가 포함된다. 오브젝트는 0개 이후의 필드를 갖고, 각 필드는, 단수 또는 복수의 필드명, 필드값을 갖는다.
도 2는 에어리어[지형 정보(111)], 및 룸(월드)의 관계를 도시한 개략도이다.
에어리어 정보로서의 지형 정보(111a∼111c)는, 메타버스 또는 게임의 무대가 되는 지형이나 건물(및 그 부속물)의 정의이며, 예컨대, 개인이나 기업이 자유롭게 작성한 취미의 세계나 비즈니스의 무대이다. 서버 장치(1)는 이용자의 참가 희망을 접수했을 때에 이용자의 화신인 아바타(4a∼4c)를 희망하는 지형 정보(111a∼111c)에 대응하는 룸(112a∼112c)에 참가시킨다(이후, 가상 공간의 전체 혹은 일부인 에어리어를 체험하기 위한 룸에 참가하는 것을, 간단히, 「에어리어에 참가한다」라고 기술하는 경우도 있다. 에어리어에 대응하는 룸이 1개인 경우에는 에어리어 참가와 룸 참가는 같은 뜻이지만, 에어리어에 대응하는 룸이 복수 있는 경우에는, 특정한 룸에 참가하는 경우 등은, 「에어리어에 참가한다」가 아니라, 엄밀히 「룸에 참가한다」라고 구별해서 사용하는 경우도 있다. 가상 공간에 참가하면, 전형적으로는, 「에어리어」와 「룸」의 양방에 참가하게 된다.). 서버 장치(1)는 항상 모든 에어리어 관리 정보, 및 모든 룸 관리 정보, 및 각각에 대응하는 레플리카 관리 정보(114)를 메모리 상에 유지하고 있어도 좋으나, 운용상, 참가자가 존재하는 액티브한 관리 정보(에어리어 관리 정보, 및 룸 관리 정보, 및 레플리카 관리 정보)만 유지하는 것이 현실적이다. 즉, 어떤 에어리어나, 어떤 룸으로부터 아바타(4a∼4c)가 전부 없어지면(참가자가 제로가 되면) 서버 장치(1)는 대응하는 관리 정보의 설정값을 보존하여 일단 메모리로부터는 삭제된다. 이 운용의 경우에는, 에어리어 관리 정보, 및 룸 관리 정보, 및 각각에 대응하는 레플리카 관리 정보는, 각각, 에어리어에의 참가 희망을 접수했을 때에 이미 생성되어 있는 대응하는 관리 정보(에어리어 관리 정보, 및 룸 관리 정보, 및 레플리카 관리 정보)가 서버 장치(1)에 있으면 대응하는 관리 정보에 참가시키고, 만일, 생성되어 있는 관리 정보의 일부 혹은 전부가 없으면, 서버 장치(1)에 의해 에어리어 관리 정보, 및 룸 관리 정보, 및 레플리카 관리 정보가 생성(복원)된 각각의 관리 정보에 참가한다. 또한, 에어리어나 룸의 삭제 전에 설정값을 보존하는 타이밍에만 한정하지 않고, 각각의 관리 정보(에어리어 관리 정보, 및 룸 관리 정보, 및 레플리카 관리 정보)가, 관리하고 있는 오브젝트의 상태의 갱신 결과를 에어리어나 룸(보다 엄밀하게는 각각 에어리어 참가자나 룸 참가자의 유무에 상당)의 존속에 상관없이 영속적으로 누적하기 위해서는, 데이터 관리 프로그램(110) 및 에어리어 관리 정보(111) 및 룸 관리 정보(112)가 유지하는 콘텐츠에 대응하는 오브젝트를 동기시키기 위해서, 일정한 시간 간격으로 정기적으로, 각각의 콘텐츠를 레플리카 관리 정보의 변경 결과와 동기시키기 위해서 갱신하는 등 하여, 적절히 갱신해도 좋다. 또한, 예컨대, 하나의 에어리어[지형 정보(111c)]에 대해 룸(112c)이 생성되고, 상기 룸(112c)에 대한 참가자수가 서버 장치(1)의 퍼포먼스상, 상한에 도달한 경우, 에어리어[지형 정보(111c)]에 대해 다른 룸(112x)이 생성되는 경우가 있다. 그 경우에도, 룸(112c와 112x)의 지형 정보(111c)를 동기시킴으로써, 룸(112c와 112x)에 참가한 아바타는 서로의 존재가 보이지 않아도, 지형 정보의 변화 체험을 공유할 수 있다. 예컨대, 서로의 존재는 몰라도, 룸별로 작업 분담이 가능한 건축 작업이나 굴착 작업 등의 에어리어[지형 정보(111)]의 변화 결과를 공유할 수 있기 때문에, 룸(112c와 112x)에 참가한 아바타는 협동 작업이 가능해진다. 룸의 참가자는, 에어리어 관리 정보의 동기와, 비에어리어 정보의 동기(룸 내의 에어리어 관리 정보 이외의 정보의 동기이며, 예컨대, 아바타, 오브젝트 등)의 양방을 체험한다(후술하는 도 16 참조). 지형 정보(111a∼111c)는 에어리어 ID라고 불리는 식별자로 관리되고, 룸(112a∼112c, 112x)은 룸 ID라고 불리는 식별자로 관리되는 것으로 한다.
또한, 에어리어[지형 정보(111a∼111c)]를 체험하는 룸에 참가(에어리어에 참가)하기 위해서는, 각 에어리어[지형 정보(111a∼111c)]에 유니크한 식별자로서 예컨대 URL[Uniform Resource Locator, 본 실시형태의 문맥에서는, URI(Uniform Resource Identifier)라고 바꿔 읽어도 좋음]이 이용되고, 상기 URL을 단말 장치(2a, 2b, 2c…)의 웹 브라우저에 입력함으로써 메타버스 또는 게임을 위한 프로그램이 기동하여, 상기 URL에 대응한 룸에의 참가가 처리된다. 지정한 에어리어(지형 정보)에 대응하는 룸이 서버 장치(1)에 아직 존재하지 않거나(액티브하지 않거나), 혹은, 지정한 에어리어(지형 정보)에 대응하는 룸이 전부 만실인 경우에는, 서버 장치(1)가 신규로 작성하는 룸에 참가하고, 지정한 에어리어(지형 정보)에 대응하는 룸이 서버 장치(1)에 존재하며 아직 수용 인원(룸 정원 등)에 여유가 있는 경우에는 상기 여유가 있는 룸 중의 하나의 룸에 도중 참가한다. 또한, 기존 참가자로부터의 초대에 의한 도중 참가 등, 기존의 특정한 룸(112a∼112c, 112x)을 직접 지정하여 참가하기 위해서는, 각 룸(112a∼112c, 112x)에 유니크한 URL을 지정할 수 있도록 해도 좋다. 그 경우, 초대한 참가자가 퇴출해 버리는 등 어떠한 이유로 참가하고자 한 룸이 존재하지 않게 된 경우에는, 에러로 하지 않고, 대응하는 에어리어에 새로운 룸을 준비하여 참가하도록 처리를 해도 좋다.
또한, 에어리어[지형 정보(111a∼111c)]에 대해서는 에어리어 ID와 소유자가 정의되어 있고, 소유자인 이용자는, 지형 정보(111a∼111c) 등 에어리어의 내용을 편집할 수 있다. 상기 지형 정보(111a∼111c)의 편집 시에도 상기 에어리어[지형 정보(111a∼111c)]에 유니크한 URL이 이용되고, 단말 장치(2a, 2b, 2c…)의 웹 브라우저에 있어서 지형 편집의 페이지에 액세스하며, 상기 페이지에 있어서 URL을 입력함으로써 대응하는 지형 정보가 로드되어, 편집이 가능해진다. 또한, 룸 참가의 참가 시의 인증이나 에어리어의 지형 편집 개시 시의 인증은, 기존의 여러 가지 인증 방법을 적용하는 것으로 하고, 단말 장치 인증이거나, 사용자 ID/패스워드 인증이거나 한다. 따라서, 소유권은 단말 장치에 유니크하게 관련되어 있다고는 할 수 없고, 적절히, 다른 단말로부터 소유자로서 참가, 편집할 수 있다.
(서버 장치의 구성)
도 3은 실시형태에 따른 서버 장치(1)의 구성예를 도시한 블록도이다.
서버 장치(1)는, CPU(Central Processing Unit) 등으로 구성되고, 각부를 제어하며, 각종의 프로그램을 실행하는 제어부(10)와, 플래시 메모리 등의 기억 매체로 구성되며 정보를 기억하는 기억부(11)와, 휘발성 기록 매체로 구성되며 일시적으로 정보를 기억하는 메모리(12)와, 네트워크를 통해 외부와 통신하는 통신부(13)를 구비한다.
제어부(10)는, 데이터 동기 프로그램으로서의 데이터 관리 프로그램(110)을 실행함으로써, 지형 정보 관리 수단(100), 지형 정보 편집 수단(101), 룸 관리 수단(102), 참가자 관리 수단(103), 데이터 수신 수단(104), 데이터 송신 수단(105), 레플리카 관리 수단(106), 데이터 갱신 수단(107) 등으로서 기능한다.
지형 정보 관리 수단(100)은, 메타버스 또는 게임의 무대가 되는 지형이나 건물(및 그 부속물)인 지형 정보(111)를 관리한다. 구체적으로는, 룸에 대한 지형 정보(111)의 로드, 에어리어 ID의 관리, 지형 정보(111)에 대응하는 식별자의 일례로서 URL의 발행, 지형 정보(111)의 갱신 등을 행한다. 또한, 식별자는 URL에 한정되는 것은 아니며, 가능하면 특정한 MMOG나 메타버스 애플리케이션에서만 통용되는 것이 아니라, 오픈된 환경에서 사용할 수 있는 범용적인 것이 바람직한데, 오브젝트 ID, 오브젝트의 UUID(Universally Unique IDentifier) 등이어도 좋고, 이들 식별자의 일부, 혹은, 이들 식별자를 포함하는 문자열, 혹은, 이들 식별자나 문자열을 압축이나 인코딩 등의 연산 결과인 바이트열이어도 좋다.
지형 정보 편집 수단(101)은, 단말 장치(2a∼2c)의 요구에 따라 지형 정보(111), 특히 지형 데이터의 편집을 행한다. 지형 데이터는, 구체적으로, 지형, 건물, 이들의 부속물이고, 지형 정보 편집 수단(101)은, 지형이나 건물의 형상 변경이나 배치 변경, 지형의 부속물의 동작 내용 변경 등을 행한다. 또한, 지형 데이터에 부수되는 조작(예컨대, 도어의 개폐 등)을 기술하는 프로그램(스크립트)의 편집도 행한다. 도시하지 않으나, 비지형 정보에 대해서도, 예컨대, 아바타나 몬스터, 탈것 등의 장비, 채팅 게시판 등에 대해서도, 지형 정보 편집 수단(101)과 마찬가지로, 각각에 대응하는 편집 수단을 제공해도 좋다.
룸 관리 수단(102)은, 통상 룸 ID가 부여된 룸이라고 불리는 공통의 가상 공간의 생성, 일시 정지, 재개, 삭제 등을 행하여, 이들 동작에 따라 룸 관리 정보(112)를 관리한다.
참가자 관리 수단(103)은, 룸에 참가하는 참가자에게 상기 참가자의 사용자 ID, 상기 참가자의 단말 장치의 소켓 ID 등을 기록하여 상기 룸의 참가자 관리 정보(113)로서 기억부(11)에 저장한다. 단일의 가상 공간밖에 제공하지 않는 시스템에서는, 룸을 구별할 필요가 없기 때문에, 룸 ID가 불필요한 경우도 있다.
데이터 수신 수단(104)은, 통신부(13)를 통해 단말 장치(2a, 2b, 2c)로부터 각각이 소유하는 동기 대상의 데이터로서, 제로 개 이상 임의 개의 오브젝트(지형 데이터도 포함함)를 수신하여 복제하고, 복제 오브젝트로서 레플리카(120a), 레플리카(120b), 레플리카(120c)를 메모리(12)에 저장한다. 동기 대상의 데이터는, 룸 내에 로드된 지형 정보(111) 및 룸의 참가자, 아이템 등의 오브젝트이다. 에어리어 관리 정보에 관한 동기 오브젝트는 에어리어 단위로 관리[레플리카 관리 정보(114A)]하고, 비에어리어 정보에 관한 동기 오브젝트는 룸 단위로 관리[레플리카 관리 정보(114B)]한다.
데이터 송신 수단(105)은, 참가자 관리 정보(113)와 레플리카 관리 정보(114A 또는 114B)의 송신 룰에 기초하여 송신처로서 정해진 단말에 레플리카(120a), 레플리카(120b), 레플리카(120c)를, 통신부(13)를 통해 송신한다.
레플리카 관리 수단(106)은, 레플리카(120a), 레플리카(120b), 레플리카(120c)가 생성되었을 때에 상기 레플리카(120a), 레플리카(120b), 레플리카(120c)의 레플리카 ID와, 상기 레플리카 ID의 레플리카의 소유권을 갖는 소유자의 사용자 ID, 동기하는 이용자를 나타내는 송신 룰, 이양의 가부 등의 폴리시(policy)를 기록하고, 에어리어 정보의 레플리카 및 비에어리어 정보의 레플리카에 대해서는, 각각, 에어리어 단위로 레플리카 관리 정보(114A) 및 룸 단위로 레플리카 관리 정보(114B)로서 기억부(11)에 저장한다.
데이터 갱신 수단(107)은, 레플리카(120a), 레플리카(120b), 레플리카(120c)에 대응하는 오브젝트가 갱신된 경우에, 데이터 수신 수단(104)에 의해 레플리카 관리 정보(114A 또는 114B)에 기초하여 소유권을 갖는 사용자의 단말 장치로부터 그 차분을 수신하여, 대응하는 레플리카를 갱신한다. 또한, 차분을 수신하는 것이 네트워크의 정보량을 억제하는 관점에서 바람직하지만, 갱신된 오브젝트 그 자체를 수신해도 좋다. 또한, 데이터 송신 수단(105)은, 참가자 관리 정보(113)와 레플리카 관리 정보(114A 또는 114B)에 기초하여 송신처로서 정해진 단말에, 차분을 보낸다. 또한, 차분을 송신하는 것이 네트워크의 정보량을 억제하는 관점에서 바람직하지만, 갱신된 오브젝트 그 자체를 송신해도 좋다. 또한, 레플리카 관리 정보(114A)는 지형 정보(111)의 동기 대상 오브젝트의 관리에 이용되고, 레플리카 관리 정보(114B)는 아바타 등의 캐릭터, 아이템 등의 비에어리어 정보의 동기 대상 오브젝트의 관리에 이용된다.
기억부(11)는, 제어부(10)를 전술한 각 수단(100-107)으로서 동작시키는 데이터 관리 프로그램(110), 지형 정보(111), 룸 관리 정보(112), 참가자 관리 정보(113), 레플리카 관리 정보(114A 및 114B) 등을 기억한다. 기억부는, 릴레이셔널·데이터베이스나 파일 시스템 등을 이용한다. 또한, 고속화를 위해서, Redis 등 인 메모리 데이터베이스를 이용, 혹은, 병용해도 좋다.
메모리(12)는, 레플리카(120a, 120b, 120c…) 및 그 외의 정보를 일시적으로 기억한다.
또한, 단말 장치(2a, 2b, 2c)는, 서버 장치(1)와 동일한 구성에 더하여, 조작부 및 표시부를 구비한다. 서버 장치(1)와 구성이 공통되는 부분에 대해서는 설명을 생략한다.
도 4는 전체 에어리어[모든 지형 정보(111)]의 관리 정보의 구성을 도시한 도면이다.
지형 정보(111)는, 가상 공간인 룸에 로드되는 지형이나 건물 및 그 부속물에 관한 정보이고, 하나의 가상 공간(에어리어)이 작성되면, 하나의 지형 정보(도 4의 1행에 상당)가 작성된다. 지형 정보(111)는, 지형 정보를 식별하기 위한 에어리어 ID와, 지형이나 건물의 형상이나 배치, 지형의 부속물의 동작 내용 등을 나타내는 지형 데이터와, 에어리어가 표현하고 있는 가상 공간을 체험하기 위해서 참가하는 에어리어를 지정하거나 후술하는 지형 정보의 편집 페이지에 액세스하거나 하기 위한 URL과, 지형 정보가 갱신된 일시인 갱신 일시, 상기 룸을 작성한 참가자 ID를 나타내는 작성자와, 상기 룸에 대한 소유권이나 편집권을 갖는 참가자 ID를 나타내는 소유자나 편집자와, 동기하기 위해서 상기 지형 정보의 레플리카를 송신해야 할 송신처 룰과, 이미 룸이 작성되어 있는 지형 정보(111)를 이용하여 새로운 룸을 작성할 때의 룰을 규정한 신규 룸 작성 룰 등을 갖는다. 또한, 작성자나 소유자나 편집자는 복수여도 좋다. 또한, 지형 정보(111)의 소유자가, 편집권을 갖지 않는 것과 같은 경우, 상기 소유자에 대해 임시 편집권을 부여하도록 해도 좋다. 신규 룸 작성 룰은, 「참가자 2,000명 이상」과 같이 조건이 정해진 것이어도 좋고, 「참가자의 요구에 따른다」와 같이 외부로부터의 요구에 따르는 것이어도 좋다. 에어리어 ID나 URL은, 지형 정보 편집 수단(101)이 상기 지형 정보(1행분)를 작성할 때에 생성된다. 지형 데이터는, 지형 정보 편집 수단(101)에 의한 작성, 편집에 따라, 나아가서는, 에어리어 내에서의 참가자가 지형 정보에 영향을 주는 것과 같은 활동 결과에 따라, 갱신된다. 예컨대, 상기 지형 정보에 대한 각종 조작 권한(작성, 소거, 편집, 참조, 소유권 이양)에 따라, 작성자(작성만), 소유자(작성, 소거, 편집, 참조, 소유권 이양 전부 가능), 편집자(편집과 참조만 가능), 참조자(참조만 가능) 등, 참가자 ID를 하나 혹은 복수 지정하여 관리한다. 또한, URL은 예컨대, 소유자의 요구에 따라, URL, 그 자체, 혹은, 단축 등의 조작을 가한 URL 동등의 것을 발행하고, 소유자는, 다른 참가자, 혹은, 상기 가상 공간 제공 서비스를 전혀 모르는 사람(상기 가상 공간 제공 서비스의 미등록자·미이용자로 잠재적인 신규 등록자·신규 참가자)에게 개시함으로써, 상기 가상 공간 제공 서비스의 이용자여도, 혹은, 전혀 상기 가상 공간 제공 서비스를 이용한 적이 없는 잠재적인 이용자여도, URL만으로 상기 소유자가 상기 가상 공간에 참가할 수 있도록 참가를 권유할 수 있다. 단, 상기 가상 공간 제공 서비스의 미등록자에 대해서는, 상기 가상 공간에의 참가 전에, 상기 가상 공간 서비스의 등록이나 다운로드를 수반하는 경우도 있다.
도 5는 룸 관리 정보(112)의 구성을 도시한 도면이다.
룸 관리 정보(112)는, 가상 공간인 룸을 식별하기 위한 룸 ID와, 룸에서 전개되는 지형 정보(111)를 나타내는 에어리어 ID와, 룸에 참가하기 위한 URL과, 룸이 생성된 일시인 생성 일시 등을 갖는다.
도 6은 참가자 관리 정보(113)의 구성을 도시한 도면이다.
참가자 관리 정보(113)는, 가상 공간인 룸마다 작성되고, 참가자를 식별하기 위한 사용자 ID와, 참가자의 사용자명과, 참가자가 조작하는 단말 장치 및 서버 장치(1)의 IP 어드레스, 포트 번호 등의 송수신에 필요한 정보를 포함하는 소켓(TCP 소켓 혹은 UDP 소켓)의 소켓 ID와, 상기 룸에 참가한 일시를 나타내는 참가 일시를 갖는다. 또한 참가자의 룸 내에서의 역할, 소속 그룹, 공유 오브젝트 갱신 시의 송신, 수신하는 동기 대상 오브젝트의 선정 룰(거리가 가깝다, 시계에 들어와 있다), 수신의 형식 혹은 그 프리퍼런스(디폴트)를 기술해도 좋다.
도 7은 에어리어마다 관리되는 지형 정보에 관한 동기 대상 오브젝트의 레플리카 관리 정보(114A)의 구성을 도시한 도면이다.
지형 정보의 레플리카 관리 정보(114A)는, 가상 공간(의 템플릿)인 에어리어마다 작성되고, 에어리어의 액티브한 룸 ID의 리스트와, 레플리카를 식별하기 위한 레플리카 ID와, 상기 레플리카의 소유권을 갖는 참가자 ID를 나타내는 소유자와, 동기하기 위해서 상기 레플리카를 송신해야 할 송신의 룰과, 상기 레플리카의 소유권이 이전 가능한지의 여부를 나타내는 이양을 갖는다. 상기 에어리어에서 액티브한 참가자는, 룸 ID의 리스트를 참조하여, 각각의 룸의 참가자 관리 정보(113)를 참조하면 취득할 수 있으나, 지형 정보의 레플리카 관리 정보(114A)에서도 액티브한 참가자 리스트를 중복으로 유지[룸의 참가자 관리 정보(113) 갱신 시에 동기하여 이쪽도 갱신할 필요가 있음)해도 좋다. 또한, 이양할 수 있는 경우에는 이전 방법의 룰이나, 오브젝트 갱신 시의 송신, 수신의 데이터 형식 혹은 그 프리퍼런스를 기술해도 좋다. 또한, 송신의 룰은, 클라이언트 단말의 성능, 클라이언트 단말의 네트워크 상황, 소유권을 갖는 사용자의 역할, 소속 그룹에 의해 정의해도 좋다. 지형 정보에 관한 오브젝트 소유자는, 본래적으로 전부 에어리어의 소유자인 것이 바람직하지만, 상기 소유자가, 상시, 상기 에어리어의 룸에 참가하고 있다고 가정하는 것은 현실적이지 않다. 일반적인 이용 형태에서는, 지형 정보에 관한 동기 오브젝트의 소유자는, 모든 레플리카에 대해, 시스템 등의 특별한 사용자(더미 클라이언트 등)로 하거나, 에어리어에 대응하는 룸에 참가하고 있는 가장 오래된 참가자가 된다. 더미 클라이언트를 이용하는 경우에는, 서버 장치(1) 또는 다른 서버 상에 더미 클라이언트를 준비하고, 상기 더미 클라이언트를 지형 정보(111)의 소유자로 하도록 해도 좋다. 또한, 여기서 「더미 클라이언트」란, 예컨대, 서버 장치(1) 상에서 동작하는 것이며, 클라이언트의 소프트웨어의 일부 또는 전부를 동작시켜, 동기 그룹에 참가함으로써, 다른 동기 그룹의 클라이언트와 동기 동작을 행하는 것이다. 여기서, 가장 오래된 참가자란, 에어리어에 대응하는 룸이 복수 있는 경우에도, 그 에어리어에 참가한 최초의 참가자, 혹은, 그 최초의 참가자 등 가장 오래된 참가자가 퇴출한 경우에는, 다음으로 오래 전부터 참가하고 있는 참가자이다. 가장 오래된 참가자로 하지 않고, 소유자를 결정해야 할 때에, 참가자 ID가 가장 작은 참가자로 하는 등, 다른 방법을 취해도 좋다. 대부분의 지형 정보[예컨대, 지면의 형상 정보(G1, G2)나 건물 정보(B1)]는 이양되어 유지되어야 하지만, 특별한 작업 마크(예컨대 M1)와 같은 이양될 필요가 없는 것이 존재해도 좋다.
더미 클라이언트가 (동기 대상 오브젝트의) 소유자가 되는 경우에는, 더미 클라이언트는, 그 에어리어의 어느 하나의 룸이 액티브하게 되었을 때에 기동되어, 에어리어 관리 정보(111)로부터, 상기 에어리어 정보를 취득하고, 상기 에어리어의 동기 대상 오브젝트에 대해 프라이머리를 작성하여 유지한다. 또한, 가장 오래된 참가자가 (동기 대상 오브젝트의) 소유자가 되는 경우에는, 참가자가 에어리어의 룸에 참가할 때에, 에어리어 관리 정보(111)로부터, 상기 에어리어 정보를 취득하고, 상기 에어리어에 다른 참가자(그 중의 한 사람이 가장 오래된 참가자)가 존재하는 경우에는, 서버 장치(1)로부터 상기 에어리어의 동기 대상 오브젝트의 레플리카를 취득하고, 터셔리를 생성하여 유지한다. 만일, 에어리어의 어떤 룸에도 참가자가 없는 경우(룸이 존재하지 않는 경우를 포함함), 즉, 상기 참가자가 에어리어의 룸의 최초의 참가자인 경우, 상기 참가자는, 상기 에어리어의 가장 오래된 참가자가 되고, 에어리어 관리 정보로부터, 상기 에어리어 정보를 취득하며, 상기 에어리어의 동기 대상 오브젝트에 대해 프라이머리를 작성하여 유지한다.
도 8은 어떤 룸에서의 비에어리어 정보의 레플리카 관리 정보(114B)의 구성을 도시한 도면이다.
비에어리어 정보의 레플리카 관리 정보(114B)는, 가상 공간인 룸마다 작성되고, 레플리카를 식별하기 위한 레플리카 ID와, 상기 레플리카의 소유권을 갖는 참가자 ID를 나타내는 소유자와, 동기하기 위해서 상기 레플리카를 송신해야 할 송신의 룰과, 상기 레플리카의 소유권이 이전 가능한지의 여부를 나타내는 이양을 갖는다. 또한, 이양할 수 있는 경우에는 이전 방법의 룰이나, 오브젝트 갱신 시의 송신, 수신의 데이터 형식 혹은 그 프리퍼런스를 기술해도 좋다. 또한, 송신의 룰은, 클라이언트 단말의 성능, 클라이언트 단말의 네트워크 상황, 소유권을 갖는 사용자의 역할, 소속 그룹에 의해 정의해도 좋고(도 8 내의 「그룹 α」), 상기 오브젝트에 대한 거리가 가깝다, 시계에 들어와 있다 등의 기준에 의해 정의해도 좋다(도 8 내의 「거리 50 이내」). 혹은, 클라이언트 단말의 성능, 클라이언트 단말의 네트워크 상황으로 정의해도 좋다. 상기 룸의 참가자는, 참가자 관리 정보(113)를 참조하면 취득할 수 있으나, 비에어리어 정보의 레플리카 관리 정보(114B)에서도 참가자 리스트를 중복으로 유지[룸의 참가자 관리 정보(113) 갱신 시에 동기하여 이쪽도 갱신할 필요가 있음)해도 좋다.
(정보 처리 장치의 동작)
다음으로, 본 실시형태의 작용을, (1) 기본 동작, (2) 지형 정보 편집 동작, (3) 동기 동작, (4) 도중 참가·퇴출 동작으로 나누어 설명한다.
(1) 기본 동작
복수의 사용자가, 복수의 오브젝트를 동기시켜 동일한 가상 공간(룸, 월드)에서의 체험(메타버스, 게임 플레이)을 공유하기 위해서, 어떤 지형 정보(111)(에어리어)가 로드된 가상 공간(룸)에 참가한다. 또한, 「(3) 동기 동작」에서는, 오브젝트의 동기 동작의 설명에서는 간단을 위해서, 단일의 가상 공간만을 제공하는 메타버스의 예를 중심으로 설명한다. 복수의 가상 공간(룸)에 동일한 지형 정보(111)(에어리어)가 로드되는 경우에는, 지형 정보(111)의 동기 동작은 메타버스, 게임의 디자인 및 폴리시에 기초하여 정해진다. 지형 정보(111)의 동기 동작의 구체예로서는, 각각의 룸마다 비에어리어 정보에 대해 동기를 취하고, 또한, 동일한 에어리어에 속하는 룸을 통합하여, 에어리어마다 에어리어 정보에 대해 동기를 취하면 된다(도 16 참조). 또한, 룸 내에서 동기 동작하는 아바타나 아바타의 부속물, 또는, 이들에 관련되는 동기 대상 오브젝트는, 룸 내의 참가자 단말이 각각 자신의 아바타 등의 소유권을 유지하지만, 동기 그룹은 룸 내의 참가자 단말에서 모든 동기 대상 오브젝트에 동일하기 때문에, 도면 114B에 도시된 바와 같이, 룸 단위로 복수의 오브젝트를 단일의 동기 그룹으로 관리하면 효율이 좋다. 물론 단일이 아니라 복수의 동기 그룹으로서 관리해도 좋고, 동기 대상 오브젝트마다 관리해도 좋다. 동일한 것은 에어리어 내의 지형 정보에 대해서도 해당되며, 도면 114A에 도시된 바와 같이, 에어리어 단위로 복수의 지형 오브젝트를 단일의 에어리어 그룹으로 관리해도 좋다.
이용자(3a, 3b, 3c)는, 단말 장치(2a, 2b, 2c)를 조작하여 메타버스의 희망하는 가상 공간(지정한 에어리어)에 참가하기 위해서 서버에 접속하는데, 참가 방법으로서 지형 정보(111)의 에어리어 ID마다 유니크하게 준비된 URL을 이용함으로써 원하는 방이나 이벤트 회장 등이 준비된 지형 정보(111)(에어리어)에 대응하는 룸에 직접 참가한다. URL로부터 애플리케이션을 기동하는, 특히 애플리케이션의 특정한 상태(가상 공간 내의 특정한 장소, 위치. 예컨대 룸 내의 의자 위 등의 특정한 위치에 참가자의 아바타가 앉아 있는 상태 등)를 기동하기 위해서는, URL 스킴, 딥 링크, Universal Links 등의 수법을 이용할 수 있다. 그 때문에, 애플리케이션을 기동한 후에, 가상 공간 내에서 여러 가지 검색이나 선택이나 이동을 반복하여, 간신히 참가하는 룸에 도달하는 것과 같은 단계가 불필요하다. 또한, 룸에 참가 중인 참가자가, 다른 참가자와 함께 룸에서의 가상 체험을 행하기 위해서, 다른 참가자를 동일한 룸에 초대하기 위해서는, 자신이 참가하고 있는 룸(경우에 따라서는 에어리어)에 대응하는 URL을 메일이나 메시지에 의해 공유함으로써, 다른 참가자는 간단히 동일한 룸에 합류할 수 있다. 혹은, 전시회 등의 메타버스에 있어서, 참가 기업은, 자사가 출전하는 에어리어에 대응하는 URL을, 포스터, 팜플렛, 명함, 메일, SNS(twitter, facebook 등) 등의 방법으로, 고객에게 전함으로써, 고객은 다른 기업의 룸 등에 들르지 않고, 초대한 기업의 룸에 직접 참가할 수 있다.
즉, 단말 장치(2a, 2b, 2c)는, 단말 상의 URL이 입력된 브라우저 경유로 메타버스용의 애플리케이션을 기동하고, 상기 애플리케이션은 서버 장치로부터 상기 지형 정보(111)(에어리어)의 지형 데이터(동기 대상 외의 오브젝트 및 오브젝트의 동작의 프로그램이나 스크립트도 포함함)를 다운로드하며, 또한, 룸에의 참가를 서버 장치(1)에 요구하여, 에어리어 정보 및 비에어리어 정보의 동기 처리를 개시하는 것으로 한다. 또한, 지형 데이터의 다운로드의, 동기 대상 정보(위치 등의 파라미터)에 대해서는, 데이터 수신 수단(104)에 기술하는 방법을 취한다. 구체적으로는, 에어리어에 속하는 최초의 룸의 참가자가 자신에게 프라이머리 카피를 유지하고 서버에도 레플리카를 작성하며, 그 이후의 참가자는 서버의 레플리카를 취득하여 자신은 터셔리를 작성하여 동기에 필요한 파라미터(동기 대상 오브젝트)를 초기화한다.
또한, 에어리어[지형 정보(111)]는 가상 공간의 콘텐츠에 상당한다. 통상의 MMOG 등의 게임에서는, 콘텐츠의 추가나 수정에 따라, 클라이언트 프로그램의 갱신이 필요하지만, 본 실시형태와 같이 지형 정보를 그때마다 다운로드하는 구성으로 함으로써, 콘텐츠의 추가나 수정에 따른 클라이언트 프로그램의 갱신은 불필요해진다. 특히, 방대한 콘텐츠(에어리어)를 제공하는 것과 같은 메타버스에서는, 애당초 모든 콘텐츠를 클라이언트 프로그램에 포함시켜 유지하는 것은 비효율적이거나, 경우에 따라서는 불가능하거나 한다. 한편, 그때마다 다운로드하는 경우에는, 콘텐츠의 다운로드 후에 간신히 룸에 참가할 수 있기 때문에, 룸의 참가의 대기 시간이 문제가 되는 경우도 있다. 그때마다 다운로드하지 않고, 한번 다운로드한 콘텐츠는 캐시(cache)를 하고, 콘텐츠의 갱신이 없는 경우에는 캐시의 콘텐츠를 재이용하는, 다음에 이용할 것 같은 콘텐츠를 예상하여 앞을 내다보고 다운로드해 두는 등의 고안을 행해도 좋다.
서버 장치(1)의 룸 관리 수단(102)은, 단말 장치(2a, 2b, 2c)로부터 요구를 수신하면, 룸 관리 정보(112)를 참조하여 해당하는 에어리어 ID에 대해 룸이 준비되어 있는지 확인하고, 룸이 준비되어 있지 않은 경우, 또는 룸은 이미 존재하지만 참가자 관리 수단(103)에 의해 지형 정보(111)의 신규 룸 작성 룰을 만족시키고 있다고 판단된 경우(예컨대, 룸의 참가자가 상한에 도달하고 있다고 판단된 경우), 새로운 룸을 준비하여 상기 신규 룸에 지형 정보(111)를 로드하여 제공한다. 에어리어가 복수의 룸을 제공하는 경우에는, 룸 관리 수단(102)에 의해, 하나의 에어리어 ID에 복수의 룸 ID가 관련지어지고, 룸 ID마다 참가자 관리 수단(103)이 룸에 참가하는 참가자를 참가자 관리 정보(113)에서 관리하며, 레플리카 관리 수단(106)이 룸에서 취급되는 에어리어 정보 및 에어리어 정보의 레플리카의 소유자를, 각각 에어리어 정보(에어리어)의 레플리카 관리 정보(114A) 또는 비에어리어 정보(룸)의 레플리카 관리 정보(114B)에서 관리한다.
서버 장치(1)의 참가자 관리 수단(103)은, 룸에의 참가 요구를 수신하면, 참가자에 대해 사용자 ID, 사용자명, 소켓 ID, 참가 일시와 함께 기억부(11)의 상기 룸 ID에 관련된 참가자 관리 정보(113)에 기록한다.
또한, 룸에의 참가는 메타버스 및 지형 정보(111)의 디자인에 따라 여러 가지 형태가 생각된다. 본 실시형태는, 참가를 희망하는 에어리어 혹은 룸에 대응하는 URL을 지정하여, 특정한 에어리어(지형 정보)의 룸, 혹은 이미 존재하고 있는 특정한 룸에 직접 참가하는 형태를 상정하고 있으나, 본 실시형태는 다른 형태에도 적용할 수 있다. 가상 공간 전체에서 단일의 룸밖에 제공하지 않는 경우(단일의 지형 정보 또한 단일의 룸)에는, 참가한(로그인 등) 사용자는 전부 디폴트의 룸에 참가한다. 가상 공간 전체에서 복수의 룸을 제공하는 경우에는, 참가한 사용자는 대기소에 해당하는 로비라고 하는 특수한 룸(인수 제한이 있으면 복수 로비가 존재하는 경우도 있음)에 입장한 후, 목적의 룸으로 이동하는 형태도 있다. 또한, 단일의 에어리어(지형 정보)에 복수의 룸을 제공하는 경우(패러렐 월드)에는, 사용자가 이전에 참가하고 있던 룸으로 복귀하는 형태도 있다. 룸이 신규로 작성된 경우에는, 혼자서 메타버스가 개시되어도 좋고, 참가자가 몇 사람 모이고 나서 적당한 타이밍에 개시되어도 좋다. 또한, 이미 룸 내에서 메타버스가 개시되어 있는 경우에는, 참가하는 사용자는, 도중 참가로서 취급된다(후술하는 「(3) 도중 참가·퇴출 동작」 참조.). 본 실시형태에서는 룸에의 참가 방법은 특별히 한정하지 않는다. 또한, 복수의 룸이 준비되는 경우에는, 룸 관리 정보(112)에서 관리한다.
단말 장치(2a, 2b, 2c)는, 메타버스, 게임에서의 활동 중에는, 프로그램의 실행에 따라 지형 정보(111), 및 복수의 오브젝트(캐릭터, 무기, 아이템 등)를 축차 생성, 갱신, 삭제하여 처리한다. 서버 장치(1)는, 단말 장치(2a, 2b, 2c)에서의 지형 정보(111) 및 오브젝트(이후, 「동기 대상 오브젝트」라고 함)의 동기를 위한 릴레이 동작을 행한다. 이하, 먼저, 「(2) 지형 정보 편집 동작」에 있어서, 지형 정보(111)의 편집 동작에 대해 설명하고, 「(3) 동기 동작」에 있어서, 예컨대, 메타버스에서의 활동 중에 있어서, 단말 장치(2a, 2b, 2c)의 모든 지형 정보(111) 및 오브젝트가 동기된 후, 단말 장치(2a)에 있어서 새로운 동기 대상 오브젝트가 생성된 경우에 대해, 동기 동작을 설명한다.
(2) 지형 정보 편집 동작
먼저, 이용자(3a)는, 지형 정보(111)를 편집하기 위해서 단말 장치(2a)를 조작하고, 웹 브라우저를 기동하여 지형 정보 편집용의 사이트에 접속하여, 로그인한다. 또한, 편집 대상의 에어리어 ID를 지정하기 위해서, 도 4의 지형 정보(111)에 도시된 바와 같이, 상기 에어리어 ID에 연관된 URL을 웹 브라우저의 사이트에 입력한다. 단, 상기 지형 정보(111)를 편집 가능한 이용자(편집권을 갖는 이용자)는, 도 7에 도시된 바와 같이 레플리카 관리 정보(114A)에 있어서 해당하는 에어리어 ID의 소유자인 것으로 하지만, 에어리어 ID의 소유자와 다른 이용자에게 편집권을 설정해도 좋다.
서버 장치(1)의 지형 정보 편집 수단(101)은, 단말 장치(2a)로부터 상기 URL에 의해 액세스를 접수하면, URL에 포함되는 문자열로부터 에어리어 ID를 특정하고, 이용자(3a)의 사용자 ID와 대조하여, 레플리카 관리 정보(114A)에 있어서 소유자인지 확인하며, 소유자인 경우에 상기 에어리어 ID에 해당하는 지형 데이터를 편집하기 위한 화면을 단말 장치(2a)에 표시 제어한다.
이용자(3a)는, 단말 장치(2a)에 표시된 화면을 확인하면서, 지면, 건물, 방 및 이들에 부수되는 것 및 서비스 등을 제공하기 위한 프로그램 등을 편집한다. 편집 내용은 단말 장치(2a)로부터 서버 장치(1)에 송신되고, 지면, 건물, 방 및 이들에 부수되는 것을 편집한 경우에는, 지형 정보 편집 수단(101)에 의해 지형 정보(111)의 지형 데이터가 갱신된다.
통상, 지형 정보(111)의 지형 데이터의 편집은, 지형 정보(111)가 로드되어 있지 않은 경우(룸이 존재하지 않는 경우)에 행해진다. 또한, 메타버스, 게임의 디자인, 폴리시가 허용한다면, 지형 정보(111)의 지형 데이터의 편집은, 지형 정보(111)가 로드되어 있는 경우(룸이 존재하는 경우)에 행해져도 좋다. 이 경우, 편집 전의 지형 데이터와 편집 후의 지형 데이터의 차분은, 「(3) 동기 동작」에서 설명되는 동기 대상 오브젝트의 차분으로서 취급된다. 마찬가지로 메타버스, 게임의 진행에 따라 지형 정보가 변경된 경우에는, 상기 변경에 의한 차분이 편집 대상으로 하고 있는 지형 정보(111)에 반영될 필요가 있기 때문에, 「(3) 동기 동작」에서 설명되는 동기 대상 오브젝트의 차분으로서 취급된다. 또한, 지형 정보(111)의 편집이란, 「(3) 동기 동작」에서 설명하는 프라이머리 카피의 편집을 가리키는 것으로 한다.
(3) 동기 동작
도 9는 비에어리어 정보의 동기 동작의 일례를 설명하기 위한 흐름도이다. 비에어리어 정보의 동기 동작은, 비에어리어 정보의 레플리카 관리 정보(114B)를 참조하면서, 단말 장치는, 소유권을 갖는 오브젝트(프라이머리 카피)의 변경을, 서버 장치(1)에 송신하고, 서버 장치(1)는 대응하는 레플리카의 갱신과, 룸 참가자 리스트를 참조하여, 송신처 룰에 해당하는 상기 오브젝트의 소유권을 갖지 않는 단말 장치에 갱신 정보를 송신하며, 갱신 정보를 수신한 각각의 단말 장치는 소유권을 갖지 않는 오브젝트(터셔리)를 갱신함으로써, 실현된다. 또한, 에어리어 정보의 동기 동작도 거의 마찬가지로 실현된다. 단, 오브젝트 동기의 범위(룸과 에어리어의 차이)와 오브젝트의 소유자(에어리어의 소유자가 항상 온라인이라고는 할 수 없음)의 선정 방법이 상이하다. 동기의 대상이 되는 참가자 리스트는, 반드시 동일한 룸의 참가자라고는 할 수 없고, 동일한 에어리어에 복수의 룸이 존재하는 경우에는, 동일한 에어리어에 대응하고 있는 모든 룸의 참가자가 된다. 따라서, 에어리어 정보의 레플리카의 소유자는 동일한 룸의 참가자라고는 할 수 없다. 오브젝트의 본래의 소유자는 에어리어의 소유자이어야 하지만, 반드시 항상 온라인이라고는 할 수 없다. 에어리어의 소유자가 상기 에어리어의 룸에 참가하고 있지 않은 경우, 다른 참가자를 소유자로 할 필요가 있다. 그 때문에, 소유자는, 시스템 제공의 특별한 사용자(더미 클라이언트 등)이거나, 가장 오래 전부터 상기 에어리어의 룸의 참가자(에어리어에 대응하는 룸 참가 계속 시간이 가장 긴 참가자, 복수 룸이 있는 경우에는 다른 룸의 참가자인 경우도 있음)이거나 한다. 에어리어의 소유자가 상기 에어리어의 룸으로 복귀한 경우에는, 후술하는 도중 퇴출과 동일한 절차로, 소유권을 에어리어의 소유자에게 위양(委讓)하도록 해도 좋다.
도 16에, 에어리어에는 복수의 룸이 존재하는 경우의 에어리어 정보의 동기 처리[레플리카 관리 정보(114A)]와 비에어리어 정보의 동기 처리[레플리카 관리 정보(114B)]의 관계를 도시한다. 기본적인 동기의 구조(프라이머리 카피, 레플리카, 터셔리)는 전부 동일하다.
또한 도 16에서는, 에어리어와 룸의 관계는, 에어리어 내의 동기 대상 클라이언트는 복수의 룸에 속하고, 각각이 동기 동작하는 복수의 단말 장치(클라이언트)로 구성되어 있는 포함 관계로 되어 있으나, 본 실시형태의 동기 동작은, 오브젝트마다 동기 그룹을 정의하기 때문에, 포함 관계에만 한정되지 않는다. 따라서, 보다 일반적으로는, 클라이언트는 복수의 동기 대상 오브젝트를 갖고, 각각의 동기 대상 오브젝트는, 각각 상이한 오브젝트의 소유자와 동기 대상 그룹을 갖는 보다 유연한 구성으로도 사용할 수 있다. 구체적으로는, 동기 대상의 그룹을, 오브젝트마다, 파티(그룹), 거리, 목적 등마다 정의하고, 각각의 그룹은 서로 독립적이거나, 중첩되거나 해도 좋다.
예컨대, 룸마다 동기를 행하는 경우, 동기 그룹은, 동기 대상 오브젝트 중 서로의 사용자 정보의 동기를 행하는 클라이언트로 구성되게 된다. 또한, 에어리어마다 동기를 행하는 경우, 동기 그룹은, 상기 동기 대상 오브젝트 중 가상 공간을 구성하는 콘텐츠를 재현하기 위한 지형 정보의 동기를 행하는 클라이언트로 구성되게 된다.
먼저, 단말 장치(2a)는, 메타버스, 게임의 진행에 따라 새로운 동기 대상 오브젝트로서의 오브젝트 A0을 생성한다(S120a). 다음으로, 단말 장치(2a)는, 상기 오브젝트 A0의 프라이머리 카피 A0을 생성하여(S121a), 서버 장치(1)에 송신한다. 또한, 프라이머리 카피를 생성하는 이유는, 오브젝트 A0이 경시적으로 변화하는 것이기 때문에, 어떤 타이밍(미리 정한 동기 타이밍 또는 변화가 발생한 타이밍 등)에서의 오브젝트의 상태를 나타내는 데이터로서 프라이머리 카피를 생성하여 동기용의 정보로서 취급한다. 또한, 프라이머리 카피를 생성하는 다른 이유는, 이후의 동기에 있어서, 경시 변화에 의한 차분을 확인하기 위해서도, 직전의 동기에 사용한 정보는 필요해지는 경우가 있다. 한편, 실장에 따라서는, 프라이머리 카피를 만들지 않고, 오브젝트 A0을 직접 동기용의 정보로서 취급하여, 서버 장치(1)에 송신해도 좋다. 혹은, 특히 복수의 오브젝트로 구성되는 복합 오브젝트에서는, 양자의 조합이어도 좋다. 이하의 설명에서는, 프라이머리 카피와 동기 대상 오브젝트는 엄밀히 구별하지 않는다.
서버 장치(1)의 데이터 수신 수단(104)은, 통신부(13)를 통해 단말 장치(2a)로부터 동기 대상의 데이터로서 오브젝트의 프라이머리 카피를 수신하여 복제하고, 세컨더리 카피로서 레플리카 A0을 메모리(12)에 저장한다(S110).
서버 장치(1)의 레플리카 관리 수단(106)은, 레플리카 A0이 생성되었을 때에, 예컨대, 상기 레플리카 A0의 소유자 「U001」[단말 장치(2a)의 사용자], 송신처 룰로서 단말 장치(2a)의 사용자 이외인 「소유자 이외」, 이양의 가부 「OK」 등의 폴리시를 기록하여 레플리카 관리 정보(114A 또는 114B)를 갱신하여 기억부(11)에 저장한다. 폴리시는, 오브젝트의 종류마다 고정으로 정의(예컨대, 디폴트로서, 송신처는 소유자 이외의 룸 참가자 전원, 이양은 불가 등)되어 있어도 좋고, 단말 장치(2a)가 오브젝트를 작성할 때에 지정하거나 해도 좋으며, 소유권을 갖는 단말 장치(2a)가 게임 진행에 따라 수시로 지정이나 변경을 해도 좋고, 송신처의 단말 장치(2b)가 단말 장치(2a)와는 가상 공간 상에서의 거리가 멀어지는 등의 이유로 일시적으로 수취하지 않는 지정을 해도 좋다.
다음으로, 서버 장치(1)의 데이터 송신 수단(105)은, 레플리카 관리 정보(114A 또는 114B)에 기초하여 송신처로서 정해진 사용자의 단말 장치(2b, 2c)[필요에 따라 참가자 관리 정보(113) 등을 참조하여]에 레플리카 A0을, 통신부(13)를 통해 송신한다.
단말 장치(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)의 데이터 수신 수단(104)은, 통신부(13)를 통해 단말 장치(2a)로부터 차분 A01을 수신하고(S111), 데이터 갱신 수단(107)에 의해 메모리(12)의 레플리카 A0을 레플리카 A1로 갱신한다(S112).
다음으로, 서버 장치(1)의 데이터 송신 수단(105)은, 레플리카 관리 정보(114A 또는 114B)에 기초하여 송신처로서 정해진 단말 장치(2b, 2c)에 레플리카 A0의 차분 A01을, 통신부(13)를 통해 송신한다.
단말 장치(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)는, 오브젝트에 변경이 있었던 경우, 차분 정보를 송신하여 통신량을 억제하지만, 필드의 일부라도 변경이 있었던 경우, 혹은, 변경이 있어도 없어도 정기적으로, 변경이 없는 필드도 포함시켜 오브젝트 전체를 통지하는 사양으로 해도 좋다. 또한, 이들 사양을 정적, 동적으로, 동기 대상 오브젝트마다 전환하여 통지하는 사양으로 해도 좋다.
다음으로, 오브젝트가 갱신된 경우의 동기의 룰에 대해 설명한다.
도 10은 소유권에 기초한 동기 동작의 일례를 설명하기 위한 흐름도이다.
단말 장치(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'를 수신하지 않는 것(수신해도 수신 처리하지 않고, 무시, 파기, 거부함)(라) 또는 단말 장치(2a)가 상기 차분 A00'를 수신해도 동기 처리를 하지 않는(프라이머리 카피, 터셔리의 어느 것에 대해서도 갱신 처리를 하지 않음) 것(마) 중 어느 하나에 의해 실현된다. 소유권을 갖는 사용자의 단말 장치 이외에서의 오브젝트 갱신에 기초한 동기의 금지는 가∼마의 어느 방법, 혹은 이들 1개 이상의 임의의 조합으로 실현해도 좋으나, 가∼마 중 가를 채용함으로써 가장 네트워크 통신으로 송수신되는 정보량이 적어지고, 나, 다, 라, 마의 순으로, 네트워크 통신으로 송수신되는 정보량이 증가해 가기 때문에, 가∼마의 순으로 바람직한 구성이다. 또한, 게임의 부정[치트(cheat)]을 방지하기 위해서, 서버 검증은 통상 행해지는 경우가 많기 때문에, 가 및 나의 조합, 또는, 가 및 나 및 마의 조합이 적합한 최소 구성이다.
(4) 도중 참가·퇴출 동작
다음으로, 단말 장치(2a)가 도중 참가하는 경우에 대해 설명한다. 단말 장치(2b)가 오브젝트 B0을 생성하고 있고 단말 장치(2b)의 사용자가 상기 오브젝트 B0의 소유권을 가지며, 단말 장치(2c)가 오브젝트 C0을 생성하고 있고 단말 장치(2c)의 사용자가 오브젝트 C0의 소유권을 갖고 있는 것을 전제로 한다.
도 11은 도중 참가에서의 동기 동작의 일례를 설명하기 위한 흐름도이다.
먼저, 단말 장치(2a)는, 먼저 룸에 참가한다. 서버 장치(1)는 참가자 관리 정보(113)에 단말 장치(2a)에 관련된 사용자 U001의 정보를 추가한다. 또한, 단말 장치(2a)는, 도중 참가와 함께 새로운 오브젝트 A0으로서, 예컨대, 새로운 캐릭터를 생성한다(S320a). 다음으로, 단말 장치(2a)는, 상기 오브젝트 A0의 프라이머리 카피를 생성하여(S321a), 서버 장치(1)에 송신한다.
서버 장치(1)의 데이터 수신 수단(104)은, 통신부(13)를 통해 단말 장치(2a)로부터 동기 대상의 데이터로서 오브젝트의 프라이머리 카피를 수신하여 복제하고, 세컨더리 카피로서 레플리카 A0을 메모리(12)에 저장한다(S310).
서버 장치(1)의 레플리카 관리 수단(106)은, 레플리카 A0이 생성되었을 때에 상기 레플리카 A0의 소유자 「U001」[단말 장치(2a)의 사용자], 송신처 룰로서 「단말 장치(2a)의 사용자 이외」, 이양의 가부 「OK」 등의 폴리시를 기록하여 레플리카 관리 정보(114A 또는 114B)를 갱신하여 기억부(11)에 저장한다.
다음으로, 서버 장치(1)의 데이터 송신 수단(105)은, 레플리카 관리 정보(114A 또는 114B)에 기초하여 송신처로서 정해진 단말 장치(2b, 2c)에 레플리카 A0을, 통신부(13)를 통해 송신한다.
단말 장치(2b, 2c)는, 서버 장치(1)로부터 레플리카 A0을 수신하여 복제하고, 터셔리 카피로서 터셔리 A0을 메모리에 저장한다(S320b, S320c).
또한, 서버 장치(1)의 데이터 송신 수단(105)은, 다른 단말 장치(2b, 2c)의 사용자가 소유권을 갖는 오브젝트의 레플리카를 미리 관리하고 있기 때문에(S311), 레플리카 관리 정보(114A 또는 114B)에 기초하여 송신처로서 정해진 단말 장치(2a)에 레플리카 B0, C0을, 통신부(13)를 통해 송신한다. 또한, 상기 송신은, 오브젝트 A0의 동기 동작보다 먼저 행해지는 것이어도 좋다.
단말 장치(2a)는, 서버 장치(1)로부터 레플리카 B0, C0을 수신하여 복제하고, 터셔리 카피로서 터셔리 B0, C0을 메모리에 저장한다(S322a). 이들 일련의 동작에 의해, 단말 장치(2a)는, 단말 장치(2b, 2c)와 통신하지 않고 서버 장치(1)와만 통신하여 참가 동작이 완료된다. 여기서는, 이미 참가하고 있던 단말은 2대이지만, 이미 천대의 단말이 참가하고 있는 경우에도, 단말 장치(2a)는 서버 장치(1)와만 통신함으로써 참가를 완료할 수 있고, 이미 참가가 끝난 천대의 단말은, 각각이 소유하는 동기 대상 오브젝트를, 단말 장치(2a)에 통지할 필요가 없어, 단말 장치(2a)가 도중 참가하는 것에 의한 네트워크 및 각 단말 장치의 부하는 작다.
다음으로, 단말 장치(2a)가 도중 퇴출하는 경우에 대해 설명한다. 여기서는, 단말 장치(2a)가 소유권을 유지하고 있는 오브젝트의 존속 및 소유권의 위양에 대해, 오브젝트가 존속하는 경우와, 오브젝트가 소거되는 경우에 대해 설명한다. 도시하지 않으나, 에어리어 정보의 동기 처리에 있어서, 에어리어의 소유자가 에어리어의 룸의 하나에 참가(복귀)한 경우, 각 에어리어 정보의 오브젝트에 대해, 에어리어의 소유자에게 소유권을 위양하는 경우도 동일한 방법이 된다. 그 경우에는, 소유권을 유지하는 단말 장치(2a)는 퇴출하는 것이 트리거가 되는 것이 아니라, 에어리어의 소유자 단말이 에어리어의 룸에 참가한 것이 트리거가 되고, 서버 장치(1)로부터 단말 장치(2a)에 대해, 소유권을 위양/소유하고 있는 오브젝트를 파기하도록 지시하여, 각각 도 12 및 도 13과 유사한 동작을 행한다.
도 12는 도중 퇴출에서의 동기 동작의 일례를 설명하기 위한 흐름도이다.
단말 장치(2a)는 오브젝트 A0을 생성하고(S420a), 갱신하여 오브젝트 A1로 하며(S422a), 단말 장치(2b, 2c)에 터셔리 A0, A1이 각각 동기된 후(S422b, S422c)에 퇴출하는(S424a) 것으로 한다. 먼저, 도 4에 도시된 바와 같이, 레플리카 관리 정보(114A 또는 114B)의 레플리카 ID 「A」의 이양 항목이 「OK」인 경우에 대해 설명한다. 여기서, 이양 항목이 「OK」인 오브젝트의 예로서는, 게임 중에서 사용되는 아이템 등을 들 수 있으나 캐릭터(NPC: Non Playing Character)나 적이어도 좋다.
단말 장치(2a)는, 퇴출을 서버 장치(1)에 요구한다. 서버 장치(1)의 참가자 관리 수단(103)은, 참가자 관리 정보(113)로부터 단말 장치(2a)에 관련된 사용자 정보를 삭제한다. 또한, 서버 장치(1)의 레플리카 관리 수단(106)은, 레플리카 관리 정보(114A 또는 114B)의 이양 항목을 확인하여, 이양 항목이 「OK」이면, 다음 소유자를 단말 장치(2b)의 사용자로 변경하여 레플리카 관리 정보(114A 또는 114B)의 내용을 갱신하고(S413), 단말 장치(2b)에 소유권이 변경되었다는 취지를 통지한다.
단말 장치(2b)는, 소유권이 단말 장치(2b)로 변경되었다는 취지의 통지를 서버 장치(1)로부터 접수하면, 기억하고 있던 터셔리 A1을 자기에게 소유권이 있는 오브젝트 A1로 변경함(S423b)으로써 퇴출 동작이 완료된다. 또한, 여기서, 퇴출(S424a)은 단말 장치(2a)가 명시적으로 서버 장치(1)에 통지하였으나, 갑작스러운 회선 단절 등으로, 퇴출을 통지할 수 없는 경우도 있다. 그 경우에도, 서버 장치(1)가, 단말 장치(2a)의 절단(소켓이 클로즈한 등)을 검출한 경우, 퇴출 통지를 명시적으로 수신한 경우와 마찬가지로 퇴출 및 소유권의 변경 처리를 완료할 수 있다. 만일, 각 단말 장치에서, 터셔리의 소유자를 엄밀히 관리하고 있는 경우에는, 도시하지 않으나, 서버 장치(1)는, 소유권을 이양받아, 이후, 터셔리를 프라이머리로서 관리하는 단말 장치(2b) 이외의 동기 동작에 참가하고 있는 나머지 모든 단말 장치[이 경우에는 단말 장치(2c)]에도, 오브젝트 A(터셔리 A)의 소유권이 단말 장치(2a)로부터 단말 장치(2b)에 이양된 것을 통지한다. 각 단말 장치는, 자신이 관리하는 동기 대상 오브젝트가, 자신이 소유권을 갖는 프라이머리인지, 자신이 소유권을 갖지 않는 터셔리인지만을 관리하는 경우(터셔리의 소유자를 관리하지 않는 경우)에는, 상기 오브젝트의 소유권을 유지하지 않는 단말 장치(2c)에의 통지는 필요하지 않다. 단, 그 경우에는, 서버 장치(1)는 소유권을 갖는 단말 장치가 프라이머리를 변경한 변경 정보를 수신했을 때에만, 소유권을 갖지 않는 단말 장치에 상기 갱신 정보를 송신하고, 만일, 소유권을 갖지 않는 단말 장치가 터셔리를 변경한 변경 정보를 수신했을 때에는, 소유권을 갖지 않는 단말 장치에 상기 갱신 정보를 송신해서는 안 된다. 전자는, 단말 장치가 엄밀히 터셔리의 소유자를 관리하여, 치트 등의 비정상적인 갱신 정보에 대응하기 쉬워지지만, 도중 퇴출에 따른 통신량이 증대한다. 후자는 치트 등의 비정상적인 갱신 정보는 서버 장치(1)에서의 대응에 의존하지만, 도중 퇴출에 따른 통신량은 매우 적어져, 방대한 수의 단말이 동기 동작에 참가하고 있는 경우에는 유효하다. 동기 대상의 오브젝트의 종류나 단말 장치의 성능에 따라, 개별적으로 전자와 후자를 선택해도 좋다.
또한, 이양 항목이 [OK]인 경우, 어떤 사용자에게 이양할지 미리 정해 두어도 좋고, 퇴출 시에 정해도 좋으며, 참가의 일시순으로 이양해도 좋고, 랜덤한 할당이어도 좋으며, 처리 능력이 높은 단말의 사용자에게 할당해도 좋고, 네트워크 환경이 좋은 단말[대역이 큰, 레이턴시/RTT(round-trip time)가 작은, 통신이 안정(RTT가 안정되게 작은)되어 있는]의 사용자에게 할당해도 좋다.
다음으로, 레플리카 관리 정보(114A 또는 114B)의 레플리카 ID 「A」의 이양 항목이 「NG」인 경우에 대해 설명한다. 여기서, 이양 항목이 「NG」인 오브젝트의 예로서는, 게임 중에서 플레이되는 캐릭터(사용자 자신의 아바타)나 적이지만, 게임 중에서 사용되는 아이템 등이어도 좋다.
도 13은 도중 퇴출에서의 동기 동작의 다른 예를 설명하기 위한 흐름도이다.
단말 장치(2a)는, 퇴출(S524a)을 서버 장치(1)에 요구한다. 서버 장치(1)는, 레플리카 관리 정보(114A 또는 114B)의 이양 항목을 확인하여, 이양 항목이 「NG」이면, 상기 레플리카 A1에 관한 정보를 삭제하여 참가자 관리 정보(113) 및 레플리카 관리 정보(114A 또는 114B)의 내용을 갱신[단말 장치(2a)에 관련된 사용자 정보의 삭제, 단말 장치(2a)에 관련된 사용자가 소유하는 동기 대상 오브젝트의 삭제]하고(S513), 단말 장치(2b, 2c)에 레플리카 A1이 삭제되었다는 취지를 통지한다.
단말 장치(2b, 2c)는, 서버 장치(1)로부터 레플리카 A1이 삭제되었다는 취지의 통지를 접수하면, 기억하고 있던 터셔리 A1을 삭제함(S523b, S523c)으로써 퇴출 동작이 완료된다.
도 14 및 도 15는 에어리어 소유자(에어리어 정보의 편집권을 갖는 사용자)(2c)가 에어리어의 어느 하나의 룸에 도중 참가(복귀)한 경우(S620c, S720c), 에어리어 정보의 동기 대상 오브젝트의 소유권을 회복하는 경우의 실시예를 설명하기 위한 흐름도이다.
레플리카 관리 정보(114A)에서 이양 대상 오브젝트의 경우에는, 도 14에서 도시된 바와 같이, 도 12와 거의 동일한 순서로, 오브젝트의 소유권이 단말 장치(2a)로부터 에어리어 소유자의 단말 장치(2c)에 이양되고, 단말 장치(2a)의 프라이머리는 터셔리[예컨대 서버 장치(1)는 단말 장치(2a)에 소유권의 이양에 의한 소유권의 상실을 통지함)가 되며(S624a), 단말 장치(2c)가 프라이머리를 유지한다(S621c)[예컨대, 서버 장치(1)는 단말 장치(2c)에 레플리카를 송신하고, 또한 소유권의 이양에 의한 소유권의 취득을 통지하며(S614), 그 결과, 단말 장치(2a)는 프라이머리를 터셔리로서 유지하게 되고, 한편, 단말 장치(2c)는 레플리카를 수신하여 프라이머리로서 유지함]. 도시하지 않으나, 터셔리의 소유자를 단말에서도 관리하는 등의 이유로 필요가 있다면 단말 장치(2b)에도 소유자의 변경을 통지한다. 레플리카 관리 정보(114A)에서 이양 대상 외 오브젝트의 경우에는, 도 15에서 도시된 바와 같이, 도 13과 거의 동일한 순서로, 상기 오브젝트의 레플리카는 파기되고(S714), 에어리어의 모든 룸에 참가하고 있는 참가자의 대응하는 프라이머리 및 터셔리도 파기된다(S724a, S723b).
(실시형태의 효과)
상기한 실시형태에 의하면, 단말 장치(2a)가 다른 모든 단말 장치(2b, 2c)로부터 동기 대상의 오브젝트를 수신하지 않고, 서버 장치(1)가 모든 단말 장치에서 생성된 오브젝트의 레플리카를 보존하며, 단말 장치(2a)가 서버 장치(1)로부터 동기 대상의 오브젝트를 수신하도록 했기 때문에, 복수의 단말 장치가 참가하는 구성으로서, 복수의 단말 장치의 데이터를 서로 동기하는 상황에 있어서, 통신 부담의 증가를 억제할 수 있다. 또한, 서버 장치(1)는 메타버스, 게임을 진행하지 않기 때문에, 처리 부담을 경감할 수 있다. 그 결과, 1000 사용자 규모의 메타버스, 게임의 오브젝트 동기가 가능해진다.
또한, 도중 참가는, 서버로부터 레플리카를 수신하여 터셔리를 작성하는 것만으로 충분하기 때문에, 다른 클라이언트로부터 오브젝트를 수신할 필요가 없어, 통신 부담 및 처리 부담의 증가를 억제할 수 있다.
또한, 메타버스와 같이 지형 정보(111)(에어리어)가 많이 존재하는 경우에 있어서, 어느 지형 정보(111)에 참가할지를 URL에 의해 지정하도록 했기 때문에, 룸을 의식하지 않고 지형 정보(111)가 속하는 룸에 참가(지정한 에어리어에 참가)할 수 있고, 또한 다른 이용자에 대한 주지가 용이하여 공유가 하기 쉽다. 특히, 메타버스, MMOG 등의 프로그램이 웹 브라우저 상에서 동작하는 것이면, 상기 URL을 웹 페이지 상에 삽입하여, 웹 브라우저로부터 참가하도록 할 수 있다.
또한, 상기 지형 정보(111)의 편집을 마찬가지로 URL에 의해 웹 브라우저 경유로 행하도록 했기 때문에, 편집을 위한 애플리케이션을 단말 장치(2a, 2b, 2c)에 인스톨할 필요가 없어, 편집 개시를 위한 공정을 줄일 수 있다.
또한, 관리 정보 중 수신한 동기 대상 오브젝트의 정보만을 참조하면 되어, 해당하는 사용자가 발견될 때까지 권한 리스트를 참조할 필요가 없기 때문에, 처리 부담이 경감된다고 하는 효과를 발휘한다.
상기 실시형태에서는, 1000명보다 적은 사용자수(예컨대, 100명이나 10명)여도, 1000명인 경우에 비해 처리 부담이 10분의 1, 100분의 1이 되기 때문에, 종래의 방식에 비해 처리 부담을 감소할 수 있고, 나아가서는 저비용으로 상기 발명을 이용한 서비스를 이용자에게 제공할 수 있다.
예컨대, 축구 게임의 볼과 같은 오브젝트에 대해, 상기 볼을 유지하는 플레이어에게 볼의 소유권을 정의하는 것과 같은 경우에 대해, 게임의 진행에 있어서 상기 볼의 오브젝트의 소유권이 변화하지만, 오브젝트마다 소유권을 관리해 두면 관리 정보의 갱신은 한번으로 끝나고, 복수의 사용자의 권한 리스트를 확인, 갱신할 필요가 없기 때문에, 처리 부담 및 통신 부담이 경감된다.
본 발명은 게임의 설계를 불문하고, 어떠한 설계여도 다인수 참가형 게임에서의 동기 동작을 실행 가능한 서버를 제공하는 것을 한층 더한 과제로 하고 있다.
본 발명은 예컨대, 동기 대상 오브젝트의 소유권이 다인수로 어지럽게 변화하는 것과 같은 설계, 동기 대상 오브젝트의 소유권의 수가 큰 것과 같은 설계에도 충분히 견딜 수 있는 구성을 갖고 있고, 현상(現狀) 상정할 수 없는 것과 같은 미지의 설계를 갖는 게임에도 대응 가능한 환경을 제공할 수 있다.
[다른 실시형태]
또한, 본 발명은 상기 실시형태에 한정되지 않고, 본 발명의 취지를 일탈하지 않는 범위에서 여러 가지 변형이 가능하다.
또한, 상기한 실시형태에서는, 소유권을 갖는 사용자가 갱신한 오브젝트가 서버 장치(1)의 레플리카를 갱신하고, 또한, 동일한 룸의 나머지 클라이언트에 갱신 정보를 전파하는 구성으로 했기 때문에, 메타버스, 게임 진행에서의 모순 해결은 소유자 클라이언트 우선의 모순 해결이 되지만, 메타버스, 게임에서의 아바타는 각 클라이언트 자신이 소유하는 메타버스, 게임 디자인이면, 평등을 실현할 수 있다. 소유자 클라이언트끼리의 경합은 메타버스, 게임의 디자인으로 해결하는 것으로 한다. 예컨대, 직접 상호 관계를 갖지 않는 것과 같은 디자인으로 하든지, RPC(Remote Procedure Call)와 같은 다른 메커니즘, 혹은, 다른 오브젝트를 통해, 상호 관계를 갖도록 하여, 직접 동기 대상 오브젝트끼리가 상호 관계를 갖지 않도록 디자인하면 된다.
또한, 에어리어 정보에 관한 동기 오브젝트의 소유권은, 에어리어마다 정의되기 때문에, 에어리어에 복수의 룸이 존재하고 있는 경우, 동일한 에어리어의 모든 룸에 적용되어 공유된다. 즉, 소유권을 갖는 클라이언트가 에어리어의 동기 대상 오브젝트의 상태를 갱신하면, 상기 클라이언트가 참가 룸의 에어리어 정보뿐만 아니라, 상기 클라이언트가 참가하고 있지 않은 동일한 에어리어에 속하는 룸에서도 갱신된다. 에어리어 정보는 엄밀하게는 특정한 클라이언트 전용의 오브젝트가 아니기 때문에, 에어리어의 소유권을 갖지 않는 클라이언트가 갱신을 행하고 싶은 경우도 생각된다. 에어리어의 소유권이 없는 클라이언트가 갱신을 행하기 위해서는, 동기 대상 오브젝트의 소유권(프라이머리)을 갖는 클라이언트에 갱신을 의뢰하게 된다. 의뢰 방법의 하나의 실시예로서는, RPC 등의 프로그램(스크립트)을 이용한다. 이러한 소유권을 갖지 않는 오브젝트의 변경을 수반하는 것과 같은 조작, 예컨대 건물의 도어의 개폐는, 상기 동기 대상 오브젝트(이 경우에는 도어)의 프로그램으로서 조작되고, 그 프로그램을 조작하면 상기 오브젝트를 동기 동작하는 모든 클라이언트에서 조작이 마찬가지로 실행되며, 소유권을 갖지 않는 클라이언트에서의 조작은 실패하지만, 소유권을 갖는 클라이언트에서의 조작은 성공하여, 상기 오브젝트의 상태가, 변화(예컨대 폐쇄되어 있던 도어가 개방됨)가 소유권을 갖는 클라이언트의 프라이머리 카피에서 발생한다. 이 변화는, 오브젝트의 상태 변화의 동기의 구조에 의해, 서버 장치(1)의 레플리카에 반영되고, 계속해서, 소유권을 갖지 않는 동일한 에어리어의 각 룸에 참가하는 나머지 클라이언트의 터셔리에도 반영된다. 이 구조에 의해, 클라이언트는 소유권을 갖지 않는 오브젝트의 조작을 실현할 수도 있다. 룸을 걸친, 에어리어 내의 에어리어 정보의 동기의 일례를 나타내었으나, 동일한 RPC 등 프로그램/스크립트에 의한 동기 방법은, 에어리어에 한정되지 않고, 룸 내의 소유권을 갖지 않는 타인의 오브젝트에 대해서도 행하는 것도 가능하다. 단, 이 구조에서는, 복수 클라이언트가 동일한 오브젝트의 조작을 동시에 시도한 경우에는, 복수의 동일한 RPC의 리퀘스트가 다수 발생하지만, 통신 등의 지연이나 운도 포함하여, 실행의 순서는 클라이언트에 따라 상이하고, 게다가, 소유권을 갖는 단말에서의 어느 하나만의 클라이언트의 RPC의 동작만이 유효해지기 때문에, 소유권을 갖는 클라이언트가 압도적으로 유리하며, 소유권을 갖지 않는 클라이언트 사이에서는, 상기 클라이언트와 소유권을 갖는 클라이언트와의 거리, 상기 클라이언트의 CPU 성능, 상기 클라이언트가 접속하고 있는 네트워크 환경 등에 의존한다. 그 때문에, FPS 등 타임 크리티컬한 조작에서의 동기 동작으로서 이용하기에는, 반드시 페어(fair)라고는 할 수 없으나, 소셜 콘텐츠와 같은 빈도가 적은 변화에서는 충분하다. 전술한 바와 같이, 동기 대상 오브젝트의 선정, 동기의 범위(에어리어 전체인지 룸 내인지), 동기의 방법(직접적인 오브젝트 동기인지, RPC 등 프로그램을 통한 간접적인 동기인지) 등은, 제공하는 서비스의 기능이나 성능에 크게 영향을 주기 때문에, 실현하고 싶은 서비스의 설계(게임 디자인)에 따라 결정해야 한다.
또한, 상기한 실시형태에서는, 클라이언트 사이에서 동기하면서 메타버스, 게임을 진행하는 수법에 대해서는, 기존 기술을 적용할 수 있기 때문에 상세한 내용을 생략하였다. 특히 세계 각지에서 대인수가 참가하는 것과 같은 가상 환경에서는, 동기 대상 오브젝트에 관한 정보의 전달에 지연이나 결손이 발생할 가능성이 있다. 그 때문에 정보의 전달에는 가상 공간의 종류(메타버스, 게임의 쟝르)나 동기 대상 오브젝트의 종류에 따라, 본 실시형태가 제안하는 수법에 더하여, 여러 가지 일반적인 고안을 병용할 필요가 있다.
먼저, 네트워크의 지연을 취급하기 위해서는, 각 클라이언트는 참가하고 있는 가상 공간 내의 가상 공간 시각을 동기시켜, 가상 공간 시각을 동기 대상 오브젝트에 관한 통신 정보에 첨부하는 경우가 많다.
네트워크의 지연을 처리하기 위해서는, 가상 공간 내에 참가하는 클라이언트 개개에서 메타버스, 게임 진행에 어긋남을 발생시키는 동기 방법이 널리 이용된다. 즉, 단말 장치(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 등의 프로토콜을 이용하여, 통신의 결손을 상정하여, 동기 대상 오브젝트 전체를 갱신 정보로서 전달하고 있는 경우에는, 갱신 정보의 도달이 일부 결손되거나, 갱신 정보의 도착이 프라이머리 카피에 첨부되어 있던 가상 공간 시각의 순으로 되지 않고, 뒤바뀌거나 하는 경우가 있다. 그러한 경우, 단말 장치는, 갱신 정보에 첨부되어 있는 가상 공간 시각을 이용하여, 수신한 정보를 교체하거나, 혹은, 오래된 갱신 정보를 수신한 경우에는 불필요한 오래된 정보는 파기하거나 등 하여, 오브젝트를 동기시켜, 메타버스, 게임의 진행을 행한다.
또한, 참가자 관리 정보(113)는, 참가자 오브젝트에의 링크를 참가순으로 리스트로서 관리하는 것이어도 좋다. 각 링크의 참가자 정보로부터 대응하는 통신에 필요한 정보를 취득하여 서버 장치(1)가 단말 장치(2a, 2b, 2c)와 통신을 행하는 것이어도 좋다.
상기 실시형태에서는 제어부(10)의 각 수단(100∼104)의 기능을 프로그램으로 실현하였으나, 각 수단의 전부 또는 일부를 ASIC 등의 하드웨어에 의해 실현해도 좋다. 또한, 상기 실시형태에서 이용한 프로그램을 CD-ROM 등의 기록 매체에 기억하여 제공할 수도 있다. 또한, 상기 실시형태에서 설명한 상기 단계의 교체, 삭제, 추가 등은 상기 실시형태의 요지를 변경하지 않는 범위 내에서 가능하다. 또한, 각 수단의 기능은 적절히 다른 수단에 결합해도 좋고, 복수의 수단으로 분리해도 좋다.
[다른 실시형태 2]
서로 동기하는 단말 장치의 그룹은 유연하게 지정할 수 있다. 실시형태 및 다른 실시형태에서는, 에어리어의 에어리어 정보의 동기 동작, 룸의 비에어리어 정보의 동기 조작으로서 설명해 왔으나, 서로 동기하는 단말 장치의 그룹(이후, 간단히 「동기 그룹」이라고 부르는 경우도 있음)은 에어리어(에어리어의 모든 룸의 참가자 단말) 혹은 룸(룸의 참가자 단말)에 한정되는 것은 아니다. 여기서 룸의 동기 그룹은, 동기 대상 오브젝트 중 서로의 사용자 정보의 동기를 행하는 클라이언트로부터 룸 단위로 1개 이상(도 8, 114B는 1개인 경우) 구성되고, 에어리어의 동기 그룹은, 동기 대상 오브젝트 중 가상 공간을 구성하는 콘텐츠를 재현하기 위한 상기 지형 정보(에어리어)의 동기를 행하는 클라이언트로부터 에어리어 단위로 1개 이상(도 7, 114A는 1개인 경우) 구성된다. 또한, 각각의 동기 그룹은, 룸의 경우를 예로서 설명한 바와 같이, 다이나믹하게 생성, 변경, 소멸되어도 좋다. 그룹의 관리는, 룸 관리 정보나 지형 관리 정보와 마찬가지로, 각각의 그룹 관리 정보로서 관리 유지된다. 단말 장치는, 각각의 그룹의 폴리시에 따라, 적절히, 1개 또는 복수 개의 그룹에, 참가, 퇴출할 수 있다. 예컨대, 어떤 에어리어를 지정하여 가상 체험을 체험하는 경우에는, 에어리어의 동기 그룹과 룸의 동기 그룹에 참가하고, 룸으로부터 퇴출하면, 각각의 에어리어의 동기 그룹과 룸의 동기 그룹으로부터도 퇴출한다.
다른 실시형태 2로서, 보다 범용적인 동기 동작의 구성 방법을 나타낸다. 여기서는, 동기 대상의 오브젝트, 상기 오브젝트의 동기 동작에 참가하는 단말 장치로 구성되는 동기 동작을 위한 단말 장치 그룹(동기 그룹)이 동기 동작의 기본이 된다. 동기 대상으로 하는 오브젝트의 구성 방법, 동기 동작시키는 단말 장치 그룹의 구성 방법에 의해, 여러 가지 동기의 이용 형태에의 대응, 동기 동작의 효율화가 가능하다.
(1) 동기 동작의 기본
동기 오브젝트마다 소유자 단말과 대상의 오브젝트를 동기 동작시키는 소유권이 없는 단말이 서버 장치(1)와 접속 통신함으로써 오브젝트의 동기 동작이 실현된다. 이 경우, 동기 동작시키는 단말 장치는 동기 그룹을 형성하고 있다. 이 단말 장치 그룹(동기 그룹)은, 가상 공간에 참가하기 위해서, 서버 장치(1)에 접속되어 있는 단말 장치의 전부 혹은 일부이다.
개개의 동기 대상 오브젝트에 대해 동기 그룹 내에서의 동기 동작은, 도 9-도 13에서 설명한 바와 같다. 상기 오브젝트를 소유하는 참가자의 단말 장치가 상기 오브젝트의 프라이머리를 유지하고, 서버 장치(1)가 상기 오브젝트의 레플리카를 유지하며, 상기 오브젝트의 소유권을 갖지 않는 나머지 동기 그룹의 참가자의 단말 장치는 상기 오브젝트의 터셔리를 유지한다. 프라이머리에서의 변경 정보는, 레플리카, 터셔리에 순차 적용되어, 프라이머리, 레플리카, 터셔리는 동일한 상태로 동기한다. 소유권을 갖지 않는 참가자의 단말 장치는, 터셔리를 직접 변경해서는 안 되고, 만일, 터셔리를 변경해도, 레플리카나 프라이머리나 타단말의 터셔리는 변경되지 않는다. 터셔리를 변경하고 싶은 소유권을 갖지 않는 참가자의 단말 장치는, 터셔리를 직접 변경하지 않고, 소유권을 갖는 참가자의 단말 장치에 프라이머리의 변경을 의뢰하며, 만일, 소유권을 갖는 참가자의 단말 장치가 의뢰에 따라 프라이머리를 갱신하면, 그 갱신 정보가 레플리카, 터셔리로 전파하여, 결과적으로 자신의 단말의 터셔리도 변경된다.
동기 동작은 동기 대상의 오브젝트마다 레플리카 관리 장치가 관리, 동작한다. 서버 장치(1)는 도 7 및 도 8에 도시된 바와 같이, 동기 대상의 레플리카마다, 레플리카 ID, 동기 동작을 위한 단말 장치 그룹(동기 그룹)(소유자, 소유권을 갖지 않는 참가자, 만일 필요하다면 송신처 한정의 룰), 이양에 관한 정보 등을 유지한다. 또한, 도 7 및 도 8은 각각 에어리어 참가자 및 룸 참가자가 동기 동작을 위한 단말 장치 그룹을 구성하고 있는 경우에 해당하고, 소유권을 갖지 않는 참가자는, 참가자 리스트로부터, 소유자를 제외한 참가자가 된다. 도 7 및 도 8은 동기 그룹의 구성 단말 장치가 동일한 복수의 동기 대상 오브젝트를 각각 에어리어 혹은 룸 단위로 통합하여 관리하고 있으나, 동기 대상 오브젝트를 개별적으로 관리해도 동일한 동기 동작이 된다. 단, 동기 그룹의 구성 단말 장치가 동일한 동기 대상 오브젝트는 통합하여 도 7 및 도 8과 같이 하여 통합하여 관리하는 것이, 액티브한 동기 그룹의 수를 삭감할 수 있어 유리하다.
(2) 동기 대상 오브젝트의 구성
동기 대상으로 하는 오브젝트는, 가상 공간에서 오브젝트로서 인식되는 오브젝트여도 좋으나, 오브젝트 그 자체가 아니라, 오브젝트의 동기 상태를 재현하기 위해서 필요한 위치나 자세 등의 오브젝트의 파라미터(오브젝트의 필드의 일부나 이들을 인코드한 것 등)로 한정하거나, 동일한 거동을 하는 복수의 오브젝트를 그룹화한 결합 오브젝트로 하거나 함으로써, 실제로 동기 동작시키는 오브젝트의 수나 내용을 삭감함으로써 동기 동작의 부하를 삭감하는 것이 바람직하다.
메타버스나 MMOG에서는, 아바타나 그 부속품(복장이나 장비), 체험의 콘텐츠(건물, 지형) 등에 대응하는 오브젝트에 대해, 각각의 상태가 이용자의 조작이나 시간 경과에 따라 상태가 변화하여, 동일한 콘텐츠를 체험하고 있는 다른 참가자 사이에서 각각의 오브젝트의 변화를 공유(동기)시킴으로써, 가상 체험을 공유한다. 동기시키는 오브젝트로서, 아바타나 복장, 건물의 창이나 도어 등이 있으나, 개개의 오브젝트를 뿔뿔이 동기시키는 것은 오브젝트의 수가 방대해져, 레플리카로서의 관리 작업의 부담(개수, 사이즈, 통신량 등)이 커진다. 동기 대상 오브젝트의 수의 부담을 경감하는 하나의 방법으로서, 동기시키고 싶은 개개의 오브젝트에 대해, 오브젝트를 구성하는 파라미터 중의 일부만을 동기시키는 설계로 한다. 즉, 아바타를 동기시킨다고 해도, 아바타의 변화하지 않는 형상이나 세부(細部)는 동기 동작시키지 않고, 위치나 자세와 같은 파라미터 정보만을 동기 동작시키면 충분하다. 또한, 동기 동작시키는 복수의 오브젝트가 의미적으로 동일하게 거동하는 경우에 대해서는, 각각의 복수 오브젝트의 파라미터 중, 동기시키고 싶은 파라미터(필요하다면 또한 결합 압축 등의 인코드를 함)만으로 구성되는 단일의 동기 대상 오브젝트를 작성하고, 관리하여, 동기 동작하면 된다. 예컨대, 아바타 본체와, 아바타의 부속물은, 별개의 동기 대상 오브젝트로서 관리하지 않고, 한 묶음의 오브젝트군으로서, 파라미터를 관리하는 특별한 동기 대상 오브젝트로서 동기 동작시키면 된다. 이용자의 아바타나 아바타의 부속물에 대해서는, 비에어리어 정보로서, 에어리어의 건물이나 지표의 상태나 형상에 관한 정보에 대해서는, 에어리어 정보로서, 사용자(아바타)마다, 에어리어마다, 각각의 상태를 관리하는 파라미터만을 모아 단일(혹은 소수)의 특별한 동기 대상 오브젝트로서 레플리카 관리 정보[동기 그룹이 룸인 경우에는 룸의 레플리카 관리 정보(114B), 동기 그룹이 에어리어인 경우 에어리어의 레플리카 관리 정보(114A)]가 관리하여, 개개의 비에어리어 정보나 에어리어 정보의 동기 동작의 대상으로 하는 것이 좋다.
또한, 동기 대상 오브젝트의 설계에서는, 오브젝트의 필드(값, 파라미터)를 동기(오브젝트로서 동기)시키거나, 프로그램 동작의 이벤트(트리거)로서 동기시키거나 등, 동기의 방법도 숙려할 필요가 있다. 값이나 파라미터는 상기와 같이 오브젝트로서 동기시키지만, 이벤트는 오브젝트의 값이 아니라, 트리거가 되는 메시지를 자신의 단말 장치를 포함하는 동기 그룹에 보내어, 그 트리거를 각 단말 장치의 프로그램(스크립트)으로 거의 동시 또한 거의 동일하게 실행(RPC, Remote Procedure Call)함으로써, 각각의 단말에서 클라이언트 프로그램의 실행 결과로서 거의 동일한 체험이 공유된다. 여기서, 거의 동시, 거의 동일하다고 하는 것은, 단말 사이의 실행의 어긋남이나, 단말의 내부 상태의 미묘한 어긋남에 의해, 실행 결과가 반드시 완전히는 동일해지지 않는 경우가 있는 것을 의미한다.
예컨대, 아바타의 점프 등의 복잡한 애니메이션은 위치나 자세의 파라미터 변화를 하나하나 동기 조작 트리거가 아니라, 점프 등의 애니메이션 재생 프로세스 등의 이벤트 수신을 트리거로 실행에 동기시켜, 각 단말 장치에서 독립적으로 실행한다. 초기값인 프로그램 실행 전의 가상 공간의 환경이, 모든 단말 장치에서 거의 동일하면, 거의 동일한 애니메이션이 실행되어, 실질적으로 가상 공간에서의 체험 공유를 실현할 수 있다. 프로그램의 결과가 오브젝트의 위치나 자세에 영향을 주는 경우에는, 프로그램의 실행 결과에 따라 오브젝트의 동기 동작의 구조가 사용되며, 변경 대상의 오브젝트의 소유권을 갖는 단말 장치에서의 프로그램의 실행 결과가, 상기 프라이머리의 변경이 되고, 그 결과의 반영으로서, 레플리카나 터셔리가 갱신된다. 소유권을 갖지 않는 단말 장치에서의 프로그램의 실행은, 직접 터셔리의 변경은 행하지 않으나, 소유권을 갖는 단말 장치에서의 동일한 프로그램의 실행으로 프라이머리가 변경되기 때문에, 그 변경이 레플리카, 터셔리로 반영되어, 결과적으로 터셔리도 변경된다.
예컨대, 에어리어 정보의 예로서, 도어를 개폐하는 프로그램을 도어의 소유권이 없는 단말 장치가 실행한 경우, 그 단말 장치에서의, 도어의 개폐 동작의 프로그램 결과는 실패하여 도어에 영향은 주지 않으나, 동일한 프로그램은 도어의 소유권을 갖는 단말 장치에서도 실행되어, 그 프로그램의 실행 결과로서, 도어에 대응하는 프라이머리가 갱신된다. 이 프라이머리의 갱신은, 또한, 레플리카, 터셔리로 파급되어, 도어의 개폐 조작을 하려고 한 단말 장치에서도, 터셔리가 변경되고, 결과적으로 도어의 개폐 조작의 결과는 반영된다. 상세한 설명은 하지 않으나, 이러한 프로그램(스크립트) 자체는 동기 대상은 아니지만, 각각의 비에어리어 정보, 에어리어 정보의 일부이며, 대응하는 사용자나 지형을 가상 공간에서 표현할 때에, 비에어리어 정보, 에어리어 정보의 비동기 대상 외 정보의 일부로서, 클라이언트 단말에 로드된다.
실현하고 싶은 오브젝트의 성질과 기능에 따라, 오브젝트의 파라미터값에 의한 동기 방법과 프로그램의 실행 결과(RPC)에 의한 동기 방법을 구별해서 사용하는 것이 유효하다. 본 실시형태의 오브젝트의 동기 방법의 기본적 동작을 개시하고, 또한, 프로그램의 동기(RPC)에 대해서는, 기존의 RPC의 구조 등(그 외에도, 단순한 메시징과 메시지 핸들러의 조합 등, 여러 가지 수법이 알려져 있음)을 이용하는 것으로 하며, 프로그램의 실행 결과로서 갱신되는 오브젝트의 동기 방법에 대해서도 기본적인 동기 동작과 RPC의 구조와 조합함으로써 개시한다. 본 실시형태에서는, 프로그램(스크립트)의 동기(RPC) 자체에 대해서는 상세히 설명하지 않는다. 단, RPC에 의한 동기 방법과 함께 본 실시형태의 동기 동작을 적용하는 경우에는, 소유권이 없는 사용자가 기동한 프로그램의 결과로서, 자신이 소유권을 갖는 오브젝트에 변경이 있는 경우, 대부분의 경우, 소유권을 갖는 오브젝트에서는, 프로그램의 실행에 대해, 유효성·타당성을 검증하면 된다. 조작 권한의 확인 외에도, 복수 단말이 동시에 단일의 오브젝트를 조작하려고 한 경우의 배타 제어 등을 행할 수도 있다.
마찬가지로 하여, 동기 그룹 내에 단일의 동기 대상 오브젝트에 대해, 복수의 클라이언트가 소유권을 갖는 경우에, 각각의 프라이머리를 동기시키기 위해서는, 프로그램의 실행 결과에 의한 동기 방법을 이용할 필요가 있다.
에어리어 정보나 비에어리어 정보는, 가상 공간 중에서의 콘텐츠이며, 가상 공간 중에서의 조작(게임 조작)과는 다른 방법으로, 작성, 편집, 삭제되는 경우가 있다. 이들 콘텐츠에는 유니크한 ID가 지정되어 있고, 유니크한 ID의 하나로서, URL 등으로도 지정할 수 있도록 하면 편리성이 높아진다.
예컨대, 가상 공간에 참가하기 위해서는, 사용자 등록을 행하는 경우가 많다. 그때에, 이름이나 아바타 등, 가상 공간 내에서의 비에어리어 정보(콘텐츠)를 작성, 편집하게 된다.
또한, 가상 공간에서 새로운 사용자 체험 콘텐츠(에어리어) 등을 추가 작성하는 경우에는, 새로운 가상 공간에 대해, 이름이나 에어리어 정보 등 사용자 체험을 제공하는 공간을 작성, 편집하게 된다.
이러한 각종 콘텐츠 편집 조작은, 3D 에디터 등을 구사하여 행한다. 에어리어 정보나 비에어리어 정보의 콘텐츠를 URL로 참조할 수 있음으로써, 직접 3D 에디터로, 콘텐츠를 직접 편집할 수 있게 된다. 개개의 구성 오브젝트마다, 콘텐츠를 다운로드나 업로드를 행하여, 3D 에디터로 편집하는 방법에 비해, 즉시성(卽時性)과 편리성이 향상된다.
3D 에디터에서는, 점이나 선과 같은 기본 단위를 조합하여 정밀한 물체를 작성하여, 조합하거나, 배치하는 것과 같은 것이어도 좋고, 에디터가 제공하는 지면이나 집이나 산 등의 기본적인 오브젝트를 배치하고, 이들의 특성이나 속성(지면이 잔디밭이라든지, 콘크리트라든지, 집의 높이, 넓이, 층수를 지정한다든지)을 커스터마이즈하는 것이어도 좋으며, 리빙룸, 쇼룸, 공원, 우주 등의 템플릿의 공간에, 책상이나 벤치나 별 등의 오브젝트를 배치, 커스터마이즈하는 것이어도 좋다.
메타버스나 MMGO에서는, 비에어리어나 에어리어 정보를 작성, 편집하는 기능을 가상 공간 애플리케이션의 기능의 일부로서 제공하거나, 범용의 3D 편집 애플리케이션으로 작성한 데이터를 업로드하거나 하여, 가상 공간에 등록되는 경우가 많다. 그러나, 본 실시형태에서는, 비에어리어나 에어리어 정보를, 원칙적으로 서버에서 관리한다. 단말 장치에서의 프로그램의 실행 시에 필요에 따라 다운로드한다. 동기 대상 정보의 동기 동작(프라이머리, 레플리카, 터셔리)을 행하는 것과 같은 구성의 경우, 서버에 존재하는 비에어리어나 에어리어 정보 등의 콘텐츠를 직접 지정할 수 있는 것과 같은 기구를 제공함으로써, 이용자 간, 혹은, 동일한 이용자의 복수의 단말 사이에서 각종 콘텐츠를 간단히 공유할 수 있다. 본 실시형태에서는, 지형 ID나 캐릭터 ID 등의 애플리케이션 내부의 표현이 아니라, URL 등의 보다 범용적으로 정의할 수 있도록 하였다. 예컨대, URL 스킴, 딥 링크, Universal Links 등의 수법을 이용하여, 대상으로 하는 콘텐츠나 액세스의 방법에 따라, 파라미터를 조정함으로써, 우회하지 않고, 직접 대상의 콘텐츠의 편집, 혹은 콘텐츠에의 참가 등 원하는 모드(프로그램)에서의 액세스를 가능하게 하였다. 또한, 범용적인 URL로 액세스할 수 있음으로써, 각 콘텐츠는 본 서비스에서의 이용에 그치지 않고, 보다, 오픈된 환경에서 상호 이용, 재이용하는 것이 가능해진다.
예컨대, 어떤 에어리어 A100에 참가하는 경우에는, 「https://sample.metaverse.jp/?area_id=A100&action=join」, 예컨대, 어떤 에어리어 A100에 존재하는 특정한 룸 R101에 참가하는 경우에는, 「https://sample.metaverse.jp/?area_id=A100&room_id=R101」 또는 「https://sample.metaverse.jp/?area_id=A100&room_id=R101&action=join」과, 관리 사이트 sample.metavers.jp와 에어리어 ID A100이나 필요에 따라 룸 ID R101과 액세스의 모드 join(참가)을 지정하면 된다.
또한, 어떤 에어리어 A101의 에어리어 정보를 편집하는 경우에는, 「https://sample.metaverse.jp/?area_id=A100&action=edit」와 같이, 관리 사이트 sample.metavers.jp와 에어리어 ID A100과 액세스의 모드 edit(편집)를 지정하면 된다.
또한, 어떤 사용자 U501이 소유하는 비에어리어 정보(예컨대, WEB의 홈페이지에 상당하는 것과 같은 「홈」 에어리어 등)를 편집하기 위해서는, 액세스의 모드 edit(편집)를 「https://sample.metaverse.jp/?user_id=U501&action=edit」와 같이, 관리 사이트 sample.metavers.jp와 사용자 ID U501과 액세스의 모드 edit(편집)로 지정하면 된다. 각각의 URL에 따라, 필요에 따라, 상이한 애플리케이션이 기동되고, 필요에 따라, 각각의 콘텐츠에 대한 액세스 관리(이용자 ID나 패스워드 등)나 부족한 파라미터 등의 입력을 거쳐, 지정한 콘텐츠에 지정한 모드로, 기동된 적절한 프로그램(게임 프로그램, 메타버스 프로그램, WebGL, 3D 에디터)에 의해, 직접 액세스를 할 수 있다.
(3) 동기 그룹의 구성 방법
동기 동작시키는 단말 장치는, 상기 동기 오브젝트의 동작이 가상 체험의 공유에 의미가 있는 그룹 사이에서만의 동기 동작에만 한정되는 것이 바람직하다.
동기 동작시키는 단말 장치의 수가 방대해지면, 서버 장치(1)나 단말 장치에 있어서, 동기를 위한 처리나 통신량이 방대해져, CPU가 고부하가 되거나, 통신 대역이 한계에 도달하거나 한다. 서버 장치(1)에서는, 클라우드 등의 방법으로, 동기 대상 오브젝트의 레플리카에 관한 처리를 분산하여, 스케일시킴으로써 수의 증대에 대응 가능해도, 단말 장치에서의 통신량의 증대로 통신 대역이 한계에 도달해 버린다. 특히 단말 장치는, CPU의 성능이나 통신 속도에 있어서, 반드시 충분한 성능을 기대할 수 없다. 특히, 모바일 등의 무선 환경에서의 사용에서는, 통신 속도가 안정되지 않는 경우도 있고, 종량제의 통신 요금의 계약을 하고 있는 단말에서는, 통신량의 증대는 환영받지 않는 경우도 있다.
가상 공간에서의 공유 체험을 제공하기 위해서는, 가상 공간 전체에서, 가상 공간 내 모든 오브젝트를, 가상 공간에 참가하는 모든 참가자에서 공유할 수 있으면 이상적이기는 하지만, 참가자가 많아지면, 실현이 경제적으로 곤란하거나, 기술적으로 불가능하거나 한다. 또한, 실제로, 모든 참가자의 거동을 파악하는 것은, 이용자에게 있어서, 불가능하거나, 의미가 없거나 한다. 이 문제를 해결하기 위해서는, 동기 동작시키는 오브젝트의 수를 줄이는 것이나, 오브젝트를 동기 동작시키는 범위(이용자수)를 줄이는 것 등이 필요하다. 전자의 일례에 대해서는, 전항 동기 대상 오브젝트의 구성(예컨대, 동일한 거동의 오브젝트를 하나로 합쳐, 이들 오브젝트 중 동기 처리가 필요한 파라미터(필드 등)만을 추출한 특별한 동기 대상 오브젝트 1개만을 구성함)에서 설명한 바와 같다.
오브젝트를 동기 동작시키는 범위(이용자수)를 삭감하기 위해서, 오브젝트마다 동기 동작시키는 단말의 수를 필요 최소한으로 제한한다. 대부분의 경우, 사용자 단말에는, 가상 공간을 구성하는 오브젝트 전부를 표현하지 않고, 극히 일부만을 표현하고 있다. 따라서, 표현되어 있는 극히 일부만의 오브젝트에 대해, 동기 동작이 실현되면, 다른 오브젝트에 대해서는, 내부적으로 동기 동작을 하고 있어도, 하고 있지 않아도, 단말 장치의 이용자가 지각할 수 있는 가상 공간에서의 체험은 동일하다.
오브젝트마다 동기 동작을 시키는 단말 그룹을 정의하고, 그 그룹 내에서만 동기 동작을 행하면 된다. 또한, 레플리카 관리 정보(114)의 송신처 룰에 의해 동기 그룹 중에 또한 서브 그룹을 작성할 수도 있다. 전형적인 가상 공간이나 MMOG에서는, 각각의 가상 공간은 복수의 영역(가상 공간 콘텐츠를 체험할 수 있는 에어리어)으로 분할되고, 에어리어에 대응하는 가상 공간을 체험하는 룸에 이용자의 단말 장치가 참가한다. 동일한 룸에 참가하고 있는 단말 장치는, 아바타로서, 에어리어의 콘텐츠(건물이나 어트랙션 등)에 따라, 다른 단말 장치의 아바타와 함께, 에어리어가 제공하는 콘텐츠를 가상 체험한다. 이 환경에서는, 참가자가 작성한 아바타나 아바타의 부속물에 대해서는, 작성자인 참가자가 소유하는 동기 대상의 오브젝트이며, 자신의 단말 장치에 프라이머리를 갖고, 룸에 참가하는 다른 참가자의 단말 장치와 동기 처리를 행함으로써, 자신의 활동 상황을 다른 참가자에게 알릴 수 있다. 또한 여기서는, 설명의 간단을 위해서 동기 대상 오브젝트로서, 아바타나 아바타의 부속물로서 열거하고 있으나, 실제의 실장에서는, 아바타나 아바타의 부속물을 포함하는 사용자가 관리하는 복수 개의 오브젝트의 정보(비에어리어 정보) 중, 위치나 자세 등 최소 개수의 파라미터로서 집약하고, 사용자마다 아바타나 아바타의 부속물을 통합하여, 단일의 사용자 정보 관리용의 특별한 오브젝트(동기 대상 비에어리어 정보)로서 실장하여, 동기 처리를 행하면 효율이 좋다.
가상 공간의 특정한 영역(룸) 내에서, 다른 참가자의 활동 상황을 공유하기 위해서는, 각각의 참가자가 자신의 동기 대상 비에어리어에 대해 소유권을 갖고, 각각의 참가자의 단말 장치는, 자신의 동기 대상 비에어리어에 대해서는, 프라이머리를, 다른 참가자의 동기 대상 사용자 관리 정보에 대해서는 터셔리를 유지한다.
마찬가지로, 가상 공간에서의 특정한 영역의 콘텐츠(에어리어)에 대해 상태의 변화(에어리어 정보)를 공유할 수도 있다. 에어리어에 대응하여, 복수의 룸이 공존하는 것과 같은 경우, 하나의 룸의 참가자가 에어리어 정보를 변경한 경우, 동일한 룸의 참가자뿐만 아니라, 상이한 룸에서도 동일한 에어리어의 다른 룸(패러렐 월드)의 에어리어 정보에도 변경을 반영시키는 것도 가능하다. 복수 룸에서 변경을 공유하기 위해서는 동기 동작시키는 단말 그룹을 그 에어리어의 룸 전부에 대한 참가자 단말로 하면 된다.
예컨대, 에어리어의 작성자도 에어리어의 룸의 하나에 참가하고 있는 경우를 상정한다. 에어리어의 작성자는 에어리어의 에어리어 정보의 소유자로 한다. 에어리어의 에어리어 정보의 동기에 대해서도, 개개의 지형 오브젝트를 직접 동기하는 것이 아니라, 동기시키고 싶은 복수 개의 지형 오브젝트의 필드의 일부인 동기 대상이 되는 에어리어 정보만 특별한 단일 오브젝트로서 통합하고, 에어리어의 작성자 단말은, 에어리어의 룸의 하나에 참가하고 있는 경우, 자신의 동기 대상 비에어리어 정보의 프라이머리, 동일한 룸 참가자의 다른 참가자의 동기 대상 비에어리어 정보의 터셔리에 더하여, 에어리어의 동기 대상 에어리어 정보의 프라이머리도 유지한다. 이 경우, 에어리어의 작성자 단말은, 에어리어의 작성자이며, 에어리어의 소유자이고, 또한, 동기 동작에서의 에어리어에 관한 동기 대상 오브젝트의 소유자(프라이머리 유지자)이다. 에어리어 참가자 이외의 에어리어의 룸의 참가자 단말은, 에어리어의 참가자의 동일한 룸에 참가하고 있는지, 다른 룸에 참가하고 있는지에 상관없이, 자신의 동기 대상 비에어리어 정보의 프라이머리, 동일한 룸 참가자의 다른 참가자의 동기 대상 비에어리어 정보의 터셔리에 더하여, 에어리어의 동기 대상 에어리어 정보의 터셔리를 유지한다.
가상 공간의 종류에 따라서도 달라지지만, 에어리어의 작성자가 항상 참가하는 것을 가정하는 것이 현실적이지 않은 경우가 있다. 여기서는 에어리어의 작성자가 소유자이고, 또한 편집자인 경우를 가정하고 있다. 그러나, 예컨대, 회사의 프로모션용의 가상 공간을 생각하면, 에어리어의 작성자는 어떤 회사가 외주한 콘텐츠 크리에이터이고, 소유자는 상기 회사의 사장이며, 편집자는 상기 회사의 사장 외 홍보부 소속 사원이거나 한다. 여기서는 에어리어의 작성자가 에어리어의 편집자이기도 한 경우를 기술하지만, 상기한 회사의 프로모션용의 가상 공간의 예와 같이, 필요에 따라, 이하의 기술에 있어서, 에어리어의 작성자는 에어리어의 편집자라고 바꿔 읽는 것이 타당한 경우도 있다.
에어리어의 작성자(편집자)가 참가하고 있지 않은 경우에도, 동기 처리를 위해서는 반드시 동기 대상의 에어리어 정보에는 동기 대상 오브젝트의 소유자가 필요해진다. 동기 대상의 에어리어 정보를 동기 처리하기 위해서는, 반드시, 동기 대상의 에어리어 정보의 동기 그룹에 소속하는 어느 하나의 단말 장치가 동기 대상 오브젝트의 소유자가 된다. 동기 대상 오브젝트의 소유자의 결정 방식은 어떠한 방법이어도 좋다. 예컨대, 상기 동기 그룹에 가장 오래 전부터 참가하고 있는 단말 장치여도 좋고, 가장 작은 단말 ID를 갖는 단말 장치여도 좋다. 또한, 동기 대상 오브젝트의 수를 삭감하기 위해서, 에어리어 정보를 구성하는 모든 오브젝트로부터, 이들의 동기 대상의 파라미터만으로 구성되는 단일 혹은, 소수의 동기 대상 에어리어 정보를 동기시키는 수법을 기술하였으나, 에어리어 정보와 같이, 동기 대상 오브젝트를 주체적으로 조작하는 참가자가 결정되어 있지 않고, 동기 대상 오브젝트의 소유자가 누구라도 좋은 것과 같은 경우에는, 서버 장치에서의 부하 분산을 위해서, 굳이, 복수의 동기 대상 에어리어 정보 오브젝트를 생성하여, 각각을 다른 단말 장치에 소유시켜도 좋다. 단, 소유자의 분산은 신중하게 할 필요가 있고, 서로 의존 관계가 있는 동기 대상 오브젝트의 소유자를 다른 단말 장치로 하면, 제어가 복잡해지거나, 오히려 부하가 증가하거나 하는 경우도 있다.
도 16에, 에어리어(100)에 복수의 룸(101과 102)이 존재할 때에, 동기 대상의 비에어리어와 동기 대상의 에어리어 정보가, 프라이머리, 레플리카, 터셔리로서 각 대상 단말에서 동기하고 있는 모습을 도시한다. 사용자(A, B, C)는 각각 단말 장치(A, B, C)에서 에어리어(100)의 룸(101)에 참가하고 있다. 마찬가지로 사용자(X, Y)는 각각 단말 장치(X, Y)에서 에어리어(100)의 룸(102)에 참가하고 있다. 사용자(A, B, C)의 동기 대상의 비에어리어(A0, B0, C0)는, 룸(101)의 참가자인 사용자 단말 장치(A, B, C)에서 동기(A2, B2, C2)하고, 서버 장치(1)의 레플리카(A1, B1, C1)를 통해, 사용자(X, Y)의 동기 대상의 비에어리어(X0, Y0)는, 서버 장치(1)의 레플리카(X1, Y1)를 통해, 룸(102)의 참가자인 사용자 단말 장치(X, Y)에서 동기(X2, Y2)하며, 에어리어(100)의 동기 대상의 에어리어 정보(G0)는, 서버 장치의 레플리카(G1)를 통해, 에어리어(100)의 룸인 룸(101과 102)의 참가자인 사용자 단말 장치(A, B, C, X, Y)에서 동기(G2)한다.
이상으로, 단일 에어리어에 복수의 룸이 존재하는 경우에 대해, 동기 동작시키는 단말 장치 그룹을 에어리어 참가 단말, 및 룸 참가 단말로 함으로써, 각각 에어리어 정보와 비에어리어를 동기하는 실시형태에 대해 설명하였다. 그러나, 동기 그룹은 에어리어와 룸에 한정되지 않는다. 또한, 동기 그룹의 관계는 에어리어와 룸과 같이 한쪽이 다른쪽에 포함되는 것에도 한정되지 않는다. 동기 그룹은 자유롭게 작성해도 좋다. 동기 그룹은, 완전히 일치하거나, 일부로서 포함되거나, 일부분만이 공통이거나, 완전히 독립적이며 공통 부분이 존재하지 않거나 해도 좋다. 각각의 동기 그룹은, 도 4 혹은 도 5에 도시된 바와 같은 방법으로, 참가자 단말을 관리한다. 룸이 동적으로 생성, 삭제되는 예에 대해서는 전술하였으나, 동기 그룹은 단말 장치가 고정적이며 불변인 것이라고는 할 수 없다. 제공하는 가상 공간의 체험의 콘텐츠에도 의존하지만, 각각의 동기 그룹은, 참가자가 시간과 함께 변화하여, 동기 그룹이 동적으로 작성, 삭제되거나, 동기 그룹에 대해 단말이 도중 참가하거나, 도중 퇴출하거나 하는 것이어도 좋다. 예컨대, 동기 그룹으로서는, 에어리어나 룸 이외에도, 채팅 그룹, 협동 파티, 소속 조직 등이 생각된다. 채팅 그룹이나 협동 파티나 소속 조직은, 룸이나 에어리어의 경계를 넘어 존재하며, 각각의 단위로, 텍스트나 음성 메시지나 활동 스테이터스(온라인, 우주 공간 X 방문 중, 고양이 월드 Y 방문 중, 몬스터 X 대전 중, M사 쇼룸 방문 중, N사와 상담 중 등) 등을, 룸이나 에어리어에서의 동기 체험의 공유에 중첩시키도록 하여 동기 공유한다. 예컨대, 음성 채팅은 스피커에 중첩되어 청취하고, 화면 상의 버튼이나 스위치를 전환함으로써, 룸에의 발화인지 채팅 그룹에의 발화인지 전환해도 좋다. 또한, 활동 스테이터스는, 화면 우측 상에 배치한 팀 스테이터스 아이콘을 클릭함으로써, 소속 조직 멤버의 스테이터스 일람을 참가 중인 가상 세계의 표시 화면에 중첩시켜도 좋다.
또한, 본 발명의 다른 양태는, 상기 목적을 달성하기 위해서, 이하의 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치를 제공한다.
[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]에 기재된 클라이언트로서의 단말 장치.
[19] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 정보 처리 장치.
[20] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 정보 처리 장치.
[21] 상기 수신 수단은, 상기 복수의 클라이언트가 참가하는 가상 공간에 클라이언트가 참가했을 때에, 상기 클라이언트가 소유권을 갖는 동기 대상 오브젝트를 수신하여 상기 복제 오브젝트로서 기록 매체에 저장하는 상기 [19] 또는 [20]에 기재된 정보 처리 장치.
[22] 상기 수신 수단은, 상기 클라이언트가 새롭게 오브젝트를 생성했을 때에, 상기 새롭게 생성한 오브젝트를 동기 대상 오브젝트로서 복제하여 상기 복제 오브젝트를 기록 매체에 저장하는 상기 [19] 또는 [20]에 기재된 정보 처리 장치.
[23] 상기 송신 수단은, 클라이언트가 참가했을 때, 또는 상기 클라이언트가 새롭게 오브젝트를 생성했을 때에, 기록 매체에 저장한 상기 복제 오브젝트, 또는 상기 동기 대상 오브젝트를, 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 상기 [21] 또는 [22]에 기재된 정보 처리 장치.
[24] 상기 수신 수단은, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하지 않는 상기 [19]∼[23] 중 어느 하나에 기재된 정보 처리 장치.
[25] 상기 갱신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신한 경우, 상기 복제 오브젝트를 갱신하지 않는 상기 [19]∼[23] 중 어느 하나에 기재된 정보 처리 장치.
[26] 상기 송신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트 이외의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신한 경우, 상기 변경 내용 정보를, 상기 소유권을 갖는 클라이언트에 송신하지 않는 상기 [19]∼[23] 중 어느 하나에 기재된 정보 처리 장치.
[27] 상기 갱신 수단은, 상기 수신 수단이 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 수신하여, 상기 복제 오브젝트를 갱신하는 상기 [19]∼[26] 중 어느 하나에 기재된 정보 처리 장치.
[28] 상기 클라이언트가, 상기 복수의 클라이언트가 참가하는 가상 공간으로부터 퇴출했을 때에, 상기 클라이언트가 소유권을 갖고 있던 상기 동기 대상 오브젝트에 대응하는 복제 오브젝트의 소유권을, 상기 소유권의 이양이 허가되어 있는 경우에, 미리 정한 룰에 기초하여 상기 클라이언트 이외의 다른 클라이언트에 이양하는 관리 수단으로서 더 기능시키는 상기 [19]∼[27] 중 어느 하나에 기재된 정보 처리 장치.
[29] 상기 클라이언트가, 상기 클라이언트가 참가하는 가상 공간으로부터 퇴출했을 때에, 상기 클라이언트가 소유권을 갖고 있던 상기 동기 대상 오브젝트에 대응하는 복제 오브젝트의 소유권의 이양이 허가되어 있지 않은 경우에, 상기 복제 오브젝트를 삭제하는 관리 수단으로서 더 기능시키고,
상기 송신 수단은, 상기 클라이언트 이외의 다른 클라이언트에 유지되어 있는 상기 복제 오브젝트에 대응하는 오브젝트를 삭제하도록 상기 다른 클라이언트에 지시하는 상기 [19]∼[26] 중 어느 하나에 기재된 정보 처리 장치.
[30] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 컴퓨터를,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단으로서 기능시키기 위한 데이터 동기 프로그램.
[31] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 컴퓨터를,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단으로서 기능시키기 위한 데이터 동기 프로그램.
[32] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치에 있어서,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 단계와,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 단계와,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 단계를 갖는 데이터 동기 방법.
[33] 오브젝트를 서로 동기하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치에 있어서,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 단계와,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 단계와,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 단계를 갖는 데이터 동기 방법.
[34] 오브젝트를 서로 동기하는 복수의 클라이언트와,
상기 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 정보 처리 장치를 구비한 데이터 동기 시스템.
[35] 오브젝트를 서로 동기하는 복수의 클라이언트와,
상기 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
상기 복수의 클라이언트로부터 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 정보 처리 장치를 구비한 데이터 동기 시스템.
[36] 상기 복수의 클라이언트는, 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 상기 정보 처리 장치에 송신하는 상기 [34] 또는 [35]에 기재된 데이터 동기 시스템.
[37] 정보 처리 장치를 통해 다른 클라이언트와 오브젝트를 서로 동기하는 클라이언트로서의 단말 장치로서,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 송신원의 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로부터의 상기 동기 대상 오브젝트의 변경 내용 정보를, 상기 정보 처리 장치를 통해 수신하는 수신 수단과,
상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
상기 변경 내용 정보를 상기 복수의 클라이언트 중 상기 소유권을 갖는 클라이언트 이외에 송신하는 송신 수단을 갖는 상기 정보 처리 장치와 통신 가능하게 접속되는 클라이언트로서의 단말 장치.
[38] 정보 처리 장치를 통해 다른 클라이언트와 오브젝트를 서로 동기하는 클라이언트로서의 단말 장치로서,
동기 대상 오브젝트를 복제한 복제 오브젝트가 자기 클라이언트에 있어서 갱신된 경우,
상기 동기 대상 오브젝트마다 관리되는 관리 정보로서, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트를 정의하는 상기 관리 정보를 참조하여, 상기 관리 정보에 있어서 상기 자기 클라이언트가, 상기 동기 대상 오브젝트의 소유권을 갖는 클라이언트로서 정의되어 있는 경우, 상기 변경 내용 정보를 상기 정보 처리 장치에 송신하는 송신 수단을 갖는 상기 정보 처리 장치와 통신 가능하게 접속되는 클라이언트로서의 단말 장치.
[39] 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 상기 정보 처리 장치에 송신하는 상기 [37] 또는 [38]에 기재된 클라이언트로서의 단말 장치.
복수의 사용자 단말이 참가하는 구성으로서, 복수의 사용자 단말의 데이터를 동기하는 상황에 있어서, 처리 부담이나 통신 부담의 증가를 억제하는 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치를 제공한다.
1: 서버 장치 2a, 2b, 2c: 단말 장치
3a, 3b, 3c: 이용자 4a, 4b, 4c: 아바타
10: 제어부 11: 기억부
12: 메모리 13: 통신부
100: 지형 정보 관리 수단 101: 지형 정보 편집 수단
102: 룸 관리 수단 103: 참가자 관리 수단
104: 데이터 수신 수단 105: 데이터 송신 수단
106: 레플리카 관리 수단 107: 데이터 갱신 수단
110: 데이터 관리 프로그램 111: 지형 정보
112: 룸 관리 정보 113: 참가자 관리 정보
114A: 레플리카 관리 정보 114B: 레플리카 관리 정보
120a, 120b, 120c: 레플리카

Claims (17)

  1. 하나 이상의 가상 공간에 참가하는 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
    상기 가상 공간의 동기 대상 오브젝트는 동기 그룹의 클라이언트 사이에서 동기되는 것이고, 상기 동기 대상 오브젝트는, 가상 공간을 구성하는 콘텐츠를 재현하기 위한 지형 정보를 포함하는 것이며,
    상기 동기 그룹의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
    상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
    상기 변경 내용 정보를 상기 동기 그룹의 클라이언트에 송신하는 송신 수단과,
    상기 지형 정보의 편집권을 갖는 클라이언트로부터의 조작 내용에 기초하여 상기 지형 정보를 편집하는 편집 수단
    을 포함하는 정보 처리 장치.
  2. 제1항에 있어서,
    상기 가상 공간의 상기 동기 대상 오브젝트를 포함하는 오브젝트에 대응한 식별자를 발행하는 지형 정보 관리 수단으로서 더 기능시키는 정보 처리 장치.
  3. 제2항에 있어서,
    상기 식별자는, 상기 클라이언트가 상기 가상 공간의 콘텐츠에의 액세스에 이용되는 것인 정보 처리 장치.
  4. 제3항에 있어서,
    상기 가상 공간의 콘텐츠에의 액세스는, 상기 클라이언트의 상기 가상 공간에의 참가인 것인 정보 처리 장치.
  5. 제3항에 있어서,
    상기 가상 공간의 콘텐츠에의 액세스는, 상기 클라이언트의 상기 콘텐츠의 편집인 것인 정보 처리 장치.
  6. 제4항에 있어서,
    상기 가상 공간의 콘텐츠에의 액세스는, 상기 클라이언트에서의 상기 가상 공간에의 참가를 위한 프로그램의 기동인 것인 정보 처리 장치.
  7. 제5항에 있어서,
    상기 가상 공간의 콘텐츠에의 액세스는, 상기 클라이언트에서의 상기 콘텐츠의 편집을 위한 웹 사이트에의 액세스이며, 상기 웹 사이트에의 액세스를 위한 웹 브라우저의 기동인 것인 정보 처리 장치.
  8. 제1항에 있어서,
    상기 클라이언트는 하나 이상의 상기 동기 그룹에 속하는 것인 정보 처리 장치.
  9. 제1항에 있어서,
    상기 동기 그룹은, 상기 동기 대상 오브젝트 중 서로의 사용자 정보의 동기를 행하는 클라이언트로 구성되는 것인 정보 처리 장치.
  10. 제9항에 있어서,
    상기 동기 대상 오브젝트 중 상기 지형 정보에 대응하는 동기 대상 오브젝트의 소유권을 갖는 클라이언트는, 서버 상의 더미 클라이언트인 것인 정보 처리 장치.
  11. 가상 공간에 참가하는 복수의 클라이언트와 네트워크로 접속된 컴퓨터를 기능시키기 위한 데이터 동기 프로그램으로서,
    상기 가상 공간의 동기 대상 오브젝트는 동기 그룹의 클라이언트 사이에서 동기되는 것이고, 상기 동기 대상 오브젝트는, 가상 공간을 구성하는 콘텐츠를 재현하기 위한 지형 정보를 포함하는 것이며,
    동기 그룹의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
    상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
    상기 변경 내용 정보를 상기 동기 그룹의 클라이언트에 송신하는 송신 수단과,
    상기 지형 정보의 편집권을 갖는 클라이언트로부터의 조작 내용에 기초하여 상기 지형 정보를 편집하는 편집 수단으로서 기능시키기 위한 데이터 동기 프로그램이 저장된 컴퓨터 판독 가능한 기록 매체.
  12. 가상 공간에 참가하는 복수의 클라이언트와,
    상기 복수의 클라이언트와 네트워크로 접속된 정보 처리 장치로서,
    상기 가상 공간의 동기 대상 오브젝트는 동기 그룹의 클라이언트 사이에서 동기되는 것이고, 상기 동기 대상 오브젝트는, 가상 공간을 구성하는 콘텐츠를 재현하기 위한 지형 정보를 포함하는 것이며,
    동기 그룹의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
    상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
    상기 변경 내용 정보를 상기 동기 그룹의 클라이언트에 송신하는 송신 수단과,
    상기 지형 정보의 편집권을 갖는 클라이언트로부터의 조작 내용에 기초하여 상기 지형 정보를 편집하는 편집 수단을 갖는 정보 처리 장치
    를 구비한 데이터 동기 시스템.
  13. 제12항에 있어서,
    상기 복수의 클라이언트는, 상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 상기 정보 처리 장치에 송신하는 것인 데이터 동기 시스템.
  14. 정보 처리 장치를 통해 다른 클라이언트와 네트워크로 접속되는, 가상 공간에 참가하는 클라이언트로서의 단말 장치로서,
    상기 가상 공간의 동기 대상 오브젝트는 동기 그룹의 클라이언트 사이에서 동기되는 것이며, 상기 동기 대상 오브젝트는, 가상 공간을 구성하는 콘텐츠를 재현하기 위한 지형 정보를 포함하는 것이고,
    상기 동기 대상 오브젝트의 변경 내용 정보를, 상기 정보 처리 장치를 통해 수신하는 수신 수단과,
    상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
    상기 변경 내용 정보를 상기 동기 그룹의 클라이언트에 송신하는 송신 수단을 갖고,
    상기 정보 처리 장치에 의해 발행된 식별자에 의해 상기 가상 공간에의 액세스 및 상기 가상 공간을 구성하는 콘텐츠를 재현하기 위한 지형 정보의 편집 웹 사이트에 액세스하는, 상기 정보 처리 장치와 통신 가능하게 접속되는 클라이언트로서의 단말 장치.
  15. 정보 처리 장치를 통해 다른 클라이언트와 네트워크로 접속되는, 가상 공간에 참가하는 클라이언트로서의 단말 장치로서,
    상기 가상 공간의 동기 대상 오브젝트는 동기 그룹의 클라이언트 사이에서 동기되는 것이며, 상기 동기 대상 오브젝트는, 가상 공간을 구성하는 콘텐츠를 재현하기 위한 지형 정보를 포함하는 것이고,
    동기 대상 오브젝트를 복제한 복제 오브젝트가 자기 클라이언트에서 갱신된 경우,
    상기 변경 내용 정보를 상기 정보 처리 장치에 송신하는 송신 수단을 갖고,
    상기 정보 처리 장치에 의해 발행된 식별자에 의해 상기 가상 공간에의 액세스 및 상기 가상 공간을 구성하는 콘텐츠를 재현하기 위한 지형 정보의 편집 웹 사이트에 액세스하는, 상기 정보 처리 장치와 통신 가능하게 접속되는 클라이언트로서의 단말 장치.
  16. 제14항 또는 제15항에 있어서,
    상기 동기 대상 오브젝트의 변경 내용 정보로서 변경 전의 상기 동기 대상 오브젝트와의 차분을 상기 정보 처리 장치에 송신하는 클라이언트로서의 단말 장치.
  17. 하나 이상의 가상 공간에 참가하는 복수의 클라이언트와 네트워크로 접속된 가상 공간 관리 제공 장치로서,
    상기 가상 공간의 동기 대상 오브젝트는 동기 그룹의 클라이언트 사이에서 동기되는 것이고, 상기 동기 대상 오브젝트는, 가상 공간을 구성하는 콘텐츠를 재현하기 위한 지형 정보를 포함하는 것이며,
    상기 동기 그룹의 클라이언트로부터 상기 동기 대상 오브젝트의 변경 내용 정보를 수신하는 수신 수단과,
    상기 변경 내용 정보에 의해, 상기 동기 대상 오브젝트를 복제한 복제 오브젝트를 갱신하는 갱신 수단과,
    상기 변경 내용 정보를 상기 동기 그룹의 클라이언트에 송신하는 송신 수단과,
    상기 지형 정보의 편집권을 갖는 클라이언트로부터의 조작 내용에 기초하여 상기 지형 정보를 편집하는 편집 수단을 포함하는
    가상 공간 관리 제공 장치.
KR1020247004936A 2021-06-14 2022-06-14 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치 KR20240023706A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JPJP-P-2021-098419 2021-06-14
JP2021098419 2021-06-14
KR1020237016620A KR102638092B1 (ko) 2021-06-14 2022-06-14 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치
PCT/JP2022/023718 WO2022264990A1 (ja) 2021-06-14 2022-06-14 情報処理装置、データ同期プログラム、データ同期方法、データ同期システム及び端末装置

Related Parent Applications (1)

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

Publications (1)

Publication Number Publication Date
KR20240023706A true KR20240023706A (ko) 2024-02-22

Family

ID=84526508

Family Applications (3)

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 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치
KR1020227043276A KR102612811B1 (ko) 2021-06-14 2022-06-14 정보 처리 장치, 데이터 동기 프로그램, 데이터 동기 방법, 데이터 동기 시스템 및 단말 장치

Family Applications After (2)

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

Country Status (7)

Country Link
US (1) US11766608B2 (ko)
EP (2) EP4145805A1 (ko)
JP (2) JP7274161B1 (ko)
KR (3) KR20240023706A (ko)
CN (1) CN116583328A (ko)
AU (1) AU2022293125B2 (ko)
WO (2) WO2022264989A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117009146B (zh) * 2023-09-28 2024-03-08 金篆信科有限责任公司 数据同步方法、装置、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007185446A (ja) 2006-01-16 2007-07-26 Sony Computer Entertainment Inc シミュレータシステム

Family Cites Families (17)

* 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 ネットワークを利用したゲームシステム、ネットワークに接続可能なゲーム機及びこのゲーム機のためのプログラムが記録された媒体
IL146348A0 (en) * 1999-05-10 2002-07-25 Ericsson Telefon Ab L M Method and apparatus in a communication network
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 (주)트라이헤드론 다자간 네트웍 게임에서의 데이타 동기화 방법
US7780533B2 (en) * 2004-08-30 2010-08-24 Panasonic Corporation Client terminal for executing multiplayer application, group forming method, and group forming program
JP4995451B2 (ja) * 2005-11-04 2012-08-08 任天堂株式会社 ゲームプログラムおよびゲーム機
US8142289B2 (en) * 2006-06-30 2012-03-27 Sony Computer Entertainment America Llc Dead reckoning in a gaming environment
JP4950978B2 (ja) * 2008-10-08 2012-06-13 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
JP5831412B2 (ja) 2012-09-14 2015-12-09 コニカミノルタ株式会社 情報共有システム及び共有端末並びに共有制御プログラム
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007185446A (ja) 2006-01-16 2007-07-26 Sony Computer Entertainment Inc シミュレータシステム

Also Published As

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

Similar Documents

Publication Publication Date Title
Nevelsteen Virtual world, defined from a technological perspective and applied to video games, mixed reality, and the Metaverse
CN101981589B (zh) 用于创建、编辑和共享与视频游戏事件有关的视频内容的系统和方法
US8226487B2 (en) Proxy generation for players in a game
KR20080074860A (ko) 온라인 로비를 제공하는 시스템 및 방법
JP2015524677A (ja) インタラクティブ・ゲームプレイのためのシステム及び方法
US20100093438A1 (en) Dynamic and Scalable Topology for Virtual World Environments
JP2010517186A (ja) ゲームイベントに基づく、ブログ、ウェブページ又はファイル共有サイトのための自動エントリ作成のためのシステム及び方法
Mitchell et al. Six in the city: introducing Real Tournament-a mobile IPv6 based context-aware multiplayer game
JP7462197B2 (ja) 情報処理装置、データ同期プログラム、データ同期方法、データ同期システム及び端末装置
El Rhalibi et al. Agents-based modeling for a peer-to-peer MMOG architecture
Nevelsteen A survey of characteristic engine features for technology-sustained pervasive games
McGonigal SuperGaming: Ubiquitous play and performance for massively scaled community
US11992753B2 (en) Information processing device, data synchronization program, data synchronization method, data synchronization system, and terminal device
KR20140128538A (ko) 가상 플레이어 캐릭터를 이용한 협업플레이 지원방법
JP7148941B1 (ja) 情報処理装置、データ同期プログラム、データ同期方法、データ同期システム及び端末装置
McFarlane Network software architectures for real-time massively multiplayer online games
Sant A Second Life for online performance: Understanding present developments through an historical context
Chen A Hybrid Architecture for Massively Scaled Distributed Virtual Environments
Calhau MULTIPLAYER MODULE FOR SCIENCE4PANDEMICS’
CN117081762A (zh) 数据处理方法及相关设备
O'Flaherty Social Ecology of The Post-Internet Landscape
CN113509719A (zh) 多版本应用的计算机系统、运行方法、装置及介质
KR100834090B1 (ko) 게임 유저의 행동 반영 시스템 및 그 방법
Berry Jr et al. Connectivity of Heterogeneous Environments Part 1: Communication
Brun et al. Managing Latency and Fairness in Networked Games Fighting propagation delays in real-time interactive applications improves gameplay and fairness in networked games by trading off inconstencies and tuning decision points topology.

Legal Events

Date Code Title Description
A107 Divisional application of patent