Location-based content sharing via tethering

JP7628199B2Active Publication Date: 2025-02-07NANZ MOBILE LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024019944
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-05-07
Filing Date
2024-02-14
Publication Date
2025-02-07
Estimated Expiration
2041-05-06

Smart Images

  • Figure 0007628199000001
    Figure 0007628199000001
  • Figure 0007628199000002
    Figure 0007628199000002
  • Figure 0007628199000003
    Figure 0007628199000003
Patent Text Reader

Abstract

To provide a method for sharing digital content.SOLUTION: The method comprises: determining whether a first computing device is physically located within a defined geographical area; if the first computing device is physically located within the defined geographical area, providing access of shareable digital content to the first computing device; instantiating a tethering object associated with the digital content, the tethering object including at least a first endpoint at the first computing device and a second endpoint at a second computing device remote from the first computing device; and providing access of at least a portion of the shareable digital content, via the tethering object, to the second endpoint.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] TECHNICAL FIELD This disclosure relates to location-based content sharing via tethering.

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Provisional Application No. 63 / 021,282, filed May 7, 2020, the disclosure of which is incorporated herein by reference in its entirety. [Background technology]

[0003] This section provides background information related to the present disclosure that is not necessarily prior art.

[0004] Various computing devices may be communicatively coupled to one another by tethered connections. In some examples, tethered connections between computing devices may be established using a wired connection (e.g., a USB cable) or a wireless connection. When computing devices are tethered by a wireless connection, software on the computing devices may enable one of the computing devices (e.g., a mobile phone) to act as a hotspot (e.g., a modem) for the other connected computing device (e.g., a laptop). Generally, wireless tethered connections require the connected computing devices to be in the same (physically) geolocation to ensure that a stable wireless connection (e.g., 802.11) is established and maintained. Summary of the Invention [Means for solving the problem]

[0005] This section provides a general overview of the disclosure and is not a comprehensive disclosure of its complete scope or all of its features.

[0006] According to one aspect of the present disclosure, a system for sharing digital content is presented. The system includes one or more computer digital content servers, a first computing device in communication with the one or more computer digital content servers, and a second computing device in communication with the first computing device and / or the one or more computer digital content servers. The second computing device is remote from the first computing device. The one or more computer digital content servers are configured to determine whether the first computing device is physically located within a defined geographic area based on location sensor data, and provide the first computing device with access to the shareable digital content if the first computing device is physically located within the defined geographic area. The first computing device, the second computing device, and / or the one or more computer digital content servers are configured to instantiate a tethering object associated with the shareable digital content. The tethering object includes a first endpoint at the first computing device and a second endpoint at the second computing device. The second computing device is configured to receive at least a portion of the shareable digital content at a second endpoint via the tethering object.

[0007] According to another aspect of the present disclosure, a computer-implemented method executed by one or more computer digital content servers for sharing digital content is disclosed. The method includes determining whether a first computing device is physically located within or proximate to a specified geographic area based on the location sensor data, providing access of the shareable digital content to the first computing device if the first computing device is physically located within or proximate to the specified geographic area, and instantiating a tethering object associated with the shareable digital content. The tethering object includes at least a first endpoint at the first computing device and a second endpoint at a second computing device remote from the first computing device. The method further includes providing access of at least a portion of the shareable digital content to the second endpoint at the second computing device remote from the first computing device via the tethering object.

[0008] According to yet another aspect of the present disclosure, a non-transitory computer-readable medium is disclosed that includes computer-executable instructions. The computer-executable instructions are executable by a processor to determine whether a first computing device is physically located within or proximate to a geographic location based on location sensor data, provide access of the shareable digital content to the first computing device if the first computing device is physically located within the defined geographic area, and instantiate a tethering object associated with the shareable digital content. The tethering object includes at least a first endpoint at the first computing device and a second endpoint at a second computing device remote from the first computing device. The computer-executable instructions are further executable by the processor to provide access of at least a portion of the shareable digital content to the second endpoint at the second computing device remote from the first computing device via the tethering object.

[0009] Further aspects and fields of applicability will become apparent from the description provided herein. It should be understood that the various aspects of the present disclosure can be implemented individually or in combination with one or more other aspects. It should also be understood that the description and specific examples herein are for illustrative purposes only and are not intended to limit the scope of the present disclosure. [Brief description of the drawings]

[0010] The drawings described herein are for illustrative purposes only of selected embodiments and not all possible implementations, and are not intended to limit the scope of the present disclosure. [Figure 1] 1 is a block diagram of a computer-implemented method for sharing location-based digital content, according to one exemplary embodiment of the present disclosure. [Diagram 2] FIG. 1 is a block diagram of a system including a host computing device and a remote computing device forming a tethering connection for sharing location-based digital content, according to another example embodiment. [Diagram 3] FIG. 1 is a diagram of a gaming system including a host computing device, a remote computing device, and a computer server for sharing location-based digital gaming content according to yet another exemplary embodiment. [Figure 4] FIG. 13 is a diagram of a circular halo centered on a host computing device, according to yet another illustrative embodiment. [Diagram 5] FIG. 13 is a diagram of a halo formed from two joined bubbles, each centered on a different host computing device, according to another example embodiment. [Figure 6] FIG. 13 is a diagram of three overlapping elliptical halos, each extending around a different host computing device, according to yet another example embodiment. [Figure 7] FIG. 13 is a diagram of two separate non-overlapping halos corresponding to rival parties, according to another example embodiment. [Figure 8] 4 is a block diagram of an exemplary computer server according to yet another exemplary embodiment. [Figure 9] 4 is a block diagram of an exemplary computing device according to another illustrative embodiment.

[0011] Corresponding reference characters indicate corresponding (not necessarily identical) parts and / or features throughout the several views of the drawings. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0012] Exemplary embodiments are provided so that the present disclosure will be thorough and fully convey the scope of the present disclosure to those skilled in the art. Numerous specific details, such as examples of specific components, devices, and methods, are described to provide a thorough understanding of the embodiments of the present disclosure. It will be apparent to those skilled in the art that specific details need not be used, that the exemplary embodiments can be embodied in many different forms, and neither should be considered as limiting the scope of the present disclosure. In some exemplary embodiments, well-known processes, well-known device structures, and well-known technologies are not described in detail.

[0013] The terms used herein are merely for the purpose of describing certain exemplary embodiments and are not intended to be limiting. As used herein, singular forms such as "a," "an," and "the" may be intended to include the plural unless the context clearly indicates otherwise. Terms such as "comprises," "comprising," "including," and "having" are inclusive and thus specify the presence of a stated feature, integer value, step, operation, element, and / or component, but do not exclude the presence or addition of one or more other features, integer values, steps, operations, elements, components, and / or groups thereof. The steps, processes, and operations of the methodologies described herein should not be construed as necessarily requiring their performance in the particular order described or illustrated, unless expressly identified as such. It should also be understood that additional or alternative steps may be employed.

[0014] Terms such as first, second, third, etc. may be used herein to describe various elements, components, regions, layers, and / or sections, but these elements, components, regions, layers, and / or sections are not limited by these terms. These terms may be used only to distinguish one element, component, region, layer, or section from another element, component, region, layer, or section. Terms such as "first", "second", and other number terms used herein do not imply a sequence or order unless clearly indicated by the context. Thus, a first element, component, region, layer, or section described below can be referred to as a second element, component, region, layer, or section without departing from the teachings of the exemplary embodiments.

