# US 11,077,365 B2 · Low latency datagram-responsive computer network protocol

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

- Number: US 11,077,365 B2
- Document ID: US11077365B2
- Status: Granted
- Kind: B2
- Application number: 16/450,904
- Filed: 2019-06-24
- Published: 2020-01-02
- Granted: 2021-08-03
- Earliest claimed: 2018-06-27
- Assignees: Niantic, Inc.
- Applicants: Niantic, Inc.
- Inventors: Peter Turner; Jaime Ivan Cervantes; Si ying Diana Hu
- Web page: https://patentgrep.com/patent/US11077365B2

## CPC

- A63F 13/358: Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
- A63F 13/332: using wireless networks, e.g. cellular phone networks
- A63F 13/34: using peer-to-peer connections
- A63F 13/65: automatically by game devices or servers from real world data, e.g. measurement in live racing competition
- H04L 67/104: Peer-to-peer [P2P] networks
- H04L 67/131: Protocols for games, networked simulations or virtual reality
- H04L 67/63: Routing a service request depending on the request content or context
- H04L 69/22: Parsing or analysis of headers
- A63F 13/216: using geographical information, e.g. location of the game device or player using GPS
- A63F 2300/534: for network load management, e.g. bandwidth optimization, latency reduction
- H04W 88/08: Access point devices
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Systems and methods for providing a shared augmented reality environment are provided. In particular, the latency of communication is reduced by using a peer-to-peer protocol to determine where to send datagrams. Datagrams describe actions that occur within the shared augmented reality environment, and the processing of datagrams is split between an intermediary node of a communications network (e.g., a cell tower) and a server. As a result, the intermediary node may provide updates to a local state of a client device when a datagram is labelled peer-to-peer, and otherwise provides updates to the master state on the server. This may reduce the latency of communication and allow users of the location-based parallel reality game to see actions occur more quickly in the shared augmented reality environment.

## Claims

### Claim 1

A method, comprising:
receiving, at a cell tower, a datagram from a sending client device that is connected to a shared augmented reality environment, the datagram including data regarding an action in the shared augmented reality environment and an indicator of whether the datagram is peer-to-peer;
determining whether the datagram is peer-to-peer based on the indicator;
responsive to determining that the datagram is peer-to-peer, sending the datagram to one or more target client devices connected to the shared augmented reality environment to update a local state of the shared augmented reality environment at the one or more target client devices in view of the action; and
responsive to determining that the datagram is not peer-to-peer, sending the datagram to a server to update a master state of the shared augmented reality environment at the server in view of the action.

### Claim 2 (depends on 1)

The method of claim 1, wherein the indicator is included in a header portion of the datagram.

### Claim 3 (depends on 1)

The method of claim 1, wherein determining whether the datagram is peer-to-peer comprises:
determining, based on the indicator, that the datagram should be sent peer-to-peer;
identifying a specific target client device based on a header of the datagram;
determining whether the specific target client device is currently connected to the cell tower; and
responsive to the specific client device currently being connected to the cell tower, determining that the datagram is peer-to-peer.

### Claim 4 (depends on 3)

The method of claim 3, wherein the datagram is sent to the server responsive to determining the specific target client device is not currently connected to the cell tower.

### Claim 5 (depends on 1)

The method of claim 1, wherein the local state of the shared augmented reality environment is updated in view of the action with a latency between 1 millisecond and 20 milliseconds.

### Claim 6 (depends on 1)

The method of claim 1, wherein sending the datagram to one or more target client devices comprises:
identifying client devices currently connected to the cell tower and the shared augmented reality environment; and
sending the datagram to the identified client devices to update each client device's local state of the shared augmented reality environment in view of the action.

### Claim 7 (depends on 1)

The method of claim 1, wherein, responsive to determining that the datagram is peer-to-peer, the datagram is also sent to the server.

### Claim 8 (depends on 1)

The method of claim 1, wherein determining whether the datagram is peer-to-peer comprises:
comparing the indicator to a list of indicators maintained by the cell tower; and
determining the datagram is peer-to-peer responsive to the indicator being included in the list of indicators.

### Claim 9 (depends on 8)

The method of claim 8, wherein the indicator identifies at least one of: an AR session, a user, a device, or a game account.

### Claim 10

A non-transitory computer-readable storage medium comprising instructions executable by a processor, the instructions comprising:
instructions for receiving, at a cell tower, a datagram from a sending client device that is connected to a shared augmented reality environment, the datagram including data regarding an action in the shared augmented reality environment and an indicator of whether the datagram is peer-to-peer;
instructions for determining whether the datagram is peer-to-peer based on the indicator;
responsive to determining that the datagram is peer-to-peer, instructions for sending the datagram to one or more target client devices connected to the shared augmented reality environment to update a local state of the shared augmented reality environment at the one or more target client devices in view of the action; and
responsive to determining that the datagram is not peer-to-peer, instructions for sending the datagram to a server to update a master state of the shared augmented reality environment at the server in view of the action.

### Claim 11 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the indicator is included in a header portion of the datagram.

### Claim 12 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein determining whether the datagram is peer-to-peer comprises:
determining, based on the indicator, that the datagram should be sent peer-to-peer;
identifying a specific target client device based on a header of the datagram;
determining whether the specific target client device is currently connected to the cell tower; and
responsive to the specific client device currently being connected to the cell tower, determining that the datagram is peer-to-peer.

### Claim 13 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the datagram is sent to the server responsive to determining the specific target client device is not currently connected to the cell tower.

### Claim 14 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the local state of the shared augmented reality environment at the target client device is updated in view of the action with a latency between 1 millisecond and 20 milliseconds.

### Claim 15 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein sending the datagram to one or more target client devices comprises:
identifying client devices currently connected to the cell tower and the shared augmented reality environment; and
sending the datagram to the identified client devices to update each client device's local state of the shared augmented reality environment in view of the action.

### Claim 16 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein, responsive to determining that the datagram is peer-to-peer, the datagram is also sent to the server.

### Claim 17 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein determining whether the datagram is peer-to-peer comprises:
comparing the indicator to a list of indicators maintained by the cell tower; and
determining the datagram is peer-to-peer responsive to the indicator being included in the list of indicators.

### Claim 18 (depends on 10)

The non-transitory computer-readable storage medium of claim 10, wherein the indicator identifies at least one of: an AR session, a user, a device, or a game account.

### Claim 19

A cell tower comprising:
a local data store storing a list of client devices connected to the cell tower; and
a routing module configured to perform operations comprising:
receiving a datagram addressed to a target client device, wherein the datagram includes data regarding an action in a shared augmented reality environment;
determining whether the target client device is in the list;
determining, responsive to the target client device being in the list, that the datagram is peer-to-peer;
responsive to determining that the datagram is peer-to-peer, sending the datagram to the target client device to update a local state of the shared augmented reality environment at the target client device in view of the action; and
responsive to determining that the datagram is not peer-to-peer, sending the datagram to a server to update a master state of the shared augmented reality environment at the server in view of the action.

### Claim 20 (depends on 19)

The cell tower of claim 19, wherein the datagram further includes an indicator of whether the datagram is peer-to-peer in a header portion of the datagram, and wherein determining that the datagram is peer-to-peer is further responsive to the indicator.
