# US 11,305,193 B2 · Systems and methods for multi-user editing of virtual content

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,305,193 B2
- Document ID: US11305193B2
- Status: Granted
- Kind: B2
- Application number: 16/997,629
- Filed: 2020-08-19
- Published: 2020-12-17
- Granted: 2022-04-19
- Earliest claimed: 2018-11-02
- Assignees: Electronic Arts Inc.
- Applicants: Electronic Arts Inc.
- Inventors: Bryan Scott Sefcik; Matthew Jeremy Doell
- Web page: https://patentgrep.com/patent/US11305193B2

## CPC

- A63F 13/26: having at least one additional display device, e.g. on the game controller or outside a game booth
- A63F 13/60: Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F 13/5372: for tagging characters, objects or locations in the game scene, e.g. displaying a circle under the character controlled by the player
- G06T 19/20: Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
- H04L 67/131: Protocols for games, networked simulations or virtual reality
- A63F 2300/8082: Virtual reality
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Embodiments of the systems and methods described herein provide an editor hub that can host a virtual environment and allow multiple game developer systems to connect to. The editor hub can manage all change requests by connected game developers and execute the change requests into the runtime version of the data. The connected game developers can receive the same cached build results from the build pipeline, which can allow for simultaneous updates for a plurality of game developers working together on the same virtual content.

## Claims

### Claim 1

A method for editing immutable game data of a game application within a virtual development space, wherein the method includes:
connecting a first game developer system to a virtual development space, wherein the virtual development space enables a plurality of game developer systems to edit immutable game data associated with virtual objects of the game application, wherein the virtual development space includes a three-dimensional simulated space instanced on a computer server that is accessible by a plurality of game developers systems and that are located remotely from the computer server to edit immutable game data, wherein the immutable game data includes at least a virtual object;
connecting a second game developer system to the virtual development space;
receiving from the first game developer system a first selection of the virtual object in the virtual development space;
receiving a first command from the first game developer system to edit the virtual object in the virtual development space;
receiving a second command from the second game developer system to edit the virtual object in the virtual development space;
initiating a change to the virtual object in the immutable game data corresponding to the first command to generate a first updated virtual object;
initiating a change to the first updated virtual object in the immutable game data corresponding to the second command to generate a second updated virtual object; and
transmitting the second updated virtual object to the first and second game developer systems.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
identifying a first and second time stamp of receiving the first and second command, respectively;
determining that the first command was received before the second command based on the first and second time stamp; and
initiating the change corresponding to the first command before initiating the change corresponding to the second command.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
initiating a change to the virtual object corresponding to both the first and second command at the same time to generate a third updated virtual object, wherein the first command is related to a first characteristic of the virtual object and the second command is related to a second characteristic of the virtual object different than the first characteristic.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
receiving, from an editor system, a command to undo the change that correspond to the first command; and
initiating a change to the third updated virtual object to remove the changes that correspond to the first command while maintaining the changes that correspond to the second command.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
transmitting the first updated virtual object to the second game developer system for display of the change initiated by the first game developer system of the virtual object.

### Claim 6 (depends on 1)

The method of claim 1, wherein connecting the first game developer system includes generating a first avatar associated with the first game developer system, and transmitting a location of the first avatar to the first and second game developer systems to display the first avatar at the location.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
receiving a request to move the first avatar from the location to a new location; and
transmitting the new location of the first avatar to the second game developer system to display the first avatar in the new location on the second game developer system.

### Claim 8 (depends on 1)

The method of claim 1, wherein initiating the change to the virtual object in the immutable game data corresponding to the first command to generate an updated virtual object is in response to a director game developer system approving of the change.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
generating a first representation of the second updated virtual object for display on the first game developer system; and
generating a second representation of the second updated virtual object for display on the second game developer system, wherein generating the first and second representations of the second updated virtual object is based on a characteristic of the first and second game developer systems, respectively.

### Claim 10 (depends on 9)

The method of claim 9, wherein the characteristic includes at least one of: a processing power, a display capability, network throughput, memory capacity, or type of game developer system.