[0015] Spatial relative terms, such as "inner," "outer," "beneath," "below," "lower," "above," "upper," and the like, may be used herein for ease of description to describe the relationship of one element or feature to another element or elements or features illustrated in the drawings. Spatial relative terms may be intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the drawings. For example, if a device in the drawings were turned upside down, the device would appear to be in a substantially vertical position relative to the device. In this context, an element described as "below" or "directly below" another element or feature is oriented "above" that other element or feature. Thus, the exemplary term "below" can encompass both an above and below orientation. A device may be oriented differently (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly.

[0016] Example embodiments are now more fully described with reference to the accompanying drawings.

[0017] A computer-implemented method for sharing digital content among multiple computing devices according to one exemplary embodiment of the present disclosure is shown in FIG. 1 and generally designated by reference numeral 100. The computer-implemented method 100 begins at block 102 by determining whether the host computing device is physically located within or proximate to a specified geographic area. If no at block 102, the method ends. In other examples, the method 100 may optionally return to block 102 (e.g., after a delay). If yes at block 102, the method 100 proceeds to block 104 and provides the host computing device with access to the shareable digital content if the host computing device is physically located within or proximate to the specified geographic area. The method 100 further includes instantiating a tethering object associated with the shareable digital content at block 106, and providing the remote computing device with access to at least a portion of the shareable digital content via the tethering object at block 108.

[0018] In such an example, even though the remote computing device may be located outside the geographic area or distal to the geographic location, the remote computing device may gain access to some (or all) of the digital content involving the host computing device. For example, the digital content may be bound to a geographic area or location, and a computing device (e.g., a host computing device) may access the content only if the computing device is within the geographic area. In such an example, once the host computing device is within the geographic area, a tethering object may be established, thereby enabling a remote computing device located outside the geographic area to access some (or all) of the location-based digital content. Thus, the host computing device may act as a proxy for content delivery to the remote computing device.

[0019] As described above, digital content is shared via tethering objects. In such examples, the tethering object comprises a communication channel between multiple computing devices. In some examples, multiple tethering objects may be created between various computing devices. For example, one or more tethering objects may be created between a host computing device and a remote computing device, between a host computing device and another remote computing device, between a host computing device and one or more computer servers, between a remote computing device and one or more computer servers, etc. In such examples, the tethering object may represent direct communication between the host computing device and the remote computing device, and / or indirect communication between the host computing device and the remote computing device using one or more computer servers. For example, the tethering object may represent one or more TCP / IP, UDP / IP, HTTP, HTTPS, or other network protocol connections between two devices, or between three or more devices. Such network connections may include direct peer-to-peer connections or connections through intermediary devices (e.g., servers, hubs, cloud services, etc.).

[0020] Each tethering object may further include one or more software objects (e.g., software applications) stored in one or more non-transitory computer-readable memories of the computing device. For example, each tethering object may include executable software instructions and corresponding data structures. In such an example, each tethering object or a portion thereof may be instantiated in a non-transitory computer-readable memory of any computing device in the system, such as a host computing device, a remote computing device, or one or more computer servers. Thus, one or more tethering objects may be from a tethering class object that includes data members, methods, or other object-oriented features.

[0021] Each tethering object may also include two or more endpoints for establishing a communication channel between two computing devices, or between three or more computing devices. For example, if a tethering object is established between a host computing device and a remote computing device, the tethering object may include one endpoint at the host computing device and another endpoint at the remote computing device. In this example, access to the digital content is provided via the endpoints at the computing devices. It should be appreciated that such tethering objects provide technical advantages because a single tethering object enables management of a collective communication endpoint with location-based or location-bound content.

[0022] In some examples, tethering objects may be instantiated based on different tether classes: for example, a host computing device may instantiate a host tethering object to manage the host computing device's responsibilities for a communication channel, a remote computing device may instantiate a remote tethering object to manage the remote computing device's responsibilities, one or more computer servers may instantiate a server tethering object to coordinate between associated host and / or remote tethering objects, etc.

[0023] Digital content may be bound to a defined geographic area, geographic location, or other location-based feature. For example, digital content bound to a defined geographic area may be identified by, for example, one or more computer servers, host computing devices, remote computing devices, etc. In such an example, the digital content may be accessed by a host computing device only if the host computing device is physically located within the defined geographic area or in proximity to a corresponding location (e.g., a real-world location). It should be understood that a geographic area may be considered a location if the area is small enough while accounting for errors in the location sensor data.

[0024] The host computing device may be determined to be physically located within the defined geographic area by using one or more sensors. For example, the host computing device may include one or more sensors. In such an example, determining whether the host computing device is physically located within the defined geographic area may include detecting the presence or absence of a geographic area using one or more sensors of the host computing device (e.g., one or more sensors mounted on the computing device, GPS, SLAM, vSLA, etc.). The host computing device may be based on data provided by a GPS receiver (e.g., GPS, IMU, etc.). Additionally and / or alternatively, one or more sensors external to the host computing device may be used to determine whether the host computing device is physically located within the defined geographic area. For example, one or more sensors may be positioned within and / or around the defined geographic area to track, observe, identify, etc. the host computing device (and / or other computing devices).

[0025] In some examples, access to the digital content is provided when the tethering object is instantiated. For example, the host computing device may be able to access the digital content only after the tethering object is instantiated and while it is within a specified geographic area. In such examples, the host computing device and the remote computing device may gain access to the digital content at approximately the same time. In other examples, the host computing device may gain access to the digital content after entering the specified geographic area. In such examples, the host computing device may gain access to the digital content before the tethering object is instantiated (and thus before the remote computing device gains access to the digital content).

[0026] Access to the digital content may be provided in different ways. For example, one or more computer servers may transmit the digital content (or a portion thereof) to the host computing device and / or the remote computing device. In some examples, the digital content may be transmitted (e.g., from one endpoint to another) via one or more established tethering objects as described herein. In other examples, some or all of the digital content may be stored on the host computing device (e.g., stored in a non-transitory computer-readable memory of the host computing device) and / or stored on the remote computing device (e.g., stored in a non-transitory computer-readable memory of the remote computing device). For example, when one or more conditions are met (e.g., the host computing device is within a defined geographic area, the tethering object is established, etc.), the stored digital content (or a portion thereof) may be accessible and provided to the tethering object's endpoint on the computing device. In such examples, the stored digital content may be unlocked, decrypted, etc., when one or more conditions are met. In such examples, the shareable digital content may be transmitted, stored, etc., as, for example, binary files, JSON data, XML data, and / or other suitable data formats compatible with transmission over a network (e.g., a cellular network, a packet-switched network, etc.).

[0027] The computer-implemented methods disclosed herein may be implemented by any suitable system, including any one of the systems disclosed herein. For example, FIG. 2 illustrates a system 200 including a computer digital content server 202, a host computing device 204 (e.g., a mobile phone, a smart phone, a tablet, a gaming console, etc.), and a remote computing device 206 (e.g., a smart phone, a tablet, a gaming console, a computer, etc.). In the example of FIG. 2, the remote computing device 206 is remote from the host computing device 204. As illustrated, the computing devices 204, 206 and the computer server 202 are in communication with each other, for example, via a communication network 208. Although only one computer server 202 is shown, it is understood that the system 200 may include two or more computer servers, if desired. It will be apparent that the above may include a server.

[0028] In the example of FIG. 2, the computer digital content server 202 or another similarly capable device determines whether the host computing device 204 is physically located within the defined geographic area 210 based on location sensor data, as described above. If the host computing device 204 is located within the defined geographic area 210, the computer server 202 provides access to the digital content to the host computing device 204. As described above, this content may be bound to the defined geographic area 210. For example, the digital content may be stored in a database or another addressing system that allows access to the digital content using location information. The database may be configured to store relevant digital content based on S2 Cell ID, latitude-longitude pairs, Google Plus Code, or other location information. The server 202 may search for the digital content by submitting the location information to the database, which in turn may respond with a result set that includes the digital content or a link to the digital content.

[0029] The computer digital content server 202 may receive data to determine whether the host computing device 204 is within the defined geographic area 210, as described above. For example, the host computing device 204 may determine its physical location based on data from any of its on-board sensors 212 and then transmit that physical location to the computer server 202 to determine whether the device 204 is within the defined geographic area 210. In other embodiments, the computer server 202 may determine the physical location of the host computing device 204 (and whether it is within the defined geographic area 210) based on data received from the sensors 212, data received from any other sensors 214 external to the device 204 and near the defined geographic area 210, etc., as described above.

[0030] Any one of the computing devices may instantiate a tethering object associated with the digital content. For example, the computer server 202, the host computing device 204, and / or the remote computing device 206 may instantiate the tethering object. For example, the tethering object may include one endpoint at the host computing device 204 and another endpoint at the remote computing device 206.

[0031] The remote computing device 206 receives at least a portion of the digital content at its endpoint via the tethering object. For example, the host computing device 204 may receive at least a portion of the digital content when it is located within the defined geographic area 210 and then transmit the received digital content (or a portion thereof) to the endpoint of the remote computing device 206 via the tethering object. In another example, the computer server 202 may transmit the digital content (or a portion thereof) to the endpoint of the remote computing device 206 via the tethering object. In yet another example, the digital content (or a portion thereof) may be stored on the remote computing device 206 as described above, and the remote computing device 206 may receive the digital content (at its endpoint) by accessing the stored content.

[0032] In some examples, any one of the computing devices (including the computer server 202) may send a tethering request to initiate the tethering process. For example, the host computing device 204 may send a tethering request to the remote computing device 206, the computer server 202, and / or another computing device in the system 200. Additionally and / or alternatively, the remote computing device 206 may send a tethering request to the host computing device 204, the computer server 202, and / or another computing device in the system 200. In other examples, the computer server 202 may send a tethering request to one or both of the computing devices 204, 206, and / or another computing device in the system 200.

[0033] The remote computing device 206 may be required to satisfy one or more conditions before it can receive the digital content (or a portion thereof). In some examples, the remote computing device 206 may receive the digital content (or a portion thereof) only if the virtual and / or physical location of the remote computing device 206 is within the defined geographic area 210. For example, when a tethering object is established, the remote computing device 206 may have a virtual presence of being within the defined geographic area 210 along with the host computing device 204. In such examples, the remote computing device 206 may receive the digital content because a remote user of the remote computing device 206 is virtually located within the defined geographic area 210. In other examples, the remote computing device 206 may be required to be physically located within a certain distance from the host computing device 204.

[0034] The geographic area 210 and / or other geographic areas disclosed herein may be defined by a variety of different factors. For example, as described further below, the geographic area may be defined by a set of coordinates that form a geofence area around a particular landmark. In some examples, the geographic area may be an absolute (e.g., fixed) geographic area. In other examples, the geographic area may be a relative geographic area that may change over time (e.g., changes shape, radius, location, etc.) based on a particular host computing device, the location of a particular host computing device, and / or the computing devices involved, the number of computing devices involved, etc. For example, the geographic area 210 may be a fixed geofence area as shown in FIG. 2, a relative geofence (e.g., a halo) that moves and remains centered around the host computing device 204, etc.

[0035] 2, the computer digital content server 202 may act as a hub for communication between the computing devices 204, 206. In other examples where multiple remote computing devices and / or multiple host computing devices are involved in a tethering event, a hub-and-spoke networking topology may be implemented. Optionally, one or more other tethering topologies may also be implemented, including, for example, a star topology, a many-to-many topology, a ring topology, a mesh topology, a linear chain topology, a bus topology, a fully connected topology, a tree topology, etc. In other examples, the computing devices 204, 206 may communicate directly through a tethering object, as described above, without requiring that the communication pass through the computer server 202.

[0036] The location-based digital content sharing features disclosed herein may be applicable to a variety of different applications. For example, as described further below, the location-based digital content sharing features may be useful in computer-based gaming applications and / or other augmented reality applications. Although the following description describes location-based digital content sharing features for computer-based gaming applications, these features may also be used in other applications, as described further below. It will become apparent that it may be used in a variety of other suitable applications.

[0037] 3 illustrates a gaming system 300 including a computer server 302, a host computing device 304 (e.g., a smartphone), and a remote computing device 306 (e.g., another smartphone). The computer server 302, the host computing device 304, and the remote computing device 306 may include similar features and perform similar functions as the computer server 202, the host computing device 204, and the remote computing device 206 of FIG. 2. The multiple devices (including the computer server 302) may share location-based digital content by one or more tethered objects, as described herein. In the particular example of FIG. 3, the digital content is augmented reality (AR) content and / or gaming content, depicted as a castle and a dragon (collectively referenced digital content 312).

[0038] The computer server 302 may manage the digital content 312. For example, as shown in FIG. 3, the computer server 302 may include a tethering server, a game server, a location-based content database / server, etc. In such an example, the tethering server manages one or more tethering objects between computing devices (if used), the game server provides, manages, etc. the games, and the content database / server stores and / or manages the digital content 312. In the particular example of FIG. 3, the computing devices 304, 306 are communicatively coupled (e.g., via a communication network, etc.) to the computer server 302, as indicated by arrows 314a, 314b. The computer servers 302 may all be configured to run on one server for all services or on multiple servers. Additionally, each computer server (e.g., the game server, the tethering server, and the location-based content database / server) may include multiple computing devices. These servers may be in one location, or multiple locations, or one or more of the servers may use one or both of the mobile devices as a hybrid configuration.

[0039] 3, the computer server 302 may act as a hub for communications between the computing devices 304, 306. In such an example, various tethering topologies may be used, as described above. Alternatively, the computing devices 304, 306 may communicate directly through the communication channel of the tethering object, without requiring the communications to pass through any one of the computer servers 302.

[0040] 3, the computing devices 304, 306 are mobile computing devices, such as smartphones. In some examples, one or both of the computing devices 304, 306 may be another suitable mobile computing device, such as a tablet, laptop, mobile gaming console, etc. In other examples, one or both of the computing devices 304, 306 may be a stationary computing device. For example, the remote computing device 306 may be a stationary desktop computing device located in a home.

[0041] In the example of Figure 3, the digital content 312 is bound to a defined geographic area or location in the real world. In such an example, the host computing device 304 can access the digital content 312 only when its physical (real-world) location is within the defined geographic area and / or after any authorization, authentication, etc. issues have been resolved. For example, the defined geographic area may be a city block, as indicated by the shaded portion of Figure 3. In such an example, the digital content 312 (e.g., the dragon and castle) is anchored or otherwise bound to this geographic area. do.

[0042] When the host computing device 304 enters the geographic area, the game application on the host computing device 304 renders (e.g., presents, displays, etc.) the digital content 312 to the host player 308, as shown in Figure 3. At this point, the host player 308 can engage with the digital content 312 as desired. For example, the host player 308 can interact with the dragon (e.g., via the game application), explore the area in and around the castle, etc.

[0043] In some examples, a game may require multiple players. For example, a game may require multiple cooperating players to overcome a game challenge, interact with the digital content 312, etc. In such examples, a remote player 310 may participate in the engagement by relying on another tethering object, as described herein. For example, a remote computing device 306 may receive an invitation to join a party from the host computing device 304 and / or computer server 302, send a request to join a party to the host computing device 304 and / or computer server 302, etc.

[0044] Any one of the host computing device 304, the remote computing device 306, and / or the computer server 302 may instantiate a tethering object that regulates the behavior of how the computing devices 304, 306 participate in location-based content. In the particular example of FIG. 3, the instantiated tethering object is represented by dashed line 314c. In such an example, one endpoint of the tethering object 314c is at the host computing device 304 and another endpoint of the tethering object 314c is at the remote computing device 306. Thus, the tethering object 314c may be a direct connection between the computing devices 304, 306. In other examples, one or more tethering objects may be established between the computing devices 304, 306 and a tethering server of the computer server 302. Thus, the tethering object may form an indirect connection between the computing devices 304, 306. In such an example, at least one of the endpoints of the tethering object may be located at the tethering server.

[0045] Upon instantiating, creating, activating, etc., the tethering object 314c, the remote computing device 306 may engage with the location-bound content 312. For example, the content database / server and / or the host computing device 304 may transmit the digital content 312 to the remote computing device 306 for rendering (e.g., presenting, displaying, etc.) to the remote player 310. In some embodiments, the remote player 310 passively participates by watching the host player 308 engage with the digital content 312. This may be accomplished by a streaming service, such as Twitch.TV and / or another suitable streaming service. In some examples, the streaming and / or passive remote player 310 may change the behavior of one or more tethering objects, a defined geographic area, etc.

[0046] Another option for the remote player 310 is to play the game as a permanently tethered player and stream the events on a media service such as twitch.tv. The most common approach is to tether a remote player 310 to a game. As a result, a remote player 310 may allow other players from its streaming media audience to passively participate in the game by watching the ongoing gameplay. Audience players may be allowed to actively participate in the game by changing the behavior of the tether or by commands that modify the tether slightly, such as donations and / or halo shape distance. Additionally, a remote player 310 may invite friends or audience members to join the game via the tether, or the remote player 310 may tether directly to the streaming player, thereby allowing other players to be tethered to the remote player's location rather than directly to the host player 308. This approach allows for daisy-chaining of tethers, thereby allowing more players to be tethered and reach greater distances away from the host player 308. In an exemplary embodiment, the tether object includes rules and / or settings for controlling these types of daisy chain tethers, and / or there may be an associated monetary or life cost in game currency, as well as other player / character requirements such as level and account type. As an example, the length or number of links in a daisy chain tether may be proportional to the number of audience members participating in the tether. To mitigate abuse, the tether length may be adjusted such that more members are required to increase the length. To double the length of the tether, perhaps 10 members may be required, but to further double the length of the tether, an additional 100 members may be required. Other variations are possible, all of which are considered to be within the scope of the disclosed and claimed subject matter.

[0047] In other embodiments, the remote player 310 actively participates in the digital content 312 along with the host player 308 (and other host and / or remote players). In such examples, the game server of the computer server 302 and / or another server may provide concurrent game content information to the host player 308, the remote player 310, and / or other players actively (or passively) participating in the digital content 312.

[0048] While the example of FIG. 3 is described and illustrated as having only two players, it should be understood that the system 300 may be implemented with more than two players. For example, in some cases, access to the location-based content 312 via the tethering object may be available to a party of game players, such as three, six, nine, fifteen, twenty, etc. players, with at least one of the players being the host player. In such cases, a single tethering object may include a comparable number of endpoints to facilitate interaction between the players, or multiple tethering objects may be instantiated to facilitate interaction as desired. Given that the tethering object is associated with game content, it is contemplated that a more preferred embodiment would employ a minimum number of tethers (e.g., one) to support a particular interaction with the location-based content.

[0049] As discussed above, the digital content 312 may be bound to a defined geographic area in the real world. For example, the geographic area may be defined by a set of coordinates that form a geofence area. In such an example, the content database and / or server may store content, such as the digital content 312, based on location coordinates (e.g., a two-dimensional vector including a longitude coordinate value and a latitude coordinate value). In other examples, other location coordinates may be used, including, for example, a single coordinate value (e.g., a one-dimensional vector), three or more coordinate values. In some examples, the single coordinate value may be implemented using an S2 geometry implementation that uses a Hilbert curve to transform a sphere to a linear coordinate system, and the three or more coordinate values ​​may include a longitude coordinate value, a latitude coordinate value, an elevation coordinate value, an altitude coordinate value, a time value, a weather value, a temperature value, a terrain value, or an attribute. may include.

[0050] Tethered objects may be subject to interference from external factors such as weather, temperature, season, traffic congestion (vehicles, network, people, etc.), or distance between the host player and the tethered player. Interference may be real or simulated, and / or destructive or constructive. For example, if there is a winter storm outside, or temperatures below freezing, the tethered object halo may be made larger or its capabilities altered by certain factors regarding the freeze wizard. At the same time, weather effects may negatively affect the fire wizard. Another example of using tethered interference to affect gameplay is to have destructive interference for the game and all players. For example, to adapt to different conditions and to encourage desirable player behavior, contextual factors may destructively interfere with tethered objects during quarantine, reducing the risk of players being exposed to extreme weather or other factors. For example, with respect to traffic flow, players may be allowed to tether only when they are outside of proximity range (e.g., more than 2 kilometers away). This may help ensure that players do not play in close proximity.

[0051] In some examples, the digital content 312 may be bound by other factors other than a defined geographic area. For example, multiple host players in a game may create their own content (e.g., dungeons, castles, etc.) in the same physical location (e.g., Santa Monica Pier, Disneyland, etc.). All of the content from the host players is indexed by the same location-based coordinates, but each host player's content may be differentiated by other factors to allow only certain players to access the particular host player's content. For example, these factors may include guild affiliation, player alignment, paid access, absolute time, relative time, passwords, etc. In such examples, the content database and / or server may utilize one or more indexing schemes to access the particular content, for example, using lookup tables, hash tables, lookup trees, and / or other indexing schemes capable of distinguishing non-coordinate information.

[0052] In some embodiments, more than one defined geographic area may be used. For example, more than one non-overlapping or overlapping geofenced area may be used. The non-overlapping restriction may provide an opportunity to monetize the geographic area as tethering becomes a commodity that can be bought and sold (e.g., owned, leased, rented, subscribed to, auctioned, etc.).

[0053] Additionally, one or more defined geographic areas may be bound to an absolute location, which may be defined by physical boundaries, virtual boundaries, or other limits associated with one or more geographic areas. For example, the defined geographic area of ​​FIG. 3 may be limited to the same city block, regardless of movement of the host computing device 304. In such an example, as soon as the host player leaves the bounded absolute location and enters a new location, a new bounded absolute location comes into existence and the tethered player may be instantly moved to the center of the bounded area or positioned alongside the hosting player. In other examples, the defined geographic area may be a relative location, for example, based on the digital content 312, the host computing device 304, the number of players involved, the type of players involved, etc. For example, the remote computing device 306 may be able to access the digital content 312 only if its virtual and / or physical location is within a defined geographic area (e.g., a halo) around the host computing device 304. In such an example, as the host player 308 moves, the halo around the host computing device 304 that defines the accessibility of the digital content 312 also moves. The center of the halo (e.g., center of mass, etc.) may be a location associated with the host computing device 304. In other examples, the center of the halo may be determined by the number and / or distribution of other players that are physically local to the host computing device 304, the number and / or distribution of remote players as they virtually move around the halo space.

[0054] The halo around the host computing device 304 may have any suitable size, shape, etc. For example, the shape of the halo may be based on an in-game effect (e.g., spell, device, artifact, charge, time, magic, etc.). In such examples, the halo may be circular or non-circular, such as a square, triangle, diamond, trapezoid, arbitrary shape, etc. In some examples, the halo shape may be three-dimensional (e.g., pyramid, cube, sphere, ellipsoid, etc.). In other examples, the halo shape may be circular or a shape made from S2 cells specified by a minimum cell level, a maximum cell level, and a maximum number of cells that can be used for the S2 cell representation of the halo shape centered at a location or based on the four closest cells of a specified level. The halo shape may be influenced by map features, such as, but not limited to, geographic features (e.g., hills, mountains, rivers, lakes, ponds, oceans, terrain slopes, etc.), man-made features (e.g., buildings, bridges, overpasses, roadways, sidewalks, etc.), and political features on the map (e.g., cities, states, borders, zip codes, etc.).

[0055] From another perspective, FIG. 3 can be considered to show a two-way tether between two players, one tethered to the other. In such an example, content from each location can be shared with the other location, and each player can be a host as well as a tethered player. This can be done with two tethers, or one two-way tether. It may or may not be desirable to share all of the virtual content, and such content may be limited such that only a portion of the content is shared based on environmental influences, such as, for example, weather, terrain, time of day, etc. It is contemplated that embodiments may use many hybrid combinations to facilitate different games and / or applications.

[0056] For example, Figure 4 illustrates a halo 402 that can be used in the system of Figure 3. In the particular example of Figure 4, the halo 402 has a circular (e.g., bubble) shape centered on a host computing device (e.g., represented by the host player 408). As illustrated, two remote computing devices (e.g., represented by remote players 410a, 410b) can engage in location-based shareable content (e.g., the digital content 312 of Figure 3) because their virtual locations (e.g., represented by virtual players 412a, 412b) are within the circular halo 402.

[0057] In the example of FIG. 4, the halo 402 may remain centered on the host player 408 even as the player 408 moves. In such an example, the remote players 410a, 410b may continue to engage with the content as long as their corresponding virtual players 412a, 412b remain within the halo 402 and the tethered objects remain intact. As the player 408 moves and the halo 402 moves with the player 408, the players 412a, 412b may reach the edge of the halo if they are standing in one place. In such an example, there may be a need to manage players that reach the edge of the halo. There are multiple ways to deal with tethered characters that reach the edge of the halo. For example, a character may be forced to walk automatically, a character may be pulled along the edge of the halo, a character may be killed by the edge of the halo and players may continue playing but their character will begin to take damage outside of the halo, a character may be instantly teleported next to the host player 408 upon contacting the edge of the halo, the halo may move the character away from the tethered character, and so on. Depending on the level of the host and the hosting character, the halo may deform to some degree, and when the halo's deformation reaches a maximum degree of deformation, it may start to pull on the tethered character, or the character may start to take damage from leaving the halo, or another method. These are just a few examples of what can happen at the edge of the halo, and there are many more possible combinations.

[0058] In some instances, not all players may see the same halo. Although both players 412a, 412b are tethered to the player 408, the halo to which they are each tethered may be of a different size or shape. This may be due to the level, or character of each player, or the class of character (e.g., wizard, fighter, berserker, thief, etc.), or the type of account the player has (e.g., paid, free, premium, etc.). Other examples that may result in different haloes include, but are not limited to, characters possessing different items in the game that change the halo (e.g., if a player has a wand that reaches, say, +30 in the game, the character may be able to travel 30 meters outside of the normal halo without any ill effects), a new halo may be calculated that takes into account all items and abilities for display, a player on a mount may extend the range that the character can move away from the host player 308, or the halo may simply be enlarged by a factor that depends on the level or type of mount.

[0059] In other examples, the halo parameters (e.g., shape, size, area, etc.) may depend on the number of host and / or remote players in the party. For example, FIG. 5 illustrates another halo 502 that can be used in the system of FIG. 3. In the particular example of FIG. 5, the halo 502 is a combination of two circular shapes (e.g., bubbles), with each circle centered on a different local computing device (e.g., a different host computing device). As illustrated, two remote computing devices (e.g., represented by remote players 510a, 510b) can engage in location-based shareable content (e.g., digital content 312 of FIG. 3) because their virtual locations (e.g., represented by virtual players 512a, 512b) are within the halo 502.

[0060] 5, one circle of the halo 502 may be centered on one host computing device (e.g., represented by host player 508a) and the other circle of the halo 502 may be centered on the other host computing device (e.g., represented by host player 508b). In other examples, one circle of the halo 502 may be centered on the host computing device (e.g., host player 508a) and the other circle of the halo 502 may be centered on another computing device (but not necessarily the host computing device) that is physically located at a geolocation. In such examples, the other computing device located at the geolocation may be locally tethered to the host computing device.

[0061] In other examples, the halo 502 may be circular, square, etc., centered around multiple host players.

[0062] Each circle (e.g., bubble) of the halo 502 may remain centered on its corresponding host player 508a, 508b (or another local player) even as the player 508a, 508b moves. Thus, the shape of the halo 502 may evolve as players move. In some examples, the halo 502 may split into two separate halos, each centered on its corresponding host player 508a, 508b (or another local player), as described above in connection with FIG. 4.

[0063] In the example of Figure 5, a single tethering object may be shared between the host computing devices (host players 508a, 508b) and the remote computing devices (remote players 510a, 510b). In such an example, all of the computing devices may receive the same or may receive portions of the same digital content (e.g., digital content 312 of Figure 3). In other examples, each remote player may also have access to more than one tethering object (e.g., from another host computing device) and may have access to more than one halo.

[0064] In some examples, separate halos may be used around different host computing devices. For example, FIG. 6 shows three elliptical halos 602a, 602b, 602c that can be used in the system of FIG. 3. In the example of FIG. 6, three host computing devices (e.g., represented by host players 608a, 608b, 608c) are located in the same geolocation and provide access to three separate halos 602a, 602b, 602c. As shown, two remote computing devices (e.g., represented by remote players 610a, 610b) are virtually represented as virtual players 612a, 612b. The remote computing devices can participate in location-based shareable content bound to one of the halos if their corresponding virtual players 612a, 612b are within that halo. For example, a remote player 610a can participate in location-based shareable content bound to the halos 602a, 602b because its corresponding virtual player 612a is within the halos 602a, 602b.

[0065] In yet other examples, the halos 602a, 602b, 602c may form a chain of connected (e.g., overlapping) halos. In such examples, each remote player 610a, 610b may be able to access content bound to all three areas defined by the three halos. In some examples, each remote player 610a, 610b may need to obtain permission to access content bound to all three areas. Each remote player 610a, 610b may virtually move from one halo to another. In such examples, a computer server (e.g., the game server of FIG. 3) may hand off remote players moving from one tethering object to another tethering object.

[0066] In some examples, separate halos may be positioned so that they do not overlap one another. For example, FIG. 7 illustrates two separate, non-overlapping halos 702a, 702b that may be used in the system of FIG. 3. In the example of FIG. 7, the halos 702a, 702b extend around host computing devices represented by host players 708a, 708b, respectively. As illustrated, one remote computing device (e.g., represented by remote player 710a) may participate in position-based shareable content bound to halo 702a because its virtual location (e.g., represented by virtual player 712a) is within halo 702a, and another remote computing device (e.g., represented by remote player 710b) may participate in position-based shareable content bound to halo 702b because its virtual location (e.g., represented by virtual player 712b) is within halo 702b.

[0067] In the example of Figure 7, two rival parties may be in the same area. For example, host player 708a and virtual remote player 712a may represent party A, and host player 708b and virtual remote player 712b may represent party B. In some examples, a tethered object from one party (e.g., party A) may be in the same area as the other party. (e.g., Party B). In such an example, the halos 702a, 702b may destructively interfere with each other, such as canceling each other out so that overlapping areas are removed from the halos 702a, 702b, as shown in FIG. 7. The tether may modify what the players can do in their respective halos when they deform to avoid the overlap. This may, for example, render it impossible to loot, or do any other action other than battling or retreating from the rival party, until there is no longer any deformation due to the clashing halo from the rival party.

[0068] 4-7, the halos positioned around the local (e.g., host) player may be considered as boundaries that confine the virtual movement of the remote players. Thus, the remote players may be virtually free to move within one of the halos and still have access to the shared content, but may not be allowed to cross the boundaries of the halo.

[0069] In some examples, a remote player may pay a cost (e.g., an in-game cost, a real-world cost, etc.) to virtually travel further away from the host player or to cross a halo boundary. For example, a remote player's character may expend stamina points, health points, and / or other types of costs when crossing a threshold distance associated with the halo around the host player. In such examples, the cost to a remote player to virtually travel further away from the host device may be a function of the relative distance between the two players. For example, the cost (e.g., stamina points, etc.) may increase as the distance increases. In such examples, the cost may be 0 stamina points per second when the distance is between 0 and 50 meters, but 5 stamina points per second for every 10 meters outside of the 50 meter distance (until the halo boundary is reached). In some cases where a remote player is allowed to cross the halo boundary, the cost may shift from points to money (e.g., $1.00 per minute for every 10 meters crossed the halo boundary).

[0070] Although the above features have been described with respect to computer-based gaming and augmented reality applications, it will be apparent that these features are not limited to gameplay and / or augmented reality. Rather, the features disclosed herein may be implemented in various other suitable applications for sharing location-based digital content. For example, the features may be implemented in educational applications in which content may be shared among students, teachers, classes, schools, and the like. In such examples, students may participate in a virtual classroom by raising a virtual hand, using a virtual whiteboard, conducting group discussions, and the like. In other examples, the features may be implemented in military applications in which location-based content may be shared among members of the same or different military branches. In such examples, the defined geographic area (e.g., halo) may be centered around a combat zone, a training ground, and the like. In still other examples, the features may be implemented in shopping applications, medical applications, real estate applications, and the like. For example, in a medical application, the defined geographic area (e.g., halo) may be centered around various hospitals to enable them to share valuable digital content (e.g., data regarding infected patients, deaths, and the like). In a real estate application, the shared digital content allows one or more remote users (using remote computing devices) to view homes (e.g., in a specified geographic area), take a virtual tour of the home guided by a real estate agent who is in the home (e.g., using a host computing device in the specified geographic area), and the like.

[0071] The shareable digital content disclosed herein may be any suitable type of content. For example, the digital content may include different types of digital modalities such as one or more of the following modalities: audio, still images, video, kinesthetic, haptic, APIs, 2D content, 3D renderable content or models, text, metadata, etc. For example, the dragon shown in FIG. 3 may include a full 3D AR model that may be rendered on the host computing device 304 and / or remote computing device 306 from different orientations, positions, locations, lighting conditions, scales, etc. In some examples, the digital content may include menus, menu items, dialog boxes, advertisements, software modules, AI modules (e.g., neural networks, SVMs, etc.), executable code, help files, forums, community portals, virtual stores, data, etc.

[0072] Any one of the computing devices disclosed herein may include one or more non-transitory computer-readable memories for storing computer-readable instructions for performing one or more of the above methods, and one or more processors for executing the computer-readable instructions. In such an example, the one or more processors may execute instructions that it accesses from a hard disk, a floppy disk, an optical disk, a flash drive, a ROM, a RAM, and / or any other suitable medium for storing instructions.

[0073] For example, Figure 8 illustrates a computer server 800 including a memory 802 for storing computer readable instructions for performing one or more of the methods described above, and a processor 804 for executing the computer readable instructions. Similarly, Figure 9 illustrates a host or remote computing device 900 including a memory 902 for storing computer readable instructions for performing one or more of the methods described above, and a processor 904 for executing the computer readable instructions.

[0074] In some embodiments, the host computing device and / or the remote computing device may be a mobile or portable computing device (e.g., a mobile phone, a smartphone, a tablet, a wearable device, AR / VR glasses or visors, a handheld gaming device, etc.). In some examples, the host computing device and / or the remote computing device may be a computing device installed and / or removably mounted in a vehicle (e.g., a car, a golf cart, a drone, a truck, a plane, a boat, etc.). In other examples, the host computing device and / or the remote computing device may be a stationary computing device, such as a desktop computer, a gaming console (e.g., Xbox, PS4, Wii, etc.), a set-top box, an appliance, a television, etc.

[0075] Additionally, the host computing device and / or the remote computing device may have one or more software instructions that provide gameplay functionality and / or other game-related facilities. Further, the game software instructions may provide for symmetric gameplay (e.g., both devices have the same gameplay functionality) or asymmetric gameplay (e.g., the devices have different gameplay functionality).

[0076] The host computing device and the remote computing device may be located remotely from one another. For example, the remote computing device and the host computing device may be physically located in the same city (e.g., down the street, on opposite sides of the city, etc.), in neighboring cities, neighboring countries, in different countries on opposite sides of the globe, etc. For example, the host computing device may be in the United States and the remote computing device may be in Australia.

[0077] Further, as described herein, the physical location of any one of the computing devices may be determined based on one or more sensors. In such examples, the sensors may be part of (e.g., on-board) the computing device and / or may be external to the computing device. For example, the on-board sensors may include cameras, accelerometers, magnetometers, GPS chips, and / or other suitable sensors that can provide or generate a digital representation of the physical location of the computing device. In such examples, information from the sensors (e.g., cameras) may be used to recognize features in the environment and / or identify a particular location. The external sensors may include cameras, recognition sensors (e.g., recognition devices such as face, devices, etc.), infrared detectors, etc. The location of the computing device may be determined using radio triangulation, GPS, inertial measurements, simultaneous location and mapping (SLAM), vSLAM, and / or other suitable techniques.

[0078] The defined geographic areas disclosed herein may be of any suitable shape, size, configuration, etc., as described above. The defined geographic areas may be absolute (e.g., fixed) geographic areas, relative geographic areas (e.g., halos) that are centered on the computing device and that are movable based on the computing device, and / or transitions between absolute and relative geographic areas, as appropriate. In some examples, the geographic areas may be defined based on content proximity criteria that depend on at least the physical location of the computing device and the physical location of the content.

[0079] The communication networks disclosed herein may include an Internet / Intranet wireless network, a cellular (e.g., 4G, 5G, etc.) network connection, and / or another suitable network. In some examples, the Internet / Intranet network may include a Wi-Fi connection, a Bluetooth connection, or any other suitable wireless connection. These networks may be used to obtain the player's location or approximate location using triangulation when other sensors are not available or are not functioning reliably. For example, when a player is in a mall, attending a conference, etc., and there is no reliable GPS signal, these and other networks may be used to obtain the player's location or a rough estimate of their location using wireless triangulation.

[0080] As discussed above, a tethering object disclosed herein may include an endpoint. In some examples, the endpoints may be located on different computing devices. For example, an endpoint may include one or more networking communication sockets utilizing TCP / IP and / or UDP / IP based communications. However, it should be understood that other protocols and / or networking connections (e.g., Wi-Fi, Bluetooth, 802.11, cellular, satellite, HTTP, etc.) may be used as well.

[0081] In some examples, it may be desirable to prepare and / or otherwise configure a networking infrastructure (e.g., cellular tower sites, 5G sites, 4G sites, network switches, network routers, fiber optic connections, network fabric, etc.) for the system. In such embodiments, one or more tethering objects may be created that span the networking infrastructure. For example, a host computing device may be connected to a network via a 5G cell site that may prepare a cut-through route between network switches of the networking fabric to a remote computing device. Additionally, in some examples, the tethering object may include a prepared or dedicated channel (e.g., a particular fiber optic wavelength, TDMA, etc.) between the computing devices. Such an approach may be used to provide a method for connecting connected devices to a 5G cell site that may provide a cut-through route between the network switches of the networking fabric to a remote computing device. This can be advantageous to ensure reduced waiting times between chairs.

[0082] Additionally, any one of the tethered objects may be anchored by a "ground stake." For example, the stake may be a virtual game object used to cache content related to a particular location (e.g., from a previous game experience), craftable objects, purchased objects, created objects, etc. Additionally, any one of the tethered objects may include a virtual portal to a previously visited location. In such an example, a player may use a portal stone to portal to an area they have visited, for example, at a small cost. In another example, a user may attach a tether to a bus or another vehicle, and a remote player must follow the vehicle to play, the user may select a predefined route, have the tether follow the route at a set speed, etc. The route may be, but is not limited to, a bus route, a nature trail, a race route, etc.

[0083] Additionally, management of tethering objects may be beneficial. For example, multiple tethering objects in a system may be optimized with respect to latency, number of players involved, etc. In some examples, tethering objects may be managed by providing a queue of players (e.g., a first-in, first-out queue, etc.). In other examples, a user interface for the tethering process, configuration, etc. may aid in the management of tethering objects.

[0084] Below are some possible high level definitions and implementations in pseudocode showing some of the possible tethering object definitions and tether calculations. 0 def HostTether(){ #Host-specific tether class on the host device 1 HostEndpointSocket; #TCP / IP; UDP / IP; Socket to server and / or remote player 2 RemotePlayerList[]; #List of remote players in the group 3 Halo halo; #Halo boundary as seen by the host 4 def HaloRules(); #Rules that regulate Halo functionality 5 Location location(); #Location of the hosting player around the world 6 def CreateTether(); #Create a tether on the host 7 def DestroyTether(); #Destroy the tether on the host 8 def MessageTether(); # Send a message to the player on the tether 9 def AuthorizePlayer(); #Enable remote players to join 10 etc. 11} 12 13 def RemoteTether(){ #Remote Tether class on the remote device 14 RemoteEndpointSocket; #TCP / IP;UDP / IP;Socket to Server 15 HostPlayerList[]; #List of host players in the group 16 Halo halo; #Halo boundary as seen by remote players 17 Location location(); #Tethered players around the world Location 18 def CreateTether(); #Create a tether on the host 19 def DestroyTether(); #Destroy the tether on the host 20 def MessageTether(); # Send a message to the player on the tether 21 etc. twenty two} twenty three 24 def ServerTether(){ # Tether on the tether server 25 RemoteEndpointSocket; #TCP / IP;UDP / IP;Socket vs. Remote 26 HostEndpointSocket; #TCP / IP;UDP / IP;Socket to host 27 HostPlayerList[]; #List of host players in the group 28 TetherLoction[]; #List of geolocation boundaries 29 def HaloRules(); #Function to regulate halo 30 def CreateTether(); #Create a tether on the host 31 def DestroyTether(); #Destroy the tether on the host 32 def MessageTether(); # Send a message to the player on the tether 33 etc. 34} 35 36 def Character(){ #Character information 37 int level; #Character level determines basic abilities 38 int health; #Hit points with modifiers 39 int baseHealth; # Hit points with no modifiers 40 Type characterClass; #Character class (Wizard, Thief, Warrior, Ranger, etc.) 41 HostTether hTether; #Host tether object / hosting player position 42 RemoteTether rTether; #Remote tether object / tethered character position 43 ServerTether sTether; #Link to the server tether object (0 if not set) 44 Area tetherlArea; #Tether character location information including maps 45 Area hostArea; # Host character location information including map etc. 46 Item items[]; #List of equipped items 47 Mount mounts[]; #List of mounts the character has 48 int mount; # Current mount, or -1 if not on a mount 49 Items inventory[]; #All items owned by the character 50 float base; #Base tether reach 51 etc. #Other information that may be or is required 52} 53 54 def Mount(){ #Mount and NPC information for characters 55 Item items[]; #Items equipped to the mount 56 int level; #Mount level 57 Type type; #Mount type (horse, pegasus, dragon, etc.) 58 int health; #Hit points with modifiers 59 int baseHealth; # Hit points with no modifiers 60 etc. 61} 62 63 def Item(){ #Item information and modifiers 64 Modifiers modifiers[]; #List of modifiers for the item 65 Type type; #Type of item (wearable, weapon, etc.) 66 int count; #Number of items 67 etc. #Many other specifications required 68} 69 70 def Area(){ #Area information such as weather and terrain 71 Type weather; #Current weather (temperature, wind, rain, season, etc.) 72 Type terrain; #Type of terrain (desert, mountain, swamp, etc.) 73 Map maps[]; #Maps to use for the area (political, topographical, etc.) 74 Time lTime; #local time of location 75 etc. #Other information required for the above 76} 77 78 def CharacterHalo(){ #Character halo effect on tether 79 Character pCharacter; #Character items, mounts, etc. 80 Area tetherlArea; #Tether character location information 81 Area hostArea; #Host character location information 82 Halo halo; #List of geolocation boundaries (shape of halo) 83 float range; #Range for calculating halo 84 Tether hostTether(); #Tether to host 85 Tether remoteTether(); #Tether to remote 86 Tether serverTether(); #Tether to server 87 etc. #Other information required for the above 88} 89 90 def NPC(){ #Non-player character 91 int level; #Character level determines basic abilities 92 int health; #Hit points with modifiers 93 int baseHealth; # Hit points with no modifiers 94 Type characterClass; #Character class (Wizard, Thief, Warrior, Ranger, etc.) 95 Area area type; #Tether character location information 96 Location anchor; #Host character location information 97 Item items[]; #List of equipped items 98 Mount mount; #List of mounts the character has 99 Items inventory[]; #All items the character has that can be dropped 100 float base; #Tether max reach distance 101 etc. 102} 103 104 def Halo(){ #Halo definition and information 105 Shape shape; #List of halo shapes in coordinates or other methods 106 float range; #Calculated relative to character range 107 float interference; #Interference factors of tether-based halo 108 etc. 109} 110 111 float Character:tReach(){#Calculated tether reach for specific character / location 112 float reach; #Calculated value to determine if character can reach 113 # Host location for playing as a tethered player 114 # Calculated local modifiers for character's physical position 115 float localModifiers=modifiers( 116 level, #character level 117 items[],#Modifier from equipment item 118 mounts[mount], #modifiers from mount 119 genre, #character genre (change from wizard, thief, etc.) 120 tetherArea, #weather&terrain modifier 121 etc.); #Any other information that may be desired for the game 122 # Calculated the remote modifier for the character's remote host location 123 float remoteModifiers=modifiers( 124 level, #character level 125 items[], #modifier from equipped items 126 mounts[mount], #modifiers from mount 127 genre, #character genre (change from wizard, thief, etc.) 128 hostArea, #events, limited, weather & terrain modifiers 129 etc.); #Any other information that may be desired for the game 130 float tetherModifiers=modifiers( 131 items[], #modifier from equipment item 132 mounts[mount], #modifiers from mount 133 hostTether, #Use information from hostTether 134 remoteTether, #Use information from a remote tether 135 serverTether, #Use information from server tether 136 playerAccount; #Player account type paid / free paid my require higher 137 # Use a service or dedicated server 138 etc.); #Any other information that may be desired for the game 139 reach=base * localModifiers * remoteModifiers * tetherModifiers; #Basic 140 # Distance the character moves 141 return reach; #Maximum reach based on two positions 142} 143 144 Halo Character:halo(){ #Calculate the shape and size of the halo for the character / location 145 Halo fHalo; # Final halo shape and size returned in request 146 float range; #This is the range of a character or a character and mount 147 range=Range( #Calculate the range of the character 148 mounts[mount], # Required to get mount information 149 hostArea.weather, #required weather modifier 150 hostArea.terrain, #Terrain type 151 items, #required for item modifiers 152 hostTether, #hostTetherInfo 153 etc.); #Game dependent other 154 if (mount and mounts[mount] is flying) #Check if mount and flying exist 155 fHalo=circle(range,hostTether.location); #Create a circular halo 156 #Host-centered 157} 158 else{ # Other changes can be added to support halo collisions etc. 159 fHalo=footHalo(){ #Calculate the range of non-flying characters 160 mounts[], #Required to get mount information 161 hostArea.weather, #Required weather modifier 162 items, #required for item modifier 163 hostTether, #hostTetherInfo 164 etc.); #Game dependent other 165} 166 fHalo.interference=haloInterference(){ #Calculate halo interference 167 mounts[], #Required to get mount information 168 hostArea.weather, #Required weather modifier 169 items, #required for item modifiers 170 hostTether, #Use information from hostTether 171 remoteTether, #Use information from a remote tether 172 serverTether, #Use information from server tether 173 etc.); #Others depending on the game 174 fHalo.range=range; # Set the halo range 175 return fHalo; 176} 177 178 List getContent(Halo halo,Location location){ #Get all NPS, items, specific 179 #Hello position 180 List contentList(); #New empty content list 181 # Get content from the server and save it in a list 182 contentList.add(getNPCsFromServer(h alo,location)); #Search for NPC 183 contentList.add(getItemsFromServer(halo,location)); #Search for items 184 return contentList; 185}

[0085] The sample pseudocode implementation above shows some possible definitions of objects, functions, and how they work. The function "float Character:tReach()" at line 111 uses the character information, the player's current location, the host tether location, the player account, and the server tether information to calculate what the current reach distance for that character could be. The local, remote, and server tether modifiers all affect the maximum distance a player can reach when tethering far away. The tether can affect the reach both negatively and / or positively. For example, the system may determine that the player's local connection is insufficient for the game and give the user a very low score or even zero that prevents the user from tethering. Another factor that may play a role is whether the tethering player is in an area with a curfew (e.g., possible orders are hurricanes, pandemics, blizzards, etc.). In such an example, the system may give the tethering player a higher score to encourage tethering and not going outside to play games. Similar logic may be applied to the hosting player if they are in an area with a curfew. For example, the hosting player may receive a zero score preventing anyone from tethering to that player. A positive score may be given to the hosting player for some of the following reasons: there is no curfew, an event is happening in that location and the game is encouraging people to participate in that event, there is less network congestion in that area compared to other areas, encouraging players to participate in this location, allowing more congested locations to be alleviated. These are just some of the factors that may be used to affect the reach of a player attempting to tether to the host.

[0086] The function "Halo Character:halo(){" on line 144 uses the character and tether information to calculate the size and shape of the halo. The shape of the halo may be determined by character attributes such as whether the character has a mount, whether the character can fly, etc. If the player can fly, the system may define the halo as a circle and center the halo on the player. In such an example, the size of the halo may be determined by the speed of the player or the speed of the player's mount. The host tether may affect the shape and size of the halo of remote players, thereby ensuring that they can all be within range of the same hosting player if the hosting player is also a hotspot for other players. If the hosting player's area has dead zones (e.g., zones where network services or services are unavailable such that if the hosting player goes there, all other players lose connection to the hosting player and are removed from the game), the hosting player may want to stay where there is acceptable connectivity data coverage for the players. Additionally, it may be advantageous to direct tethered players to areas with good data coverage if the players are members of a party and must stay together. If the hosting player has a limited Internet connection or is being throttled due to reaching a data limit, it may be desirable to have a smaller halo to limit the amount of information that needs to be transmitted to the hosting player. Such an approach has an advantageous technical effect by limiting the content that needs to be transmitted over the network. Many of the same restrictions can be applied to remote players, such as the size of the halo may be limited to ensure that all NPCs and items returned by the function "List getContent(Halo halo,Location location){" at line 178 can be displayed if the user has a slow Internet connection. All of these tether restrictions ensure that the game or other experience is enjoyable for the participants and that there are no lags or other negative experiences.

[0087] The above description of the embodiments has been provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the present disclosure. Individual elements or features of a particular embodiment are generally not limited to that particular embodiment and, where applicable, even if not specifically shown or described, can be interchangeable and used in selected embodiments. The same may also be varied in many ways. Such variations are not to be considered as departures from the present disclosure, and all such modifications are intended to be included within the scope of the present disclosure.

Claims

1. 1. A system for sharing digital content, comprising: a first computing device configured to display a map including a first halo centered on a location of the first computing device as the first computing device moves and to receive augmented reality content bound to the first halo; a second computing device in communication with the first computing device over a communications network, the second computing device configured to display a map including the first halo centered on the location of the first computing device as the first computing device moves, the second computing device being associated with a user having a virtual presence movable in and out of the first halo; Equipped with the first halo dynamically changes shape and / or size in real time based on a second halo associated with a third computing device to avoid overlap with the second halo; The system, wherein the second computing device is configured to receive the augmented reality content only if the movable virtual presence of the user of the second computing device enters and remains within the first halo.

2. The system of claim 1 , further comprising a computer digital content server configured to transmit the augmented reality content to the first computing device.

3. The system of claim 1 , further comprising a computer digital content server configured to transmit the augmented reality content to the second computing device.

4. The system of claim 1 , wherein the first computing device is configured to transmit the augmented reality content to the second computing device.

5. the first computing device and the second computing device are configured to instantiate a tethering object associated with the augmented reality content; The system of claim 1 , wherein the tethering object includes a first endpoint at the first computing device and a second endpoint at the second computing device.

6. The system of claim 5 , wherein the first computing device is configured to transmit the augmented reality content to the second endpoint of the second computing device via the tethering object.

7. the first computing device includes a non-transitory computer-readable memory; 6. The system of claim 5, wherein the first computing device is configured to instantiate the tethering object stored in the non-transitory computer readable memory.

8. the second computing device includes a non-transitory computer-readable memory; The system of claim 5 , wherein the second computing device is configured to instantiate the tethering object stored in the non-transitory computer readable memory.

9. The system of claim 5 , wherein the first computing device is configured to send a tethering request to the second computing device.

10. The system of claim 1 , wherein the augmented reality content dynamically changes shape and / or size in real time based on at least one geographic feature.

11. The system of claim 1 , wherein the second computing device is configured to receive only a portion of the augmented reality content.

12. The system of claim 11 , wherein the portion of the augmented reality content received by the second computing device is based on at least one of weather, geographic features, and time of day.

13. displaying, by a first computing device as the first computing device moves, a map including a first halo centered on a location of the first computing device; receiving, by the first computing device, augmented reality content bound to the first halo; a second computing device displaying a map including the first halo centered on the location of the first computing device as the first computing device moves, the second computing device being associated with a user having a virtual presence that is movable in and out of the first halo; receiving, by the second computing device, the augmented reality content only if the mobile virtual presence of the user of the second computing device enters and remains within the first halo; Including, A computer-implemented method, wherein the first halo dynamically changes shape and / or size in real time based on a second halo associated with a third computing device to prevent overlap with the second halo.

14. 14. The computer-implemented method of claim 13, further comprising: instantiating a tethering object associated with the augmented reality content, the tethering object including a first endpoint at the first computing device and a second endpoint at the second computing device.

15. 15. The computer-implemented method of claim 14, further comprising the first computing device transmitting the augmented reality content to the second endpoint of the second computing device via the tethering object.

16. 15. The computer-implemented method of claim 14, wherein instantiating the tethering object includes the second computing device instantiating the tethering object stored in a non-transitory computer-readable memory of the second computing device.

17. The computer-implemented method of claim 14 , further comprising the second computing device sending a tethering request to the first computing device.

18. The computer-implemented method of claim 13 , wherein the step of the second computing device receiving the augmented reality content comprises receiving the augmented reality content from a computer digital content server.

19. The computer-implemented method of claim 13 , wherein the augmented reality content dynamically changes shape and / or size in real time based on at least one geographic feature.

20. 14. The computer-implemented method of claim 13, wherein the step of the second computing device receiving the augmented reality content includes receiving only a portion of the augmented reality content based on at least one of weather, geographic features, and time of day.

Citation Information

Patent Citations

  • Information processor, method and recording medium

    JP2000113218A

  • Virtual space providing server, virtual space providing method, and computer program

    JP2009199198A

  • Information processor and advertisement information providing method

    JP2014066957A