IP Library Granted Patent US 10,933,312
Granted Patent B2
US 10,933,312 · App. 16/542,111 · Granted Mar 2, 2021

Systems, apparatus and methods for verifying locations

Inventor: Bruce Merati (San Diego, CA)
Assignee: UPLAY1
A63F13/216A63F13/211A63F13/73A63F2300/205A63F2300/5573
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 10,933,312
App. No.
16/542,111
Granted
Mar 2, 2021
Kind
B2
Abstract

A system, method and method for verifying a location of a mobile device by providing instructions to a user of the mobile device to physically manipulate the mobile device, and determining whether the mobile device was, in fact, physically manipulated according to the instructions.

Claims (76)

1. A server for verifying a position of a remote game player using a client device coupled to the server via a wide-area network, comprising:

a geolocation module for determining a position of the client device:

a network interface for sending and receiving information over the wide-area network;

a memory for storing processor-executable instructions; and

a processor coupled to the geolocation module, the network interface, and the memory for executing the processor-executable instructions that causes the server to;

receive, by the processor via the network interface, a request from the remote game player via the client device to participate in an online game hosted by the server;

send, by the processor via the network interface, instructions for the remote game player to physically manipulate the client device;

determine, by the geolocation module, positions of the client device as the remote game player manipulates the client device over time;

verify, by the processor, an actual location of the client device based on the positions of the client device as the remote game player physically manipulates the client device, wherein, in one embodiment, the instructions for verifying the actual location comprise instructions that cause the server to;

receive, by the processor via the network interface, GPS coordinates of the client device from the client device as the remote game player physically manipulates the client device;

determine, by the processor, a rate at which the GPS coordinates are received;

compare, by the processor, the rate at which the GPS coordinates are received to an expected rate; and

verify, by the processor, the actual location of the client device when the rate at which the GPS coordinates are received matches the expected rate; and;

grant to the client device, by the processor, access to the online game after the actual location of the client device has been verified.

2. The server of claim 1 , wherein the instructions comprises an instruction to rotate the client device to a randomly-generated angle.

3. The server of claim 1 , wherein the instructions comprises an instruction to move the client device to a randomly-generated direction.

4. The server of claim 1 , wherein the processor-executable instructions that causes the processor to verify the actual location of the client device, in another embodiment, comprises instructions that causes the processor to:

compare, by the processor, the positions of the client device as the remote game player physically manipulates the client device with expected manipulations based on the instructions; and

verify, by the processor, the actual location of the client device when the positions of the client device as the remote game player physically manipulates the client device matches the expected manipulations.

5. The server of claim 1 , wherein the processor-executable instructions further comprise instructions that causes the server to:

determine, by the processor, when at least one of the positions is within a geographic area where the online game is permitted; and

grant to the client device, by the processor, access to the online game when the positions of the client device matches the expected positions and at least one of the positions is within the geographic area.

6. The server of claim 1 , wherein the processor-executable instructions further comprise instructions that causes the server to:

receive, by the processor via the network interface, an unverified position of the client device;

determine, by the processor, that at least one of the positions does not match the unverified position; and

deny to the client device, by the processor, access to the online game when the at least one of the positions does not match the unverified position.

7. The server of claim 1 , wherein the processor-executable instructions further comprise instructions that causes the server to:

determine, by the processor, an identification of the client device; and

update, by the processor, a blacklist stored in the memory, the blacklist comprising a list of client device identifications associated with client devices that are not permitted to access the online game.

8. The server of claim 7 , wherein the processor-executable instructions further comprise instructions that causes the server to:

in response to receiving the request to play the online game, compare the identification of the client device with the client device identifications stored in the blacklist; and

deny to the client device, by the processor, access to the online game when the identification of the client device matches one of the client device identifications stored in the blacklist.

9. The server of claim 1 , wherein the processor-executable instructions further comprise instructions that causes the server to:

determine, by the processor via a signal received from a second client device, a location of the second client device, the second client device lacking a self-determining position capability;

