US 11,909,517 B2
Systems and methods for secure, low bandwidth replicated virtual worlds for shared space computing
David A. Smith, Cary, NC (US); Brian Upton, Los Angeles, CA (US); Bert Freudenberg, Los Angeles, CA (US); Aran Lunzer, West Hollywood, CA (US); Yoshiki Ohshima, Valley Village, CA (US); and Anselm Eickhoff, Berlin (DE)
Assigned to CEO VISION, INC, Cary, NC (US)
Filed by CEO Vision, Inc, Cary, NC (US)
Filed on May 26, 2020, as Appl. No. 16/883,804.
Claims priority of provisional application 62/854,232, filed on May 29, 2019.
Prior Publication US 2020/0382232 A1, Dec. 3, 2020
Int. Cl. H04J 3/06 (2006.01)
CPC H04J 3/0667 (2013.01) [H04J 3/0664 (2013.01); H04J 3/0673 (2013.01); H04J 3/0697 (2013.01)] 11 Claims
OG exemplary drawing
 
1. A method for reducing latency in a shared virtual environment comprising:
replicating islands including a plurality of virtual objects across at least two local machines, wherein the replication is timing dependent, and the timing is controlled by heartbeat messages from a reflector, and wherein the virtual objects include a state and a behavior, and wherein the virtual objects publish events, subscribe to events and request future events;
wherein each replicated island receives an identical queue of messages, wherein each message includes an action for an object of the plurality of objects, a timing for each of the messages and a sequence for each of the messages, and wherein the messages are deterministically executed on each of the at least two local machines in order of the sequence including and up to the timing equal to the heartbeat message thereby ensuring exact mirroring of the replicated islands across the at least two local machines;
determining if a dominant local machine exists among the at least two local machines, wherein the dominant local machine is a local machine responsible for most activity within the replicate islands;
determining a digital distance between each local machine and prospective reflector locations, where the digital distance is a latency value;
receiving a reflector relocation request;
selecting a reflector location with the lowest digital distance to a dominant local machine when the dominant local machine is present; and
selecting a reflector location to minimize digital distance for all local machines while ensuring no digital distance is above a threshold for any given local machine when no dominant machine is present.