IP Library Granted Patent US 11,497,995
Granted Patent B2
US 11,497,995 · App. 17/325,137 · Granted Nov 15, 2022

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,497,995
App. No.
17/325,137
Granted
Nov 15, 2022
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 network node, 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 other 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 other 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 other client device based on a header of the datagram;

determining whether the specific other client device is currently connected to the network node; and

responsive to the specific client device currently being connected to the network node, 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 other client device is not currently connected to the network node.

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 other client devices comprises:

identifying client devices currently connected to the network node 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 network node; 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 network node, 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 other 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 other 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 the instructions for determining whether the datagram is peer-to-peer comprise:

instructions for determining, based on the indicator, that the datagram should be sent peer-to-peer;

instructions for identifying a specific other client device based on a header of the datagram;

instructions for determining whether the specific other client device is currently connected to the network node; and

responsive to the specific client device currently being connected to the network node, instructions for determining that the datagram is peer-to-peer.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the datagram is sent to the server responsive to determining the specific other client device is not currently connected to the network node.

14. The non-transitory computer-readable storage medium of claim 10 , wherein the local state of the shared augmented reality environment at the one or more other client devices 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 the instructions for sending the datagram to one or more other client devices comprise:

instructions for identifying client devices currently connected to the network node and the shared augmented reality environment; and

instructions for 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 the instructions for determining whether the datagram is peer-to-peer comprise:

instructions for comparing the indicator to a list of indicators maintained by the network node; and

instructions for 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 network node comprising:

a local data store storing a list of client devices connected to the network node; and

a routing module configured to perform operations comprising:

receiving a datagram addressed to a client device, wherein the datagram includes data regarding an action in a shared augmented reality environment;

determining whether the client device is in the list;

determining, responsive to the 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 client device to update a local state of the shared augmented reality environment at the 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 network node 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 13, 2022
From: TURNER, PETER; CERVANTES, JAIME IVAN; HU, SI YING DIANA
To: NIANTIC, INC.
Reel/Frame 058652/0290 →
Continuity (3)
Continuation 16450904 · Jun 24, 2019
Provisional Application 62690578 · Jun 27, 2018
Related Publication 20210268376A1 · Sep 2, 2021