send, by the processor via the network interface, a first code to a second client device;

receive, by the processor, a second code from the client device within a predetermined time from sending the first code;

determine, by the processor, that the second code matches the first code;

in response to determining that the second code matches the first code, determine, by the processor, a distance between the location of the second client device and the location of the client device;

determine, by the processor, that the distance is less than a predetermined distance; and

grant to the second client device, by the processor, access to the online game when the distance is less than a predetermined distance.

10. A method, performed by a server, for verifying a location of a remote game player using a client device coupled to the server via a wide-area network, comprising:

receiving, by a processor via a network interface coupled to the processor, a request from the remote game player via the client device to participate in an online game hosted by the server;

sending, by the processor via the network interface, instructions for the remote game player to physically manipulate the client device;

determining, by a geolocation module coupled to the processor, positions of the client device as the remote game player manipulates the client device over time;

determining, by the processor, that the positions of the client device match expected positions associated with the instructions;

receiving, by the processor via the network interface, GPS coordinates of the client device from the client device as the remote game player physically manipulates the client device;

determining, by the processor, a rate at which the GPS coordinates are received;

comparing, by the processor, the rate at which the GPS coordinates are received to an expected rate;

verifying, by the processor, in one embodiment, an actual location of the client device when the rate at which the GPS coordinates are received matches the expected rate; and

granting to the client device, by the processor, access to the online game when the actual location of the client device has been verified.

11. The method of claim 10 , wherein the instructions comprises an instruction to rotate the client device to a randomly-generated angle.

12. The method of claim 10 , wherein the instructions comprises an instruction to move the client device to a randomly-generated direction.

13. The method of claim 10 , wherein verifying the actual location of the client device, in another embodiment, comprises:

comparing, by the processor, the positions of the client device as the remote game player physically manipulates with expected manipulations based on the instructions; and

verifying, by the processor, the actual location of the client device when the positions of the client device as the remote game player physically manipulates the client device matches the expected manipulations.

14. The method of claim 10 , further comprising:

determining, by the processor, when at least one of the positions is within a geographic area where the online game is permitted; and

granting to the client device, by the processor, access to the online game when the positions of the client device matches the expected positions and at least one of the positions is within the geographic area.

15. The method of claim 10 , further comprising:

receiving, by the processor via the network interface, an unverified position of the client device;

determining, by the processor, that at least one of the positions does not match the unverified position; and

denying to the client device, by the processor, access to the online game when the at least one of the positions does not match the unverified position.

16. The method of claim 10 , further comprising:

determining, by the processor, an identification of the client device; and

updating, by the processor, a blacklist stored in the memory, the blacklist comprising a list of client device identifications associated with client devices that are not permitted to access the online game.

17. The method of claim 16 , further comprising:

in response to receiving the request to play the online game, comparing the identification of the client device with the client device identifications stored in the blacklist; and

denying to the client device, by the processor, access to the online game when the identification of the client device matches one of the client device identifications stored in the blacklist.

18. The method of claim 10 , further comprising:

determining, by the processor via a signal received from a second client device, a location of the second client device, the second client device lacking a self-determining position capability;

sending, by the processor via the network interface, a first code to a second client device;

receiving, by the processor, a second code from the client device within a predetermined time from sending the first code;

determining, by the processor, that the second code matches the first code;

in response to determining that the second code matches the first code, determining, by the processor, a distance between the location of the second client device and the location of the client device;

determining, by the processor, that the distance is less than a predetermined distance; and

granting to the second client device, by the processor, access to the online game when the distance is less than a predetermined distance.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2024
From: UPLAY1
To: MERATI, BRUCE
Reel/Frame 068013/0878 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2019
From: MERATI, BRUCE
To: UPLAY1
Reel/Frame 050068/0347 →
Continuity (2)
Provisional Application 62720125 · Aug 21, 2018
Related Publication 20200061454A1 · Feb 27, 2020