CN116583328A - 信息处理装置、数据同步程序、数据同步方法、数据同步系统以及终端装置 - Google Patents

信息处理装置、数据同步程序、数据同步方法、数据同步系统以及终端装置 Download PDF

Info

Publication number
CN116583328A
CN116583328A CN202280008097.3A CN202280008097A CN116583328A CN 116583328 A CN116583328 A CN 116583328A CN 202280008097 A CN202280008097 A CN 202280008097A CN 116583328 A CN116583328 A CN 116583328A
Authority
CN
China
Prior art keywords
client
synchronization
information
target object
ownership
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN202280008097.3A
Other languages
English (en)
Other versions
CN116583328B (zh
Inventor
青木健悟
宫永直树
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Soft Gear Co Ltd
Original Assignee
Soft Gear Co Ltd
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 Soft Gear Co Ltd filed Critical Soft Gear Co Ltd
Publication of CN116583328A publication Critical patent/CN116583328A/zh
Application granted granted Critical
Publication of CN116583328B publication Critical patent/CN116583328B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/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
    • 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通过网络与加入虚拟空间的多个客户端连接,虚拟空间的同步目标对象是在由具有该对象的所有权的客户端和不具有所有权的客户端构成的同步组的客户端之间同步的对象,具有:数据接收单元104,其从具有对象的所有权的客户端接收该同步目标对象的差分;数据更新单元107,其根据差分来对复制同步目标对象的副本120a、120b、120c…进行更新;以及数据发送单元105,其将差分发送到多个客户端中除具有所有权的客户端以外的客户端。

Description

信息处理装置、数据同步程序、数据同步方法、数据同步系统 以及终端装置
技术领域
本发明涉及一种信息处理装置、数据同步程序、数据同步方法、数据同步系统以及终端装置。
背景技术
作为现有技术,提出了一种使用户终端的用户对象与模拟器的模拟对象同步的信息处理装置(例如,参照专利文献1)。
专利文献1中公开的信息处理装置与用于对预定的模拟对象的行为进行模拟的单个模拟器和用于按照从用户输入的指令来确定用户对象的行为的用户终端连接;信息处理装置保存用户对象以及模拟对象的副本;用户终端按照基于预定的时间点确定规则而确定的每个同步时间点,经由信息处理装置从单个模拟器中获取模拟对象信息,并在同步时间点之外的时刻,根据最后获取的模拟对象信息,预测模拟对象的行为,并将该预测结果呈现给用户。在这样的结构中,减轻了处理负担和通信负担。
现有技术文献
专利文献
[专利文献1]日本特开2007-185446号公报
发明内容
本发明所要解决的课题
然而,专利文献1中的信息处理装置保存用户对象和模拟对象的副本,并将包含在用户对象的视野范围内的模拟对象的副本发送到用户终端,因此,减轻了处理负担和通信负担,但是,由于在信息处理装置中执行模拟对象的冲突判定并通知相应的模拟器以实施相互作用,因此,信息处理装置的处理负担用于该判定,并且由于不对模拟器发送用户对象以及其他模拟对象的副本,因此存在如下问题:在由多个用户终端参加的结构中无法直接应用于使多个用户终端的数据同步的状况。在诸如非常多的用户终端加入、并且中途加入或中途退出自由而用户终端随时更替的元宇宙、多人在线游戏(MMOG:MassivelyMultiplayer 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是示出某个区域的副本管理信息的结构的图。
图8是示出某个房间的副本管理信息的结构的图。
图9是用于说明同步动作的一例的流程图。
图10是用于说明基于所有权而执行的同步动作的一例的流程图。
图11是用于说明中途加入中的同步动作的一例的流程图。
图12是用于说明中途退出时的同步动作的一例的流程图。
图13是用于说明中途退出时的同步动作的另一例的流程图。
图14是用于说明区域所有者中途加入时的同步动作的一例的流程图。
图15是用于说明区域所有者中途加入时的同步动作的另一例的流程图。
图16是示出按区域管理的区域信息的同步对象和按房间管理的非区域信息的同步对象的同步动作的关系的图。
具体实施方式
在本实施方式的同步系统中,执行多个参加者在共同的虚拟空间中的活动,例如,元宇宙或多人在线游戏(MMOG:Massively Multiplayer Online Game)。在该虚拟空间中准备有地面、建筑物、房间以及它们附带的物品(家具、钟表、门等),进而准备有在该地面、建筑物、房间中提供的服务以及在该服务中执行的程序等,这些作为后述的地形信息进行管理。这些虚拟空间的地形信息对应于可以在虚拟空间中执行的体验(下文中也称为“游戏体验”)的内容信息。在本实施方式中,这些地形信息也由服务器统一管理,能够在加入虚拟空间时从服务器取得。与预先下载、分发至参加者终端的情况相比,可以在最新状态下体验更多内容。此外,由于最新的内容信息由服务器管理,因此,能够有助于参加者对内容的开发和修改。
在元宇宙或多人在线游戏中,随着时间的流逝,参加者的活动在虚拟空间中相互关联。由多个参加者操作的多个虚拟角色随着时间的流逝进行交流、战斗、共同斗争、协同工作、或收集道具等活动。并且,通过该活动增减角色所拥有的道具、关于战斗的数值和关于行动的经验值。通过角色之间的互动,玩家在虚拟空间中共享体验,感受沉浸感和一体感。此外,包含在地形信息中的地面、建筑物、房间以及它们附带的物品也会因角色的操作而变化(例如,地面的变形、建筑物的扩建和拆除、家具的移动,钟表的运行、门的打开和关闭等。)。
在这样的虚拟空间中,在客户终端中,同步地显示基于虚拟的角色或道具、地形信息的活动随着时间的流逝而发生变化的状况,参加者能够体验相同的虚拟空间。换句话说,需要在各个客户端之间使虚拟角色和道具等存在于元宇宙或游戏中的对象和地形信息同步。
特别是,在元宇宙中,通常可以对参加者能够自由创建、修改和自定义的房间(世界、区域)进行定义,例如参加者的家园世界和参加者创建的世界等。该房间是个人用房间,用于表现玩家喜欢的感兴趣的世界观(动画、太空旅行、猫、小游戏、地下迷宫等),或者是企业用房间,以网络销售、展厅和展览会为目的。另外,房间、世界、区域大多与虚拟空间同义,但在本实施方式中,区域和房间对应于能够在虚拟空间的全部或一部分中共享体验的一定的区域。在下文中,虚拟空间表示本实施方式所提供的虚拟空间的全部(作为体验共享场所而分割的一定区域的集合体,或者利用了本实施方式的虚拟空间应用程序或虚拟空间服务所提供的虚拟空间的整个区域),有时也表示作为体验共享的场所而分割的一定区域即虚拟空间的一部分。当需要特别区分时,有时将前者称为一个以上的虚拟空间等,将后者如后所述称为区域或房间。由于各种限制和因素的影响,可能存在多个可以体验相同内容(与区域对应)的虚拟空间(与房间对应),并且可能存在以下情况:即使玩家打算同时进入相同的虚拟空间,却被分配到别的虚拟空间(对于房间、参加者来说,处于平行世界状态),虽然可以体验相同区域的内容,但在该虚拟空间(房间)无法相会。在本实施方式中,有时将虚拟空间的内容本身称为唯一存在的区域,将加入区域的参加者实际体验的虚拟空间称为存在0个以上的房间,从而将两者分开使用。当只存在能够加入单个虚拟空间(区域)的单个虚拟体验空间(房间)时,区域和房间几乎同义。
也就是说,在如上所述的作为元宇宙或多人在线游戏的在线游戏或其他会议系统等的网络应用程序中,使用在参加者的终端之间使文档、视频等内容信息同步的技术。在此,当参加者人数和同步目标的内容(同步目标对象。在下文中,将包括虚拟角色、道具、地形信息等在内的、使随着时间的经过而变化的状况同步的全部对象称为“同步目标对象”。)的数量变大时,同步所需的数据量增加,同步的延迟(时延或等待时间)增大,并且无法作为网络应用程序而使用。
另外,换句话说,如上所述的同步目标对象被区分为2种类型:区域信息和非区域信息。区域信息是上述已说明的地形信息,是无论地形如何、再现构成虚拟空间的内容(区域)都所需的区域属性信息,包含同步目标信息,例如,可以根据角色的操作而改变地面、建筑物、房间以及它们附带的物品(例如,地面的变形、建筑物的扩建和拆除、家具的移动、钟表的运行、门的打开和关闭等)。非区域信息是除区域信息以外的同步目标信息,主要是参加者的属性信息。是角色、所拥有的道具、关于战斗的数值和关于行动的经验值等。区分区域信息和非区域信息的边界、同步目标对象的指定可以根据游戏设计而变更。例如,区域信息管理区域的内容,并应用协同工作的结果而保存。另一方面,非区域信息管理在房间内活动的用户、用户所有物的状态,并保存正在进行的作业经过等(在下文中,有时将在虚拟空间活动的用户、用户所有物的状态等用户统一管理、应用的信息,即虚拟形象、服装、武器等装备或携带物品全部统称为用户信息。通过相互共享用户信息,虚拟空间(房间)的参加者能够识别并共享彼此的虚拟形象的活动)。区域信息和非区域信息各自的代表性信息是地形信息和用户信息,但并不限定于此。但是,在以下的说明中,主要对地形信息和用户信息进行说明,但在各自的说明中可以替换为区域信息和非区域信息。
在元宇宙、MMOG,尤其是FPS(First-Person Shooter)游戏等的世界中,同步的延迟是致命的,并且作为服务不成立。因此,在减少同步目标对象的数量和参加者人数方面下功夫。
为了减少同步目标对象的数量,需要在元宇宙或游戏设计上下工夫。为了减少参加者人数,分割要共享的虚拟空间或者设定人数限制并准备多个相同的虚拟空间(房间、世界)。但是,在该方法中,所加入的房间不同的参加者(平行世界状态的参加者)无法共享游戏体验。因此,为了完全共享游戏体验,优选所有参加者加入到同一房间中。
如果能够增大可容纳在单个房间中的共享对象和参加者数量,则能够大幅改善游戏设计的自由度和参加者的游戏体验。下面,将对用于增大可容纳在单个房间(世界)中的共享对象和参加者数量的同时,可抑制同步延迟的同步系统的结构进行说明。此外,还对用于简化确定、选择和共享所加入的房间的方法的同步系统进行说明。进而,对用于易于进行地形信息中包含的地面、建筑物、房间以及它们附带的物品的自定义(创建、编辑、删除等)的同步系统进行说明。
(同步系统的结构)
图1是示出实施方式所涉及的同步系统的结构的一例的概略图。
该同步系统通过网络将作为信息处理装置的服务器装置1和作为客户端的终端装置2a、2b、2c可相互通信地连接而成。装置或网络可以是云、个人计算机、游戏终端、LAN或因特网,也可以是虚拟机或虚拟网络等。
服务器装置1是服务器型的信息处理装置,是根据操作者所操作的终端装置2a、2b、2c的请求进行动作的装置;其在主体内具备具有用于处理信息的功能的CPU(CentralProcessing 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 AreaNetwork)或第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所存储的内容相对应的对象同步,也可以以一定的时间间隔定期更新各个内容以使其与副本管理信息的变更结果同步。另外,例如,在针对1个区域(地形信息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(统一资源定位器,在本实施方式的上下文中,也可以替换为URI(统一资源标识符)。),通过将该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(全局唯一标识符)等,也可以是这些标识符的一部分、或包含这些标识符的字符串、或对这些标识符、字符串进行压缩或编码等的运算结果,即字节串。
地形信息编辑单元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经由通信部13将副本120a、副本120b、副本120c发送到根据参加者管理信息113和副本管理信息114A或114B的发送规则确定为发送目的地的终端中。
副本管理单元106在副本120a、副本120b、副本120c生成时记录该副本120a、副本120b、副本120c的副本ID、具有该副本ID的副本所有权的所有者的用户ID、表示进行同步的使用者的发送规则、可否转让等策略,并对于区域信息的副本和非区域信息的副本,分别以区域为单位作为副本管理信息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的所有者不具有编辑权的情况下,也可以对该所有者赋予临时的编辑权。新房间创建规则可以依据“参加者2000人以上”这样的条件,也可以根据“应参加者要求”这样来自外部的要求。区域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方案、深度链接、通用链接等方法。因此,在启动应用程序后,不需要通过在虚拟空间中重复各种搜索、选择和移动来最终到达要加入的房间的步骤。此外,为了让进入房间的参加者与其他参加者一起进行房间内的虚拟体验,为邀请其他参加者进入同一房间,可以通过电子邮件或消息共享自己加入的房间(在某些情况下,为区域)相对应的URL,由此其他参加者可以轻松加入同一房间。或者,在展览会等的元宇宙中,参加企业通过海报、小册子、名片、电子邮件、SNS(推特、脸书等)等方法,将与本企业参展的区域相对应的URL传递给顾客,由此,顾客无需绕道其他企业的房间等,就可以直接进入发出邀请的企业的房间。
即,终端装置2a、2b、2c经由输入了终端上的URL的浏览器来启动用于元宇宙的应用程序,该应用程序从服务器装置下载该地形信息111(区域)的地形数据(也包含同步目标以外的对象以及对象的动作程序、脚本),进而向服务器装置1请求加入房间,并开始区域信息以及非区域信息的同步处理。另外,关于地形数据的下载的同步目标信息(位置等参数),采用在数据接收单元104中记述的方法。具体而言,属于区域的最初的房间的参加者自身保存初级副本,也在服务器上创建副本,其后的参加者取得服务器的副本,自己创建三级副本,初始化同步所需的参数(同步目标对象)。
另外,区域(地形信息111)相当于虚拟空间的内容。在通常的MMOG等游戏中,伴随着内容的追加、修正,需要更新客户端程序,但通过本实施方式这种样的每次下载地形信息的方式,则不需要伴随着内容的追加、修正来更新客户端程序。特别是,在提供庞大的内容(区域)的元宇宙中,一开始将全部内容包含在客户端程序中并保存是低效的,在某些情况下也是不可能的。另一方面,在每次下载的情况下,由于在下载内容后才能够加入房间,所以加入房间前的等待时间是一个问题。也可以不每次下载,而是对下载过的内容进行缓存,在没有内容更新的情况下,再次使用缓存的内容,也可以预测下一次可能使用的内容来预先进行下载等。
服务器装置1的房间管理单元102若接收到来自终端装置2a、2b、2c的请求,则参照房间管理信息112对相应的区域ID确认是否准备有房间,在未准备房间时,或者虽然房间已经存在但通过参加者管理单元103判断为满足地形信息111的新房间创建规则时(例如,如果判断为房间中的参加者已达到上限时),则准备新房间并向该新房间加载提供地形信息111。在区域提供多个房间的情况下,通过房间管理单元102将多个房间ID与1个区域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在通过上述URL从终端装置2a接受访问时,根据URL中包含的字符串确定区域ID,与使用者3a的用户ID对照,在副本管理信息114A中确认是否是所有者,在是所有者的情况下,在终端装置2a中显示控制用于编辑属于该区域ID的地形数据的画面。
使用者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经由通信部14将副本A0发送到根据副本管理信息114A或114B确定为发送目的地的用户的终端装置2b、2c(根据需要参照参加者管理信息113等)中。
终端装置2b、2c从服务器装置1接收并复制副本A0,并将作为三级副本的三级副本A0存储到存储器中(S120b、S120c)。终端装置2b、2c根据通过该三级副本A0进行同步的对象来进行元宇宙、游戏。另外,在后面的步骤中进行三级副本的差分更新的情况下,需要在防止其根据元宇宙、游戏的进行来直接变更三级副本的方面下功夫。如果在用于减少与元宇宙、游戏进度相对应的相互作用或延迟的运动预测中,当变更三级副本的内容的情况下,预先在元宇宙、游戏进行中使用三级副本,伴随元宇宙、游戏的进度来进行操作,之后在从服务器装置1发送来差分更新信息的情况下,利用对三级副本应用/更新差分后的三级副本,置换元宇宙、游戏进行用的三级副本后使其同步。当瞬时置换时,在差分大或者动作不顺畅的情况下,也可以通过花费时间来使三级副本的字段值与更新后的三级副本的字段值顺畅度一致等,从而提高用户体验。
接下来,终端装置2a在进行元宇宙、游戏的同时,进一步变更对象A0的字段值等,以作为对象A1(S122a)。接下来,终端装置2a更新与该对象A1相对应的初级副本(初级副本A1)的同时,生成与对象A0相对应的初级副本A0的差分A01(S123a),并且将作为差分A01进行变更后的字段的更新信息发送到服务器装置1中。优选地,在同步目标对象的所有字段中,仅仅对于发送上次同步信息后的差分超过根据元宇宙、游戏内容而预先确定的阈值且足够大,并且为了维持同步状态而需要更新的字段,作为字段名和字段值的对,仅仅将需要更新的字段的数量作为列表信息汇总发送。在零个的情况下,不发送,或者作为0个的更新来发送。此外,在字段名很长的情况下,也可以使用通过将字段名编码为数字等来压缩数据大小的数据串行化技术。
服务器装置1的数据接收单元104经由通信部13从终端装置2a接收差分A01(S111),并通过数据更新单元107将存储器12的副本A0更新为副本A1(S112)。
接下来,服务器装置1的数据发送单元105经由通信部14将副本A0的差分A01发送到根据副本管理信息114A或114B确定为发送目的地的终端装置2b、2c中。
终端装置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仅仅生成1个对象A0的情况进行了说明,但是终端装置2a、2b、2c分别生成的对象的数量并没有限制,可以分别生成2个以上的对象,也可以不生成1个对象。
此外,终端装置2a在对象没有变更的情况下,通过不通知服务器装置1来抑制通信量,但也可以是在没有变更的情况下也进行通知的规格。此外,终端装置2a在对象发生了变更的情况下,发送差分信息来抑制通信量,但也可以是即使是字段的一部分发生了变更的情况下,或者即使没有变更也定期地通知包括没有变更的字段在内的对象整体的规格。此外,也可以是静态、动态地对每个同步目标对象进行切换并发送通知的规格。
接下来,对更新对象时的同步规则进行说明。
图10是用于说明基于所有权而执行的同步动作的一例的流程图。
以终端装置2a的对象A0(S220a、S221a)作为副本A0在服务器装置1中进行复制(S210)、以及作为三级副本A0将其从服务器装置1复制到终端装置2b、2c中的状态(S220b、S220c)为前提,然后,在终端装置2b中随着元宇宙、游戏的进行,更新三级副本A0并变更为三级副本A0'的情况下(S221b),由于作为该三级副本A0'的原始的对象A0的所有权由终端装置2a的用户进行定义,因此不会通过由终端装置2b更新的三级副本A0'与三级副本A0之间的差分A00'(S222b)来更新服务器装置1的副本A0、其他终端装置2a的对象A0、终端装置2c的三级副本A0
如此一来,由三级副本A0'实施的对同步的禁止可以通过以下方式中的任意一项来实现:(a)终端装置2b不会将三级副本A0与三级副本A0'之间的差分A00'发送到服务器装置1中;(b)即使服务器装置1接收该差分A00'(S211)也不进行同步处理(对副本不进行更新处理,也不进行更新信息的发送处理)(忽略、丢弃);(c)服务器装置1不将该差分A00'应用于自身的副本A0并且也不更新,从而不会发送到终端装置2a(以及终端装置2c)中;(d)终端装置2a不接收该差分A00'(即使接收到也不进行接收处理,忽略、丢弃、拒绝)或者(e)即使终端装置2a接收该差分A00'也不进行同步处理(不对初级副本、三级副本中的任一个进行更新处理)。基于具有所有权的用户的终端装置以外的对象更新来实施的对同步的禁止可以通过a~e中的任一种方法、或者它们中的1个以上的任意组合来实现,但通过采用a~e中的a,通过网络通信发送/接收的信息量最少,按照b、c、d、e的顺序,通过网络通信发送/接收的信息量增加,因此按照a~e的顺序是优选的结构。此外,为了防止游戏的不正当(外挂)行为,通常需要进行服务器验证的情况较多,因此a和b的组合、或a和b和e的组合是优选的最小结构。
(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经由通信部14将副本A0发送到根据副本管理信息114A或114B确定为发送目的地的终端装置2b、2c中。
终端装置2b、2c从服务器装置1接收并复制副本A0,并将作为三级副本的三级副本A0存储到存储器中(S320b、S320c)。
此外,由于服务器装置1的数据发送单元105预先管理其他终端装置2b、2c的用户具有所有权的对象的副本(S311),因此经由通信部14将副本B0、C0发送到根据副本管理信息114A或114B确定为发送目的地的终端装置2a中。另外,该发送也可以在对象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),并且将三级副本A0、A1分别与终端装置2b、2c进行同步之后(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从服务器装置1接收到所有权已变更为终端装置2b的通知时,通过将存储的三级副本A1变更为自己具有所有权的对象A1(S423b),来完成退出动作。另外,在此,退出(S424a)由终端装置2a明确地通知服务器装置1,但有时存在由于突然的线路断开等而无法通知退出的情况。即使在这种情况下,当服务器装置1在终端装置2a检测到断开(套接字关闭等)的情况下,也能够与明确地接收到退出通知的情况相同地完成退出以及所有权的变更处理。如果在各终端装置中,严格管理三级副本的所有者的情况下,虽然未图示,服务器装置1在所有权被转让之后,向除了将三级副本作为初级副本进行管理的终端装置2b以外的、参与同步动作的其余所有终端装置(在此情况下为终端装置2c)通知对象A(三级副本A)的所有权从终端装置2a转让给终端装置2b。各终端装置在仅对自身管理的同步目标对象是自身具有所有权的初级副本、或是自身不具有所有权的三级副本进行管理的情况下(不管理三级副本的所有者的情况下),不需要向不保存该对象的所有权的终端装置(2c)进行通知。但是,在该情况下,服务器装置1仅在具有所有权的终端装置接收到变更初级副本的变更信息时,向不具有所有权的终端装置发送该更新信息,万一不具有所有权的终端装置接收到变更了三级副本的变更信息时,不得向不具有所有权的终端装置发送该更新信息。在前者中,终端装置严格管理三级副本的所有者,容易应对外挂等异常的更新信息,但是由中途退出引起的通信量增大。后者中,外挂等异常的更新信息依赖于服务器装置1的对策,但随着中途退出,通信量变得极少,在大量终端参与同步动作的情况下是有效的。也可以根据同步目标对象的种类或终端装置的性能,分别选择前者和后者。
另外,在转让项目为“OK”的情况下,可以预先确定转让给哪个用户,也可以在退出时确定,还可以按照加入的日期时间顺序进行转让,也可以随机分配,还可以分配给处理能力高的终端的用户,也可以分配给网络环境好的终端(带宽大,延迟/RTT(round-triptime)小、通信稳定(RTT稳定且小))的用户。
接下来,对副本管理信息114A或114B的副本ID“A”的转让项目为“NG”的情况进行说明。在此,作为转让项目为“NG”的对象的示例,其为在游戏中玩的角色(用户自身的虚拟形象)或敌人,但也可以为在游戏中使用的道具等。
图13是用于说明中途退出时的同步动作的另一例的流程图。
终端装置2a向服务器装置1请求退出(S524a)。服务器装置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(区域)的情况下,由于通过URL指定要加入哪个地形信息111,所以可以不考虑房间而加入地形信息111所属的房间(加入指定的区域),而且便于使其他使用者知晓,且容易共享。特别是,只要是在网页浏览器上运行的元宇宙、MMOG等程序,则可以将该URL嵌入网页上,通过网页浏览器加入。
此外,由于同样通过URL经由网页浏览器对该地形信息111进行编辑,所以无需在终端装置2a、2b、2c上安装用于编辑的应用程序,能够减少用于开始编辑的工序。
此外,由于只需参照在管理信息中接收到的同步目标对象的信息即可,在找到相应的用户之前无需参照权限列表,所以起到减轻处理负担的效果。
在上述实施方式中,即使是少于1000人的用户数(例如100人或10人),与1000人的情况相比处理负担也变为1/10、1/100,因此与以往的方式相比能够减少处理负担,进而能够以低成本向使用者提供使用了该发明的服务。
例如,关于足球游戏的球类的对象,在对持有该球的游戏者定义球的所有权的情况下,在游戏的进行中该球的对象的所有权发生变化,但如果对每个对象管理所有权,则管理信息的更新进行一次即可,由于不需要确认、更新多个用户的权限列表,因此减轻了处理负担和通信负担。
本发明的另一目的是提供一种服务器,该服务器无论游戏设计如何,都能够在多人在线游戏中执行同步动作。
例如,本发明被配置为可以充分承受同步目标对象的所有权在多人之间变化的设计,以及同步目标对象的所有权的数量大的设计,能够提供具有可以应对现状无法设想的未知设计的游戏环境。
[其他实施方式]
另外,本发明并不限定于上述实施方式,在不脱离本发明的宗旨的范围内可以进行各种变形。
另外,在上述的实施方式中,其构成为,由具有所有权的用户进行更新的对象来更新服务器装置1的副本,进而向同一房间中的剩余的客户端传送更新信息,因此,元宇宙、游戏进行中的矛盾解决为所有者客户端优先的矛盾解决,但如果元宇宙、游戏中的虚拟形象是由各客户端自身拥有的元宇宙、游戏设计,则能够实现平等。所有者客户端之间的竞争通过元宇宙、游戏的设计来解决。例如,可以设计成不具有直接相互关系、或者经由RPC(Remote Procedure Call)那样的其他机制或其他对象而具有相互关系,以直接同步目标对象彼此不具有相互关系的方式进行设计。
此外,由于对每个区域的与区域信息相关的同步对象所有权进行定义,所以在区域中存在多个房间的情况下,应用于同一区域的所有房间并共享。即,当具有所有权的客户端更新区域的同步目标对象的状态时,不止该客户端加入的房间的区域信息被更新,该客户端未加入、但属于相同区域的房间也被更新。严格地说,区域信息不是特定客户端的专用对象,因此可能存在不具有区域所有权的客户端也想要更新的情况。为了对不具有区域所有权的客户端进行更新,需要向具有同步目标对象所有权(初级副本)的客户端请求更新。作为请求方法的一个实施例,使用RPC等的程序(脚本)。伴随这种不具有所有权的对象变更的操作,例如建筑物的门的打开关闭作为该同步目标对象(在此情况下为门)的程序被操作,若操作该程序,则在对该对象进行同步动作的所有客户端中以同样的方式执行操作,在不具有所有权的客户端中操作会失败,但在具有所有权的客户端中操作会成功,该对象的状态在具有所有权的客户端的初级副本中发生变化(例如,关闭的门打开)。该变化通过对象的状态变化的同步机制反映在服务器装置1的副本中,接着也反映在不具有所有权的、加入相同区域的各房间的剩余客户端的三级副本中。通过这种机制,客户端也可以实现对没有所有权的对象的操作。虽然示出了跨房间的、区域内的区域信息的同步的一例,但是基于相同的RPC等程序/脚本的同步方法不限于区域,也可以对房间内的不具有所有权的其他人的对象进行同步。但是,在该机制下,在多个客户端同时尝试相同对象的操作的情况下,发生多个相同的RPC请求,但由于通信等的延迟和运气在内,执行顺序根据客户端而不同,而且,由于仅具有所有权的终端中的某一个客户端的RPC的动作是有效的,所以对具有所有权的客户端来说绝对有利,在不具有所有权的客户端之间,取决于该客户端与具有所有权的客户端之间的距离、该客户端的CPU性能、该客户端所连接的网络环境等。因此,虽对在诸如FPS等注重时间的操作中的同步动作来说可能不一定公平,但在诸如社交内容这种频率低的变化中是足够的。如上所述,同步目标对象的选定、同步的范围(是在区域整体还是在房间内)、同步的方法(是直接的对象同步还是通过程序(如RPC)进行间接同步)等对所提供的服务的功能、性能有很大影响,因此应根据想要实现的服务的设计(游戏设计)来决定。
此外,在上述的实施方式中,对于在客户端之间一边同步一边进行元宇宙、游戏的方法,由于可以应用现有技术,因此省略详细说明。尤其是在来自世界各地的大量人员加入的虚拟环境中,与同步目标对象相关的信息的传输可能会产生延迟或丢失。因此,在信息的传递中,根据虚拟空间的种类(元宇宙、游戏的类型)或同步目标对象的种类,除了本实施方式提出的方法之外,还需要并用各种一般的方法。
首先,为了处理网络的延迟,各客户端将所加入的虚拟空间内的虚拟空间时刻同步,并将虚拟空间时刻添加到与同步目标对象相关的通信信息中的情况较多。
为了处理网络的延迟,广泛使用可使得加入虚拟空间内的每个客户端在元宇宙、游戏进行中产生偏差的同步方法。也就是说,终端装置2a、2b、2c分别独立地在虚拟空间中运行,但各自运行中的虚拟空间内的时刻稍微不一致。如果终端装置2a和终端装置2b可以并排观看,则与终端装置2b相比,终端装置2a的虚拟空间时刻稍微提前(在终端装置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]
可以灵活地指定相互同步的终端装置组。在实施方式及其他实施方式中,对区域的区域信息的同步动作、房间的非区域信息的同步动作进行了说明,但相互同步的终端装置的组(在下文中,也可简称为“同步组”。)不限于区域(区域中所有房间的参加者终端)或房间(房间的参加者终端)。在此,房间的同步组由同步目标对象中相互进行用户信息同步的客户端以房间为单位构成一个以上(图8,114B为1个时),区域的同步组由同步该地形信息(区域)的客户端以区域为单位构成一个以上(图7、114A为1个时),该地形信息(区域)用于从同步目标对象中再现构成虚拟空间的内容。此外,如以房间的情况为例所说明的那样,各个同步组也可以动态地生成、变更、消除。组的管理与房间管理信息、地形管理信息一样,作为各自的组管理信息而进行管理维护。终端装置能够根据各个组的策略,适当地加入、退出一个或多个组。例如,在指定某个区域来体验虚拟体验的情况下,当加入区域的同步组和房间的同步组并退出房间时,也退出各个区域的同步组和房间的同步组。
作为另一实施方式2,示出更通用的同步动作的构成方法。在此,由同步目标对象、参与该对象的同步动作的终端装置构成的用于同步动作的终端装置组(同步组)为同步动作的基础。通过作为同步目标对象的构成方法、进行同步动作的终端装置组的构成方法,能够应对各种同步的使用方式、提高同步动作的效率。
(1)同步动作的基础
对于每个同步对象,使所有者终端和目标对象进行同步动作的、没有所有权的终端与服务器装置1连接通信,由此实现对象的同步动作。在该情况下,进行同步动作的终端装置形成同步组。该终端装置组(同步组)是为了加入虚拟空间而与服务器装置1连接的终端装置的全部或一部分。
关于各个同步目标对象在同步组内的同步动作如图9~图13所示。拥有该对象的参加者的终端装置保存该对象的初级副本,服务器装置1保存该对象的副本,不具有该对象的所有权的其余同步组的参加者的终端装置保存该对象的三级副本。初级副本中的变更信息依次应用于副本、三级副本中,初级副本、副本、三级副本同步为相同状态。不具有所有权的参加者的终端装置不得直接变更三级副本,并且即使变更了三级副本,副本、初级副本、其他终端的三级副本也不会发生变更。想变更三级副本的不具有所有权的参加者的终端装置不直接变更三级副本,而是向具有所有权的参加者的终端装置委托初级副本的变更,如果具有所有权的参加者的终端装置根据请求更新初级副本,则该更新信息以副本、三级副本传送,其结果在于,自身终端的三级副本也被变更。
在同步动作中,副本管理装置对于各同步目标对象进行管理和操作。如图7以及图8所示,服务器装置1针对各同步目标副本,保存副本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编辑应用程序创建的数据,并在虚拟空间中注册。但是,在本实施方式中,原则上由服务器管理非区域和区域信息。在终端装置上执行程序时,根据需要进行下载。在进行同步目标信息的同步动作(初级副本、副本、三级副本)的结构中,通过提供能够直接指定服务器中存在的非区域、区域信息等内容的机构,能够在使用者之间或同一使用者的多个终端之间简单地共享各种内容。在本实施方式中,可以通过URL等,而不是通过应用程序内部的表示方式,例如地形ID、角色ID等,更通用地定义。例如,通过使用URL方案、深度链接、通用链接等方法并根据目标内容、访问方法调整参数,能够不绕远路而直接编辑目标内容、或者在所希望的模式(程序)下访问,如参与内容等。此外,由于可以通过通用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=jo in”,指定管理网站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主页的“家”区域等)时,如
“https://sample.metaverse.jp/?user_id=U501&action=edit”那样,将访问模式edit(编辑)指定为管理网站sample.metavers.jp、用户ID U501、访问模式edit(编辑)即可。根据各个URL,根据需要启动不同的应用程序,根据需要,输入对于各个内容的访问管理(使用者ID、密码等)或不足的参数等,对指定内容在指定的模式下,通过启动的适当程序(游戏程序、元宇宙程序、WebGL、3D编辑器)可以直接访问。
(3)同步组的配置方法
进行同步动作的终端装置优选地仅限于该同步对象的动作有助于虚拟体验的共享的组之间的同步动作。
当进行同步动作的终端装置的数量变得庞大时,在服务器装置1、终端装置中,用于同步的处理和通信量变大,CPU负荷高,通信频带达到极限。在服务器装置1中,即使通过云等方法分散并扩大与同步目标对象的副本相关的处理,能够应对数量的增大,也会因终端装置中的通信量的增大而使通信频带达到极限。特别是在CPU的性能和通信速度方面,不能期待终端装置有足够的性能。特别是,在移动通信等无线环境中使用时,有时通信速度不稳定,在签订了非套餐的通信费用的终端中,有时不希望通信量的增大。
为了在虚拟空间中提供共享体验,理想的是整个虚拟空间,在虚拟空间中的所有参加者可以共享在虚拟空间中的所有对象,但是当参加者增加时,其实现在经济上比较困难,或者在技术上是不可能的。此外,实际上,掌握所有参加者的行为对使用者来说是不可能的,或者是没有意义的。为了解决该问题,需要减小进行同步动作的对象的数量、减小对对象进行同步动作的范围(使用者数量)等。关于前者的一例,可参考前述同步目标对象构成(例如,将具有相同行为的对象集中在一起,仅构成一个仅提取这些对象中需要同步处理的参数(字段等)的特殊同步目标对象)的说明。
为了减少使对象进行同步动作的范围(使用者数量),将对每个对象进行同步动作的终端数量限制在必要的最小限度。在许多情况下,用户终端仅表示构成虚拟空间的对象的一小部分,而不表示全部。因此,如果仅对所表示的一小部分对象实现同步动作,则对于其他对象而言,无论是否在内部进行同步动作,终端装置的使用者能够感知到的虚拟空间中的体验都相同。
可以定义对每个对象进行同步动作的终端组,并且仅在该组中执行同步动作。进一步地,副本管理信息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)经由服务器装置1的副本(A1、B1、C1)在作为房间101的参加者的用户终端装置A、B、C中同步(A2、B2、C2),用户X、Y的同步目标的非区域(X0、Y0)经由服务器装置1的副本(X1、Y1)在作为房间102的参加者的用户终端装置X、Y中同步(X2、Y2),区域100的同步目标的区域信息(G0)经由服务器装置的副本(G1)在作为区域100的房间的房间100和101的参加者的用户终端装置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 (30)

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个以上的虚拟空间的多个客户端连接的虚拟空间管理提供装置,
所述虚拟空间的同步目标对象是在由具有该同步目标对象的所有权的客户端和不具有所有权的客户端构成的同步组的客户端之间同步的对象,所述虚拟空间管理提供装置具有:
接收单元,其从所述同步组的客户端中具有所述同步目标对象的所有权的客户端分别接收该同步目标对象的变更内容信息;
更新单元,其参照对每个所述同步目标对象进行管理的管理信息、即定义了具有该同步目标对象的所有权的客户端的所述管理信息,在该管理信息中将发送源的客户端定义为具有该同步目标对象的所有权的客户端的情况下,根据所述变更内容信息来更新复制了所述同步目标对象的复制对象;
以及发送单元,其将所述变更内容信息发送到所述同步组的客户端中除具有所述所有权的客户端以外的客户端。
CN202280008097.3A 2021-06-14 2022-06-14 信息处理装置、数据同步方法、数据同步系统、记录介质以及终端装置 Active CN116583328B (zh)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
CN116583328A true CN116583328A (zh) 2023-08-11
CN116583328B CN116583328B (zh) 2024-09-13

Family

ID=84526508

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202280004615.4A Active CN115943619B (zh) 2021-06-14 2022-06-14 信息处理装置、记录介质、数据同步方法、数据同步系统以及终端装置
CN202280008097.3A Active CN116583328B (zh) 2021-06-14 2022-06-14 信息处理装置、数据同步方法、数据同步系统、记录介质以及终端装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202280004615.4A Active CN115943619B (zh) 2021-06-14 2022-06-14 信息处理装置、记录介质、数据同步方法、数据同步系统以及终端装置

Country Status (7)

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

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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1350677A (zh) * 1999-05-10 2002-05-22 艾利森电话股份有限公司 通信网中的方法和设备
US6763371B1 (en) * 1999-05-10 2004-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for collaborative communication in a communication network
CN101010125A (zh) * 2004-08-30 2007-08-01 松下电器产业株式会社 执行多人参加型应用程序的客户机终端装置、分组形成方法和分组形成程序
CN110694266A (zh) * 2019-10-23 2020-01-17 网易(杭州)网络有限公司 一种游戏状态的同步方法、展示方法及装置
CN112642143A (zh) * 2020-12-30 2021-04-13 明日世界(上海)网络科技有限公司 一种实现信息同步的方法、装置、存储介质和电子设备

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 ネットワークを利用したゲームシステム、ネットワークに接続可能なゲーム機及びこのゲーム機のためのプログラムが記録された媒体
JP2004135051A (ja) * 2002-10-10 2004-04-30 Sony Corp 情報処理システム、サービス提供装置および方法、情報処理装置および方法、記録媒体、並びにプログラム
KR20050023495A (ko) * 2003-08-28 2005-03-10 (주)트라이헤드론 다자간 네트웍 게임에서의 데이타 동기화 방법
JP4995451B2 (ja) * 2005-11-04 2012-08-08 任天堂株式会社 ゲームプログラムおよびゲーム機
JP4139409B2 (ja) 2006-01-16 2008-08-27 株式会社ソニー・コンピュータエンタテインメント シミュレータシステム
US8142289B2 (en) * 2006-06-30 2012-03-27 Sony Computer Entertainment America Llc Dead reckoning in a gaming environment
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1350677A (zh) * 1999-05-10 2002-05-22 艾利森电话股份有限公司 通信网中的方法和设备
US6763371B1 (en) * 1999-05-10 2004-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for collaborative communication in a communication network
CN101010125A (zh) * 2004-08-30 2007-08-01 松下电器产业株式会社 执行多人参加型应用程序的客户机终端装置、分组形成方法和分组形成程序
CN110694266A (zh) * 2019-10-23 2020-01-17 网易(杭州)网络有限公司 一种游戏状态的同步方法、展示方法及装置
CN112642143A (zh) * 2020-12-30 2021-04-13 明日世界(上海)网络科技有限公司 一种实现信息同步的方法、装置、存储介质和电子设备

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
KR102612811B1 (ko) 2023-12-11
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
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 (zh) 2022-12-22
AU2022293125A1 (en) 2023-08-03
WO2022264990A1 (ja) 2022-12-22
JP7274161B1 (ja) 2023-05-16

Similar Documents

Publication Publication Date Title
CN116583328B (zh) 信息处理装置、数据同步方法、数据同步系统、记录介质以及终端装置
Nevelsteen Virtual world, defined from a technological perspective and applied to video games, mixed reality, and the Metaverse
US9254438B2 (en) Apparatus and method to transition between a media presentation and a virtual environment
US9256347B2 (en) Routing a teleportation request based on compatibility with user contexts
US20100023885A1 (en) System for editing an avatar
KR20150024345A (ko) 인터렉티브 게임플레이를 위한 시스템들 및 방법들
US20110055727A1 (en) System and Method for Using Partial Teleportation or Relocation in Virtual Worlds
KR20080074860A (ko) 온라인 로비를 제공하는 시스템 및 방법
KR20070082395A (ko) 유알엘을 이용한 플래시 게임 초대 시스템 및 방법
CN102763097A (zh) 用于对等协作游戏的等级服务器系统
CN111228824A (zh) 游戏观战方法、装置、计算机可读介质及电子设备
Saldana et al. QoE and latency issues in networked games
KR101633400B1 (ko) 모바일 게임을 위한 하이브리드 앱 기반의 대전서비스 제공방법 및 이를 위한 컴퓨터로 판독가능한 기록매체
KR20140128538A (ko) 가상 플레이어 캐릭터를 이용한 협업플레이 지원방법
JP7148941B1 (ja) 情報処理装置、データ同期プログラム、データ同期方法、データ同期システム及び端末装置
Behnke Increasing the supported number of participants in distributed virtual environments
Lee et al. A component-based framework to rapidly prototype online chess games for home entertainment
KR20200040642A (ko) 게임 프로그램의 가상 캐릭터 생성 장치 및 방법
KR101947161B1 (ko) 게임 프로그램의 가상 캐릭터 생성 장치 및 방법
Calhau MULTIPLAYER MODULE FOR SCIENCE4PANDEMICS’
CN113509719A (zh) 多版本应用的计算机系统、运行方法、装置及介质
KR20210017199A (ko) 구간 저장 장치, 시스템 및 방법
CN102325130A (zh) 一种客户端嵌入的ArkNet的网游系统
Lobão et al. Basics of Game Networking
Zhang Multiplayer network game programming in MFC: a case study of video poker

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant