Information processing device, data synchronization program, data synchronization system, terminal device, and virtual space management providing device

The described system addresses synchronization challenges in metaverse and MMOG by managing ownership and copy objects among multiple user terminals, reducing processing and communication burdens through efficient data synchronization.

CN119182787APending Publication Date: 2024-12-24SOFTGEAR CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411245051.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2021-06-14
Filing Date
2022-06-14
Publication Date
2024-12-24

AI Technical Summary

Technical Problem

Existing information processing devices struggle to synchronize data among multiple user terminals in environments like metaverse and multiplayer online games, leading to increased processing and communication burdens due to the need for conflict determination and synchronization of user and simulation objects, which is not feasible when numerous user terminals join or leave freely.

Method used

An information processing device connected to multiple clients via a network, managing synchronization target objects through a receiving unit, updating unit, and sending unit to handle change content information, ensuring efficient synchronization by defining ownership and managing copy objects among clients.

Benefits of technology

This approach effectively suppresses the increase in processing and communication loads, enabling seamless data synchronization among multiple user terminals, particularly in environments with dynamic user participation like metaverse and MMOG.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119182787A_ABST
    Figure CN119182787A_ABST
Patent Text Reader

Abstract

The invention provides an information processing device, a data synchronization program, a data synchronization system, a terminal device, and a virtual space management providing device, which can suppress an increase in processing load and communication load when data of a plurality of user terminals is synchronized. A server device (1) is connected via a network to a plurality of clients joining a virtual space, and a synchronization target object of the virtual space is an object to be synchronized between clients of a synchronization group composed of a client having ownership of the object and a client not having ownership of the object. The difference receiving unit is used for receiving the difference of the synchronization target object from a client with ownership of the object; a data updating unit (107) that updates copies (120a, 120b, 120c,...) of the copy synchronization target object on the basis of the difference; and a data transmission unit (105) that transmits the difference to a client other than the client having ownership among the plurality of clients.
Need to check novelty before this filing date? Find Prior Art

Description

This application is a divisional application. The filing date of the parent application is June 14, 2022. The international application number is PCT / JP2022 / 023718. The application number entering the Chinese national phase is 202280008097.3. The name of the invention is "Information processing device, data synchronization program, data synchronization method, data synchronization system and terminal device." Technical Field

[0001] The present invention relates to an information processing device, a data synchronization program, a data synchronization method, a data synchronization system and a terminal device. Background Art

[0002] As a conventional technique, an information processing device that synchronizes a user object of a user terminal with a simulation object of a simulator has been proposed (for example, refer to Patent Document 1).

[0003] The information processing device disclosed in Patent Document 1 is connected to a single simulator for simulating the behavior of a predetermined simulation object and a user terminal for determining the behavior of the user object according to an instruction input from a user; the information processing device saves a copy of the user object and the simulation object; the user terminal obtains the simulation object information from the single simulator via the information processing device at each synchronization time point determined based on a predetermined time point determination rule, and predicts the behavior of the simulation object based on the last obtained simulation object information at a time other than the synchronization time point, and presents the prediction result to the user. In such a structure, the processing burden and the communication burden are reduced. Prior art literature Patent Literature

[0004] [Patent Document 1] Japanese Patent Application Publication No. 2007-185446 Summary of the invention Problems to be Solved by the Invention

[0005] However, the information processing device in Patent Document 1 stores copies of user objects and simulation objects, and sends copies of simulation objects contained in the field of view of the user objects to the user terminals, thereby reducing the processing burden and the communication burden. However, since the information processing device performs the conflict determination of the simulation objects and notifies the corresponding simulators to implement the interaction, the processing burden of the information processing device is used for the determination, and since the copies of the user objects and other simulation objects are not sent to the simulators, there is a problem that it cannot be directly applied to the situation of synchronizing the data of multiple user terminals in a structure participated by multiple user terminals. This problem is particularly prominent in the metaverse and multiplayer online games (MMOG: Massively Multiplayer Online Game) where a large number of user terminals join and join or leave freely and the user terminals are replaced at any time.

[0006] Therefore, the object of the present invention is to provide an information processing device, a data synchronization program, a data synchronization method, a data synchronization system and a terminal device, which can suppress the increase of processing burden and communication burden in a structure in which multiple user terminals are joined, that is, when the data of multiple user terminals are synchronized. Solutions to Solve Problems

[0007] In order to achieve the above-mentioned object, one embodiment of the present invention provides the following information processing device, data synchronization program, data synchronization method, data synchronization system, and terminal device.

[0008] [1] An information processing device, specifically an information processing device connected to a plurality of clients participating in one or more virtual spaces via a network, The synchronization target object of the virtual space is an object to be synchronized between clients of a synchronization group consisting of a client having ownership of the synchronization target object and a client not having ownership, and the information processing device has: a receiving unit, which receives the change content information of the synchronization target object from the clients of the synchronization group that have ownership of the synchronization target object; an updating unit, which refers to the management information for managing each of the synchronization target objects, that is, the management information defining the client having ownership of the synchronization target object, and updates the copy object of the synchronization target object according to the change content information when the client of the sending source is defined as the client having ownership of the synchronization target object in the management information; and a sending unit, which sends the changed content information to the clients in the synchronization group except the client having the ownership. [2] The information processing device according to [1], wherein the client belongs to one or more of the synchronization groups. [3] The information processing device according to [1], wherein the synchronization group is composed of clients that synchronize user information with each other among the synchronization target objects. [4] The information processing device according to [1], wherein the synchronization group is composed of clients that synchronize topographic information for reproducing content constituting a virtual space in the synchronization target object. [5] The information processing device according to [4], wherein the client having ownership of the synchronization target object corresponding to the terrain information among the synchronization target objects is a virtual client on the server. [6] The information processing device according to [4] further functions as an editing unit that edits the topographic information based on the content of an operation from a client having the right to edit the topographic information. [7] The information processing device according to [6], further functioning as a landform information management unit that issues an identifier corresponding to an object including the synchronization target object of the virtual space. [8] The information processing device according to [7], wherein the identifier is used by the client to access the content of the virtual space. [9] The information processing device according to [8], wherein accessing the content of the virtual space is the client entering the virtual space.

[10] The information processing device according to [8], wherein accessing the content of the virtual space is editing the content of the client.

[11] The information processing device according to [9], wherein accessing the content of the virtual space is to start a program in the client for entering the virtual space.

[12] The information processing device according to

[10] , wherein accessing the content of the virtual space is accessing a website for editing the content in the client and starting a web browser for accessing the website.

[13] The information processing device according to [1], wherein the receiving unit receives the synchronization target object owned by the client when the client joins the synchronization group joined by the plurality of clients, and stores the received synchronization target object in the recording medium as the copy object.

[14] An information processing device according to [1], wherein when a client joins a synchronization group joined by the plurality of clients, if the client has the right to edit the regional information, the sending unit sends the copy object to the client as the synchronization target object of the client and transfers the ownership.

[15] The information processing device according to [1], wherein when the client newly generates an object, the receiving unit copies the newly generated object as a synchronization target object and stores the copied object in a recording medium.

[16] An information processing device according to any one of

[13] to

[15] , wherein the sending unit sends the replica object or the synchronization target object stored in the recording medium to clients among the multiple clients except the client with ownership when the client joins or when the client newly generates an object.

[17] The information processing device according to any one of

[13] to

[15] , wherein the receiving unit does not receive the change content information of the synchronization target object from a client other than a client having ownership of the synchronization target object.

[18] An information processing device according to any one of

[13] to

[15] , wherein when the receiving unit receives change content information of the synchronization target object from a client other than a client that has ownership of the synchronization target object, the updating unit does not update the copy object.

[19] An information processing device according to any one of

[13] to

[15] , wherein, when the receiving unit receives change content information of the synchronization target object from a client other than the client having ownership of the synchronization target object, the sending unit does not send the change content information to the client having ownership.

[20] An information processing device according to any one of

[13] to

[15] , wherein the receiving unit receives the difference between the synchronization target object after the change and the synchronization target object before the change as the change content information of the synchronization target object, and the updating unit updates the copy object. [twenty one] An information processing device according to any one of

[13] to

[15] , wherein the information processing device further functions as the following management unit: when the client exits from a synchronization group to which multiple clients have joined, the ownership of the replica object corresponding to the synchronization target object owned by the client is transferred to other clients other than the client according to predetermined rules, provided that the transfer of ownership is allowed. [twenty two] An information processing device according to any one of

[13] to

[15] , wherein the information processing device further functions as the following management unit: when the client exits from the synchronization group to which it has joined, deleting the copy object corresponding to the synchronization target object owned by the client without allowing the transfer of ownership of the copy object, The sending unit instructs other clients other than the client to delete objects corresponding to the duplicated objects stored in the other clients. [twenty three] A data synchronization program, in particular a data synchronization program for making a computer connected to a plurality of clients participating in a virtual space via a network work, The synchronization target object of the virtual space is an object to be synchronized between clients of a synchronization group consisting of a client having ownership of the object and a client not having ownership of the object. The data synchronization program functions as the following units: a receiving unit that receives the change content information of the synchronization target object from the client having ownership of the synchronization target object; an updating unit, which refers to the management information for managing each of the synchronization target objects, that is, the management information defining the client having ownership of the synchronization target object, and updates the copy object of the synchronization target object according to the change content information when the client of the sending source is defined as the client having ownership of the synchronization target object in the management information; and a sending unit, which sends the changed content information to the clients in the synchronization group except the client having the ownership. [twenty four] A data synchronization system comprises: a plurality of clients joining a virtual space; and An information processing device connected to the plurality of clients via a network, The synchronization target object of the virtual space is an object to be synchronized between clients of a synchronization group consisting of a client having ownership of the object and a client not having ownership of the object. The information processing device comprises: a receiving unit which receives the change content information of the synchronization target object from the client having the ownership of the synchronization target object; an updating unit, which refers to the management information for managing each of the synchronization target objects, that is, the management information defining the client having ownership of the synchronization target object, and updates the copy object of the synchronization target object according to the change content information when the client of the sending source is defined as the client having ownership of the synchronization target object in the management information; and a sending unit, which sends the changed content information to the clients in the synchronization group except the client having the ownership.

[25] A data synchronization system according to

[24] , wherein the plurality of clients send the difference between the synchronization target object after the change and the synchronization target object before the change to the information processing device as the change content information of the synchronization target object.

[26] A terminal device as a client for communicably connecting to an information processing device, specifically a terminal device as a client that connects to other clients via a network via the information processing device and joins a virtual space, The synchronization target object of the virtual space is an object to be synchronized between clients of a synchronization group consisting of a client having ownership of the object and a client not having ownership of the object. The terminal device comprises: a receiving unit, which refers to the management information for managing each of the synchronization target objects, that is, the management information defining the client having ownership of the synchronization target object, and receives the change content information of the synchronization target object from the client having ownership of the synchronization target object via the information processing device only when the client of the transmission source is defined as the client having ownership of the synchronization target object in the management information; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; and a sending unit, which sends the changed content information to the clients in the synchronization group except the client having the ownership.

[27] A terminal device as a client for communicably connecting to an information processing device, specifically a terminal device as a client that connects to other clients via a network via the information processing device and joins a virtual space, The synchronization target object of the virtual space is an object that is synchronized between clients of a synchronization group consisting of a client that has ownership of the object and a client that does not have ownership, and the terminal device has a transmission unit. When a copy of a synchronization target object is updated on its own client, the sending unit refers to the management information for managing each of the synchronization target objects, that is, the management information defining the client that has ownership of the synchronization target object, and sends the change content information to the information processing device only when the own client is defined as the client that has ownership of the synchronization target object in the management information.

[28] The terminal device as a client according to

[26] or

[27] sends the difference between the synchronization target object after the change and the synchronization target object before the change to the information processing device as the change content information of the synchronization target object.

[29] The terminal device according to

[26] or

[27] , wherein the virtual space and the editing website for reproducing the topographic information constituting the content of the virtual space are accessed through the identifier issued by the information processing device.

[30] A virtual space management providing device, specifically a virtual space management providing device connected to a plurality of clients joining more than one virtual space via a network, The synchronization target object of the virtual space is an object to be synchronized between clients of a synchronization group consisting of a client having ownership of the synchronization target object and a client not having ownership, and the virtual space management providing device has: a receiving unit, which receives the change content information of the synchronization target object from the clients of the synchronization group that have ownership of the synchronization target object; an updating unit, which refers to the management information for managing each of the synchronization target objects, that is, the management information defining the client having ownership of the synchronization target object, and updates the copy object of the synchronization target object according to the change content information when the client of the sending source is defined as the client having ownership of the synchronization target object in the management information; and a sending unit, which sends the changed content information to the clients in the synchronization group except the client having the ownership. Effects of the Invention

[0009] According to the present invention, it is possible to suppress an increase in processing load and communication load in a situation where data of the plurality of user terminals are synchronized, in a structure in which a plurality of user terminals participate. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1 This is a schematic diagram showing an example of the configuration of a synchronization system according to the embodiment. Figure 2 This is a schematic diagram showing the relationship between terrain information (area) and rooms (world). Figure 3 This is a block diagram showing a configuration example of a server device according to an embodiment. Figure 4 It is a diagram showing the structure of terrain information (area management information). Figure 5 It is a diagram showing the structure of room management information. Figure 6 This is a diagram showing the structure of participant management information of a certain room. Figure 7 This is a diagram showing the structure of the replica management information of a certain area. Figure 8 This is a diagram showing the structure of the copy management information of a certain room. Fig. 9 This is a flowchart for explaining an example of synchronous operation. Fig.10 This is a flowchart for explaining an example of a synchronization operation performed based on ownership. Fig.11 This is a flowchart for explaining an example of synchronization operation in midway joining. Fig.12 This is a flowchart for explaining an example of a synchronous operation when quitting midway. Fig.13 This is a flowchart for explaining another example of the synchronization operation when exiting midway. Fig.14 This is a flowchart for explaining an example of synchronization operation when an area owner joins midway. Fig.15 This is a flowchart for explaining another example of the synchronization operation when the area owner joins midway. Fig.16 The diagram shows the relationship between synchronization operations of synchronization objects of area information managed for each area and synchronization objects of non-area information managed for each room. Implementation In the synchronization system of the present embodiment, multiple participants perform activities in a common virtual space, such as a metaverse or a multiplayer online game (MMOG: Massively Multiplayer Online Game). In the virtual space, there are ground, buildings, rooms, and their accompanying items (furniture, clocks, doors, etc.), and then there are services provided in the ground, buildings, and rooms, and programs executed in the services, etc., which are managed as terrain information described later. The terrain information of these virtual spaces corresponds to the content information of the experience (hereinafter also referred to as "game experience") that can be performed in the virtual space. In the present embodiment, these terrain information are also uniformly managed by the server and can be obtained from the server when joining the virtual space. Compared with the situation of pre-downloading and distribution to the participant's terminal, more content can be experienced in the latest state. In addition, since the latest content information is managed by the server, it can help participants to develop and modify the content.

[0012] In the metaverse or multiplayer online games, as time goes by, the activities of the participants are interconnected in the virtual space. Multiple virtual characters operated by multiple participants communicate, fight, fight together, work together, or collect props over time. In addition, the props owned by the characters, the numerical values ​​related to the battle, and the experience value of the action are increased or decreased through this activity. Through the interaction between the characters, players share the experience in the virtual space and feel immersion and unity. In addition, the ground, buildings, rooms and their attached items contained in the terrain information will also change due to the operation of the characters (for example, deformation of the ground, expansion and demolition of buildings, movement of furniture, operation of clocks, opening and closing of doors, etc.).

[0013] In such a virtual space, the client terminal synchronously displays the changes in the activities of virtual characters, props, and terrain information over time, so that participants can experience the same virtual space. In other words, it is necessary to synchronize the objects and terrain information existing in the metaverse or game, such as virtual characters and props, between each client.

[0014] In particular, in the metaverse, it is usually possible to define rooms (worlds, areas) that participants can freely create, modify and customize, such as the home world of the participant and the world created by the participant. The room is a personal room used to express the worldview that the player likes and is interested in (animation, space travel, cats, small games, underground mazes, etc.), or a corporate room for the purpose of online sales, showrooms and exhibitions. In addition, rooms, worlds, and areas are mostly synonymous with virtual spaces, but in this embodiment, areas and rooms correspond to certain areas that can share experiences in all or part of the virtual space. In the following, the virtual space represents the entire virtual space provided by this embodiment (a collection of certain areas divided as a place for experience sharing, or the entire area of ​​the virtual space provided by the virtual space application or virtual space service of this embodiment), and sometimes also represents a certain area divided as a place for experience sharing, that is, a part of the virtual space. When it is necessary to distinguish specifically, the former is sometimes referred to as one or more virtual spaces, and the latter is referred to as an area or room as described later. Due to various restrictions and factors, there may be multiple virtual spaces (corresponding to rooms) that can experience the same content (corresponding to areas), and there may be the following situation: even if players intend to enter the same virtual space at the same time, they are assigned to other virtual spaces (in a parallel world state for rooms and participants). Although they can experience the content of the same area, they cannot meet in the virtual space (room). In this embodiment, the content of the virtual space itself is sometimes referred to as the only existing area, and the virtual space actually experienced by participants who join the area is referred to as a room with more than 0, so that the two are used separately. When there is only a single virtual experience space (room) that can join a single virtual space (area), the area and the room are almost synonymous.

[0015] That is, in a network application such as an online game or other conference system such as a metaverse or a multiplayer online game as described above, a technology for synchronizing content information such as documents and videos between the terminals of the participants is used. Here, when the number of participants and the number of synchronization target contents (synchronization target objects. Hereinafter, all objects including virtual characters, props, terrain information, etc., which synchronize conditions that change over time, are referred to as "synchronization target objects") increase, the amount of data required for synchronization increases, the delay (delay or waiting time) of synchronization increases, and it cannot be used as a network application.

[0016] In other words, the synchronization target object described above is divided into two types: regional information and non-regional information. Regional information is the terrain information described above, which is the regional attribute information required to reproduce the content (region) constituting the virtual space regardless of the terrain, and includes synchronization target information. For example, the ground, buildings, rooms and their attached items can be changed according to the operation of the character (for example, deformation of the ground, expansion and demolition of buildings, movement of furniture, operation of clocks, opening and closing of doors, etc.). Non-regional information is synchronization target information other than regional information, mainly attribute information of participants. It is the character, the props owned, the numerical value of the battle and the experience value of the action, etc. The boundary that distinguishes regional information and non-regional information and the designation of synchronization target objects can be changed according to the game design. For example, regional information manages the content of the area and is saved by applying the results of collaborative work. On the other hand, non-regional information manages the status of users and user belongings active in the room, and saves the progress of ongoing operations, etc. (hereinafter, sometimes the information uniformly managed and applied by users, such as the status of users and user belongings active in the virtual space, that is, virtual images, clothing, weapons and other equipment or carried items are collectively referred to as user information. By sharing user information with each other, participants in the virtual space (room) can recognize and share the activities of each other's virtual images). The representative information of regional information and non-regional information are terrain information and user information, respectively, but are not limited to this. However, in the following description, terrain information and user information are mainly described, but they can be replaced by regional information and non-regional information in their respective descriptions.

[0017] In the world of metaverse, MMOG, and especially FPS (First-Person Shooter) games, synchronization delay is fatal and does not work as a service. Therefore, efforts are made to reduce the number of synchronization targets and the number of participants.

[0018] In order to reduce the number of synchronization target objects, it is necessary to work on the metaverse or game design. In order to reduce the number of participants, the virtual space to be shared is divided or a limit on the number of participants is set and multiple identical virtual spaces (rooms, worlds) are prepared. However, in this method, participants who join different rooms (participants in parallel world states) cannot share the game experience. Therefore, in order to fully share the game experience, it is preferred that all participants join the same room.

[0019] If the number of shared objects and participants that can be accommodated in a single room can be increased, the degree of freedom of game design and the gaming experience of the participants can be greatly improved. Below, the structure of a synchronization system that can suppress synchronization delays while increasing the number of shared objects and participants that can be accommodated in a single room (world) will be described. In addition, a synchronization system that simplifies the method of determining, selecting, and sharing the room to be joined will be described. Furthermore, a synchronization system that facilitates the customization (creation, editing, deletion, etc.) of the ground, buildings, rooms, and items attached to them contained in the terrain information will be described.

[0020] (Structure of Synchronous System) Figure 1 This is a schematic diagram showing an example of the configuration of a synchronization system according to the embodiment.

[0021] The synchronization system is formed by connecting a server device 1 as an information processing device and terminal devices 2a, 2b, 2c as clients to communicate with each other through a network. The device or network can be a cloud, a personal computer, a game terminal, a LAN or the Internet, or a virtual machine or a virtual network.

[0022] The server device 1 is a server-type information processing device, which is a device that operates according to the request of the terminal device 2a, 2b, 2c operated by the operator; it has a CPU (Central Processing Unit) or HDD (Hard Disk Drive) or flash memory, volatile memory, LAN board (wireless / wired) and other electronic components with the function of processing information in the main body. The server device 1 communicates with the terminal devices 2a, 2b, 2c, and performs synchronization of data processed on the terminal devices 2a, 2b, 2c by sending / receiving data. For example, it is a metaverse server, a game server, etc. The server device 1 may be composed of a plurality of clusters, or may be configured to execute distributed processing, or may be configured as a virtual machine in a cloud environment.

[0023] The terminal devices 2a, 2b, and 2c are terminal-type information processing devices, and are devices that operate according to programs; they have electronic components such as CPUs, HDDs, or flash memories that have functions for processing information in their main bodies. The terminal devices 2a, 2b, and 2c are, for example, devices that pre-install programs such as Metaverse and MMOG, and operate according to the programs, and while outputting data to the server device 1 in sequence as a result of the operation, receive data from the server device 1 as a result of the operation of other terminals, and synchronize objects between the terminal devices 2a, 2b, and 2c at a high frequency. In addition, the terminal device 2 is described by three devices, but it can also be a single device or two devices, or it can be composed of four or more devices. It is preferable to provide a structure that can communicate even when about 1,000 terminal devices are connected. In addition, programs such as Metaverse and MMOG can be independent applications or programs running on a web browser.

[0024] The network is a communication network capable of high-speed communication, such as a wired or wireless communication network such as the Internet, an intranet, a LAN (Local Area Network), or a fifth-generation mobile communication system (5G).

[0025] As an example, the server device 1 and the terminal devices 2a, 2b, and 2c act to synchronize the information stored as an object in each device (synchronization target object) between the devices as the activities and games in the metaverse proceed, and copy the objects in each device as replicas (replicated objects) for storage. In order to copy the replicas (as tertiary replicas) between the devices while managing the ownership of the replicas and store them, the synchronization action is assisted by sending and receiving (relaying) the replicas. In addition, the server device 1 does not actually perform synchronization actions, but relays, but sometimes the relay used for synchronization is more broadly referred to as "synchronization", and the action is referred to as "synchronization action" or "synchronization processing". In addition, more specifically, the content of the replica of the server device 1 is updated only according to the update of the object in the terminal device of the user with ownership, and the objects (tertiary replicas) in the terminal devices of other users who do not have ownership are updated according to the synchronization action. Objects (tertiary replicas) that are not owned by other users in the terminal devices that do not have ownership are not updated. Next, in the embodiment, the configuration and operation of the server device 1 as a relay server for synchronizing objects between the terminal devices 2a, 2b, and 2c will be described in detail.

[0026] In addition, the expressions such as "object", "class", "field", and "instance" used in the present embodiment are used synonymously with the same expressions used in Java (registered trademark), C++, C#, Python, JavaScript (registered trademark), Ruby, etc., but classes and instantiated classes (instances) are sometimes collectively referred to as "objects" below. "Class" is a collection of processes for executing programs, and the class contains methods for executing processes and fields that are variables used when methods execute processes. An object has 0 or more fields, and each field has a single or multiple field names and field values.

[0027] Figure 2 This is a schematic diagram showing the relationship between the area (topographic information 111) and the room (world).

[0028] The terrain information 111a~111c as area information defines the terrain or buildings (and their accessories) as the stage of the metaverse or game, for example, a fun world or business stage freely created by individuals or companies. When the server device 1 accepts the user's willingness to join, the virtual image 4a~4c, that is, the user's avatar, joins the room 112a~112c corresponding to the desired terrain information 111a~111c (hereinafter, sometimes the room joined for experiencing the area as a whole or a part of the virtual space is simply recorded as "joining the area". In the case where there is one room corresponding to the area, joining the area and joining the room are synonymous. However, in the case where there are multiple rooms corresponding to the area, in the case of joining a specific room, etc., it is sometimes not "joining the area" but strictly divided into "joining the room". When joining the virtual space, it is typical to join the "area" and "room" at the same time). The server device 1 can always store all area management information, all room management information, and the corresponding copy management information 114 in the memory, but in actual application, in fact, only the active management information (area management information, room management information, and copy management information) of the participants is stored. In other words, when all the avatars 4a to 4c disappear from a certain area or a certain room (the number of participants becomes zero), the server device 1 stores the setting value of the corresponding management information and temporarily deletes it from the memory. In this actual application, when the corresponding management information (area management information, room management information, and copy management information) generated when accepting the intention to join the area exists in the server device 1, the area management information, room management information, and the corresponding copy management information are added to the corresponding management information. When part or all of the generated management information does not exist, the area management information, room management information, and copy management information are added to the generated (restored) management information by the server device 1. Furthermore, the updating of each management information (region management information, room management information, and copy management information) is not limited to the timing of saving the setting value before deleting the region or room. In order to make the update result of the state of the managed object accumulate permanently regardless of whether the region or room exists (more strictly speaking, it corresponds to the presence or absence of region participants or room participants, respectively), in order to synchronize the objects corresponding to the contents stored in the data management program 110, the region management information 111, and the room management information 112, each content may be updated regularly at a certain time interval so as to be synchronized with the change result of the copy management information. In addition, for example, when a room 112c is generated for one region (terrain information 111c), and the number of participants who join the room 112c reaches the upper limit of the performance of the server device 1, another room 112x is generated for the region (terrain information 111c).Even in this case, by synchronizing the terrain information 111c of the rooms 112c and 112x, the avatars joining the rooms 112c and 112x can share the experience of changes in the terrain information even if they cannot see each other. For example, even if they do not know each other's existence, they can share the results of changes in the area (terrain information 111), such as construction work or excavation work that can be divided into rooms, so the avatars joining the rooms 112c and 112x can work together. The participants in the room experience both synchronization of the area management information and synchronization of non-area information (synchronization of information other than the area management information in the room, such as avatars, objects, etc.) (see below). Fig.16 ). The terrain information 111a to 111c are managed by identifiers called area IDs, and the rooms 112a to 112c and 112x are managed by identifiers called room IDs.

[0029] In addition, in order to join the room (joining area) of the experience area (terrain information 111a~111c), as a unique identifier for each area (terrain information 111a~111c), for example, a URL (Uniform Resource Locator, which can also be replaced by URI (Uniform Resource Identifier) ​​in the context of this embodiment) can be used. By inputting the URL into the web browser of the terminal device 2a, 2b, 2c..., the program for the metaverse or game is started, and the room joining corresponding to the URL is processed. When the room corresponding to the specified area (terrain information) does not exist in the server device 1 (not active), or when the rooms corresponding to the specified area (terrain information) are all full, join the room newly created by the server device 1. When the room corresponding to the specified area (terrain information) exists in the server device 1 and there is still surplus accommodation personnel (room capacity, etc.), join one of the surplus rooms midway. In addition, in order to directly specify an existing specific room 112a-112c, 112x and join it, for example, to join in the middle based on an invitation from an existing participant, a unique URL may be specified for each room 112a-112c, 112x. In this case, when the room to be joined does not exist for some reason (for example, the invited participant quits), a new room can be prepared in the corresponding area for joining without being regarded as an error.

[0030] In addition, the area ID and owner are defined for the area (topographic information 111a~111c), and the user as the owner can edit the content of the area such as terrain information 111a~111c. When editing the terrain information 111a~111c, a unique URL is also used for the area (topographic information 111a~111c), and the terrain editing page is accessed in the web browser of the terminal device 2a, 2b, 2c..., and the URL is entered in the page to load the corresponding terrain information, so that editing can be performed. In addition, the authentication when joining the room and the authentication when starting the terrain editing of the area are applicable to various existing authentication methods, which can be terminal device authentication or user ID / password authentication. Therefore, ownership is not necessarily uniquely associated with the terminal device, and it is also possible to join and edit as an owner from other terminals as appropriate.

[0031] (Structure of server device) Figure 3 It is a block diagram showing a configuration example of the server device 1 according to the embodiment.

[0032] The server device 1 is composed of a CPU (Central Processing Unit) and the like, and includes: a control unit 10, which executes various programs while controlling each unit; a storage unit 11, which is composed of a storage medium such as a flash memory and stores information; a memory 12, which is composed of a volatile recording medium and temporarily stores information; and a communication unit 13, which communicates with the outside via a network.

[0033] The control unit 10 executes the data management program 110 as a data synchronization program to function as a terrain information management unit 100, a terrain information editing unit 101, a room management unit 102, a participant management unit 103, a data receiving unit 104, a data sending unit 105, a copy management unit 106, a data updating unit 107, etc.

[0034] The terrain information management unit 100 manages the terrain information 111 of the metaverse or the game stage, that is, the terrain, buildings (and their accessories). Specifically, the terrain information 111 of the room is loaded, the area ID is managed, the URL as an example of an identifier corresponding to the terrain information 111 is issued, the terrain information 111 is updated, etc. In addition, the identifier is not limited to the URL, and it is preferably not an identifier that is commonly used only in a specific MMOG or metaverse application, but a universal identifier used in an open environment. However, it can also be an object ID, an object's UUID (globally unique identifier), etc., or it can be a part of these identifiers, or a character string containing these identifiers, or the result of compression or encoding of these identifiers and character strings, that is, a byte string.

[0035] The terrain information editing unit 101 edits the terrain information 111, especially the terrain data, according to the request of the terminal devices 2a to 2c. Specifically, the terrain data is the terrain, buildings, and their accessories. The terrain information editing unit 101 changes the shape or configuration of the terrain and buildings, and changes the action content of the terrain accessories. In addition, it also edits the program (script) that describes the operation attached to the terrain data (for example, the opening and closing of the door). Although not shown in the figure, for non-terrain information, such as avatars or monsters, equipment such as mounts, chat bulletin boards, etc., similar to the terrain information editing unit 101, corresponding editing units can also be provided.

[0036] The room management unit 102 generates, pauses, restarts, deletes, and the like a common virtual space (generally referred to as a room to which a room ID is assigned), and manages the room management information 112 according to these operations.

[0037] The participant management unit 103 records the user ID of the participant who joins the room, the socket ID of the terminal device of the participant, etc., and stores it in the storage unit 11 as the participant management information 113 of the room. In a system that only provides a single virtual space, since it is not necessary to distinguish rooms, room IDs are sometimes not required.

[0038] The data receiving unit 104 receives zero or more arbitrary objects (including terrain data) from the terminal devices 2a, 2b, and 2c via the communication unit 13 as synchronization target data owned by each, and copies them, and stores the copies 120a, 120b, and 120c as copy objects in the memory 12. The synchronization target data is objects such as the terrain information 111 loaded into the room and the participants and props of the room. The synchronization objects related to the area management information are managed in units of areas (copy management information 114A), and the synchronization objects related to the non-area information are managed in units of rooms (copy management information 114B).

[0039] The data transmission unit 105 transmits the replica 120 a , the replica 120 b , and the replica 120 c via the communication unit 13 to the terminal determined as the transmission destination according to the transmission rule of the participant management information 113 and the replica management information 114A or 114B.

[0040] The copy management unit 106 records the copy ID of the copy 120a, copy 120b, copy 120c, the user ID of the owner of the copy with the copy ID, the sending rules indicating the user performing synchronization, the transferability policy, etc. when the copy 120a, copy 120b, copy 120c is generated, and stores the copies of regional information and the copies of non-regional information in the storage unit 11 as copy management information 114A in units of regions and as copy management information 114B in units of rooms, respectively.

[0041] When the data updating unit 107 updates the objects corresponding to the replicas 120a, 120b, and 120c, the data receiving unit 104 receives the difference from the terminal device of the user having ownership according to the replica management information 114A or 114B, and updates the corresponding replicas. In addition, from the viewpoint of suppressing the amount of information on the network, it is preferred to receive the difference, but it is also possible to receive the updated object itself. Furthermore, the data sending unit 105 sends the difference to the terminal determined as the destination based on the participant management information 113 and the replica management information 114A or 114B. In addition, from the viewpoint of suppressing the amount of information on the network, it is preferred to send the difference, but it is also possible to send the updated object itself. In addition, the replica management information 114A is used for the management of the synchronization target objects of the terrain information 111, and the replica management information 114B is used for the management of the synchronization target objects of non-regional information such as characters such as avatars and props.

[0042] The storage unit 11 stores a data management program 110 that causes the control unit 10 to operate as the above-mentioned units 100-107, terrain information 111, room management information 112, participant management information 113, replica management information 114A and 114B, etc. The storage unit uses a relational database or a file system, etc. In addition, for high speed, a memory database such as Redis can be used or used in combination.

[0043] The memory 12 temporarily stores the copies 120a, 120b, 120c, . . . and other information.

[0044] The terminal devices 2a, 2b, and 2c have the same configuration as the server device 1, and further include an operation unit and a display unit. The description of the same configuration as the server device 1 will be omitted.

[0045] Figure 4 It is a diagram showing the structure of the management information of the entire area (the entire terrain information 111).

[0046] The terrain information 111 is information related to the terrain, buildings and their accessories loaded into the room as a virtual space. If a virtual space (area) is created, a terrain information (equivalent to Figure 4 1 line). The terrain information 111 has: an area ID for identifying the terrain information, terrain data indicating the shape and arrangement of the terrain, buildings, and the action content of the accessories of the terrain, etc., a URL for specifying the area to join in order to experience the virtual space represented by the area or accessing the editing page of the terrain information described later, an update date and time indicating the update date and time of the terrain information, a creator indicating the participant ID who created the room, an owner or editor of the participant ID who has ownership or editing rights to the room, a destination rule indicating that a copy of the terrain information should be sent for synchronization, and a new room creation rule that stipulates the rules for creating a new room using the terrain information 111 that has already created a room. In addition, there may be multiple creators, owners, and editors. In addition, in the case where the owner of the terrain information 111 does not have the editing rights, the owner may be granted temporary editing rights. The new room creation rule may be based on a condition such as "more than 2,000 participants" or on an external request such as "at the request of the participants". The area ID and URL are generated when the terrain information editing unit 101 creates the terrain information (1 line). The terrain data is updated according to the creation and editing of the terrain information editing unit 101, and further according to the activity results of the participants in the area that affect the terrain information. For example, according to various operation permissions (creation, deletion, editing, reference, and ownership transfer) on the terrain information, one or more participant IDs are designated for management, such as creator (only creation), owner (creation, deletion, editing, reference, and ownership transfer), editor (only editing and reference), and referencer (only reference). In addition, for example, according to the request of the owner, the URL itself or the address equivalent to the URL after shortening is issued, and the owner provides the URL to other participants or people who are completely unaware of the virtual space service (unregistered users of the virtual space service, potential new registrants among non-users, and new participants), so that the owner can invite users of the virtual space service or potential users who have never used the virtual space service to join the virtual space only through the URL. However, for unregistered users of the virtual space service, it is sometimes necessary to register or download the virtual space service before joining the virtual space.

[0047] Figure 5 2 is a diagram showing the structure of the room management information 112 .

[0048] The room management information 112 includes a room ID for identifying the room as a virtual space, an area ID indicating the terrain information 111 developed in the room, a URL for joining the room, a creation date and time which is the date and time when the room was created, and the like.

[0049] Figure 6 2 is a diagram showing the structure of the participant management information 113 .

[0050] The participant management information 113 is created for each room as a virtual space, and has a user ID for identifying the participant, a user name of the participant, a socket ID of a socket (TCP socket or UDP socket) including information required for sending / receiving such as the IP address and port number of the terminal device operated by the participant and the server device 1, and a joining date and time for indicating the date and time of joining the room. Furthermore, the role of the participant in the room, the group to which he belongs, the sending / receiving when the shared object is updated, the selection rules of the synchronization target object to be received (close distance, in view), the receiving form or its preset (default) can also be described.

[0051] Figure 7 114A is a diagram showing the structure of the replica management information 114A of the synchronization target object related to the terrain information managed for each area.

[0052] The replica management information 114A as terrain information is created for each area as a virtual space (template), and has: a list of active room IDs of the area, a replica ID for identifying a replica, an owner indicating the participant ID that owns the replica, a sending rule for sending the replica for synchronization, and a transfer indicating whether the ownership of the replica can be transferred. Participants active in the area can refer to the list of room IDs, and then refer to the participant management information 113 of each room to obtain it. The active participant list can also be stored for a long time in the replica management information 114A as terrain information (it needs to be updated synchronously when the participant management information 113 of the room is updated). Furthermore, in the case of transfer, the rules of the transfer method, the data format sent and received when updating the object, or its pre-transfer can also be described. In addition, the rules of sending can also be defined according to the performance of the client terminal, the role of the user who owns the network status of the client terminal, and the group to which he belongs. It is originally hoped that all owners of objects related to terrain information are owners of the area, but it is unrealistic to assume that the owner always joins the room of the area. In a common application scenario, the owner of the synchronization object related to the terrain information is a special user (virtual client, etc.) of the system or the earliest participant who joins the room corresponding to the area for all copies. In the case of using a virtual client, a virtual client can also be prepared on the server device 1 or other servers to make the virtual client the owner of the terrain information 111. In addition, the "virtual client" mentioned here, for example, refers to running on the server device 1, or it can also be running a part or all of the client software, and synchronize with the clients of other synchronization groups by participating in the synchronization group. Here, the so-called earliest participant refers to the first participant who joins the area even if there are multiple rooms corresponding to the area, or the next participant who joins very early when the earliest participant such as the initial participant exits. It is also possible to use other methods such as using the participant with the smallest participant ID instead of the earliest participant when the owner should be determined. Most terrain information (for example, ground shape information G1, G2 or building information B1) should be transferable and retained, but there may also be information such as special operation marks (for example, M1) that does not need to be transferred.

[0053] In the case where the virtual client becomes the owner (of the synchronization target object), the virtual client is started when any room in the area is activated, obtains the area information from the area management information 111, and generates and saves a primary copy for the synchronization target object in the area. In addition, in the case where the earliest participant is the owner (of the synchronization target object), when the participant joins the room of the area, the area information is obtained from the area management information 111, and when there are other participants in the area (one of which is the earliest participant), a copy of the synchronization target object in the area is obtained from the server device 1, and a tertiary copy is generated and saved. If there is no participant in any room in the area (including the case where the room does not exist), that is, when the participant is the first participant in the room of the area, the participant becomes the earliest participant in the area, obtains the area information from the area management information, and creates and saves a primary copy for the synchronization target object in the area.

[0054] Figure 8 It is a diagram showing the structure of the copy management information 114B of the non-area information in a certain room.

[0055] The copy management information 114B of non-regional information is created for each room as a virtual space, and has a copy ID for identifying the copy, an owner of a participant ID for indicating ownership of the copy, a sending rule for sending the copy for synchronization, and a transfer for indicating whether the ownership of the copy can be transferred. Furthermore, in the case of transfer, the rules of the transfer method, the data format sent and received when updating the object, or its pre-transfer can also be described. In addition, the sending rules can be defined by the performance of the client terminal, the role of the user who owns the network status of the client terminal, and the group to which he belongs (it can also be defined by Figure 8 The distance to the object, the object entering the field of view, etc. Figure 8 Alternatively, it may be defined by the performance of the client terminal or the network status of the client terminal. The participants of the room can be obtained by referring to the participant management information 113, and the participant list can also be stored for a long time in the copy management information 114B as non-regional information (needs to be updated synchronously when the participant management information 113 of the room is updated).

[0056] (Operation of Information Processing Device) Next, the functions of this embodiment will be described by dividing them into (1) basic operation, (2) terrain information editing operation, (3) synchronization operation, and (4) midway join / exit operation.

[0057] (1) Basic actions In order to synchronize multiple objects and allow multiple users to share the experience (metaverse, game play) in the same virtual space (room, world), multiple users join a virtual space (room) loaded with certain terrain information 111 (area). In addition, in "(3) Synchronization Action", in order to simplify the description of the object synchronization action, the metaverse that only provides a single virtual space is used as an example. In the case where the same terrain information 111 (area) is loaded in multiple virtual spaces (rooms), the synchronization action of the terrain information 111 is determined based on the metaverse, the design of the game, and the strategy. As a specific example of the synchronization action of the terrain information 111, the non-regional information is synchronized for each room, and then the rooms belonging to the same area are aggregated and the regional information is synchronized for each area (refer to Fig.16 ). In addition, for the virtual image, the attachment of the virtual image, or the synchronization target object associated therewith that performs synchronized actions in the room, the participant terminals in the room respectively save the ownership of their own virtual images, etc., but because the synchronization group is the same as all the synchronization target objects in the participant terminals in the room, it is more efficient to manage multiple objects in a single synchronization group per room as shown in FIG114B. Of course, it is also possible to manage them as multiple synchronization groups instead of a single synchronization group, or to manage them for each synchronization target object. The same situation also applies to the terrain information in the area. As shown in FIG114A, multiple terrain objects can also be managed in a single area group per area.

[0058] Users 3a, 3b, 3c operate terminal devices 2a, 2b, 2c to connect to the server to join the desired virtual space (specified area) of the metaverse, but as a joining method, a room corresponding to the terrain information 111 (area) where the desired room or event venue is prepared is directly joined by using a URL uniquely prepared for each area ID of the terrain information 111. In order to start the application through the URL, especially to start a specific state of the application (a specific place or position in the virtual space. For example, a state of a specific position such as sitting on a chair in the room with the virtual image of the participant, etc.), methods such as URL schemes, deep links, and universal links can be used. Therefore, after starting the application, it is not necessary to repeat various searches, selections, and movements in the virtual space to finally reach the room to be joined. In addition, in order to allow participants who enter the room to have a virtual experience in the room with other participants, in order to invite other participants to enter the same room, the URL corresponding to the room (in some cases, the area) that they have joined can be shared through email or messages, so that other participants can easily join the same room. Alternatively, in the metaverse of an exhibition, etc., participating companies can pass on the URL corresponding to the area where the company is exhibiting to customers through posters, brochures, business cards, emails, SNS (Twitter, Facebook, etc.), etc., so that customers can directly enter the room of the company that issued the invitation without having to go through the rooms of other companies.

[0059] That is, the terminal devices 2a, 2b, and 2c start the application for the metaverse via the browser by inputting the URL on the terminal, and the application downloads the terrain data of the terrain information 111 (area) (including objects other than the synchronization target and the action program and script of the object) from the server device, and then requests the server device 1 to join the room and start the synchronization process of the area information and non-area information. In addition, the synchronization target information (parameters such as position) of the downloaded terrain data adopts the method described in the data receiving unit 104. Specifically, the participants of the first room belonging to the area save the primary copy themselves and also create a copy on the server. The subsequent participants obtain the server's copy, create the tertiary copy themselves, and initialize the parameters required for synchronization (synchronization target object).

[0060] In addition, the area (terrain information 111) is equivalent to the content of the virtual space. In conventional MMOG and other games, the client program needs to be updated with the addition and correction of content, but by downloading terrain information each time as in the present embodiment, there is no need to update the client program with the addition and correction of content. In particular, in a metaverse that provides a huge amount of content (area), it is inefficient to include all the content in the client program and save it at the beginning, and it is impossible in some cases. On the other hand, in the case of each download, since you can only join the room after downloading the content, the waiting time before joining the room is a problem. It is also possible to cache the downloaded content instead of downloading it every time, and reuse the cached content when there is no content update, or to predict the content that may be used next time and download it in advance.

[0061] When the room management unit 102 of the server device 1 receives a request from the terminal device 2a, 2b, or 2c, it refers to the room management information 112 to confirm whether a room is prepared for the corresponding area ID. When no room is prepared, or when a room already exists but the participant management unit 103 determines that the new room creation rule of the terrain information 111 is satisfied (for example, when it is determined that the number of participants in the room has reached the upper limit), a new room is prepared and the terrain information 111 is loaded to the new room. In the case where a plurality of rooms are provided in an area, the room management unit 102 associates a plurality of room IDs with one area ID, and for each room ID, the participant management unit 103 manages the participants who join the room through the participant management information 113, and the copy management unit 106 manages the area information processed in the room and the owner of the copy of the area information through the copy management information 114A of the area information (area) or the copy management information 114B of the non-area information (room).

[0062] When the participant management unit 103 of the server device 1 receives a request to join a room, it records the user ID, user name, socket ID, and joining date and time of the participant in the participant management information 113 in the storage unit 11 in association with the room ID.

[0063] In addition, various forms of room joining can be considered according to the design of the metaverse and terrain information 111. In the present embodiment, a method of directly joining a room in a specific area (terrain information) or an existing specific room by specifying a URL corresponding to the area or room you want to join is envisioned, but the present embodiment can also be applied to other methods. In the case where only a single room is provided in the entire virtual space (single terrain information and single room), all users who join (log in, etc.) join the default room. In the case where multiple rooms are provided in the entire virtual space, there is also a form in which the joined user enters a special room such as a lobby equivalent to a waiting area (if there is a limit on the number of people, there may also be multiple lobbies) and then moves to the destination room. In addition, in the case where multiple rooms are provided in a single area (terrain information) (parallel world), there is also a form in which the user returns to the room that he / she joined before. In the case of a newly created room, the metaverse can be started by one person, or it can be started at an appropriate time after several participants gather. In addition, in the case where the metaverse has already started in the room, the joining user is treated as joining in the middle and is processed (refer to "(3) Join / Exit Action" described later). In the present embodiment, there is no particular limitation on the method of joining a room. In addition, when a plurality of rooms are prepared, they are managed using the room management information 112 .

[0064] In the activities of the metaverse and the game, the terminal devices 2a, 2b, and 2c sequentially generate, update, delete, and process terrain information 111 and multiple objects (characters, weapons, props, etc.) as the program is executed. The server device 1 performs a relay action for synchronizing the terrain information 111 and objects (hereinafter referred to as "synchronization target objects") in the terminal devices 2a, 2b, and 2c. First, in "(2) Terrain information editing action", the editing action of the terrain information 111 is explained, and in "(3) Synchronization action", for example, in the activities of the metaverse, after all the terrain information 111 and objects of the terminal devices 2a, 2b, and 2c are synchronized, the synchronization action is explained in the case where a new synchronization target object is generated in the terminal device 2a.

[0065] (2) Terrain information editing action First, the user 3a operates the terminal device 2a to edit the terrain information 111, starts the web browser, connects to the website for terrain information editing, and logs in. In addition, in order to specify the area ID of the editing object, such as Figure 4 As shown in the terrain information 111 of the area, the URL associated with the area ID is input into the website of the web browser. However, the user who can edit the terrain information 111 (the user with editing rights) is as follows Figure 7Although the user shown in the figure is the owner of the corresponding area ID in the duplicate management information 114A, the editing right may be set for a user different from the owner of the area ID.

[0066] When the terrain information editing unit 101 of the server device 1 receives access from the terminal device 2a through the above-mentioned URL, it determines the area ID based on the character string contained in the URL, compares it with the user ID of the user 3a, confirms whether it is the owner in the copy management information 114A, and if it is the owner, displays a control screen for editing the terrain data belonging to the area ID in the terminal device 2a.

[0067] The user 3a edits the program for providing the ground, buildings, rooms, and the articles and services attached thereto, etc., while checking the screen displayed on the terminal device 2a. The edited contents are transmitted from the terminal device 2a to the server device 1, and when the ground, buildings, rooms, and the articles attached thereto are edited, the terrain data of the terrain information 111 is updated by the terrain information editing unit 101.

[0068] Normally, the terrain data of the terrain information 111 is edited when the terrain information 111 is not loaded (when there is no room). In addition, as long as the metaverse, game design, and strategy allow, the terrain data of the terrain information 111 can also be edited when the terrain information 111 is loaded (when there is a room). In this case, the difference between the terrain data before editing and the terrain data after editing is regarded as the difference between the synchronization target objects described in "(3) Synchronization Action". Similarly, when the terrain information changes due to the progress of the metaverse or the game, the difference caused by the change needs to be reflected in the terrain information 111 that is the editing object, and is therefore processed as the difference of the synchronization target object described in "(3) Synchronization Action". In addition, the editing of the terrain information 111 refers to the editing of the primary copy described in "(3) Synchronization Action".

[0069] (3) Synchronous action Fig. 91 is a flowchart for explaining an example of synchronization action of non-regional information. The synchronization action of non-regional information is realized by the following operation: the terminal device sends the change of the object (primary copy) with ownership to the server device 1 while referring to the copy management information 114B of the non-regional information, and the server device 1 sends the update information to the terminal device that does not have the ownership of the object corresponding to the sending destination rule with reference to the update of the corresponding copy and the room participant list, and each terminal device that receives the update information updates the object (tertiary copy) without ownership. In addition, the synchronization action of regional information is also realized in a similar manner. However, the selection method of selecting the object synchronization range (the difference between the room and the region) and the object owner (the region owner is not always online) is different. The participant list of the synchronization target is not necessarily the participants of the same room, and when there are multiple rooms in the same region, it is the participants of all rooms corresponding to the same region. Therefore, the owner of the copy of the regional information is not necessarily the participant of the same room. The original owner of the object should be the owner of the region, but is not always online. If the owner of the region has not joined the room of the region, another participant needs to be the owner. Therefore, the owner can be a special user who provides the system (such as a virtual client), or can be the earliest participant of the room in the area (the participant who has joined the room corresponding to the area for the longest time, and if there are multiple rooms, it can also be a participant in other rooms). In the case where the owner of the area returns to the room in the area, the ownership can be transferred to the owner of the area through the same procedure as the withdrawal described later.

[0070] Fig.16 The relationship between synchronization processing of zone information (duplicate management information 114A) and synchronization processing of non-zone information (duplicate management information 114B) when multiple rooms exist in a zone is shown. All basic synchronization mechanisms (primary duplicate, duplicate, tertiary duplicate) are the same.

[0071] In addition, Fig.16 In the embodiment, the relationship between the area and the room is an inclusion relationship, in which the synchronization target client in the area belongs to multiple rooms and is composed of multiple terminal devices (clients) that perform synchronization actions respectively. However, the synchronization action of this embodiment is to define a synchronization group for each object, so it is not limited to an inclusion relationship. Therefore, more commonly, the client has multiple synchronization target objects, and each synchronization target object can be used in a more flexible structure with different object owners and synchronization target groups. Specifically, for each object, the synchronization target group is defined according to each team (group), distance, purpose, etc., and each group can be independent of each other or overlap with each other.

[0072] For example, when synchronizing each room separately, the synchronization group is composed of clients that synchronize user information with each other in the synchronization target object. In addition, when synchronizing each area separately, the synchronization group is composed of clients that synchronize terrain information for reproducing content constituting the virtual space in the synchronization target object.

[0073] First, the terminal device 2a generates an object A as a new synchronization target object as the metaverse and the game progress. 0 (S120a). Next, the terminal device 2a generates the object A 0 Primary copy A 0 (S121a), and sends it to the server device 1. In addition, since the primary copy is generated because the object A 0 A primary replica is generated as data representing the state of an object at a certain point in time (e.g., a scheduled synchronization point or a point in time when changes are sent), and is processed as information for synchronization. Another reason for generating a primary replica is that in order to confirm the difference that changes over time in subsequent synchronizations, the information used in previous synchronizations is sometimes required. On the other hand, depending on the installation, it is also possible to not create a primary replica but to store the object A in the same directory as the primary replica. 0 It is processed as information for direct synchronization and sent to the server device 1. Alternatively, in particular, in the case of a complex object composed of a plurality of objects, it may be a combination of the two. In the following description, the primary replica and the synchronization target object are not strictly distinguished.

[0074] The data receiving unit 104 of the server device 1 receives and copies the primary copy of the object as the synchronization target data from the terminal device 2a via the communication section 13, and transfers the copy A to the server device 1. 0 The secondary copy is stored in the memory 12 (S110).

[0075] The replica management unit 106 of the server device 1 generates a replica A 0 When, for example, the record is as this copy A 0The copy management information 114A or 114B is updated and stored in the storage unit 11 according to the owner "U001" (user of the terminal device 2a), "other than the owner" other than the user of the terminal device 2a as the destination rule, and "OK" whether the transfer is allowed. The policy can be fixedly defined for each object type (for example, as a default, the destination is all room participants other than the owner, and the transfer is not allowed, etc.), or it can be specified when the terminal device 2a creates the object, and it can be specified or changed at any time by the terminal device 2a with ownership according to the progress of the game, or it can be specified in a way that the terminal device 2b at the destination is far away from the terminal device 2a in the virtual space, etc.

[0076] Next, the data transmission unit 105 of the server device 1 transmits the copy A to the 0 The data is transmitted to the terminal device 2b or 2c of the user specified as the transmission destination based on the copy management information 114A or 114B (the participant management information 113 and the like are referenced as necessary).

[0077] Terminal devices 2b and 2c receive and copy the copy A from server device 1. 0 , and will be used as the third-level copy A of the third-level copy 0 Stored in the memory (S120b, S120c). Terminal devices 2b, 2c use the third-level copy A 0 The object to be synchronized is used to carry out the metaverse and the game. In addition, when the differential update of the tertiary copy is carried out in the subsequent steps, it is necessary to work hard to prevent it from directly changing the tertiary copy according to the progress of the metaverse and the game. If in the motion prediction used to reduce the interaction or delay corresponding to the progress of the metaverse and the game, when the content of the tertiary copy is changed, the tertiary copy is used in the metaverse and the game in advance, and the operation is performed along with the progress of the metaverse and the game. Then, when the differential update information is sent from the server device 1, the tertiary copy after applying / updating the difference to the tertiary copy is used to replace the tertiary copy used for the metaverse and the game and synchronize it. When the replacement is instantaneous, if the difference is large or the action is not smooth, it is also possible to improve the user experience by taking time to make the field value of the tertiary copy consistent with the field value of the updated tertiary copy.

[0078] Next, the terminal device 2a further changes the object A while performing the metaverse and the game. 0 The field values ​​of object A 1 (S122a). Next, the terminal device 2a updates the 1 The corresponding primary copy (primary copy A 1 ) and generate the same0 The corresponding primary copy A 0 The difference A 01 (S123a), and will be used as the difference A 01 The update information of the changed fields is sent to the server device 1. Preferably, among all the fields of the synchronization target object, only the fields whose difference after the last synchronization information is sent exceeds the threshold predetermined according to the metaverse and the game content and is large enough, and which need to be updated in order to maintain the synchronization state, are sent as a pair of field name and field value, and only the number of fields that need to be updated is summarized as list information. In the case of zero, it is not sent, or it is sent as an update of 0. In addition, in the case of a long field name, a data serialization technology that compresses the data size by encoding the field name as a number, etc. can also be used.

[0079] The data receiving unit 104 of the server device 1 receives the difference A from the terminal device 2a via the communication unit 13. 01 (S111), and the copy A of the memory 12 is updated by the data updating unit 107. 0 Update to copy A 1 (S112).

[0080] Next, the data transmission unit 105 of the server device 1 transmits the copy A to the 0 The difference A 01 The data is transmitted to the terminal device 2b or 2c determined as the transmission destination based on the copy management information 114A or 114B.

[0081] The terminal devices 2b and 2c receive the difference A from the server device 1. 01 (S121b, S121c), the third-level copy A of the storage 0 Updated to Level 3 Copy A 1 (S122b, S122c), and according to the third-level copy A 1 The object of synchronization is the metaverse and the game. The terminal devices 2a, 2b, and 2c respectively assume the primary copy and the tertiary copy stored locally as the latest state of the synchronization target object, and independently perform the processing of user operations or physical simulation while performing the metaverse and the game. As can be seen from the results, when each primary copy is changed, the processing equivalent to S422a and S423a is repeated, and the difference is sent to the server device 1.

[0082] In the above operation, object A is performed on the terminal device 2a of the user ID "U001" having ownership. 0The above description has been made of the case where an object A is created or changed, but it can also be deleted. In the case of deletion, the server device 1 is notified of the deletion, and the server device 1 notifies the other terminal devices 2b and 2c of the deletion. In addition, in the above operation, only one object A is created for the terminal device 2a of the user ID "U001" having ownership. 0 , but the number of objects generated by the terminal devices 2a, 2b, and 2c is not limited, and they may generate more than two objects or not generate one object.

[0083] In addition, the terminal device 2a suppresses the communication volume by not notifying the server device 1 when the object has not changed, but it may be a specification to notify even when there is no change. In addition, the terminal device 2a suppresses the communication volume by sending differential information when the object has changed, but it may be a specification to regularly notify the entire object including the unchanged fields even when a part of the field has changed or even when there is no change. In addition, it may be a specification to switch each synchronization target object statically or dynamically and send a notification.

[0084] Next, the synchronization rules when updating an object are described.

[0085] Fig.10 This is a flowchart for explaining an example of a synchronization operation performed based on ownership.

[0086] Object A of terminal device 2a 0 (S220a, S221a) as copy A 0 The server device 1 is copied (S210), and the third-level copy A 0 The state (S220b, S220c) of the server device 1 being copied to the terminal devices 2b and 2c is assumed, and then, in the terminal device 2b, the third-level copy A is updated as the metaverse and the game proceed. 0 And changed to level 3 copy A 0 ' (S221b), since the third-level copy A 0 'The original object A 0 The ownership of is defined by the user of terminal device 2a, so it will not be updated by the third-level copy A of terminal device 2b. 0 'With level 3 copy A 0 The difference between 00' (S222b) to update the copy A of the server device 1 0 , object A of other terminal device 2a 0 , the third-level copy A of the terminal device 2c 0 .

[0087] In this way, the third-level copy A 0' The prohibition of synchronization can be achieved by any of the following methods: (a) the terminal device 2b does not send the third-level copy A 0 With level 3 copy A 0' The difference between 00' (b) Even if the server device 1 receives the difference A 00' (S211) No synchronization is performed (no update is performed on the copy, and no update information is sent) (ignore, discard); (c) The server device 1 does not send the difference A 00' Applied to its own copy A 0 And it is not updated, so it is not sent to the terminal device 2a (and the terminal device 2c); (d) the terminal device 2a does not receive the difference A 00' (Even if received, it will not be processed, ignored, discarded, or rejected) or (e) even if the terminal device 2a receives the difference A 00' No synchronization is performed (neither the primary copy nor the tertiary copy is updated). The prohibition of synchronization based on the update of an object other than the terminal device of the user with ownership can be achieved by any method from a to e, or any combination of more than one of them. However, by adopting a from a to e, the amount of information sent / received through network communication is minimized, and in the order of b, c, d, and e, the amount of information sent / received through network communication increases, so the order of a to e is the preferred structure. In addition, in order to prevent unfair (cheating) behavior in the game, server verification is usually required in many cases, so the combination of a and b, or the combination of a, b, and e is the preferred minimum structure.

[0088] (4) Join / Exit Action Next, the case where the terminal device 2a joins the process will be described. The premise is that the object B is generated in the terminal device 2b. 0 At the same time, the user of terminal device 2b has the object B 0 The terminal device 2c generates object C 0 At the same time, the user of terminal device 2c has object C 0 ownership.

[0089] Fig.11 This is a flowchart for explaining an example of synchronization operation in midway joining.

[0090] First, the terminal device 2a first joins the room. The server device 1 adds the information of the user U001 associated with the terminal device 2a to the participant management information 113. In addition, when the terminal device 2a joins the room, it is added as a new object A.0 , for example, generating a new character (S320a). Next, the terminal device 2a generates the object A 0 's primary copy (S321a) and sends it to server device 1.

[0091] The data receiving unit 104 of the server device 1 receives and creates a primary copy of the object to be the synchronization target data from the terminal device 2a via the communication unit 13, and then sends the copy A 0 The secondary copy is stored in the memory 12 (S310).

[0092] The replica management unit 106 of the server device 1 generates a replica A 0 When the record is taken as the copy A 0 The copy management information 114A or 114B is updated and stored in the storage unit 11 according to the owner "U001" (user of the terminal device 2a), the sending destination rule "other than the user of the terminal device 2a", the transferability "OK" and other policies.

[0093] Next, the data transmission unit 105 of the server device 1 transmits the copy A to the 0 The data is transmitted to the terminal device 2b or 2c determined as the transmission destination based on the copy management information 114A or 114B.

[0094] Terminal devices 2b and 2c receive and copy the copy A from server device 1. 0 , and will be used as the third-level copy A of the third-level copy 0 Stored in the memory (S320b, S320c).

[0095] Furthermore, since the data transmission unit 105 of the server device 1 manages in advance the copies of the objects owned by the users of the other terminal devices 2b and 2c (S311), the copy B is transmitted to the server device 105 via the communication unit 14. 0 , C 0 The data is sent to the terminal device 2a determined as the destination by the copy management information 114A or 114B. 0 Before the synchronization action.

[0096] Terminal device 2a receives and copies copy B from server device 1 0 , C 0 , and will be used as the third-level copy B of the third-level copy 0 , C 0Stored in the memory (S322a). Through this series of actions, the terminal device 2a will not communicate with the terminal devices 2b and 2c but only communicate with the server device 1 to complete the joining action. Here, there are two terminals that have joined, but even if there are thousands of terminals joining, the terminal device 2a can complete the joining only by communicating with the server device 1, and the thousands of terminals that have joined do not need to notify the terminal device 2a of the synchronization target objects they own, and the load on the network and each terminal device caused by the terminal device 2a joining in the middle is very small.

[0097] Next, the case where the terminal device 2a exits midway will be described. Here, with respect to the continuation of the object whose ownership is held by the terminal device 2a and the transfer of ownership, the case where the object continues to exist and the case where the object is deleted will be described. Although not shown in the figure, in the synchronization processing of the area information, when the owner of the area joins (returns to) a room in the area, the same method is used when the ownership of the objects in the respective area information is transferred to the owner of the area. In this case, the terminal device 2a that holds the ownership does not exit as an opportunity, but when the owner of the area joins the room of the area as an opportunity, the server device 1 instructs the terminal device 2a to transfer the ownership / discard the owned objects, and performs the respective operations with the server device 1. Fig.12 and Fig.13 Similar actions.

[0098] Fig.12 This is a flowchart for explaining an example of a synchronous operation when quitting midway.

[0099] Generate object A on terminal device 2a 0 (S420a) is updated as object A 1 (S422a), and the third-level copy A 0 , A 1 After synchronizing with the terminal devices 2b and 2c respectively (S422b, S422c), exit (S424a). Figure 4 As shown, the case where the transfer item of the copy ID "A" of the copy management information 114A or 114B is "OK" is described. Here, as an example of an object with a transfer item of "OK", props used in the game can be listed, but it can also be a character (NPC: Non Playing Character) or an enemy.

[0100] The terminal device 2a requests the server device 1 to withdraw. The participant management unit 103 of the server device 1 deletes the user information associated with the terminal device 2a from the participant management information 113. Furthermore, the replica management unit 106 of the server device 1 confirms the transfer item of the replica management information 114A or 114B, and if the transfer item is "OK", the next owner is changed to the user of the terminal device 2b to update the content of the replica management information 114A or 114B (S413), and the terminal device 2b is notified of the change of ownership.

[0101] When the terminal device 2b receives the notification from the server device 1 that the ownership has been changed to the terminal device 2b, the stored third-level copy A 1 Change to object A that you own 1 (S423b), to complete the exit action. In addition, here, the exit (S424a) is explicitly notified to the server device 1 by the terminal device 2a, but there are cases where the exit cannot be notified due to a sudden line disconnection, etc. Even in this case, when the server device 1 detects the disconnection (socket closing, etc.) of the terminal device 2a, it can complete the exit and ownership change processing in the same way as when the exit notification is explicitly received. If the owner of the tertiary copy is strictly managed in each terminal device, although not shown in the figure, after the ownership is transferred, the server device 1 notifies all the remaining terminal devices (in this case, the terminal device 2c) participating in the synchronization action except the terminal device 2b that manages the tertiary copy as the primary copy that the ownership of the object A (tertiary copy A) is transferred from the terminal device 2a to the terminal device 2b. When each terminal device manages only the primary copy of the synchronization target object it manages, which is the primary copy it owns, or the tertiary copy it does not own (when the owner of the tertiary copy is not managed), it is not necessary to notify the terminal device (2c) that does not store the ownership of the object. However, in this case, the server device 1 sends the update information to the terminal device that does not have ownership only when the terminal device that has ownership receives the change information of changing the primary copy. If the terminal device that does not have ownership receives the change information of changing the tertiary copy, the update information shall not be sent to the terminal device that does not have ownership. In the former, the terminal device strictly manages the owner of the tertiary copy and can easily deal with abnormal update information such as plug-ins, but the communication volume caused by quitting halfway increases. In the latter, abnormal update information such as plug-ins depends on the countermeasures of the server device 1, but with quitting halfway, the communication volume becomes extremely small, which is effective when a large number of terminals participate in the synchronization action. The former and the latter can also be selected according to the type of synchronization target object or the performance of the terminal device.

[0102] In addition, when the transfer item is "OK", the user to whom the transfer will be made can be determined in advance, or it can be determined when exiting, or it can be transferred in order of the date and time of joining, or it can be randomly assigned, or it can be assigned to users of terminals with high processing capabilities, or it can be assigned to users of terminals with good network environments (large bandwidth, small delay / RTT (round-trip time), and stable communication (stable and small RTT)).

[0103] Next, the case where the transfer item of the copy ID "A" of the copy management information 114A or 114B is "NG" is described. Here, as an example of an object whose transfer item is "NG", it is a character played in the game (the user's own virtual image) or an enemy, but it can also be a prop used in the game.

[0104] Fig.13 This is a flowchart for explaining another example of the synchronization operation when exiting midway.

[0105] The terminal device 2a requests the server device 1 to withdraw (S524a). The server device 1 confirms the transfer item of the copy management information 114A or 114B, and if the transfer item is "NG", it deletes the copy A or B. 1 At the same time (S513), the terminal devices 2b and 2c are notified of the copy A, and the contents of the participant management information 113 and the copy management information 114A or 114B are updated (the user information associated with the terminal device 2a is deleted, and the synchronization target object owned by the user associated with the terminal device 2a is deleted). 1 Has been deleted.

[0106] When the terminal devices 2b and 2c receive the copy A from the server device 1 1 When the notification is deleted, the stored third-level copy A is deleted. 1 (S523b, S523c) to complete the exit action.

[0107] Fig.14 and Fig.15 This is a flowchart for explaining an embodiment of restoring the ownership of the synchronization target object of the area information when the area owner (user having the area information editing right) 2c joins (returns) any room of the area midway (S620c, S720c).

[0108] In the case of a transfer target object in the copy management information 114A, Fig.14 As shown, Fig.12In roughly the same steps, the ownership of the object is transferred from the terminal device 2a to the terminal device 2c of the area owner, and the primary copy of the terminal device 2a becomes a tertiary copy (for example, the server device 1 notifies the terminal device 2a of the loss of ownership caused by the ownership transfer) (S624a), and the terminal device 2c stores the primary copy (S621c) (for example, the server device 1 sends a copy to the terminal device 2c, and then notifies the acquisition of ownership caused by the ownership transfer (S614), as a result of which the terminal device 2a saves the primary copy as a tertiary copy, and on the other hand, the terminal device 2c receives the copy and saves it as a primary copy.). Although not shown in the figure, if it is necessary to manage the owner of the tertiary copy through the terminal, the change of owner is also notified to the terminal device 2b. In the case of an object other than the transfer target in the copy management information 114A, such as Fig.15 As shown, Fig.13 In roughly the same steps, the copy of the object is discarded (S714), and the primary and tertiary copies corresponding to the participants of all rooms that have joined the area are also discarded (S724a, S723b).

[0109] (Effects of Embodiments) According to the above embodiment, the terminal device 2a does not receive the synchronization target object from all other terminal devices 2b and 2c, and the server device 1 stores the copies of the objects generated by all the terminal devices, and the terminal device 2a receives the synchronization target object from the server device 1. Therefore, in a structure in which multiple terminal devices participate, the increase in communication burden can be suppressed while synchronizing the data of multiple terminal devices with each other. In addition, since the server device 1 does not perform the metaverse or the game, the processing burden can be reduced. As can be seen from the results, the synchronization of the metaverse and game objects of 1,000 users can be achieved.

[0110] In addition, since midway joining only requires receiving a replica from the server and creating a tertiary replica, there is no need to receive objects from other clients, and the increase in communication burden and processing burden can be suppressed.

[0111] In addition, in the case where there are many terrain information 111 (areas) such as the Metaverse, since the terrain information 111 to be added is specified by the URL, it is possible to join the room to which the terrain information 111 belongs (join the specified area) regardless of the room, and it is easy to let other users know and share. In particular, as long as the Metaverse, MMOG or other programs are running on a web browser, the URL can be embedded in the web page and joined through the web browser.

[0112] Furthermore, since the topographic information 111 is also edited via a web browser using a URL, it is not necessary to install an application for editing on the terminal devices 2a, 2b, and 2c, and the steps for starting editing can be reduced.

[0113] Furthermore, since it is only necessary to refer to the information of the synchronization target object received in the management information, there is no need to refer to the authority list before finding the corresponding user, which has the effect of reducing the processing burden.

[0114] In the above-mentioned embodiment, even if the number of users is less than 1,000 (for example, 100 or 10), the processing burden becomes 1 / 10 or 1 / 100 compared with the case of 1,000 users. Therefore, the processing burden can be reduced compared with the previous method, and the service using the invention can be provided to users at a low cost.

[0115] For example, regarding the ball object of a football game, if the ownership of the ball is defined for the player holding the ball, the ownership of the ball object changes during the game. However, if the ownership is managed for each object, the management information only needs to be updated once. Since there is no need to confirm and update the permission lists of multiple users, the processing burden and communication burden are reduced.

[0116] Another object of the present invention is to provide a server that is capable of performing synchronized actions in a multiplayer online game regardless of the game design.

[0117] For example, the present invention is configured to be able to fully withstand a design in which ownership of synchronization target objects changes between multiple people, and a design in which the number of ownership of synchronization target objects is large, and can provide a game environment with a design that can cope with unknown situations that cannot be imagined in the current situation.

[0118] [Other embodiments] In addition, the present invention is not limited to the above-mentioned embodiment, and various modifications can be made without departing from the spirit of the present invention.

[0119] In addition, in the above-mentioned embodiment, the object updated by the user with ownership is configured to update the copy of the server device 1, and then the update information is transmitted to the remaining clients in the same room. Therefore, the conflict resolution in the metaverse and the game is the conflict resolution with priority given to the owner client, but if the virtual image in the metaverse and the game is a metaverse and game design owned by each client itself, equality can be achieved. The competition between the owner clients is resolved by the design of the metaverse and the game. For example, it can be designed that there is no direct relationship between them, or that there is a relationship between them through other mechanisms such as RPC (Remote Procedure Call) or other objects, and that the direct synchronization target objects are designed in a way that they do not have a relationship with each other.

[0120] In addition, since the ownership of the synchronization object related to the area information of each area is defined, when there are multiple rooms in the area, it is applied to all rooms in the same area and shared. That is, when a client with ownership updates the state of the synchronization target object of the area, not only the area information of the room joined by the client is updated, but also the room that the client does not join but belongs to the same area is updated. Strictly speaking, the area information is not a dedicated object for a specific client, so there may be a situation where a client without area ownership also wants to update. In order to update the client without area ownership, it is necessary to request an update from the client with synchronization target object ownership (primary copy). As an embodiment of the request method, a program (script) such as RPC is used. The operation accompanying the change of such an object without ownership, such as the opening and closing of the door of a building, is operated as a program of the synchronization target object (in this case, the door). If the program is operated, the operation is performed in the same way in all clients that perform synchronization actions on the object. The operation will fail in the client without ownership, but the operation will succeed in the client with ownership, and the state of the object will change in the primary copy of the client with ownership (for example, a closed door opens). This change is reflected in the copy of the server device 1 through the synchronization mechanism of the state change of the object, and then also reflected in the tertiary copies of the remaining clients that do not have ownership and join the rooms of the same area. Through this mechanism, the client can also operate the object without ownership. Although an example of synchronization of regional information across rooms and within the area is shown, the synchronization method based on the same RPC program / script is not limited to the area, and the objects of other people in the room who do not have ownership can also be synchronized. However, under this mechanism, when multiple clients try to operate the same object at the same time, multiple identical RPC requests occur, but due to delays in communication and luck, the execution order varies from client to client, and since only the RPC action of a certain client in the terminal with ownership is valid, it is absolutely beneficial to the client with ownership. Between clients without ownership, it depends on the distance between the client and the client with ownership, the CPU performance of the client, the network environment to which the client is connected, etc. Therefore, although it may not be fair for synchronization actions in time-oriented operations such as FPS, it is sufficient for low-frequency changes such as social content. As mentioned above, the selection of the synchronization target object, the scope of synchronization (whether it is the entire area or within the room), the synchronization method (direct object synchronization or indirect synchronization through a program (such as RPC)), etc. have a great impact on the functionality and performance of the service provided, and therefore should be decided based on the design of the service you want to implement (game design).

[0121] In addition, in the above-mentioned embodiment, the method of synchronizing between clients while playing the metaverse and the game is omitted from the detailed description because the existing technology can be applied. Especially in a virtual environment where a large number of people from all over the world join, the transmission of information related to the synchronization target object may be delayed or lost. Therefore, in the transmission of information, depending on the type of virtual space (type of metaverse, game) or the type of synchronization target object, in addition to the method proposed in this embodiment, various general methods need to be used in combination.

[0122] First, in order to deal with network delay, each client often synchronizes the virtual space time in the virtual space it joins and adds the virtual space time to the communication information related to the synchronization target object.

[0123] In order to deal with network delays, a synchronization method is widely used that can cause deviations in the metaverse and the game for each client joining the virtual space. That is, terminal devices 2a, 2b, and 2c operate independently in the virtual space, but the moments in the virtual spaces in which they are operating are slightly inconsistent. If terminal device 2a and terminal device 2b can be viewed side by side, the virtual space moment of terminal device 2a is slightly earlier than that of terminal device 2b (after an event occurs in terminal device 2b, the event also occurs in terminal device 2a). This is especially true when terminal device 2a and terminal device 2b are geographically separated and when there is a large difference in the distance between terminal device 2a and terminal device 2b and server device 1 (for example, when server device 1, terminal device 2a, and terminal device 2b are respectively located in Tokyo, Osaka, and New York).

[0124] Furthermore, in order to handle network losses, retransmission is sometimes performed by the communication protocol, which further delays the transmission of information related to the synchronization target object.

[0125] In addition, in order to reduce the frequency of sending information related to the synchronization target object, not only the processing based on the aforementioned threshold is performed, but also the processing of limiting the sending frequency is widely performed. When the virtual space is managed by frames (the state of the metaverse and the game is sampled at appropriate time intervals, and synchronization is obtained at the frequency of the sampling), the primary replica is updated by the frame rate (20 times per second, etc.). Sometimes it is combined with the update control implemented based on the threshold. Frame management means that each terminal device obtains synchronization at each frame moment common to the virtual space. More specifically, at each specific common virtual space moment in the virtual space, the primary replica is updated in each client (conditions such as thresholds are also considered as needed), and the frame moment of the frame (virtual space moment or frame sequence number) is added at the time of the update, and sent to the server device 1 as update information (difference or all). On the other hand, each terminal device receives the update information of the primary replica of other terminals together with the frame moment when each is updated. The frame moment added to the update information of other terminals received by the terminal device is consistent with the frame moment of the latest primary replica without delay. In the state where there is a delay, due to various reasons such as the location of the terminal device, the temporary change of the network environment or the communication state, the frame time added to the update information received by the terminal device is different according to the different terminal devices respectively owned, and generally speaking, it is later than the frame time of the primary copy of the terminal itself. When the metaverse and the game are simply performed according to the primary copy and the tertiary copy of different frame times, the synchronization difference between the terminals sometimes becomes large. In such a case, for example, the deviation of the frame time received from each terminal can also be pre-determined first, and the metaverse and the game are combined with the frame time of the terminal that sends the latest average frame time. In this case, the update information of several frames is buffered in the terminal device, the information of the same frame time is combined, and the metaverse and the game are strictly performed. However, when the delay is more than 0.1 seconds (in the case of 20 frames per second, the delay is more than 2 frames), although it varies according to the type of metaverse and game, the user experience will be deteriorated. Although more detailed descriptions are omitted, various methods and compromises are used, and methods that match the metaverse and game types are adopted. In mobile terminals, since the delay of the frame changes dynamically and significantly, other countermeasures are also required.

[0126] Alternatively, depending on the characteristics of the communication path, virtual space time information within the virtual space is sometimes added. When using a reliable communication protocol such as TCP / IP or RUDP (Reliable UDP), the virtual space time sequence of the update information of the received shared object will not be replaced. On the other hand, when the entire synchronization target object is sent each time and a protocol such as UDP that does not guarantee reliability is used, assuming the lack of communication, and the entire synchronization target object is transmitted as update information, sometimes the arrival of the update information will be partially missing, or the arrival of the update information will not be in the order of the virtual space time attached to the primary copy, but in a front-to-back order. In such a case, the terminal device synchronizes the object for the metaverse and game by replacing the received information with the virtual space time added in the update information, or discarding unnecessary old information when old update information is received.

[0127] In addition, the participant management information 113 may manage links to participant objects in the order of participation as a list. The server device 1 may acquire information required for corresponding communication from the participant information of each link, and communicate with the terminal devices 2a, 2b, 2c.

[0128] In the above-mentioned embodiment, the functions of each unit 100 to 104 of the control unit 10 are realized by a program, but all or part of the functions of each unit may be realized by hardware such as ASIC. In addition, the program used in the above-mentioned embodiment may be stored in a recording medium such as a CD-ROM and provided. In addition, within the scope of not changing the gist of the above-mentioned embodiment, the above-mentioned steps described in the above-mentioned embodiment may be replaced, deleted, added, etc. In addition, the functions of each unit may be appropriately combined with other units, or separated into a plurality of units.

[0129] [Other Embodiments 2] The group of terminal devices that synchronize with each other can be flexibly specified. In the embodiment and other embodiments, the synchronization action of the regional information of the area and the synchronization action of the non-regional information of the room are described, but the group of terminal devices that synchronize with each other (hereinafter, it may also be simply referred to as "synchronization group") is not limited to the area (the participant terminals of all rooms in the area) or the room (the participant terminals of the room). Here, the synchronization group of the room is composed of one or more clients that synchronize user information with each other in the synchronization target object in units of rooms ( Figure 8 , 114B is 1), the synchronization group of the region is composed of one or more clients synchronizing the terrain information (region) in units of regions ( Figure 7, 114A is 1), the terrain information (area) is used to reproduce the content that constitutes the virtual space from the synchronization target object. In addition, as explained in the case of the room as an example, each synchronization group can also be dynamically generated, changed, and eliminated. The management of the group is managed and maintained as the respective group management information, just like the room management information and the terrain management information. The terminal device can appropriately join or exit one or more groups according to the policies of each group. For example, in the case of specifying a certain area to experience a virtual experience, when joining the synchronization group of the area and the synchronization group of the room and exiting the room, the synchronization group of each area and the synchronization group of the room are also exited.

[0130] As another embodiment 2, a more general method for forming a synchronous action is shown. Here, a terminal device group (synchronous group) for synchronous action, which is composed of a synchronization target object and terminal devices participating in the synchronous action of the object, is the basis of the synchronous action. By forming a method for forming a synchronization target object and a method for forming a terminal device group for performing a synchronous action, it is possible to cope with various synchronization usages and improve the efficiency of the synchronous action.

[0131] (1)Basics of Synchronous Action For each synchronization object, the owner terminal and the terminal without ownership that performs synchronization action with the target object are connected and communicated with the server device 1, thereby realizing the synchronization action of the object. In this case, the terminal devices that perform synchronization action form a synchronization group. This terminal device group (synchronization group) is all or part of the terminal devices connected to the server device 1 in order to participate in the virtual space.

[0132] The synchronization actions of each synchronization target object in the synchronization group are as follows: Figures 9 to 13 As shown. The terminal device of the participant who owns the object saves the primary copy of the object, the server device 1 saves the copy of the object, and the terminal devices of the participants of the remaining synchronization group who do not have ownership of the object save the tertiary copy of the object. The change information in the primary copy is applied to the copy and the tertiary copy in sequence, and the primary copy, the copy, and the tertiary copy are synchronized to the same state. The terminal device of the participant who does not have ownership shall not directly change the tertiary copy, and even if the tertiary copy is changed, the copy, the primary copy, and the tertiary copy of other terminals will not change. The terminal device of the participant who does not have ownership who wants to change the tertiary copy does not change the tertiary copy directly, but entrusts the change of the primary copy to the terminal device of the participant who has ownership. If the terminal device of the participant who has ownership updates the primary copy according to the request, the update information is transmitted in the copy and the tertiary copy. As a result, the tertiary copy of its own terminal is also changed.

[0133] In the synchronization action, the replica management device manages and operates each synchronization target object. Figure 7 as well as Figure 8 As shown, the server device 1 stores the replica ID, the terminal device group (synchronization group) used for synchronization (owner, participants without ownership, and if necessary, rules limiting the destination), information related to the transfer, etc. for each synchronization target replica. Figure 7 and Figure 8 When the terminal device group for synchronous operation is constituted by the corresponding area participants and room participants, the participants without ownership are participants after the owner is removed from the participant list. Figure 7 and Figure 8 Multiple synchronization target objects with the same terminal device as the synchronization group are collectively managed in units of areas or rooms, but the same synchronization operation is performed even if the synchronization target objects are managed individually. Figure 7 and Figure 8 As shown, collectively managing the synchronization target objects with the same terminal devices as the constituents of the synchronization group can reduce the number of active synchronization groups, which is very useful.

[0134] (2) Composition of synchronization target objects The synchronization target object can be an object identified as an object in the virtual space, but preferably not the object itself, but rather object parameters such as the position or posture required to reproduce the synchronization state of the object (partial fields of the object, encoding thereof, etc.), or multiple objects with the same behavior are grouped as combined objects, thereby reducing the load of the synchronization action by reducing the number and content of the objects actually performing the synchronization action.

[0135] In the metaverse and MMOG, the states of objects corresponding to avatars and their accessories (clothing, equipment), and the content of the experience (buildings, terrain), etc., change with the operation of the user and the passage of time, and the virtual experience is shared by sharing (synchronizing) the changes of each object among other participants who are experiencing the same content. Objects to be synchronized include avatars, clothing, windows and doors of buildings, etc. However, if each object is synchronized separately, the number of objects becomes large, and the workload (number, size, communication volume, etc.) of copy management becomes large. As a method to reduce the burden of the number of synchronization target objects, for each object to be synchronized, it is designed to synchronize only a part of the parameters constituting the object. That is, even if the avatar is synchronized, the shape and details of the avatar that do not change are not synchronized, but only the parameter information such as position and posture is synchronized. In addition, when multiple objects that perform synchronized actions perform actions in the same way, a single synchronization target object consisting of only the parameters to be synchronized (if necessary, further encoding such as merge compression) among the parameters of multiple objects can be created, managed, and synchronized. For example, the avatar main body and the avatar's accessories may not be managed as separate synchronization target objects, but as an object group, and synchronization actions may be performed as special synchronization target objects for management parameters. The copy management information (if the synchronization group is a room, it is the copy management information 114b of the room, if it is a synchronization group area, it is the copy management information 114a of the area) collects and manages only the parameters of each state for each user (avatar) and each area as a single (or a few) special synchronization target objects, manages the user's avatar or the avatar's accessories as non-regional information, manages the information related to the building, surface state, and shape of the area as regional information, and serves as the target of synchronization actions for each non-regional information and regional information.

[0136] Furthermore, in the design of the synchronization target object, the synchronization method also needs to be considered, such as whether to synchronize the fields (values, parameters) of the synchronization object (synchronize as objects) or synchronize as events (triggers) of program execution. Values ​​and parameters are synchronized as objects as described above, but events are not the values ​​of objects. Instead, messages that serve as triggers are sent to the synchronization group that includes its own terminal devices, and the triggers are executed (RPC, Remote Procedure Call) by the programs (scripts) of each terminal device at approximately the same time and in approximately the same manner, thereby sharing approximately the same experience as the execution result of the client program on each terminal. Here, approximately the same time and in approximately the same manner means that due to execution deviations between terminals and subtle deviations in the internal states of the terminals, the execution results may not always be exactly the same.

[0137] For example, complex animations such as the jumping of virtual characters are not triggered by synchronous operation of parameter changes of position and posture one by one, but the reception of events such as jumping and other animation playback processing is used as a trigger and synchronized with the execution, and is executed independently on each terminal device. If the environment of the virtual space before the execution of the program as the initial value is roughly the same in all terminal devices, roughly the same animation is executed, which can actually realize the experience sharing in the virtual space. In the case where the result of the program affects the position and posture of the object, the synchronous action mechanism of the object is executed along with the result of the program execution, and the result of the program execution in the terminal device with ownership of the changed object target is reflected as the change of the primary copy, and as a reflection of the result, the copy or tertiary copy is updated. The execution of the program in the terminal device that does not have ownership is not directly reflected as the change of the tertiary copy, but because the same program is executed in the terminal device with ownership, the primary copy is changed, so the change is reflected in the copy and the tertiary copy, and the result is that the tertiary copy is also changed.

[0138] For example, taking the regional information as an example, when a terminal device that does not own the door executes a program for opening and closing the door, the program result of the door opening and closing operation in the terminal device fails and has no effect on the door. However, the same program is also executed in the terminal device that owns the door, and as a result of the execution of the program, the primary replica corresponding to the door is updated. The update of the primary replica further affects the replica and the tertiary replica. In the terminal device that wants to open and close the door, the tertiary replica is also changed, and as a result, the result of the door opening and closing operation is reflected. Although not described in detail, such a program (script) itself is not a synchronization target, but a part of the respective non-regional information and regional information. When the corresponding user or terrain is expressed in a virtual space, it is loaded into the client terminal as a part of the non-regional information and regional information non-synchronization target information.

[0139] According to the nature and function of the object to be implemented, it is effective to use a synchronization method based on object parameter values ​​and a synchronization method based on program execution results (RPC) respectively. The basic operation of the object synchronization method of this embodiment is disclosed. Further, regarding the synchronization of the program (RPC), the existing RPC mechanism is used (in addition, there are various known methods, such as a combination of simple message sending and message processing programs). Regarding the synchronization method of the object updated as a result of program execution, it is also disclosed by combining the basic synchronization action with the RPC mechanism. In this embodiment, the synchronization (RPC) of the program (script) itself is not described in detail. However, in the case of applying the synchronization action of this embodiment together with the RPC-based synchronization method, as a result of a program started by a user without ownership, when there is a change in the object that the user has ownership, in most cases, the validity and appropriateness of the execution of the program can be verified in the object with ownership. In addition to confirming the operating authority, exclusive control can also be performed when multiple terminals attempt to operate a single object at the same time.

[0140] Similarly, for a single synchronization target object in a synchronization group, when multiple clients have ownership, in order to synchronize the primary replicas, a synchronization method based on program execution results is required.

[0141] Regional information and non-regional information are contents in the virtual space, and are sometimes created, edited, or deleted in a different way from the operations (game operations) in the virtual space. If a unique ID is assigned to these contents and one of the unique IDs can be assigned as a URL, etc., convenience will be improved.

[0142] For example, in order to join a virtual space, user registration is mostly performed. In this case, non-regional information (content) in the virtual space, such as a name, a virtual image, etc., is created and edited.

[0143] Furthermore, when a new user experience content (area) is added to the virtual space, the name of the space providing the user experience, area information, etc. are created and edited for the new virtual space.

[0144] Perform various content editing operations using a 3D editor, etc. You can directly edit content using a 3D editor by referencing content with area information or non-area information using a URL. This improves immediacy and convenience compared to the method of downloading and uploading content for each component and editing it using a 3D editor.

[0145] In the 3D editor, you can combine basic units such as points and lines to create, combine, and configure sophisticated objects. You can also configure basic objects such as the ground, houses, mountains, etc. provided by the editor and customize their characteristics and properties (whether the ground is lawn or concrete, the height, width, number of floors of the house, etc.). You can also configure and customize objects such as tables, benches, stars, etc. in spaces based on templates such as living rooms, showrooms, parks, and the universe.

[0146] In the metaverse and MMGO, the function of creating and editing non-regional and regional information is mostly provided as part of the function of the virtual space application, or data created using a general 3D editing application is uploaded and registered in the virtual space. However, in this embodiment, in principle, the non-regional and regional information are managed by the server. When the program is executed on the terminal device, it is downloaded as needed. In the structure of the synchronization action (primary copy, copy, tertiary copy) of the synchronization target information, by providing a mechanism that can directly specify the content such as non-regional and regional information existing in the server, various contents can be easily shared between users or between multiple terminals of the same user. In this embodiment, it can be defined more generally by URL, etc., rather than by the representation method inside the application, such as terrain ID, character ID, etc. For example, by using methods such as URL schemes, deep links, universal links, and adjusting parameters according to the target content and access method, it is possible to directly edit the target content without taking a detour, or access it in the desired mode (program), such as participating in the content, etc. In addition, since it can be accessed through a universal URL, each content can be used and reused in a more open environment, not just in this service.

[0147] For example, when entering an area A100, just specify "https: / / sample.metaverse.jp / ?area_id=A100&action=join". For example, when entering a specific room R101 in an area A100, just specify "https: / / sample.metaverse.jp / ?area_id=A100&room_id=R101" or "https: / / sample.metaverse.jp / ?area_id=A100&room_id=R101&action=join", specify the management website sample.metavers.jp, area ID A100, specify room ID R101 and access mode join (enter) as needed.

[0148] Furthermore, when editing the area information of a certain area A101, it is sufficient to specify the management site sample.metavers.jp, the area ID A100, and the access mode edit, such as "https: / / sample.metaverse.jp / ?area_id=A100&action=edit".

[0149] In addition, when editing non-regional information (e.g., the "home" region of a web homepage, etc.) owned by a user U501, Just specify the access mode edit as the management website sample.metavers.jp, user ID U501, and access mode edit, as in "https: / / sample.metaverse.jp / ?user_id=U501&action=edit". Different applications are started as needed for each URL, and access management for each content (user ID, password, etc.) or insufficient parameters are entered as needed. The specified content can be directly accessed by starting the appropriate program (game program, metaverse program, WebGL, 3D editor) in the specified mode.

[0150] (3) Synchronization group configuration method The terminal devices that perform synchronization actions are preferably limited to synchronization actions between groups whose actions of the synchronization object contribute to sharing of the virtual experience.

[0151] When the number of terminal devices performing synchronization becomes huge, the processing and communication volume for synchronization in the server device 1 and the terminal device increases, the CPU load increases, and the communication bandwidth reaches the limit. In the server device 1, even if the processing related to the replica of the synchronization target object is dispersed and expanded through methods such as the cloud to cope with the increase in number, the communication bandwidth will reach the limit due to the increase in communication volume in the terminal device. In particular, the terminal device cannot be expected to have sufficient performance in terms of CPU performance and communication speed. In particular, when used in a wireless environment such as mobile communication, the communication speed is sometimes unstable, and in a terminal that has signed a non-package communication fee, the increase in communication volume is sometimes undesirable.

[0152] In order to provide a shared experience in a virtual space, it is ideal that the entire virtual space and all participants in the virtual space can share all objects in the virtual space, but when the number of participants increases, it is economically difficult to implement or technically impossible. In addition, in reality, it is impossible or meaningless for the user to grasp the behavior of all participants. In order to solve this problem, it is necessary to reduce the number of objects performing synchronized actions, reduce the scope of synchronized actions on objects (the number of users), etc. For an example of the former, refer to the description of the aforementioned synchronization target object composition (for example, objects with the same behavior are grouped together to form only a special synchronization target object that only extracts the parameters (fields, etc.) that need to be synchronized in these objects).

[0153] In order to reduce the scope (number of users) of objects that are synchronized, the number of terminals that synchronize each object is limited to the minimum necessary. In many cases, the user terminal only represents a small part of the objects that constitute the virtual space, not all of them. Therefore, if synchronization is achieved for only a small part of the objects represented, the experience in the virtual space that the user of the terminal device can perceive is the same for other objects, regardless of whether they are synchronized internally.

[0154] A terminal group that performs synchronization actions on each object can be defined, and synchronization actions are performed only in this group. Furthermore, the destination rule of the copy management information 114 can further create subgroups in the synchronization group. In a typical virtual space, MMOG, each virtual space is divided into multiple areas (areas where virtual space content can be experienced), and the user's terminal device joins the room to experience the virtual space corresponding to the area. The terminal device entering the same room is transformed into an avatar, and based on the content of the area (buildings, facilities, etc.), it virtually experiences the content provided by the area together with the avatars of other terminal devices. In this environment, the avatar created by the participant and the avatar's accessories are synchronization target objects owned by the participant as the creator, and have a primary copy in their own terminal device. By synchronizing with the terminal devices of other participants who have joined the room, their own activity status can be notified to other participants. In addition, here, for the sake of convenience, the virtual image and the virtual image's accessories are listed as synchronization target objects. However, in actual applications, in the information of multiple objects managed by the user consisting of the virtual image and the virtual image's accessories (non-regional information), the minimum number of parameters such as position and posture are summarized, and the virtual image and the virtual image's accessories are summarized for each user and used as a special object (synchronization target non-regional information) for single user information management and synchronized, which is efficient.

[0155] In order to share the activities of other participants in a specific area (room) in the virtual space, each participant has ownership of his or her own synchronization target non-area. Each participant's terminal device stores a primary copy of its own synchronization target non-area, and stores a tertiary copy of other participants' synchronization target user management information.

[0156] Similarly, the change of state (region information) can be shared for the content (region) of a specific area in the virtual space. In the case where multiple rooms coexist in the corresponding area, if the participants in one room change the region information, the region information of not only the participants in the same room but also other rooms (parallel worlds) in the same region in different rooms can reflect the change. In order to share the change in multiple rooms, the terminal group for synchronous operation can be set to the participant terminals of all rooms in the region.

[0157] For example, suppose that the creator of the area also joins a room in the area. The creator of the area is the owner of the area information of the area. Regarding the synchronization of the area information of the area, each terrain object is not directly synchronized, but only a part of the fields of multiple terrain objects to be synchronized, that is, the area information of the synchronization target is summarized as a special single object. When the creator terminal of the area enters a room in the area, in addition to the primary copy of its own synchronization target non-regional information and the tertiary copy of the synchronization target non-regional information of other participants other than the participants in the same room, it also saves the primary copy of the synchronization target area information of the area. In this case, the creator terminal of the area is the creator of the area, the owner of the area, and the owner (primary copy saver) of the synchronization target object related to the area in the synchronization action. The participant terminals of the area room other than the area participants, regardless of whether they have entered the same room as the participants of the area or entered other rooms, save the tertiary copy of the synchronization target area information of the area in addition to the primary copy of their own synchronization target non-regional information and the tertiary copy of the synchronization target non-regional information of other participants other than the participants in the same room.

[0158] Although it depends on the type of virtual space, it is unrealistic to assume that the area creator always joins the virtual space. Here, it is assumed that the area creator is the owner and the editor. However, for example, considering a virtual space for corporate promotion, the area creator is a content creator outsourced by a certain company, the owner is the president of the company, and the editor is the president of the company and the employees of the public relations department. Here, the case where the area creator is also the area editor is described, but in the example of the corporate promotion virtual space, it is more appropriate to refer to the area creator as the area editor in the following description as needed.

[0159] Even if the creator (editor) of the area has not joined, the area information of the synchronization target must be processed by the owner of the synchronization target object in order to perform synchronization processing. In order to synchronize the area information of the synchronization target, any terminal device belonging to the synchronization group of the synchronization target area information must be made the owner of the synchronization target object. Any method can be used to determine the owner of the synchronization target object. For example, it can be the terminal device that joins the synchronization group the earliest, or it can be the terminal device with the smallest terminal ID. In addition, in order to reduce the number of synchronization target objects, a method of synchronizing a single or a few synchronization target area information consisting only of the parameters of these synchronization targets from all objects constituting the area information is described. However, in the case where there is no participant who determines the autonomous operation of the synchronization target object like the area information, and the owner of the synchronization target object can be anyone, in order to distribute the load of the server device, multiple synchronization target area information objects can also be generated and each of them can be owned by other terminal devices. However, the dispersion of owners needs to be cautious. If the owners of synchronization target objects that have a mutual dependence are set to other terminal devices, sometimes the control becomes complicated or the load increases instead.

[0160] Fig.16 This shows that when there are multiple rooms 101 and 102 in the area 100, the non-area of ​​the synchronization target and the area information of the synchronization target are synchronized as a primary copy, a copy, and a tertiary copy in each target terminal. Users A, B, and C enter the room 101 of the area 100 through the terminal devices A, B, and C, respectively. Similarly, users X and Y enter the room 102 of the area 100 through the terminal devices X and Y, respectively. The non-areas (A0, B0, C0) of the synchronization targets of users A, B, C are synchronized (A2, B2, C2) in the user terminal devices A, B, C which are participants of room 101 via the copies (A1, B1, C1) of the server device 1, the non-areas (X0, Y0) of the synchronization targets of users X and Y are synchronized (X2, Y2) in the user terminal devices X and Y which are participants of room 102 via the copies (X1, Y1) of the server device 1, and the area information (G0) of the synchronization target of area 100 is synchronized (G2) in the user terminal devices A, B, C, X, Y which are participants of rooms 100 and 101 which are rooms of area 100 via the copies (G1) of the server device.

[0161] In the above, for the case where there are multiple rooms in a single area, an implementation method for synchronizing area information and non-area information by setting the terminal device group for synchronization to the area entry terminal and the room entry terminal is described. However, synchronization groups are not limited to areas and rooms. In addition, the relationship between synchronization groups is not limited to the relationship in which one is included in the other, such as areas and rooms. Synchronization groups can be created freely. Synchronization groups can be completely consistent, partially included, only partially shared, or completely independent and have no shared parts. Each synchronization group has Figure 4 or Figure 5 The method shown manages the participant terminals. Although the example of dynamically generating and deleting rooms has been described above, the terminal devices in the synchronization group are not necessarily fixed. Although it also depends on the experience content of the virtual space provided, each synchronization group can also be formed in the following way: the participants change over time, the synchronization group is dynamically created and deleted, or the terminal joins and exits the synchronization group halfway. For example, as a synchronization group, in addition to the area and room, chat groups, cooperative teams, affiliated organizations, etc. can also be considered. Chat groups, cooperative teams, and affiliated organizations exist outside the boundaries of rooms and areas, and share synchronous experiences in rooms and areas in their respective units, such as text, voice messages, and activity status (online, visiting space X, visiting cat world Y, fighting monster X, visiting the exhibition hall of M company, negotiating with N company, etc.). For example, voice chat can be listened to through a speaker, and can be switched to the speech channel of the room or the speech channel of the chat group by switching buttons and switches on the screen. In addition, the activity status can also be overlapped on the display screen of the virtual world joined by clicking the team status icon configured in the upper right corner of the screen.

[0162] Furthermore, in order to achieve the above-mentioned object, another embodiment of the present invention provides the following information processing device, data synchronization program, data synchronization method, data synchronization system, and terminal device.

[0163] [1] An information processing device, in particular an information processing device connected to a plurality of clients for synchronizing objects with each other via a network, wherein the device comprises: A receiving unit, which receives the change content information of the synchronization target object from the client having the ownership of the synchronization target object; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; and a sending unit, which sends the changed content information to clients other than the client having the ownership among the plurality of clients. [2] The information processing device according to [1], wherein the receiving unit receives the synchronization target object owned by the client when the client joins, and stores it in the recording medium as the copy object. [3] The information processing device according to [1], wherein when the client newly generates an object, the receiving unit copies the newly generated object as a synchronization target object and stores the copied object in a recording medium. [4] An information processing device according to [2] or [3], wherein the sending unit sends the replica object or the synchronization target object stored in the recording medium to clients among the multiple clients except the client that has the ownership when the client joins or the client newly generates an object. [5] An information processing device according to any one of [1] to [4], wherein the receiving unit does not receive the change content information of the synchronization target object from a client other than a client having ownership of the synchronization target object. [6] An information processing device according to any one of [1] to [4], wherein when the receiving unit receives change content information of the synchronization target object from a client other than the client that owns the synchronization target object, the updating unit does not update the copy object. [7] An information processing device according to any one of [1] to [4], wherein, when the receiving unit receives change content information of the synchronization target object from a client other than the client that has ownership of the synchronization target object, the sending unit does not send the change content information to the client that has ownership. [8] An information processing device according to any one of [1] to [7], wherein the update unit receives the difference between the receiving unit and the synchronization target object before the change as the change content information of the synchronization target object, and updates the copy object. [9] An information processing device according to any one of [1] to [8], wherein the client further functions as the following management unit: when the client exits, the ownership of the replica object corresponding to the synchronization target object owned by the client is transferred to other clients other than the client according to predetermined rules, while allowing the transfer of ownership.

[10] An information processing device according to any one of [1] to [8], wherein the client further functions as the following management unit: when the client exits, without allowing the transfer of ownership of the replica object corresponding to the synchronization target object owned by the client, the replica object is deleted, The sending unit instructs the other client to delete an object corresponding to the duplicate object stored in the other client other than the client.

[11] A data synchronization program, specifically, a computer connected to a plurality of clients via a network for synchronizing objects with each other functions as the following units: A receiving unit, which receives the change content information of the synchronization target object from the client having the ownership of the synchronization target object; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; and a sending unit, which sends the changed content information to clients other than the client having the ownership among the plurality of clients.

[12] A data synchronization method, in an information processing device connected to a plurality of clients for mutually synchronizing objects via a network, comprising: The step of receiving the change content information of the synchronization target object from the client having ownership of the synchronization target object; A step of updating a copy object that copies the synchronization target object according to the change content information; And, a step of sending the changed content information to clients other than the client having the ownership among the plurality of clients.

[13] A data synchronization system, comprising: Multiple clients that synchronize objects with each other; An information processing device connected to the plurality of clients via a network, comprising: A receiving unit, which receives the change content information of the synchronization target object from the client having the ownership of the synchronization target object; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; and a sending unit, which sends the changed content information to clients other than the client having the ownership among the plurality of clients.

[14] The data synchronization system according to

[13] , wherein when receiving a duplicate object of a synchronization target object to which the information processing device itself has ownership, the plurality of clients refuse to receive the duplicate object.

[15] A data synchronization system according to

[13] or

[14] , wherein the multiple clients send the difference between themselves and the synchronization target object before the change to the information processing device as the change content information of the synchronization target object.

[16] A terminal device as a client for communicatively connecting to an information processing device, in particular a terminal device as a client for synchronizing an object with another client, wherein: The information processing device comprises: A receiving unit, which receives the change content information of the synchronization target object from the client having the ownership of the synchronization target object; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; and a sending unit, which sends the changed content information to clients other than the client having the ownership among the plurality of clients.

[17] A terminal device as a client according to

[16] , wherein, when receiving a duplicate object of a synchronization target object to which the terminal device itself has ownership from the information processing device, reception of the duplicate object is rejected.

[18] The terminal device as a client according to

[16] or

[17] sends the difference between itself and the synchronization target object before the change to the information processing device as the change content information of the synchronization target object.

[19] An information processing device, in particular an information processing device connected to a plurality of clients for synchronizing objects with each other via a network, wherein the device comprises: A receiving unit, which receives the change content information of the synchronization target object from the multiple clients; an updating unit, which refers to the management information for managing each of the synchronization target objects, that is, the management information defining the client having ownership of the synchronization target object, and updates the copy object of the synchronization target object according to the change content information when the client of the sending source is defined as the client having ownership of the synchronization target object in the management information; and a sending unit, which sends the changed content information to clients other than the client having the ownership among the plurality of clients.

[20] An information processing device, in particular an information processing device connected to a plurality of clients for synchronizing objects with each other via a network, wherein the device comprises: A receiving unit, which receives the change content information of the synchronization target object from the multiple clients; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; and a sending unit, which refers to the management information for managing each of the synchronization target objects, that is, the management information defining the client having ownership of the synchronization target object, and when the client of the sending source is defined as the client having ownership of the synchronization target object in the management information, sends the change content information to the clients among the multiple clients except the client having ownership.

[21] An information processing device according to

[19] or

[20] , wherein the receiving unit receives a synchronization target object owned by the client when the client joins the virtual space joined by the multiple clients, and stores it in the recording medium as the copy object.

[22] An information processing device according to

[19] or

[20] , wherein when the client generates a new object, the receiving unit copies the newly generated object as a synchronization target object and stores the copied object in a recording medium.

[23] An information processing device according to

[21] or

[22] , wherein the sending unit sends the replica object or the synchronization target object stored in the recording medium to clients among the multiple clients except the client that has the ownership when the client joins or the client generates a new object.

[24] An information processing device according to any one of

[19] to

[23] , wherein the receiving unit does not receive change content information of the synchronization target object from a client other than a client that has ownership of the synchronization target object.

[25] An information processing device according to any one of

[19] to

[23] , wherein when the receiving unit receives change content information of the synchronization target object from a client other than the client that has ownership of the synchronization target object, the updating unit does not update the copy object.

[26] An information processing device according to any one of

[19] to

[23] , wherein, when the receiving unit receives change content information of the synchronization target object from a client other than the client that has ownership of the synchronization target object, the sending unit does not send the change content information to the client that has ownership.

[27] An information processing device according to any one of

[19] to

[26] , wherein the update unit receives the difference between the receiving unit and the synchronization target object before the change as the change content information of the synchronization target object, and updates the copy object.

[28] An information processing device according to any one of

[19] to

[27] , wherein the client further functions as the following management unit: when the multiple clients exit the virtual space they have joined, if the ownership is allowed to be transferred, the ownership of the copy object corresponding to the synchronization target object owned by the client is transferred to other clients other than the client according to predetermined rules.

[29] An information processing device according to any one of

[19] to

[26] , wherein the client further functions as the following management unit: when the client exits the virtual space to which it has joined, the copy object corresponding to the synchronization target object owned by the client is deleted without allowing the transfer of ownership of the copy object, The sending unit instructs the other client to delete an object corresponding to the duplicate object stored in the other client other than the client.

[30] A data synchronization program, specifically, a computer connected to a plurality of clients via a network for synchronizing objects with each other functions as the following units: A receiving unit, which receives the change content information of the synchronization target object from the multiple clients; an updating unit, which refers to the management information for managing each of the synchronization target objects, that is, the management information defining the client having ownership of the synchronization target object, and updates the copy object of the synchronization target object according to the change content information when the client of the sending source is defined as the client having ownership of the synchronization target object in the management information; and a sending unit, which sends the changed content information to clients other than the client having the ownership among the plurality of clients.

[31] A data synchronization program, specifically, a computer connected to a plurality of clients via a network for synchronizing objects with each other functions as the following units: A receiving unit, which receives the change content information of the synchronization target object from the multiple clients; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; and a sending unit, which refers to the management information for managing each of the synchronization target objects, that is, the management information defining the client having ownership of the synchronization target object, and when the client of the sending source is defined as the client having ownership of the synchronization target object in the management information, sends the change content information to the clients among the multiple clients except the client having ownership.

[32] A data synchronization method, in particular in an information processing device connected to a plurality of clients via a network for synchronizing objects with each other, comprising: A step of receiving change content information of synchronization target objects from the plurality of clients; Referring to the management information for managing each of the synchronization target objects, i.e., the management information defining the client having ownership of the synchronization target object, when the client of the sending source is defined as the client having ownership of the synchronization target object in the management information, updating the copy object of the synchronization target object according to the change content information; And, a step of sending the changed content information to clients other than the client having the ownership among the plurality of clients.

[33] A data synchronization method, in particular in an information processing device connected to a plurality of clients via a network for synchronizing objects with each other, comprising: A step of receiving change content information of synchronization target objects from the plurality of clients; A step of updating a copy object that copies the synchronization target object according to the change content information; And, referring to the management information for managing each of the synchronization target objects, that is, the management information defining the client having ownership of the synchronization target object, when the client of the sending source is defined as the client having ownership of the synchronization target object in the management information, the step of sending the change content information to the clients among the multiple clients except the client having ownership.

[34] A data synchronization system, comprising: a plurality of clients for synchronizing objects with each other; An information processing device connected to the plurality of clients via a network, comprising: A receiving unit, which receives the change content information of the synchronization target object from the multiple clients; an updating unit, which refers to the management information for managing each of the synchronization target objects, that is, the management information defining the client having ownership of the synchronization target object, and updates the copy object of the synchronization target object according to the change content information when the client of the sending source is defined as the client having ownership of the synchronization target object in the management information; and a sending unit, which sends the changed content information to clients other than the client having the ownership among the plurality of clients.

[35] A data synchronization system, comprising: a plurality of clients for synchronizing objects with each other; An information processing device connected to the plurality of clients via a network, comprising: A receiving unit, which receives the change content information of the synchronization target object from the multiple clients; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; and a sending unit, which refers to the management information for managing each of the synchronization target objects, that is, the management information defining the client having ownership of the synchronization target object, and when the client of the sending source is defined as the client having ownership of the synchronization target object in the management information, sends the change content information to the clients among the multiple clients except the client having ownership.

[36] A data synchronization system according to

[34] or

[35] , wherein the multiple clients send the difference between themselves and the synchronization target object before the change to the information processing device as the change content information of the synchronization target object.

[37] A terminal device as a client for communicably connecting to the information processing device, in particular a terminal device as a client for synchronizing an object with other clients via the information processing device, wherein the information processing device has: a receiving unit, which refers to the management information for managing each of the synchronization target objects, i.e., the management information defining the client having ownership of the synchronization target object, and receives the change content information of the synchronization target object from the client having ownership of the synchronization target object via the information processing device when the client of the sending source is defined as the client having ownership of the synchronization target object in the management information; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; and a sending unit, which sends the changed content information to clients other than the client having the ownership among the plurality of clients.

[38] A terminal device as a client for communicably connecting to the information processing device, in particular a terminal device as a client for synchronizing an object with other clients via the information processing device, wherein the information processing device has: When the replication object of the replication synchronization target object is updated on its own client, A sending unit refers to the management information for managing each of the synchronization target objects, that is, the management information defining the client that has ownership of the synchronization target object, and when the client itself is defined as the client that has ownership of the synchronization target object in the management information, the sending unit sends the change content information to the information processing device.

[39] The terminal device as a client according to

[37] or

[38] sends the difference between itself and the synchronization target object before the change to the information processing device as the change content information of the synchronization target object. [Industrial Applicability]

[0164] The present invention provides an information processing device, a data synchronization program, a data synchronization method, a data synchronization system and a terminal device, which suppress the increase of processing burden and communication burden in a structure in which multiple user terminals participate, that is, in a condition in which data of multiple user terminals are synchronized. Explanation of symbols

[0165] 1. Server device 2a, 2b, 2c terminal devices 3a, 3b, 3c users 4a, 4b, 4c Avatar 10. Control Unit 11 Storage 12 Memory 13Ministry of Communications 100 Terrain Information Management Unit 101 Terrain Information Editing Unit 102 Room Management Unit 103 Participant Management Unit 104 data receiving unit 105 data transmission unit 106 Copy Management Unit 107 Data Update Unit 110 Data Management Program 111 Terrain Information 112 Room Management Information 113 Participant Management Information 114A Copy Management Information 114B copy management information 120a, 120b, 120c copies

Claims

1. An information processing device, specifically an information processing device connected to a plurality of clients participating in one or more virtual spaces via a network, The synchronization target object of the virtual space is an object synchronized between clients of the synchronization group. The information processing device comprises: A receiving unit, which receives the change content information of the synchronization target object from the client of the synchronization group; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; as well as A sending unit is configured to send the changed content information to a client of the synchronization group.

2. The information processing device according to claim 1, wherein: The synchronization group is composed of clients that synchronize terrain information for reproducing content constituting a virtual space in the synchronization target object.

3. The information processing device according to claim 2, wherein: The information processing device also functions as an editing unit that edits the topographic information according to the content of an operation from a client having the right to edit the topographic information.

4. The information processing device according to claim 1, wherein: The information processing device also functions as a landform information management unit that issues an identifier corresponding to an object including the synchronization target object in the virtual space.

5. The information processing device according to claim 4, wherein: The identifier is used by the client to access the content of the virtual space.

6. The information processing device according to claim 5, wherein: Accessing the content of the virtual space is that the client enters the virtual space.

7. The information processing device according to claim 5, wherein: Accessing the content of the virtual space is editing the content of the client.

8. The information processing device according to claim 6, wherein: Accessing the content of the virtual space is to start a program in the client for entering the virtual space.

9. The information processing device according to claim 7, wherein: Accessing the content of the virtual space is to access a website in the client for editing the content, and to start a web browser for accessing the website.

10. The information processing device according to claim 1, wherein: The client belongs to more than one synchronization group.

11. The information processing device according to claim 1, wherein: The synchronization group is composed of clients that synchronize user information with each other in the synchronization target object.

12. The information processing device according to claim 2, wherein: The client that owns the synchronization target object corresponding to the terrain information among the synchronization target objects is a virtual client on the server.

13. A data synchronization program, in particular a data synchronization program for operating a computer connected to a plurality of clients participating in a virtual space via a network, The synchronization target object of the virtual space is an object synchronized between clients of the synchronization group. The data synchronization program functions as the following units: A receiving unit, which receives the change content information of the synchronization target object from the client of the synchronization group; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; and a sending unit, which sends the changed content information to the client of the synchronization group.

14. A data synchronization system comprising: a plurality of clients joining a virtual space; and An information processing device connected to the plurality of clients via a network, The synchronization target object of the virtual space is an object synchronized between clients of the synchronization group. The information processing device comprises: A receiving unit, which receives the change content information of the synchronization target object from the client of the synchronization group; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; as well as A sending unit is configured to send the changed content information to a client of the synchronization group.

15. The data synchronization system according to claim 14, wherein: The plurality of clients transmit the difference between the synchronization target object after the change and the synchronization target object before the change to the information processing device as the change content information of the synchronization target object.

16. A terminal device as a client for communicably connecting to an information processing device, in particular a terminal device as a client that connects to other clients via a network via the information processing device and joins a virtual space, The synchronization target object of the virtual space is an object synchronized between clients of the synchronization group. The terminal device comprises: A receiving unit, which receives the change content information of the synchronization target object via the information processing device; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; as well as A sending unit is configured to send the changed content information to a client of the synchronization group.

17. A terminal device as a client for communicably connecting to an information processing device, in particular a terminal device as a client that connects to other clients via a network via the information processing device and joins a virtual space, The synchronization target object of the virtual space is an object synchronized between clients of the synchronization group. The terminal device has a sending unit. When a replica object of the synchronization target object is updated in its own client, the sending unit sends change content information to the information processing device. The change content information is information that the replica object of the synchronization target object is updated in its own client.

18. The terminal device as a client according to claim 16 or 17, which sends the difference between the synchronization target object after the change and the synchronization target object before the change to the information processing device as the change content information of the synchronization target object.

19. The terminal device according to claim 16 or 17, wherein: The virtual space and an editing website for reproducing topographic information constituting contents of the virtual space are accessed through the identifier issued by the information processing device.

20. A virtual space management providing device, specifically a virtual space management providing device connected to a plurality of clients participating in one or more virtual spaces via a network, The synchronization target object of the virtual space is an object synchronized between clients of the synchronization group. The virtual space management providing device comprises: A receiving unit, which receives the change content information of the synchronization target object from the client of the synchronization group; an updating unit, which updates the copy object that copies the synchronization target object according to the change content information; as well as A sending unit is configured to send the changed content information to a client of the synchronization group.