### Claim 11 (depends on 9)

The method of claim 9, wherein generating the first and second representations include at least one of: merging vertices, compressing textures, compressing geometry, or adjusting a size of the virtual object.

### Claim 12 (depends on 9)

The method of claim 9, further comprising:
generating a first representation of the second updated virtual object for display on the first game developer system; and
generating a second representation of the second updated virtual object for display on the second game developer system, wherein generating the first and second representations of the second updated virtual object is based on a characteristic of the first and second game developer systems, respectively.

### Claim 13

A system for editing immutable game data of a game application within a virtual development space, wherein the system includes:
one or more processors configured with computer executable instructions that configure the one or more processors to:
connect a first game developer system to a virtual development space, wherein the virtual development space enables a plurality of game developer systems to edit immutable game data associated with virtual objects of the game application, wherein the virtual development space includes a three-dimensional simulated space instanced on a computer server that is accessible by a plurality of game developers systems and that are located remotely from the computer server to edit immutable game data, wherein the immutable game data includes at least a virtual object;
connect a second game developer system to the virtual development space;
receive from the first game developer system a first selection of the virtual object in the virtual development space;
receive a first command from the first game developer system to edit the virtual object in the virtual development space;
receive a second command from the second game developer system to edit the virtual object in the virtual development space;
initiate a change to the virtual object in the immutable game data corresponding to the first command to generate a first updated virtual object;
initiate a change to the first updated virtual object in the immutable game data corresponding to the second command to generate a second updated virtual object; and
transmit the second updated virtual object to the first and second game developer systems.

### Claim 14 (depends on 13)

The system of claim 13, wherein the one or more processors are further configured to:
generate a playable instance of a game based on the immutable game data, wherein the immutable game data includes the second updated virtual object, wherein the immutable game data is not changable by players of the playable instance of the game.

### Claim 15 (depends on 13)

The system of claim 13, wherein to connect the first game developer system includes generating a first avatar associated with the first game developer system, and transmitting a location of the first avatar to the first and second game developer systems to display the first avatar at the location.

### Claim 16 (depends on 15)

The system of claim 15, the one or more processors are further configured to:
receive a request to move the first avatar from the location to a new location; and
transmit the new location of the first avatar to the second game developer system to display the first avatar in the new location on the second game developer system.

### Claim 17 (depends on 13)

The system of claim 13, wherein to initiate the change to the virtual object in the immutable game data corresponding to the first command to generate an updated copy of the virtual object is in response to a director game developer system approving of the change.

### Claim 18 (depends on 13)

The system of claim 13, wherein the one or more processors are further configured to:
generate a first representation of the second updated virtual object for display on the first game developer system; and
generate a second representation of the second updated virtual object for display on the first game developer system, wherein generating the first and second representations is based on a characteristic of the first and second game developer systems, respectively.

### Claim 19 (depends on 18)

The system of claim 18, wherein the characteristic includes at least one of:
a processing power, a display capability, network throughput, memory capacity, or type of game developer system.

### Claim 20

A non-transitory computer storage medium storing computer-executable instructions that, when executed by a processor, cause the processor to:
connect a first game developer system to a virtual development space, wherein the virtual development space enables a plurality of game developer systems to edit immutable game data associated with virtual objects of a game application, wherein the virtual development space includes a three-dimensional simulated space instanced on a computer server that is accessible by a plurality of game developers systems and that are located remotely from the computer server to edit immutable game data, wherein the immutable game data includes at least a virtual object;
connect a second game developer system to the virtual development space;
receive from the first game developer system a first selection of the virtual object in the virtual development space;
receive a first command from the first game developer system to edit the virtual object in the virtual development space;
receive a second command from the second game developer system to edit the virtual object in the virtual development space;
initiate a change to the virtual object in the immutable game data corresponding to the first command to generate a first updated virtual object;
initiate a change to the first updated virtual object in the immutable game data corresponding to the second command to generate a second updated virtual object; and
transmit the second updated virtual object to the first and second game developer systems.
