IP Library Granted Patent US 11,077,365
Granted Patent B2
US 11,077,365 · App. 16/450,904 · Granted Aug 3, 2021

Low latency datagram-responsive computer network protocol

Inventors: Peter Turner (Redwood City, CA); Jaime Ivan Cervantes (Sunnyvale, CA); Si ying Diana Hu (Mountain View, CA)
Assignee: Niantic, Inc.
A63F13/358A63F13/332A63F13/34A63F2300/534
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,077,365
App. No.
16/450,904
Granted
Aug 3, 2021
Kind
B2
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 (51)

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.

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

3. 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.

4. 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.

5. 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.

6. 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.

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

8. 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.

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

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.

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

12. 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.

13. 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.

14. 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.

15. 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.

16. 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.

17. 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.

18. 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.

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.

20. 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.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2025
From: NIANTIC, INC.
To: NIANTIC SPATIAL, INC.
Reel/Frame 071555/0833 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2020
From: TURNER, PETER; CERVANTES, JAIME IVAN; HU, SI YING DIANA
To: NIANTIC, INC.
Reel/Frame 051520/0620 →
Continuity (2)
Provisional Application 62690578 · Jun 27, 2018
Related Publication 20200001180A1 · Jan 2, 2020