US11864054B1 - Proximity friending - Google Patents

Proximity friending Download PDF

Info

Publication number
US11864054B1
US11864054B1 US16/938,690 US202016938690A US11864054B1 US 11864054 B1 US11864054 B1 US 11864054B1 US 202016938690 A US202016938690 A US 202016938690A US 11864054 B1 US11864054 B1 US 11864054B1
Authority
US
United States
Prior art keywords
user account
user
client device
gaming platform
online gaming
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US16/938,690
Inventor
Deepak Murali Chandrasekaran
Jessica Kung
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Roblox Corp
Original Assignee
Roblox Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Roblox Corp filed Critical Roblox Corp
Priority to US16/938,690 priority Critical patent/US11864054B1/en
Assigned to ROBLOX CORPORATION reassignment ROBLOX CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHANDRASEKARAN, DEEPAK MURALI, Kung, Jessica
Application granted granted Critical
Publication of US11864054B1 publication Critical patent/US11864054B1/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/023Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/32Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/75Enforcing rules, e.g. detecting foul play or generating lists of cheating players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3225Data transfer within a gaming system, e.g. data sent between gaming machines and users
    • G07F17/3232Data transfer within a gaming system, e.g. data sent between gaming machines and users wherein the operator is informed
    • G07F17/3237Data transfer within a gaming system, e.g. data sent between gaming machines and users wherein the operator is informed about the players, e.g. profiling, responsible gaming, strategy/behavior of players, location of players
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/222Monitoring or handling of messages using geographical location information, e.g. messages transmitted or received in proximity of a certain spot or area
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/224Monitoring or handling of messages providing notification on incoming messages, e.g. pushed notifications of received messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal

Definitions

  • This disclosure relates to the field of collaboration platforms and, in particular, establishing friendships between users of the collaboration platform that are in physical proximity.
  • Collaboration platforms allow users to connect to and share information with each other via the Internet.
  • Users of a collaboration platform such as a gaming platform, may participate in multi-user gaming environments, design custom gaming environments, decorate avatars, or exchange virtual items with other users, and so forth.
  • FIG. 1 illustrates an example system architecture, in accordance with implementations of the disclosure.
  • FIG. 2 is a diagram of operations of proximity friend finding, in accordance with implementations of the disclosure.
  • FIG. 3 is a flow diagram illustrating method for establishing a proximity friendship, in accordance with some implementations.
  • FIG. 4 is a block diagram illustrating an exemplary computer system, in accordance with implementations.
  • Collaboration platforms such as gaming platforms, offer a variety of ways for users to interact with one another. For example, users of a gaming platform may work together towards a common goal, share various gaming items, send electronic messages to one another, and so forth. Users of a collaboration platform may be linked to other users and be recognized by the collaboration platform as “friends.” A user and their friends may have special access to one another such as the ability to see information about a friend's user account, send electronic messages to one another, trade items, as well as others. In some systems, establishing friendships may be performed by sending a friend request to another user and having the other user accept the friend request. Determining whether a user sending a friend request can be trusted may present challenges, in particular for minors (e.g., ages under 13 years old) who may be vulnerable to predatory users.
  • minors e.g., ages under 13 years old
  • aspects of the present disclosure address the above-mentioned and other challenges by creating friendships among users that are physically proximate one another.
  • Physical closeness of users may be an indicator or imply that the users are more likely to be trustworthy (e.g., the users are real-life friends).
  • users that establish a trusted friendship using proximity friending may have access to additional functionalities that may not be available to non-trusted friends.
  • aspects of the present disclosure receive, from a first client device, a first request to establish friendships with other users of the collaboration platform that are in physical proximity with the first user.
  • the collaboration platform may determine whether a second user is in the physical proximity of the first user by comparing a first indicator of physical proximity associated with the first user with a second indicator of physical proximity associated with the second user.
  • the collaboration platform responsive to determining the second user of the collaboration platform is in the physical proximity of the first user based on the comparison, sends to the first user an invitation to request a friendship with the second user.
  • friendships on a collaboration platform with users that are in physical proximity is advantageous because it provides a safer and more trustworthy way to establish friendships and helps create a safer environment for users (e.g., minors) of the collaboration platform, which improves an overall user experience with the collaboration platform, and increases the content consumed (e.g., time using the collaboration platform) by users of the collaboration platform.
  • aspects of the present disclosure result in significant reduction of storage resources and significant reduction of computational (processing) resources because initially establishing trustworthy friendships among users that are in physical proximity is more efficient than monitoring for non-trustworthy friendships or performing remedial measures to remedy actions created by users with non-trustworthy friendships, for example.
  • collaboration platform described as a gaming platform herein is provided for purposes of illustration, rather than limitation.
  • a collaboration platform may be one or more of numerous platforms, such as a social networking platform, purchasing platform, a messaging platform, creation platform, and so forth.
  • FIG. 1 illustrates an example system architecture 100 , in accordance with one implementation of the disclosure.
  • the system architecture 100 (also referred to as “system” herein) includes client devices 110 A and 110 B, a network 105 , a data store 106 , a collaboration platform 120 , and a server 130 .
  • network 105 may include a public network (e.g., the Internet), a private network (e.g., a local area network (LAN) or wide area network (WAN)), a wired network (e.g., Ethernet network), a wireless network (e.g., an 802.11 network, a Wi-Fi® network, or wireless LAN (WLAN)), a cellular network (e.g., a Long Term Evolution (LTE) network), routers, hubs, switches, server computers, and/or a combination thereof.
  • a public network e.g., the Internet
  • a private network e.g., a local area network (LAN) or wide area network (WAN)
  • a wired network e.g., Ethernet network
  • a wireless network e.g., an 802.11 network, a Wi-Fi® network, or wireless LAN (WLAN)
  • WLAN wireless LAN
  • a cellular network e.g., a Long Term Evolution (LTE) network
  • the data store 106 may be a memory (e.g., random access memory), a cache, a drive (e.g., a hard drive), a flash drive, a database system, or another type of component or device capable of storing data.
  • the data store 106 may also include multiple storage components (e.g., multiple drives or multiple databases) that may also span multiple computing devices (e.g., multiple server computers).
  • the server 130 may be one or more computing devices (e.g., a rackmount server, a server computer, etc.). In implementations, the server 130 may be included in the collaboration platform 120 , be an independent system or be part of another system or platform.
  • the server 130 may include proximity friending module 140 .
  • the collaboration platform 120 may be one or more computing devices (such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memories, databases), networks, software components, and/or hardware components that may be used to provide a user with access to collaboration platform 120 .
  • the collaboration platform 120 may also include a website (e.g., a webpage) or application back-end software that may be used to provide a user with access to content provided by collaboration platform 120 .
  • collaboration platform 120 may be a type of social network providing connections between users.
  • a “user” may be represented as a single individual.
  • other implementations of the disclosure encompass a “user” being an entity controlled by a set of users and/or an automated source.
  • a set of individual users federated as a community in a social network may be considered a “user.”
  • an automated consumer may be an automated ingestion pipeline, such as a game 122 or component of a game 122 of the collaboration platform 120 .
  • collaboration platform 120 may be a gaming platform.
  • the gaming platform may provide single-player or multi-player games to a community of users that may access or interact with the games 122 A- 122 Z using client devices 110 .
  • games 122 also referred to as “video game,” “online game,” or “virtual game” herein
  • games 122 may be two-dimensional (2D) games, three-dimensional (3D) games, virtual reality (VR) games, or augmented reality (AR) games, for example.
  • a game 122 can include an electronic file that can be executed or loaded using software, firmware or hardware configured to present the game content (e.g., digital media item) to an entity.
  • collaboration platform 120 hosts games 122 and allows users to interact with the games 122 using collaboration application 114 of client device 110 .
  • Users of collaboration platform 120 may play, create, interact with, and build games 122 , or create and build contents of games 122 .
  • users may create characters, decoration for the characters, one or more virtual environments for an interactive game, or build structures in a game, for example.
  • users may buy, sell, or trade game items, such as in-platform currency (e.g., virtual currency), with other users of the collaboration platform 120 .
  • collaboration platform may transmit game content to collaboration applications 114 .
  • Game content (also referred to as “content”) may refer to any data or software instructions (e.g., in-game items, user information, video, images, commands, etc.) associated with collaboration platform 120 or collaboration applications 114 .
  • collaboration platform 120 hosting games 122 is provided for purposes of illustration, rather than limitation.
  • collaboration platform 120 may host one or more media items.
  • Media items can include, but are not limited to, digital video, digital movies, digital photos, digital music, audio content, melodies, website content, social media updates, electronic books (ebooks), electronic magazines, digital newspapers, digital audio books, electronic journals, web blogs, real simple syndication (RSS) feeds, electronic comic books, software applications, etc.
  • a media item may be an electronic file that can be executed or loaded using software, firmware or hardware configured to present the digital media item to an entity.
  • collaboration platform 120 may consolidate the game content from the client devices 110 and transmit the consolidated game content (e.g., gaming video, rendering commands, user input, graphics library commands, etc.) to each of the client devices 110 to display interactions of the multiple users in a multi-player gaming environment.
  • collaboration platform 120 may transmit the game content from the one or more client devices 110 to another client device for the other client device to consolidate and display the game content.
  • the collaboration platform 120 may receive the game content (e.g., first user transmitting user input via client device 110 A and second user transmitting user input via client device 110 B), generate game results (e.g., first user beats second user), and transmit the game results to the client devices 110 .
  • a game 122 may be associated with a particular user or particular group of users (e.g., a private game), or made widely available to users of the collaboration platform 120 (e.g., a public game).
  • collaboration platform 120 may associate the specific user(s) with a game 122 using user account information (e.g., a user account identifier such as username and password).
  • collaboration platform 120 may include a game engine 124 .
  • game engine 124 may be used for the development or execution of games 122 .
  • game engine 124 may include a rendering engine (“renderer”) for 2D, 3D, VR, or AR graphics, a physics engine or collision detection (and collision response), sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, scene graph, or video support for cinematics.
  • rendering engine for 2D, 3D, VR, or AR graphics
  • a physics engine or collision detection (and collision response) sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, scene graph, or video support for cinematics.
  • collaboration platform 120 may include a creator module 126 .
  • creator module 126 may allow users to become creators to design or create environments in an existing game 122 or create new games or create new items within games or environments.
  • a game 122 may have a common set of rules or common goal, and the environments of a game 122 share the common set of rules or common goal.
  • different games may have different rules or goals from one another.
  • games may have one or more environments where multiple environments may be linked. For example, a user may build a virtual environment that is linked to another virtual environment created by another user. A character of the virtual game may cross the virtual border to enter the adjacent virtual environment.
  • items may refer to objects that are used, created, shared or otherwise depicted in games 122 of the collaboration platform 120 .
  • items may include a character, tools, clothing, buildings, vehicles, currency, and so forth.
  • collaboration platform 120 may include proximity friending module 140 .
  • proximity friending module 140 may allow a user of collaboration platform 120 to find and establish friends that are in a physical proximity of the user (e.g., proximity friending).
  • friends that are made though proximity friending may be considered “trusted friends” (e.g., forming a trusted relationship) and enjoy more privileges than users that do not have a trusted relationship.
  • trusted friends may imply safer friendships for younger users (e.g., minors) as trusted friendships are more likely to be with people that know one another in real-life.
  • trusted friendships via proximity friending may be established between users that are already friends in collaboration platform 120 .
  • a trusted friendship established between users that are already friends via the collaboration platform 120 may allow for additional functionality between the users of the trusted friendship once the trusted friendship is established, as described further below.
  • Proximity friending module 140 will be further described with respect to the subsequent FIGS. 2 - 4 .
  • Server 130 or client devices 110 may also implement proximity friending module 140 .
  • a game 122 may include base functionalities and additional functionalities 121 (also referred to as “privileges” or “additional privileges” herein).
  • users of collaboration platform 120 that are friends may be able to use the base functionalities, but in some instances, may not be able to use the additional functionalities 121 of a game 122 until a trusted friendship is created using proximity friending.
  • the base functionalities are granted to all (or most) users of collaboration platform 120 , and the additional functionalities 121 are granted between users that form a trusted relationship via proximity friending.
  • the additional functionalities 121 may allow for one or more additional privileges or interactions between users (e.g., messaging functionalities, following functionalities, sharing functionalities, purchasing functionalities, inviting functionalities, etc.).
  • the one or more additional functionalities 121 may be available between users of a trusted relationship.
  • users that have not established a trusted relationship with each other may be prevented from using the additional functionalities 121 to interact with each other.
  • users of the collaboration platform 120 that are under a threshold age e.g., minors that are users under 13 years old
  • users of the collaboration platform 120 that have provided less than a threshold amount of information to the collaboration platform 120 e.g., guest users, users that have not provided a birth date to the collaboration platform 120 , etc.
  • users of the collaboration platform 120 that have participated with the collaboration platform 120 for less than a threshold amount of time e.g., have been registered with the collaboration platform 120 for less than a threshold amount of time (e.g., registered less than one month ago), have logged less than a threshold amount of time of actively participating in the collaboration platform 120 (e.g., less than 50 hours of game time), etc.
  • a threshold amount of time e.g., have been registered with the collaboration platform 120 for less than a threshold amount of time (e.g., registered less than one month ago)
  • have logged less than a threshold amount of time of actively participating in the collaboration platform 120 e.g., less than 50 hours of game time
  • additional functionality 121 may include messaging functionality that allows user A (e.g., user of client device 110 A) and user B (e.g., user of client device 110 B) to communicate using a messaging service (e.g., messaging module 128 ) via the collaboration platform 120 (e.g., posts, chats, personal messages, public messages, messaging in a virtual gaming environment).
  • a messaging service e.g., messaging module 128
  • the messaging functionality may allow users to transmit messages each other.
  • the messaging functionality allows users to transmit certain types of information (e.g., sensitive information, contact information, name, picture, voice recording, current location, unique identifiers (device ID), etc.) to each other that would otherwise be filtered by messaging module 128 .
  • messaging module 128 may be used to implement messaging functionality and may further be described below. It may be noted that user A and user B are used for purposes of illustration, rather than limitation.
  • collaboration platform 120 may include one or more users capable of establishing a trusted relationship via proximity friending and that are granted additional functionality 121 .
  • an additional functionality 121 may include a sharing functionality that allows user A and user B to share items with each other via the collaboration platform 120 .
  • users of a gaming platform may have a sharing functionality that allows users to purchase, trade, or transfer virtual items, such as virtual currency, in a virtual gaming environment.
  • an additional functionality 121 may include a following functionality that allows user A and user B to follow each other into a game 122 or into a specific gaming environment of a game 122 hosted by the collaboration platform 120 .
  • user A may be participating in a game 122 A.
  • the following functionality may allow user B to navigate to a profile page of the user A and select an option, “Join Game,” on user A's profile page, which places user B in the game 122 A (e.g., the specific gaming environment of game 122 A where user A is participating).
  • the following functionality may also include a notification feature that for example, notifies user B of the game in which user A has moved or is currently participating.
  • an additional functionality 121 may include an invitation functionality that allows user A and user B to invite each other to a private game hosted by the collaboration platform 120 .
  • user A may create a private game and the invitation functionality may allow user A to invite user B to participate in the private game.
  • an additional functionality 121 may include a group functionality that allows user A and user B to join a group hosted by the collaboration platform 120 .
  • the additional functionality 121 may allow user A to invite user B to a group where user A is a group member or group creator.
  • Members of a group may participate with each other to compete against a different group in a game 122 , may participate with each other in building (e.g., environments, structures, etc.) within a game 122 , may participate with each other to create a game 122 (e.g., via creator module 126 ), may engage in discussions with each other (e.g., via messaging module 128 , a group discussion), etc.
  • an additional functionality 121 includes an interaction functionality that allows user A and user B to interact with each other via the collaboration platform 120 .
  • the base functionality may allow a user to participate in single-player games (but not multi-player games) and the interaction functionality may allow the user to participate in multi-player games.
  • the base functionality may allow user A to compete against other users in a game 122 and the interaction functionality may allow user A to work together with user B to compete against other users in a game 122 .
  • the client devices 110 A through 110 B may each include computing devices such as personal computers (PCs), mobile devices (e.g., laptops, mobile phones, smart phones, tablet computers, or netbook computers), network-connected televisions, gaming consoles, etc.
  • client devices 110 A through 110 B may also be referred to as “user devices.”
  • one or more client devices 110 via collaboration application 114 may connect to collaboration platform 120 at any given moment.
  • each client device 110 may include an instance of collaboration application 114 .
  • the collaboration application 114 may be an application that allows users to use and interact with collaboration platform 120 , such as control a virtual character in a virtual game hosted by collaboration platform 120 , or view or upload content, such as images, video items, web pages, documents, and so forth.
  • the collaboration application 114 may be a web browser that can access, retrieve, present, and/or navigate content (e.g., virtual character in a virtual environment, etc.) served by a web server.
  • the collaboration application 114 may render, display, and/or present the content (e.g., a web page, a media viewer) to a user.
  • the collaboration application 114 may also include an embedded media player (e.g., a Flash® player) that is embedded in a web page.
  • the collaboration application 114 may be a standalone application (e.g., a mobile application, app, or a gaming program) that allows users to interact with collaboration platform 120 .
  • the collaboration application 114 may be a collaboration platform application for users to create, edit, upload content to the collaboration platform 120 as well as interact with collaboration platform 120 .
  • the collaboration applications 114 may be provided to the client devices 110 A and 110 B by the server 130 or collaboration platform 120 .
  • the collaboration applications 114 may be applications that are downloaded from the server 130 .
  • a user may login to collaboration platform 120 via collaboration application 114 .
  • the user may access a user account by providing user account information (e.g., user name and password) where the user account is associated with one or more characters available to participate in one or more games 122 of collaboration platform 120 .
  • user account information e.g., user name and password
  • collaboration platform 120 functions described in one implementation as being performed by the collaboration platform 120 can also be performed on the client devices 110 A through 110 B, or sever 130 , in other implementations if appropriate.
  • functionality attributed to a particular component can be performed by different or multiple components operating together.
  • the collaboration platform 120 can also be accessed as a service provided to other systems or devices through appropriate application programming interfaces, and thus is not limited to use in websites.
  • collaboration platform 120 may include messaging module 128 .
  • messaging module 128 may be a system, application, or module that allows users to exchange electronic messages via a communication system, such as network 105 .
  • Messaging module 128 may be associated with collaboration application 114 (e.g., module of collaboration application 114 or be a separate application).
  • users may interface with messaging module 128 and exchange electronic messages among users of collaboration platform 120 .
  • Messaging module 128 may be, for example, an instant messaging application, a text messaging application, an email application, a voice messaging application, a video messaging application, or a combination of multiple applications, among others.
  • messaging module 128 may facilitate the exchange of electronic messages between users. For example, a user may be logged into a messaging application on client device 110 A, and another user may be logged into a messaging application on client device 110 B. The two users may start a conversation, such as an instant messaging conversation. Messaging module 128 may help facilitate the messaging conversation by sending and receiving the electronic messages between the users of collaboration platform 120 .
  • proximity friending module 140 is implemented on server 130 . In other implementations, proximity friending module 140 may in part or wholly be implemented on client device 110 . In other implementations, proximity friending module 140 may in part or wholly be implemented on collaboration platform 120 . In other implementations, proximity friending module 140 operating on one or more of client device 110 , server 130 , or collaboration platform 120 may work in conjunction to perform the operations described herein. In implementations, proximity friending module 140 of client devices 110 may be a separate application or part of collaboration application 114 (e.g., add-in).
  • implementations of the disclosure are discussed in terms of collaboration platforms, implementations may also be generally applied to any type of social network providing connections between users.
  • the users may be provided with an opportunity to control whether the collaboration platform 120 collects user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that may be more relevant to the user.
  • user information e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location
  • certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed.
  • a user's identity may be treated so that no personally identifiable information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined.
  • location information such as to a city, ZIP code, or state level
  • the user may have control over how information is collected about the user and used by the collaboration platform 120 .
  • FIG. 2 is a diagram of operations for proximity friend finding, in accordance with implementations of the disclosure.
  • System 200 may include similar components as system architecture 100 as described with respect to FIG. 1 . It may be noted that components of FIG. 1 may be used herein to help describe FIG. 2 .
  • collaboration platform 120 may implement the proximity friending module 140 to perform some or all the operations.
  • collaboration platform 120 (using proximity friending module 140 ) may interact with client devices 110 (using respective proximity friending modules 140 ) to perform operations described with respect to FIG. 2 .
  • operations described as performed by collaboration platform 120 may be performed by any component of collaboration platform 120 , unless otherwise described.
  • operations performed by client device 110 may be performed by collaboration application 114 or proximity friending module 140 .
  • “user A” is a user associated user account A (of the collaboration platform 120 ) and with client device 110 A
  • user B is a user associated user account B and with client device 110 B.
  • the operations described with respect to FIG. 2 are shown to be performed serially for the sake of illustration, rather than limitations. It may be noted that in implementations the operations may be performed in any order, may be performed multiple times, or may include the same, fewer, or additional operations.
  • proximity friending may include an attempt by user A to find friends that are nearby or in a physical proximity with user A.
  • physical proximity also referred to as “proximity” herein
  • physical proximity may be a range defined by the range of the network (e.g., Wi-Fi® network, WLAN) that the client devices 110 are accessing.
  • the physical proximity relative a user may be in a range that less than 1 mile (from the user), less than 1000 feet, or another range, if applicable.
  • an indication of physical proximity of two users may indicate the relative proximity between two users, where the relative proximity is determined without knowing the absolute location (e.g., longitude and latitude) of the two users.
  • system 200 may known or estimate that two users are proximate one another, but not know the absolute location of at least one of users. In other implementations, system 200 may know the location of the users and estimate the proximity of two or more users based on the known locations.
  • proximity of two or more users may be implied from proximity indicators, such as network identifiers.
  • users that are identified as being on the same local areas network (LAN), such as a wireless LAN (WLAN) (e.g., Wi-Fi®) may be in physical proximity as implied by range constraints of WLAN systems, for example.
  • WLAN may operate in compliance with an 802.11 standard which describes a set of media access controls (MAC) and physical layer (PHY) specifications for implementing WLAN communications in one or more frequency bands.
  • MAC media access controls
  • PHY physical layer
  • login operation 210 A may be an operation where user A of client device 110 A performs a login to collaboration platform 120 .
  • user A may supply login information, such as user account information (e.g., username and password) to collaboration platform 120 via collaboration application 114 or proximity friending module 140 .
  • collaboration platform 120 may verify the login information and responsive to the verification, allow user A access to collaboration platform 120 and the user account content associated with user account A.
  • user B of client device 110 B may perform a similar login operation 210 B as described above with respect to login operation 210 A.
  • friend request 212 A may be a request from client device 110 A to establish a friendship (e.g., trusted friendship) with other users of collaboration platform 120 that are in physical proximity with user A.
  • friendship e.g., trusted friendship
  • user A is logged in prior to submitting the friend request 212 A.
  • the friend request 212 A includes user account information to help identify the user account associated with the user request, for example.
  • friend request 212 A may include an indicator of physical proximity (also referred to as “physical proximity indicator” or “proximity indicator” herein).
  • friend request 212 A may not include a physical proximity indicator.
  • a physical proximity indicator may be data that is used to determine the physical proximity of two or more users.
  • a physical proximity indicator may be a network identifier that identifies the WLAN being accessed by client device 110 A.
  • the network identifier may be a service set identifier (SSID) or other network identifier.
  • user A of client device 110 A may access a “friends” section of collaboration application 114 (or proximity friending module 140 ).
  • User A may select a user input control, such as a “find nearby friends” button, which initiates collaboration application 114 (or proximity friending module 140 ) to send friend request 212 A to collaboration platform 120 .
  • a user input control such as a “find nearby friends” button
  • the friend request 212 A may be denied by collaboration platform 120 and a notification may be sent to client device 110 A indicating the denial.
  • collaboration platform 120 may perform a parse operation 214 to parse friend request 212 A.
  • collaboration platform 120 parses the friend request 212 A to determine the type of request (e.g., a proximity friend request or other).
  • parse operation 214 parses the friend request 212 A to identify user account information or a physical proximity indicator.
  • collaboration platform 120 may keep a record of the friend request 212 A and the information associated with the friend request 212 A.
  • collaboration platform 120 may record the friend request 212 A by associating friend request 212 A with the particular user account (e.g., user account of user A).
  • collaboration platform 120 may record a status identifier that indicates a state of a particular friend request 212 A (e.g., pending, canceled, paused, etc.). The status identifier may be associated with the particular user account (e.g., user account A of user A).
  • collaboration platform 120 responsive to receiving (or parsing) friend request 212 A may update a status associated a particular user account A to indicate that friend request 212 A is currently pending (e.g., pending status).
  • the physical proximity indicator may be recorded and associated with appropriate user account.
  • collaboration platform 120 may initiate a scan operation 216 .
  • scan operation 216 may send one or more requests to client device 110 A requesting a physical proximity indicator from client device 110 .
  • the scan operation 216 may send a request once, multiple times, periodically, or at intervals, for example.
  • collaboration platform 120 may (scan) send a request to proximity friending module 140 requesting a physical proximity indicator.
  • proximity friending module 140 responsive to the request from collaboration platform 120 , queries client device 110 or an application of client device 110 for the physical proximity indicator, such as an identifier of the WLAN currently accessed by the client device 110 .
  • proximity friending module 140 of client device 110 may send a system call to the operating system (OS) of the client device 110 to request the physical proximity indicator or send a function call to another application executing on client device 110 .
  • the physical proximity indicator may be sent to proximity friending module 140 responsive to the call and proximity friending module 140 may then send the physical proximity indicator to collaboration platform 120 .
  • OS operating system
  • client device 110 A in response to scan operation 216 , client device 110 A (e.g., proximity friending module 140 ) performs scan response operation 218 and sends a response to collaboration platform 120 that may include the physical proximity indicator.
  • the response may also include user account information.
  • collaboration platform 120 may continue to perform scan operation 216 regardless of whether or not a physical proximity indicator is received from client device 110 A. For example, collaboration platform 120 may continue to perform scan operation 216 as part of an effort to determine whether user A is still accessing the same WLAN identified by an initial physical proximity indicator. In some implementations, if collaboration platform 120 (using multiple scan operations 216 ) determines client device 110 A is no longer accessing the same WLAN, collaboration platform 120 may cancel friend request 212 A (and update pending status of friend request 212 A to canceled status, for example).
  • collaboration platform 120 may continue to execute friend request 212 A and update the physical proximity indicator associated with the new WLAN. In other implementations, collaboration platform 120 may cancel the friend request 212 A responsive to receiving a threshold number (or threshold amount of time) of responses to scan operation 216 that do not include the same physical proximity indicator or do not include any physical proximity indicator.
  • collaboration platform 120 may perform a determination operation (not shown, but similar to determine operation 228 ), to determine if any friends have been located proximate user A. In the current example, no friends are yet determined to be proximate user A.
  • collaboration platform 120 may send one or more friend request responses 220 to client device 110 A to update user A (e.g., proximity friending module 140 ) on whether any proximate friends have been found responsive to friend request 212 A.
  • user A e.g., proximity friending module 140
  • collaboration platform 120 has not located any friends proximity to user A and the friend request response 220 may indicate that no proximate friends have currently been found.
  • client device 110 A may use the information included in friend request response 220 and show a map or other indicator showing that no friends have been located proximate user A.
  • friend request 212 A may still be pending until canceled, in accordance with some implementations.
  • user B sends friend request 212 B to collaboration platform 120 .
  • Friend request 212 B may be similar to friend request 212 A sent by client device 110 A, as described above.
  • collaboration platform 120 may perform a parse operation 222 to parse friend request 212 B. Parse operation 222 may be similar to parse operation 214 , as described above.
  • Collaboration platform 120 may perform a scan operation 224 to request a physical proximity indicator from client device 110 B. Scan operation 224 may be similar to scan operation 216 , as described above.
  • Client device 110 B may perform a scan response operation 226 and send a response to the scan operation 224 that includes a physical proximity indicator for client device 110 B.
  • Scan response operation 226 may be similar to response operation 218 , as described above.
  • collaboration platform 120 may keep a record associated with the user account of user B in a similar manner that collaboration platform 120 keeps a record associated with the user account of user A with respect to friend request 212 A.
  • the user account of user B may be associated with a pending status indicating that friend request 212 B is pending and may also be associated with a physical proximity indicator received from client device 110 B.
  • collaboration platform 120 may perform a determine operation 228 to determine whether any users of the collaboration platform 120 are in the physical proximity of user A. For the sake of illustration, rather than limitation, the following operations are described as being performed responsive to friend request 212 A from client device 110 A of user A. It may be noted, that additional similar operations may be performed responsive to friend request 212 B from client device 110 B of user B.
  • collaboration platform 120 may determine whether any users of collaboration platform 120 are in the physical proximity of user A by comparing the physical proximity indicator associated with user A to the physical proximity indicators associated with other users that are requesting proximity friendships. In implementations, if the physical proximity indicators are similar or match, collaboration platform 120 may determine the users are in physical proximity. For example, collaboration platform 120 may check the record to determine whether the physical proximity indicator associated with user account A of user A matches a physical proximity indicator associated with the user accounts of other users. If collaboration platform 120 determines a match between physical proximity indicators, collaboration platform 120 may determine that the user A is in physical proximity of another user associated with the same physical proximity indicator.
  • collaboration platform 120 may perform an invitation operation 240 where, for example, collaboration platform 120 sends an invitation to client device 110 A that allows user A to send a friend request to another proximate user. Additional details of the invitation operation 240 may be described below. It may be noted that in some implementations an invitation operation 240 may be performed responsive to a combination of one or more factors in addition to or in lieu of matching physical proximity indicators associated with two different user accounts. For example, in some implementations invitation operation 240 may be performed responsive to determining that two users are logged in, in physical proximity, and have pending friend requests 212 .
  • determining operation 228 may include collaboration platform 120 determining whether user A and any other users of collaboration platform 120 are currently requesting (e.g., have pending friend requests 212 ) a proximity friendship on collaboration platform 120 and whether any of the other users are in physical proximity to user A. For example, collaboration platform 120 may check the record to determine if another user account has a pending status (e.g., to a friend request 212 ) and compare the physical proximity indicator associated with user account A with the physical proximity indicator associated with the other user account. If the users have a pending friend request 212 and matching physical proximity indicators, collaboration platform 120 may perform an invitation operation 240 .
  • collaboration platform 120 may perform an invitation operation 240 .
  • collaboration platform 120 may perform verification operations 230 A and 230 B (also referred to as verification operations 230 ) to verify if users A and B are still or currently in physical proximity.
  • collaboration platform 120 may perform verification operation 230 responsive to determining user A and user B are in physical proximity or determining user A and user B are currently requesting a proximity friendship or both.
  • verification operations 230 may help confirm that users are still or currently in proximity with one another. For example, user A and user B may have submitted friend requests 212 and each user may have used the same WLAN at some point in time (as determined from matching physical proximity indicators). At a later time, user A or user B moved from the range of the common WLAN.
  • collaboration platform 120 may perform verification operation 230 A by sending a query to client device 110 A for a physical proximity indicator. Responsive to the query, client device 110 A may send a response to the verification query (verification response operation 232 A) than includes a physical proximity indicator. Similar operations, verification operation 230 B and verification response operation 232 B, may be performed by collaboration platform 120 and client device 110 B, respectively.
  • verification operations 230 may be performed in a similar manner as scan operation 216 as described above.
  • collaboration platform 120 may determine that client device 110 A or 110 B or both are no longer accessing the same WLAN and cancel or update the corresponding friend request 212 in a similar manner as described with respect to scan operation 216 above. It may be noted that verification operation 230 may be performed one or more times for a particular client device 110 in implementations.
  • collaboration platform 120 collaboration platform 120 may perform an invitation operation 240 . In some implementations, responsive to verifying that user A and user B are not currently in physical proximity, collaboration platform 120 may refrain performing an invitation operation 240 .
  • collaboration platform 120 may perform an authentication request operation 234 by sending an authentication request to client device 110 A to authenticate user A.
  • the authentication request may request authentication information from user A to confirm that user A is in fact user A.
  • Authentication information may include user password, user questions, or other information that user A knows, and others are not likely to know.
  • client device 110 A performs an authentication response operation 236 where client device 110 A sends a response to the authentication request that includes an indication of the authentication information.
  • collaboration platform 120 may request user A for password information. User A may enter the password, and client device 110 A sends the password back to collaboration platform 120 .
  • collaboration platform 120 may perform authentication operation 238 by comparing the received authentication information to other authentication information associated with user A or user account A. If a match is determined, user A may be authenticated. If a match is not determined, authentication is denied and collaboration platform 120 may re-send one or more authentication requests or cancel friend request 212 A (and change associated status information, and so forth).
  • collaboration platform 120 may perform an invitation operation 240 where an invitation to send a friend request to a (potential) proximate friend is sent to client device 110 A.
  • the invitation may identify the potential proximate friend and allow user A to send a friend request to the potential proximate friend.
  • an invitation operation 240 may send invitation information such as the user account name of the potential proximate friend (e.g., other user determined to be proximate user A), an avatar or image associated with the potential proximate friend's account, information regarding a mutual friend(s) (e.g., account name of mutual friend(s), indicator that no mutual friends exist, etc.), user input control options (e.g., invite, cancel, ignore, etc.) to be presented with the invitation at the client device 110 A.
  • client device 110 may receive the invitation from collaboration platform 120 .
  • the invitation to send a friend request to a proximate friend may be displayed on client device 110 A with some or all the invitation information.
  • the image of the proximate friend and account name of the proximate friend may be displayed to the user as well as a user input control that enables the user to send the friend request to the other user.
  • client device 110 A may perform an invitation response operation 242 that sends a response to invitation 240 than includes the user selection to the invitation (e.g., user selects send friend request to the other user).
  • the invitation to user A may be valid until collaboration platform 120 determines the physical proximity indicator associated with user A has changed (responsive to which collaboration platform 120 may cancel the invitation).
  • collaboration platform 120 may continue to perform scan operations, such as scan operation 216 , to determine if the physical proximity indicator associated with client device 110 A has changed.
  • collaboration platform 120 may maintain the invitation for a threshold amount of time before canceling the invitation or maintain the invitation irrespective of whether or not the physical proximity indicator associated with client device 110 A changes.
  • collaboration platform 120 responsive to receiving an invitation response that indicates user A would like to send a friend request to the proximate friend, collaboration platform 120 performs a friend request operation 244 that sends a friend request on behalf of user A to user B.
  • the request may include user input controls that allow user B to select one or more of accepting the friend request, denying the friend request, or blocking the sending user from future friend requests.
  • client device 110 B may perform a friend request response operation 246 that sends user B's response to the friend request from user A. If user B accepts the friend request, the users A and B are established as proximate friends. In some implementations, if user B blocks user A, user A is blocked from sending future friend requests to user B.
  • the friend request from user A may be valid until collaboration platform 120 determines the physical proximity indicator associated with user B or user A has changed.
  • collaboration platform 120 may maintain the invitation for a threshold amount of time (before canceling the invitation) or maintain the invitation irrespective of whether or not the physical proximity indicator associated with client device 110 A or 110 B changes.
  • a trusted relationship is established between user A and user B.
  • users of a trusted relationship may have additional privileges or additional functionality 248 as described above with respect to FIG. 1 .
  • collaboration platform 120 may enable one or more additional functionalities 248 for user A and user B.
  • FIG. 3 is a flow diagram illustrating method 300 for establishing a proximity friendship, in accordance with some implementations.
  • Method 300 may be performed by processing logic that includes hardware (e.g., circuitry, dedicated logic, programmable logic, microcode), software (e.g., instructions run on a processing device to perform hardware simulation), or a combination thereof.
  • proximity friending module 140 executing at collaboration platform 120 , client device 110 A, client device 110 B or combination thereof may perform some or all the operations. Components of FIG. 1 and FIG. 2 may be used to help illustrated method 300 .
  • Method 300 begins at block 305 where processing logic receives, from client device 110 A associated with user A of a collaboration platform 120 , a first request to establish friendship with other users of the collaboration platform 120 that are in physical proximity with the user A.
  • processing logic parses the first request to determine the first indicator of physical proximity associated with the user A.
  • processing logic responsive to receiving the first request to establish friendship with the other users, scans the client device 110 A to request the first indicator of physical proximity.
  • processing logic determines whether another user(s) of the collaboration platform 120 is in the physical proximity of the user A by comparing a first indicator of physical proximity associated with the user A (e.g., user account) with a second indicator of physical proximity associated with other users. If processing logic determines that another user is not in the physical proximity of user A, processing logic may return to block 315 . If processing logic determines that another user is in the physical proximity of user A, processing logic may proceed to block 325 .
  • a first indicator of physical proximity associated with the user A e.g., user account
  • processing logic verifies whether the other user of the collaboration platform 120 is currently in the physical proximity of the user A by querying the client device 110 A for the first indicator of physical proximity and another client device 110 B (of the other client) for the second indicator of physical proximity. If processing logic does not verify the other user is currently in the physical proximity of user A, processing logic may return to block 315 . If processing logic does verify the other user is currently in the physical proximity of user A, processing logic may proceed to block 330 .
  • processing logic authenticates user A based on a response to an authentication request.
  • processing logic sends user A an invitation to request a friendship with the other user.
  • FIG. 4 is a block diagram illustrating an exemplary computer system 400 , in accordance with implementations.
  • the computer system 400 executes one or more sets of instructions that cause the machine to perform any one or more of the methodologies discussed herein.
  • Set of instructions, instructions, and the like may refer to instructions that, when executed computer system 400 , cause computer system 400 to perform one or more operations of proximity friending module 140 .
  • the machine may operate in the capacity of a server or a client device in client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
  • the machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
  • PC personal computer
  • PDA personal digital assistant
  • STB set-top box
  • PDA personal digital assistant
  • mobile telephone a web appliance
  • server a server
  • network router switch or bridge
  • the computer system 400 includes a processing device 402 , a main memory 404 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 406 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 416 , which communicate with each other via a bus 408 .
  • main memory 404 e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.
  • DRAM dynamic random access memory
  • SDRAM synchronous DRAM
  • RDRAM Rambus DRAM
  • static memory 406 e.g., flash memory, static random access memory (SRAM), etc.
  • SRAM static random access memory
  • the processing device 402 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device 402 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processing device implementing other instruction sets or processing devices implementing a combination of instruction sets.
  • the processing device 402 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like.
  • the processing device 402 is configured to execute instructions of the system architecture 100 and the proximity friending module 140 for performing the operations discussed herein.
  • the computer system 400 may further include a network interface device 422 that provides communication with other machines over a network 418 , such as a local area network (LAN), an intranet, an extranet, or the Internet.
  • the computer system 400 also may include a display device 410 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 412 (e.g., a keyboard), a cursor control device 414 (e.g., a mouse), and a signal generation device 420 (e.g., a speaker).
  • a display device 410 e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)
  • an alphanumeric input device 412 e.g., a keyboard
  • a cursor control device 414 e.g., a mouse
  • a signal generation device 420 e.g., a speaker
  • the data storage device 416 may include a non-transitory computer-readable storage medium 424 on which is stored the sets of instructions of the system architecture 100 and proximity friending module 140 embodying any one or more of the methodologies or functions described herein.
  • the sets of instructions of the system architecture 100 and proximity friending module 140 may also reside, completely or at least partially, within the main memory 404 and/or within the processing device 402 during execution thereof by the computer system 400 , the main memory 404 and the processing device 402 also constituting computer-readable storage media.
  • the sets of instructions may further be transmitted or received over the network 418 via the network interface device 422 .
  • While the example of the computer-readable storage medium 424 is shown as a single medium, the term “computer-readable storage medium” can include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the sets of instructions.
  • the term “computer-readable storage medium” can include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure.
  • the term “computer-readable storage medium” can include, but not be limited to, solid-state memories, optical media, and magnetic media.
  • the present disclosure also relates to an apparatus for performing the operations herein.
  • This apparatus may be specially constructed for the required purposes, or it may include a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
  • a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including a floppy disk, an optical disk, a compact disc read-only memory (CD-ROM), a magnetic-optical disk, a read-only memory (ROM), a random access memory (RAM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic or optical card, or any type of media suitable for storing electronic instructions.
  • a computer readable storage medium such as, but not limited to, any type of disk including a floppy disk, an optical disk, a compact disc read-only memory (CD-ROM), a magnetic-optical disk, a read-only memory (ROM), a random
  • example or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example” or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion.
  • the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Computing Systems (AREA)
  • Primary Health Care (AREA)
  • Social Psychology (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A first request to establish the trusted relationship via the online gaming platform between the first user account and other user accounts of the gaming platform is received. A second request to establish the trusted relationship between the second user account and other user accounts of the gaming platform is received. Whether the first client device corresponding to the first user account is within a defined physical range with respect to the second client device corresponding to the second user account is estimated. Responsive to estimating that the first client device is within the defined physical range with respect to the second client device, the trusted relationship between the first user account and the second user account via the online gaming platform is established and additional functionality that enables the first user account and the second user account to interact via the online gaming platform is enabled.

Description

RELATED APPLICATION
This application is a continuation application of U.S. patent application Ser. No. 15/628,319, filed Jun. 20, 2017, the entire contents of which are hereby incorporated by reference herein.
TECHNICAL FIELD
This disclosure relates to the field of collaboration platforms and, in particular, establishing friendships between users of the collaboration platform that are in physical proximity.
BACKGROUND
Collaboration platforms allow users to connect to and share information with each other via the Internet. Users of a collaboration platform, such as a gaming platform, may participate in multi-user gaming environments, design custom gaming environments, decorate avatars, or exchange virtual items with other users, and so forth.
DESCRIPTION OF DRAWINGS
Various implementations of the present disclosure will be understood more fully from the detailed description given below and from the accompanying drawings of various implementations of the disclosure.
FIG. 1 illustrates an example system architecture, in accordance with implementations of the disclosure.
FIG. 2 is a diagram of operations of proximity friend finding, in accordance with implementations of the disclosure.
FIG. 3 is a flow diagram illustrating method for establishing a proximity friendship, in accordance with some implementations.
FIG. 4 is a block diagram illustrating an exemplary computer system, in accordance with implementations.
DETAILED DESCRIPTION
Collaboration platforms, such as gaming platforms, offer a variety of ways for users to interact with one another. For example, users of a gaming platform may work together towards a common goal, share various gaming items, send electronic messages to one another, and so forth. Users of a collaboration platform may be linked to other users and be recognized by the collaboration platform as “friends.” A user and their friends may have special access to one another such as the ability to see information about a friend's user account, send electronic messages to one another, trade items, as well as others. In some systems, establishing friendships may be performed by sending a friend request to another user and having the other user accept the friend request. Determining whether a user sending a friend request can be trusted may present challenges, in particular for minors (e.g., ages under 13 years old) who may be vulnerable to predatory users.
Aspects of the present disclosure address the above-mentioned and other challenges by creating friendships among users that are physically proximate one another. Physical closeness of users may be an indicator or imply that the users are more likely to be trustworthy (e.g., the users are real-life friends). In some implementations, users that establish a trusted friendship using proximity friending may have access to additional functionalities that may not be available to non-trusted friends.
In particular, aspects of the present disclosure receive, from a first client device, a first request to establish friendships with other users of the collaboration platform that are in physical proximity with the first user. The collaboration platform may determine whether a second user is in the physical proximity of the first user by comparing a first indicator of physical proximity associated with the first user with a second indicator of physical proximity associated with the second user. The collaboration platform responsive to determining the second user of the collaboration platform is in the physical proximity of the first user based on the comparison, sends to the first user an invitation to request a friendship with the second user.
By establishing friendships on a collaboration platform with users that are in physical proximity as disclosed herein is advantageous because it provides a safer and more trustworthy way to establish friendships and helps create a safer environment for users (e.g., minors) of the collaboration platform, which improves an overall user experience with the collaboration platform, and increases the content consumed (e.g., time using the collaboration platform) by users of the collaboration platform. In addition, aspects of the present disclosure result in significant reduction of storage resources and significant reduction of computational (processing) resources because initially establishing trustworthy friendships among users that are in physical proximity is more efficient than monitoring for non-trustworthy friendships or performing remedial measures to remedy actions created by users with non-trustworthy friendships, for example.
It may be noted that a collaboration platform described as a gaming platform herein is provided for purposes of illustration, rather than limitation. A collaboration platform may be one or more of numerous platforms, such as a social networking platform, purchasing platform, a messaging platform, creation platform, and so forth.
FIG. 1 illustrates an example system architecture 100, in accordance with one implementation of the disclosure. The system architecture 100 (also referred to as “system” herein) includes client devices 110A and 110B, a network 105, a data store 106, a collaboration platform 120, and a server 130.
In one implementation, network 105 may include a public network (e.g., the Internet), a private network (e.g., a local area network (LAN) or wide area network (WAN)), a wired network (e.g., Ethernet network), a wireless network (e.g., an 802.11 network, a Wi-Fi® network, or wireless LAN (WLAN)), a cellular network (e.g., a Long Term Evolution (LTE) network), routers, hubs, switches, server computers, and/or a combination thereof.
In one implementation, the data store 106 may be a memory (e.g., random access memory), a cache, a drive (e.g., a hard drive), a flash drive, a database system, or another type of component or device capable of storing data. The data store 106 may also include multiple storage components (e.g., multiple drives or multiple databases) that may also span multiple computing devices (e.g., multiple server computers).
In implementations, the server 130 may be one or more computing devices (e.g., a rackmount server, a server computer, etc.). In implementations, the server 130 may be included in the collaboration platform 120, be an independent system or be part of another system or platform. The server 130 may include proximity friending module 140.
In some implementations, the collaboration platform 120 may be one or more computing devices (such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memories, databases), networks, software components, and/or hardware components that may be used to provide a user with access to collaboration platform 120. The collaboration platform 120 may also include a website (e.g., a webpage) or application back-end software that may be used to provide a user with access to content provided by collaboration platform 120.
In implementations, collaboration platform 120 may be a type of social network providing connections between users. In implementations of the disclosure, a “user” may be represented as a single individual. However, other implementations of the disclosure encompass a “user” being an entity controlled by a set of users and/or an automated source. For example, a set of individual users federated as a community in a social network may be considered a “user.” In another example, an automated consumer may be an automated ingestion pipeline, such as a game 122 or component of a game 122 of the collaboration platform 120.
In one implementation, collaboration platform 120 may be a gaming platform. For example, the gaming platform may provide single-player or multi-player games to a community of users that may access or interact with the games 122A-122Z using client devices 110. In implementations, games 122 (also referred to as “video game,” “online game,” or “virtual game” herein) may be two-dimensional (2D) games, three-dimensional (3D) games, virtual reality (VR) games, or augmented reality (AR) games, for example. A game 122 can include an electronic file that can be executed or loaded using software, firmware or hardware configured to present the game content (e.g., digital media item) to an entity. In some implementations, collaboration platform 120 hosts games 122 and allows users to interact with the games 122 using collaboration application 114 of client device 110. Users of collaboration platform 120 may play, create, interact with, and build games 122, or create and build contents of games 122. For example, users may create characters, decoration for the characters, one or more virtual environments for an interactive game, or build structures in a game, for example. In implementations, users may buy, sell, or trade game items, such as in-platform currency (e.g., virtual currency), with other users of the collaboration platform 120. In implementations, collaboration platform may transmit game content to collaboration applications 114. Game content (also referred to as “content”) may refer to any data or software instructions (e.g., in-game items, user information, video, images, commands, etc.) associated with collaboration platform 120 or collaboration applications 114.
It may be noted that collaboration platform 120 hosting games 122, is provided for purposes of illustration, rather than limitation. In some implementations, collaboration platform 120 may host one or more media items. Media items can include, but are not limited to, digital video, digital movies, digital photos, digital music, audio content, melodies, website content, social media updates, electronic books (ebooks), electronic magazines, digital newspapers, digital audio books, electronic journals, web blogs, real simple syndication (RSS) feeds, electronic comic books, software applications, etc. In implementations, a media item may be an electronic file that can be executed or loaded using software, firmware or hardware configured to present the digital media item to an entity.
In one implementation, collaboration platform 120 may consolidate the game content from the client devices 110 and transmit the consolidated game content (e.g., gaming video, rendering commands, user input, graphics library commands, etc.) to each of the client devices 110 to display interactions of the multiple users in a multi-player gaming environment. In another implementation, collaboration platform 120 may transmit the game content from the one or more client devices 110 to another client device for the other client device to consolidate and display the game content. In another implementation, the collaboration platform 120 may receive the game content (e.g., first user transmitting user input via client device 110A and second user transmitting user input via client device 110B), generate game results (e.g., first user beats second user), and transmit the game results to the client devices 110.
In some implementations, a game 122 may be associated with a particular user or particular group of users (e.g., a private game), or made widely available to users of the collaboration platform 120 (e.g., a public game). In implementations, where collaboration platform 120 associates one or more games 122 with a specific user or group of users, collaboration platform 120 may associated the specific user(s) with a game 122 using user account information (e.g., a user account identifier such as username and password).
In some implementations, collaboration platform 120 may include a game engine 124. In implementations, game engine 124 may be used for the development or execution of games 122. For example, game engine 124 may include a rendering engine (“renderer”) for 2D, 3D, VR, or AR graphics, a physics engine or collision detection (and collision response), sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, scene graph, or video support for cinematics.
In implementations, collaboration platform 120 may include a creator module 126. In implementations, creator module 126 may allow users to become creators to design or create environments in an existing game 122 or create new games or create new items within games or environments. In some implementations, a game 122 may have a common set of rules or common goal, and the environments of a game 122 share the common set of rules or common goal. In implementations, different games may have different rules or goals from one another. In some implementations, games may have one or more environments where multiple environments may be linked. For example, a user may build a virtual environment that is linked to another virtual environment created by another user. A character of the virtual game may cross the virtual border to enter the adjacent virtual environment. In implementations, items may refer to objects that are used, created, shared or otherwise depicted in games 122 of the collaboration platform 120. For example, items may include a character, tools, clothing, buildings, vehicles, currency, and so forth.
In implementations, collaboration platform 120 may include proximity friending module 140. As further described herein, proximity friending module 140 may allow a user of collaboration platform 120 to find and establish friends that are in a physical proximity of the user (e.g., proximity friending). In some implementations, friends that are made though proximity friending may be considered “trusted friends” (e.g., forming a trusted relationship) and enjoy more privileges than users that do not have a trusted relationship. For example, users in a trusted relationship may be able to communicate more freely with one another. In implementations, trusted friends may imply safer friendships for younger users (e.g., minors) as trusted friendships are more likely to be with people that know one another in real-life. In some implementations, trusted friendships via proximity friending may be established between users that are already friends in collaboration platform 120. Similarly, a trusted friendship established between users that are already friends via the collaboration platform 120 may allow for additional functionality between the users of the trusted friendship once the trusted friendship is established, as described further below. Proximity friending module 140 will be further described with respect to the subsequent FIGS. 2-4 . Server 130 or client devices 110 may also implement proximity friending module 140.
In some implementations, a game 122 may include base functionalities and additional functionalities 121 (also referred to as “privileges” or “additional privileges” herein). In some implementations, users of collaboration platform 120 that are friends may be able to use the base functionalities, but in some instances, may not be able to use the additional functionalities 121 of a game 122 until a trusted friendship is created using proximity friending.
In some implementations, the base functionalities are granted to all (or most) users of collaboration platform 120, and the additional functionalities 121 are granted between users that form a trusted relationship via proximity friending. In some implementations, the additional functionalities 121 may allow for one or more additional privileges or interactions between users (e.g., messaging functionalities, following functionalities, sharing functionalities, purchasing functionalities, inviting functionalities, etc.). In implementations, the one or more additional functionalities 121 may be available between users of a trusted relationship.
In some implementations, users that have not established a trusted relationship with each other may be prevented from using the additional functionalities 121 to interact with each other. In some implementations, users of the collaboration platform 120 that are under a threshold age (e.g., minors that are users under 13 years old) are prevented from using one or more of the additional functionalities 121 to interact with other users with whom a trusted relationship has not been established. In some implementations, users of the collaboration platform 120 that have provided less than a threshold amount of information to the collaboration platform 120 (e.g., guest users, users that have not provided a birth date to the collaboration platform 120, etc.) are prevented from using the additional functionalities 121 to interact with other users with whom a trusted relationship has not been established. In some implementations, users of the collaboration platform 120 that have participated with the collaboration platform 120 for less than a threshold amount of time (e.g., have been registered with the collaboration platform 120 for less than a threshold amount of time (e.g., registered less than one month ago), have logged less than a threshold amount of time of actively participating in the collaboration platform 120 (e.g., less than 50 hours of game time), etc.) are prevented from using the additional functionalities 121 to interact with other users with whom a trusted relationship has not been established.
In some implementations, additional functionality 121 may include messaging functionality that allows user A (e.g., user of client device 110A) and user B (e.g., user of client device 110B) to communicate using a messaging service (e.g., messaging module 128) via the collaboration platform 120 (e.g., posts, chats, personal messages, public messages, messaging in a virtual gaming environment). For example, the messaging functionality may allow users to transmit messages each other. In another example, the messaging functionality allows users to transmit certain types of information (e.g., sensitive information, contact information, name, picture, voice recording, current location, unique identifiers (device ID), etc.) to each other that would otherwise be filtered by messaging module 128. In implementations, messaging module 128 may be used to implement messaging functionality and may further be described below. It may be noted that user A and user B are used for purposes of illustration, rather than limitation. For example, collaboration platform 120 may include one or more users capable of establishing a trusted relationship via proximity friending and that are granted additional functionality 121.
In some implementations, an additional functionality 121 may include a sharing functionality that allows user A and user B to share items with each other via the collaboration platform 120. For example, users of a gaming platform may have a sharing functionality that allows users to purchase, trade, or transfer virtual items, such as virtual currency, in a virtual gaming environment.
In some implementations, an additional functionality 121 may include a following functionality that allows user A and user B to follow each other into a game 122 or into a specific gaming environment of a game 122 hosted by the collaboration platform 120. For example, user A may be participating in a game 122A. The following functionality may allow user B to navigate to a profile page of the user A and select an option, “Join Game,” on user A's profile page, which places user B in the game 122A (e.g., the specific gaming environment of game 122A where user A is participating). In implementations, the following functionality may also include a notification feature that for example, notifies user B of the game in which user A has moved or is currently participating.
In some implementations, an additional functionality 121 may include an invitation functionality that allows user A and user B to invite each other to a private game hosted by the collaboration platform 120. For example, user A may create a private game and the invitation functionality may allow user A to invite user B to participate in the private game.
In some implementations, an additional functionality 121 may include a group functionality that allows user A and user B to join a group hosted by the collaboration platform 120. For example, the additional functionality 121 may allow user A to invite user B to a group where user A is a group member or group creator. Members of a group may participate with each other to compete against a different group in a game 122, may participate with each other in building (e.g., environments, structures, etc.) within a game 122, may participate with each other to create a game 122 (e.g., via creator module 126), may engage in discussions with each other (e.g., via messaging module 128, a group discussion), etc.
In some implementations, an additional functionality 121 includes an interaction functionality that allows user A and user B to interact with each other via the collaboration platform 120. For example, the base functionality may allow a user to participate in single-player games (but not multi-player games) and the interaction functionality may allow the user to participate in multi-player games. In another example, the base functionality may allow user A to compete against other users in a game 122 and the interaction functionality may allow user A to work together with user B to compete against other users in a game 122.
The client devices 110A through 110B may each include computing devices such as personal computers (PCs), mobile devices (e.g., laptops, mobile phones, smart phones, tablet computers, or netbook computers), network-connected televisions, gaming consoles, etc. In some implementations, client devices 110A through 110B may also be referred to as “user devices.” In implementations, one or more client devices 110 via collaboration application 114 may connect to collaboration platform 120 at any given moment.
In implementations, each client device 110 may include an instance of collaboration application 114. In one implementation, the collaboration application 114 may be an application that allows users to use and interact with collaboration platform 120, such as control a virtual character in a virtual game hosted by collaboration platform 120, or view or upload content, such as images, video items, web pages, documents, and so forth. In one example, the collaboration application 114 may be a web browser that can access, retrieve, present, and/or navigate content (e.g., virtual character in a virtual environment, etc.) served by a web server. The collaboration application 114 may render, display, and/or present the content (e.g., a web page, a media viewer) to a user. In an implementation, the collaboration application 114 may also include an embedded media player (e.g., a Flash® player) that is embedded in a web page. In another example, the collaboration application 114 may be a standalone application (e.g., a mobile application, app, or a gaming program) that allows users to interact with collaboration platform 120. According to aspects of the disclosure, the collaboration application 114 may be a collaboration platform application for users to create, edit, upload content to the collaboration platform 120 as well as interact with collaboration platform 120. As such, the collaboration applications 114 may be provided to the client devices 110A and 110B by the server 130 or collaboration platform 120. In another example, the collaboration applications 114 may be applications that are downloaded from the server 130.
In implementations, a user may login to collaboration platform 120 via collaboration application 114. The user may access a user account by providing user account information (e.g., user name and password) where the user account is associated with one or more characters available to participate in one or more games 122 of collaboration platform 120.
In general, functions described in one implementation as being performed by the collaboration platform 120 can also be performed on the client devices 110A through 110B, or sever 130, in other implementations if appropriate. In addition, the functionality attributed to a particular component can be performed by different or multiple components operating together. The collaboration platform 120 can also be accessed as a service provided to other systems or devices through appropriate application programming interfaces, and thus is not limited to use in websites.
In implementations, collaboration platform 120 may include messaging module 128. In implementations, messaging module 128 may be a system, application, or module that allows users to exchange electronic messages via a communication system, such as network 105. Messaging module 128 may be associated with collaboration application 114 (e.g., module of collaboration application 114 or be a separate application). In implementations, users may interface with messaging module 128 and exchange electronic messages among users of collaboration platform 120. Messaging module 128 may be, for example, an instant messaging application, a text messaging application, an email application, a voice messaging application, a video messaging application, or a combination of multiple applications, among others.
In implementations, messaging module 128 may facilitate the exchange of electronic messages between users. For example, a user may be logged into a messaging application on client device 110A, and another user may be logged into a messaging application on client device 110B. The two users may start a conversation, such as an instant messaging conversation. Messaging module 128 may help facilitate the messaging conversation by sending and receiving the electronic messages between the users of collaboration platform 120.
For the sake of illustration, proximity friending module 140 is implemented on server 130. In other implementations, proximity friending module 140 may in part or wholly be implemented on client device 110. In other implementations, proximity friending module 140 may in part or wholly be implemented on collaboration platform 120. In other implementations, proximity friending module 140 operating on one or more of client device 110, server 130, or collaboration platform 120 may work in conjunction to perform the operations described herein. In implementations, proximity friending module 140 of client devices 110 may be a separate application or part of collaboration application 114 (e.g., add-in).
Although implementations of the disclosure are discussed in terms of collaboration platforms, implementations may also be generally applied to any type of social network providing connections between users.
In situations in which the systems discussed here collect personal information about users, or may make use of personal information, the users may be provided with an opportunity to control whether the collaboration platform 120 collects user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that may be more relevant to the user. In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user's identity may be treated so that no personally identifiable information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, the user may have control over how information is collected about the user and used by the collaboration platform 120.
FIG. 2 is a diagram of operations for proximity friend finding, in accordance with implementations of the disclosure. System 200 may include similar components as system architecture 100 as described with respect to FIG. 1 . It may be noted that components of FIG. 1 may be used herein to help describe FIG. 2 . In implementations, collaboration platform 120 may implement the proximity friending module 140 to perform some or all the operations. In other implementations, collaboration platform 120 (using proximity friending module 140) may interact with client devices 110 (using respective proximity friending modules 140) to perform operations described with respect to FIG. 2 . For purpose of illustration, rather than limitation, operations described as performed by collaboration platform 120 may be performed by any component of collaboration platform 120, unless otherwise described. For purposes of illustration, rather than limitation, operations performed by client device 110 may be performed by collaboration application 114 or proximity friending module 140. It may be noted that for the purposes of illustration, rather than limitation, “user A” is a user associated user account A (of the collaboration platform 120) and with client device 110A and “user B” is a user associated user account B and with client device 110B. The operations described with respect to FIG. 2 are shown to be performed serially for the sake of illustration, rather than limitations. It may be noted that in implementations the operations may be performed in any order, may be performed multiple times, or may include the same, fewer, or additional operations.
In implementations, proximity friending may include an attempt by user A to find friends that are nearby or in a physical proximity with user A. In implementations, physical proximity (also referred to as “proximity” herein) may refer to a physical closeness between two users or closeness of the client devices 110 of the users. In some implementations, physical proximity may be a range defined by the range of the network (e.g., Wi-Fi® network, WLAN) that the client devices 110 are accessing. In implementations, the physical proximity relative a user may be in a range that less than 1 mile (from the user), less than 1000 feet, or another range, if applicable.
In some implementations, an indication of physical proximity of two users may indicate the relative proximity between two users, where the relative proximity is determined without knowing the absolute location (e.g., longitude and latitude) of the two users. For example, system 200 may known or estimate that two users are proximate one another, but not know the absolute location of at least one of users. In other implementations, system 200 may know the location of the users and estimate the proximity of two or more users based on the known locations.
In implementations, proximity of two or more users may be implied from proximity indicators, such as network identifiers. For example, users that are identified as being on the same local areas network (LAN), such as a wireless LAN (WLAN) (e.g., Wi-Fi®), may be in physical proximity as implied by range constraints of WLAN systems, for example. In some implementations, the WLAN may operate in compliance with an 802.11 standard which describes a set of media access controls (MAC) and physical layer (PHY) specifications for implementing WLAN communications in one or more frequency bands.
Returning to FIG. 2 , in implementations login operation 210A may be an operation where user A of client device 110A performs a login to collaboration platform 120. In one example, user A may supply login information, such as user account information (e.g., username and password) to collaboration platform 120 via collaboration application 114 or proximity friending module 140. In implementations, collaboration platform 120 may verify the login information and responsive to the verification, allow user A access to collaboration platform 120 and the user account content associated with user account A. In other implementations, user B of client device 110B may perform a similar login operation 210B as described above with respect to login operation 210A.
In implementations, user A may submit a friend request 212A (also referred to as a “proximity friend request” or “friend request operation” herein) to collaboration platform 120. In implementations, friend request 212A may be a request from client device 110A to establish a friendship (e.g., trusted friendship) with other users of collaboration platform 120 that are in physical proximity with user A. In some implementations, user A is logged in prior to submitting the friend request 212A. In an implementation, the friend request 212A includes user account information to help identify the user account associated with the user request, for example. In some implementations, friend request 212A may include an indicator of physical proximity (also referred to as “physical proximity indicator” or “proximity indicator” herein). In other implementations, friend request 212A may not include a physical proximity indicator. In implementations, a physical proximity indicator may be data that is used to determine the physical proximity of two or more users. For example, a physical proximity indicator may be a network identifier that identifies the WLAN being accessed by client device 110A. In implementations, the network identifier may be a service set identifier (SSID) or other network identifier.
In one example, user A of client device 110A may access a “friends” section of collaboration application 114 (or proximity friending module 140). User A may select a user input control, such as a “find nearby friends” button, which initiates collaboration application 114 (or proximity friending module 140) to send friend request 212A to collaboration platform 120. In implementations, if user A is not on A WLAN the friend request 212A may be denied by collaboration platform 120 and a notification may be sent to client device 110A indicating the denial.
In implementations, collaboration platform 120 may perform a parse operation 214 to parse friend request 212A. In implementations, collaboration platform 120 parses the friend request 212A to determine the type of request (e.g., a proximity friend request or other). In some implementations, parse operation 214 parses the friend request 212A to identify user account information or a physical proximity indicator.
In implementations, collaboration platform 120 may keep a record of the friend request 212A and the information associated with the friend request 212A. In implementations, collaboration platform 120 may record the friend request 212A by associating friend request 212A with the particular user account (e.g., user account of user A). In implementations, collaboration platform 120 may record a status identifier that indicates a state of a particular friend request 212A (e.g., pending, canceled, paused, etc.). The status identifier may be associated with the particular user account (e.g., user account A of user A). In an example, collaboration platform 120 responsive to receiving (or parsing) friend request 212A may update a status associated a particular user account A to indicate that friend request 212A is currently pending (e.g., pending status). In some implementations, the physical proximity indicator may be recorded and associated with appropriate user account.
In implementations, responsive to receiving friend request 211A, collaboration platform 120 may initiate a scan operation 216. In implementations, scan operation 216 may send one or more requests to client device 110A requesting a physical proximity indicator from client device 110. In some implementations, the scan operation 216 may send a request once, multiple times, periodically, or at intervals, for example.
In one example, collaboration platform 120 may (scan) send a request to proximity friending module 140 requesting a physical proximity indicator. In one embodiment, proximity friending module 140, responsive to the request from collaboration platform 120, queries client device 110 or an application of client device 110 for the physical proximity indicator, such as an identifier of the WLAN currently accessed by the client device 110. For example, responsive to the request from collaboration platform 120, proximity friending module 140 of client device 110 may send a system call to the operating system (OS) of the client device 110 to request the physical proximity indicator or send a function call to another application executing on client device 110. The physical proximity indicator may be sent to proximity friending module 140 responsive to the call and proximity friending module 140 may then send the physical proximity indicator to collaboration platform 120.
In implementations, in response to scan operation 216, client device 110A (e.g., proximity friending module 140) performs scan response operation 218 and sends a response to collaboration platform 120 that may include the physical proximity indicator. In implementations, the response may also include user account information.
In some implementations, collaboration platform 120 may continue to perform scan operation 216 regardless of whether or not a physical proximity indicator is received from client device 110A. For example, collaboration platform 120 may continue to perform scan operation 216 as part of an effort to determine whether user A is still accessing the same WLAN identified by an initial physical proximity indicator. In some implementations, if collaboration platform 120 (using multiple scan operations 216) determines client device 110A is no longer accessing the same WLAN, collaboration platform 120 may cancel friend request 212A (and update pending status of friend request 212A to canceled status, for example). In other implementations, if collaboration platform 120 (using multiple scan operations 216) identifies that client device 110A is no longer accessing the same WLAN but is accessing a different WLAN, collaboration platform 120 may continue to execute friend request 212A and update the physical proximity indicator associated with the new WLAN. In other implementations, collaboration platform 120 may cancel the friend request 212A responsive to receiving a threshold number (or threshold amount of time) of responses to scan operation 216 that do not include the same physical proximity indicator or do not include any physical proximity indicator.
In some implementations, collaboration platform 120 may perform a determination operation (not shown, but similar to determine operation 228), to determine if any friends have been located proximate user A. In the current example, no friends are yet determined to be proximate user A.
In implementations, collaboration platform 120 may send one or more friend request responses 220 to client device 110A to update user A (e.g., proximity friending module 140) on whether any proximate friends have been found responsive to friend request 212A. In the current example, collaboration platform 120 has not located any friends proximity to user A and the friend request response 220 may indicate that no proximate friends have currently been found. In one example, client device 110A may use the information included in friend request response 220 and show a map or other indicator showing that no friends have been located proximate user A. In the present example, it may be noted that although no users have been located proximate found to be proximate user A, friend request 212A may still be pending until canceled, in accordance with some implementations.
In some implementations, user B sends friend request 212B to collaboration platform 120. Friend request 212B may be similar to friend request 212A sent by client device 110A, as described above. In implementations, collaboration platform 120 may perform a parse operation 222 to parse friend request 212B. Parse operation 222 may be similar to parse operation 214, as described above. Collaboration platform 120 may perform a scan operation 224 to request a physical proximity indicator from client device 110B. Scan operation 224 may be similar to scan operation 216, as described above. Client device 110B may perform a scan response operation 226 and send a response to the scan operation 224 that includes a physical proximity indicator for client device 110B. Scan response operation 226 may be similar to response operation 218, as described above.
It may be noted that collaboration platform 120 may keep a record associated with the user account of user B in a similar manner that collaboration platform 120 keeps a record associated with the user account of user A with respect to friend request 212A. For example, the user account of user B may be associated with a pending status indicating that friend request 212B is pending and may also be associated with a physical proximity indicator received from client device 110B.
In implementations, collaboration platform 120 may perform a determine operation 228 to determine whether any users of the collaboration platform 120 are in the physical proximity of user A. For the sake of illustration, rather than limitation, the following operations are described as being performed responsive to friend request 212A from client device 110A of user A. It may be noted, that additional similar operations may be performed responsive to friend request 212B from client device 110B of user B.
In implementations, collaboration platform 120 may determine whether any users of collaboration platform 120 are in the physical proximity of user A by comparing the physical proximity indicator associated with user A to the physical proximity indicators associated with other users that are requesting proximity friendships. In implementations, if the physical proximity indicators are similar or match, collaboration platform 120 may determine the users are in physical proximity. For example, collaboration platform 120 may check the record to determine whether the physical proximity indicator associated with user account A of user A matches a physical proximity indicator associated with the user accounts of other users. If collaboration platform 120 determines a match between physical proximity indicators, collaboration platform 120 may determine that the user A is in physical proximity of another user associated with the same physical proximity indicator.
In some implementations, responsive to determining a match between physical proximity indicators, collaboration platform 120 may perform an invitation operation 240 where, for example, collaboration platform 120 sends an invitation to client device 110A that allows user A to send a friend request to another proximate user. Additional details of the invitation operation 240 may be described below. It may be noted that in some implementations an invitation operation 240 may be performed responsive to a combination of one or more factors in addition to or in lieu of matching physical proximity indicators associated with two different user accounts. For example, in some implementations invitation operation 240 may be performed responsive to determining that two users are logged in, in physical proximity, and have pending friend requests 212.
In some implementations, determining operation 228 may include collaboration platform 120 determining whether user A and any other users of collaboration platform 120 are currently requesting (e.g., have pending friend requests 212) a proximity friendship on collaboration platform 120 and whether any of the other users are in physical proximity to user A. For example, collaboration platform 120 may check the record to determine if another user account has a pending status (e.g., to a friend request 212) and compare the physical proximity indicator associated with user account A with the physical proximity indicator associated with the other user account. If the users have a pending friend request 212 and matching physical proximity indicators, collaboration platform 120 may perform an invitation operation 240.
In one implementation, collaboration platform 120 may perform verification operations 230A and 230B (also referred to as verification operations 230) to verify if users A and B are still or currently in physical proximity. In some implementations, collaboration platform 120 may perform verification operation 230 responsive to determining user A and user B are in physical proximity or determining user A and user B are currently requesting a proximity friendship or both. In some implementations, verification operations 230 may help confirm that users are still or currently in proximity with one another. For example, user A and user B may have submitted friend requests 212 and each user may have used the same WLAN at some point in time (as determined from matching physical proximity indicators). At a later time, user A or user B moved from the range of the common WLAN. The verification operations 230 help identify if user A and user B are currently in proximity of one another. In implementations, collaboration platform 120 may perform verification operation 230A by sending a query to client device 110A for a physical proximity indicator. Responsive to the query, client device 110A may send a response to the verification query (verification response operation 232A) than includes a physical proximity indicator. Similar operations, verification operation 230B and verification response operation 232B, may be performed by collaboration platform 120 and client device 110B, respectively.
In some implementations, verification operations 230 may be performed in a similar manner as scan operation 216 as described above. In performing verification operations 230, collaboration platform 120 may determine that client device 110A or 110B or both are no longer accessing the same WLAN and cancel or update the corresponding friend request 212 in a similar manner as described with respect to scan operation 216 above. It may be noted that verification operation 230 may be performed one or more times for a particular client device 110 in implementations.
In some implementations, responsive to verifying user A and user B are currently in physical proximity, collaboration platform 120 collaboration platform 120 may perform an invitation operation 240. In some implementations, responsive to verifying that user A and user B are not currently in physical proximity, collaboration platform 120 may refrain performing an invitation operation 240.
In some implementations, collaboration platform 120 may perform an authentication request operation 234 by sending an authentication request to client device 110A to authenticate user A. In implementations, the authentication request may request authentication information from user A to confirm that user A is in fact user A. Authentication information may include user password, user questions, or other information that user A knows, and others are not likely to know. In implementations, client device 110A performs an authentication response operation 236 where client device 110A sends a response to the authentication request that includes an indication of the authentication information. For example, collaboration platform 120 may request user A for password information. User A may enter the password, and client device 110A sends the password back to collaboration platform 120.
In implementations, collaboration platform 120 may perform authentication operation 238 by comparing the received authentication information to other authentication information associated with user A or user account A. If a match is determined, user A may be authenticated. If a match is not determined, authentication is denied and collaboration platform 120 may re-send one or more authentication requests or cancel friend request 212A (and change associated status information, and so forth).
In implementations, responsive to authenticating user A, collaboration platform 120 may perform an invitation operation 240 where an invitation to send a friend request to a (potential) proximate friend is sent to client device 110A. The invitation may identify the potential proximate friend and allow user A to send a friend request to the potential proximate friend. In some implementations, an invitation operation 240 may send invitation information such as the user account name of the potential proximate friend (e.g., other user determined to be proximate user A), an avatar or image associated with the potential proximate friend's account, information regarding a mutual friend(s) (e.g., account name of mutual friend(s), indicator that no mutual friends exist, etc.), user input control options (e.g., invite, cancel, ignore, etc.) to be presented with the invitation at the client device 110A. In an example, client device 110 may receive the invitation from collaboration platform 120. The invitation to send a friend request to a proximate friend may be displayed on client device 110A with some or all the invitation information. In one example, the image of the proximate friend and account name of the proximate friend may be displayed to the user as well as a user input control that enables the user to send the friend request to the other user.
In implementations, client device 110A may perform an invitation response operation 242 that sends a response to invitation 240 than includes the user selection to the invitation (e.g., user selects send friend request to the other user). In some implementations, the invitation to user A may be valid until collaboration platform 120 determines the physical proximity indicator associated with user A has changed (responsive to which collaboration platform 120 may cancel the invitation). In some examples, collaboration platform 120 may continue to perform scan operations, such as scan operation 216, to determine if the physical proximity indicator associated with client device 110A has changed. In some implementations, collaboration platform 120 may maintain the invitation for a threshold amount of time before canceling the invitation or maintain the invitation irrespective of whether or not the physical proximity indicator associated with client device 110A changes.
In implementations, responsive to receiving an invitation response that indicates user A would like to send a friend request to the proximate friend, collaboration platform 120 performs a friend request operation 244 that sends a friend request on behalf of user A to user B. In some implementations, the request may include user input controls that allow user B to select one or more of accepting the friend request, denying the friend request, or blocking the sending user from future friend requests. In implementations, client device 110B may perform a friend request response operation 246 that sends user B's response to the friend request from user A. If user B accepts the friend request, the users A and B are established as proximate friends. In some implementations, if user B blocks user A, user A is blocked from sending future friend requests to user B. In some implementations, the friend request from user A may be valid until collaboration platform 120 determines the physical proximity indicator associated with user B or user A has changed. In some implementations, collaboration platform 120 may maintain the invitation for a threshold amount of time (before canceling the invitation) or maintain the invitation irrespective of whether or not the physical proximity indicator associated with client device 110A or 110B changes.
In some implementations, responsive to user A and user be becoming proximate friends, a trusted relationship is established between user A and user B. In implementation, users of a trusted relationship may have additional privileges or additional functionality 248 as described above with respect to FIG. 1 . For example, collaboration platform 120 may enable one or more additional functionalities 248 for user A and user B.
FIG. 3 is a flow diagram illustrating method 300 for establishing a proximity friendship, in accordance with some implementations. Method 300 may be performed by processing logic that includes hardware (e.g., circuitry, dedicated logic, programmable logic, microcode), software (e.g., instructions run on a processing device to perform hardware simulation), or a combination thereof. In some implementations, proximity friending module 140 executing at collaboration platform 120, client device 110A, client device 110B or combination thereof may perform some or all the operations. Components of FIG. 1 and FIG. 2 may be used to help illustrated method 300.
Method 300 begins at block 305 where processing logic receives, from client device 110A associated with user A of a collaboration platform 120, a first request to establish friendship with other users of the collaboration platform 120 that are in physical proximity with the user A. At block 310, processing logic parses the first request to determine the first indicator of physical proximity associated with the user A. At block 315, processing logic responsive to receiving the first request to establish friendship with the other users, scans the client device 110A to request the first indicator of physical proximity. At block 320, processing logic determines whether another user(s) of the collaboration platform 120 is in the physical proximity of the user A by comparing a first indicator of physical proximity associated with the user A (e.g., user account) with a second indicator of physical proximity associated with other users. If processing logic determines that another user is not in the physical proximity of user A, processing logic may return to block 315. If processing logic determines that another user is in the physical proximity of user A, processing logic may proceed to block 325.
At block 325, processing logic verifies whether the other user of the collaboration platform 120 is currently in the physical proximity of the user A by querying the client device 110A for the first indicator of physical proximity and another client device 110B (of the other client) for the second indicator of physical proximity. If processing logic does not verify the other user is currently in the physical proximity of user A, processing logic may return to block 315. If processing logic does verify the other user is currently in the physical proximity of user A, processing logic may proceed to block 330.
At block 330, processing logic authenticates user A based on a response to an authentication request. At block 335, processing logic sends user A an invitation to request a friendship with the other user.
FIG. 4 is a block diagram illustrating an exemplary computer system 400, in accordance with implementations. The computer system 400 executes one or more sets of instructions that cause the machine to perform any one or more of the methodologies discussed herein. Set of instructions, instructions, and the like may refer to instructions that, when executed computer system 400, cause computer system 400 to perform one or more operations of proximity friending module 140. The machine may operate in the capacity of a server or a client device in client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute the sets of instructions to perform any one or more of the methodologies discussed herein.
The computer system 400 includes a processing device 402, a main memory 404 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 406 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 416, which communicate with each other via a bus 408.
The processing device 402 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device 402 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processing device implementing other instruction sets or processing devices implementing a combination of instruction sets. The processing device 402 may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 402 is configured to execute instructions of the system architecture 100 and the proximity friending module 140 for performing the operations discussed herein.
The computer system 400 may further include a network interface device 422 that provides communication with other machines over a network 418, such as a local area network (LAN), an intranet, an extranet, or the Internet. The computer system 400 also may include a display device 410 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 412 (e.g., a keyboard), a cursor control device 414 (e.g., a mouse), and a signal generation device 420 (e.g., a speaker).
The data storage device 416 may include a non-transitory computer-readable storage medium 424 on which is stored the sets of instructions of the system architecture 100 and proximity friending module 140 embodying any one or more of the methodologies or functions described herein. The sets of instructions of the system architecture 100 and proximity friending module 140 may also reside, completely or at least partially, within the main memory 404 and/or within the processing device 402 during execution thereof by the computer system 400, the main memory 404 and the processing device 402 also constituting computer-readable storage media. The sets of instructions may further be transmitted or received over the network 418 via the network interface device 422.
While the example of the computer-readable storage medium 424 is shown as a single medium, the term “computer-readable storage medium” can include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the sets of instructions. The term “computer-readable storage medium” can include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure. The term “computer-readable storage medium” can include, but not be limited to, solid-state memories, optical media, and magnetic media.
In the foregoing description, numerous details are set forth. It will be apparent, however, to one of ordinary skill in the art having the benefit of this disclosure, that the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present disclosure.
Some portions of the detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It may be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, it is appreciated that throughout the description, discussions utilizing terms such as “receiving,” “authenticating,” “determining,” “parsing,” “sending,” “scanning,” “verifying,” “identifying,” or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system memories or registers into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may include a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including a floppy disk, an optical disk, a compact disc read-only memory (CD-ROM), a magnetic-optical disk, a read-only memory (ROM), a random access memory (RAM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic or optical card, or any type of media suitable for storing electronic instructions.
The words “example” or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example” or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations. That is, if X includes A; X includes B; or X includes both A and B, then “X includes A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims may generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Moreover, use of the term “an implementation” or “one implementation” or “an implementation” or “one implementation” throughout is not intended to mean the same implementation or implementation unless described as such. The terms “first,” “second,” “third,” “fourth,” etc. as used herein are meant as labels to distinguish among different elements and may not necessarily have an ordinal meaning according to their numerical designation.
It is to be understood that the above description is intended to be illustrative, and not restrictive. Other implementations will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the disclosure may, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.

Claims (20)

What is claimed is:
1. A method to establish a trusted relationship between user accounts associated with an online gaming platform, the method comprising:
receiving, by a server and from a first client device corresponding to a first user account of a first user of the online gaming platform, a first request to establish the trusted relationship via the online gaming platform between the first user account and other user accounts that requested to establish the trusted relationship via the online gaming platform;
receiving, by the server and from a second client device corresponding to a second user account of a second user of the online gaming platform, a second request to establish the trusted relationship via the online gaming platform between the second user account and the other user accounts that requested to establish the trusted relationship via the online gaming platform;
responsive to receiving the first request and the second request, estimating, by the server whether the first client device corresponding to the first user account is within a defined physical range with respect to the second client device corresponding to the second user account, wherein the estimating comprises:
determining that a first physical proximity indicator corresponding to the first client device and a second physical proximity indicator corresponding to the second client device identify a same local area network that is accessed by the first client device and the second client device;
determining whether at least one of the first user account or the second user account satisfy an age threshold; and
responsive to estimating that the first client device is within the defined physical range with respect to the second client device and determining that at least one of the first user account or second user account satisfy the age threshold,
establishing the trusted relationship between the first user account and the second user account via the online gaming platform, and
enabling additional functionality for the first user account and the second user account that enables the first user account and the second user account to interact via the online gaming platform based on the trusted relationship.
2. The method of claim 1, wherein the first request to establish the trusted relationship via the online gaming platform comprises one or more of user account information, an indication of a request type, or the first physical proximity indicator corresponding to the first client device.
3. The method of claim 2, wherein the first request includes the user account information and the indication of the request type, and further comprising:
parsing the first request to establish the trusted relationship via the online gaming platform; and
identifying, based on the parsing, that the request type of the first request is a trusted relationship type request and that the user account information corresponds to the first user account.
4. The method of claim 3, further comprising:
associating the first user account with the trusted relationship type request based on the first request to establish the trusted relationship via the online gaming platform; and
associating the first user account with a status identifier that indicates a status of the trusted relationship type request.
5. The method of claim 1, further comprising:
determining whether the first user account and the second user account are associated with respective trusted relationship type requests that each have a pending status, wherein the trusted relationship between the first user account and the second user account is established via the online gaming platform based on determining that the first user account and the second user account are associated with the trusted relationship type requests that each have the pending status.
6. The method of claim 1, wherein estimating whether the first client device corresponding to the first user account is within the defined physical range with respect to the second client device corresponding to the second user account comprises:
identifying the first physical proximity indicator corresponding to the first client device;
identifying the second physical proximity indicator corresponding to the second client device; and
estimating that the first client device and the second client device are within the defined physical range based on the first physical proximity indicator and the second physical proximity indicator.
7. The method of claim 6, wherein the first physical proximity indicator comprises a local network identifier detected by the first client device.
8. The method of claim 7, wherein the local network identifier identifies a network having physical range constraints that are within the defined physical range.
9. The method of claim 6, wherein the first physical proximity indicator and the second physical proximity indicator are indicative of a relative proximity between the first client device and the second client device without indicating absolute locations of the first client device and the second client device.
10. The method of claim 1, wherein enabling the additional functionality for the first user account and the second user account comprises:
enabling a messaging functionality of the online gaming platform that permits sharing of information by the first user account with the second user account.
11. The method of claim 10, wherein sharing of information by the first user account with the second user account is disabled prior to establishing the trusted relationship between the first user account and the second user account.
12. The method of claim 1, wherein enabling the additional functionality for the first user account and the second user account comprises:
enabling a sharing functionality that allows the first user account to share virtual items with the second user account via the online gaming platform.
13. The method of claim 1, wherein enabling the additional functionality for the first user account and the second user account comprises:
enabling a following functionality that allows a first character of the first user account to follow a second character of the second user account into a game of the online gaming platform.
14. The method of claim 1, wherein enabling the additional functionality for the first user account and the second user account comprises:
enabling a group functionality that allows the first user account to invite the second user account to join a group in the online gaming platform, wherein the first user account is at least one of a group member of the group or a group creator of the group.
15. A system to establish a trusted relationship between user accounts associated with an online gaming platform, the system comprising:
a memory; and
a processing device, coupled to the memory, to:
receive, from a first client device corresponding to a first user account of a first user of the online gaming platform, a first request to establish the trusted relationship via the online gaming platform between the first user account and other user accounts that requested to establish the trusted relationship via the online gaming platform;
receive, from a second client device corresponding to a second user account of a second user of the online gaming platform, a second request to establish the trusted relationship via the online gaming platform between the second user account and the other user accounts that requested to establish the trusted relationship via the online gaming platform;
responsive to receiving the first request and the second request, estimate whether the first client device corresponding to the first user account is within a defined physical range with respect to the second client device corresponding to the second user account, wherein the estimating comprises:
determine that a first physical proximity indicator corresponding to the first client device and a second physical proximity indicator corresponding to the second client device identify a same local area network that is accessed by the first client device and the second client device;
determine whether at least one of the first user account or the second user account satisfy an age threshold; and
responsive to estimating that the first client device is within the defined physical range with respect to the second client device and determining that at least one of the first user account or second user account satisfy the age threshold,
establish the trusted relationship-between the first user account and the second user account via the online gaming platform, and
enable additional functionality for the first user account and the second user account that enables the first user account and the second user account to interact via the online gaming platform based on the trusted relationship.
16. The system of claim 15, wherein the first request to establish the trusted relationship via the online gaming platform comprises two or more of user account information, an indication of a request type, or the first physical proximity indicator corresponding to the first client device, and the processing device further to:
parse the first request to establish the trusted relationship via the online gaming platform; and
identify, based on the parsing, that the request type of the first request is a trusted relationship type request and that the user account information corresponds to the first user account.
17. The system of claim 15, the processing device further to:
determine whether the first user account and the second user account are associated with respective trusted relationship type requests that each have a pending status, wherein the trusted relationship between the first user account and the second user account is established via the online gaming platform based on determining that the first user account and the second user account are associated with the trusted relationship type requests that each have the pending status.
18. The system of claim 15, wherein to enable the additional functionality for the first user account and the second user account, the processing device to:
enable a messaging functionality of the online gaming platform that permits of information by the first user account with the second user account, wherein sharing the information by the first user account with the second user account is disabled prior to establishing the trusted relationship between the first user account and the second user account.
19. A non-transitory computer-readable medium comprising instructions to establish a trusted relationship between user accounts associated with an online gaming platform that, responsive to execution by a processing device, cause the processing device to perform operations comprising:
receiving, from a first client device corresponding to a first user account of a first user of the online gaming platform, a first request to establish the trusted relationship via the online gaming platform between the first user account and other user accounts that requested to establish the trusted relationship via the online gaming platform;
receiving, from a second client device corresponding to a second user account of a second user of the online gaming platform, a second request to establish the trusted relationship via the online gaming platform between the second user account and the other user accounts that requested to establish the trusted relationship via the online gaming platform;
responsive to receiving the first request and the second request, estimating whether the first client device corresponding to the first user account is within a defined physical range with respect to the second client device corresponding to the second user account, wherein the estimating comprises:
determining that a first physical proximity indicator corresponding to the first client device and a second physical proximity indicator corresponding to the second client device identify a same local area network that is accessed by the first client device and the second client device;
determining whether at least one of the first user account or the second user account satisfy an age threshold; and
responsive to estimating that the first client device is within the defined physical range with respect to the second client device and determining that at least one of the first user account or second user account satisfy the age threshold,
establishing the trusted relationship-between the first user account and the second user account via the online gaming platform, and
enabling additional functionality for the first user account and the second user account that enables the first user account and the second user account to interact via the online gaming platform based on the trusted relationship.
20. The non-transitory computer-readable medium of claim 19, wherein
enabling the additional functionality for the first user account and the second user account comprises:
enabling a sharing functionality that allows the first user account to share virtual items with the second user account via the online gaming platform;
enabling a following functionality that allows a first character of the first user account to follow a second character of the second user account into a game of the online gaming platform; or
enabling a group functionality that allows the first user account to invite the second user account to join a group in the online gaming platform, wherein the first user account is at least one of a group member of the group or a group creator of the group.
US16/938,690 2017-06-20 2020-07-24 Proximity friending Active 2037-08-05 US11864054B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/938,690 US11864054B1 (en) 2017-06-20 2020-07-24 Proximity friending

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/628,319 US10728701B1 (en) 2017-06-20 2017-06-20 Proximity friending
US16/938,690 US11864054B1 (en) 2017-06-20 2020-07-24 Proximity friending

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US15/628,319 Continuation US10728701B1 (en) 2017-06-20 2017-06-20 Proximity friending

Publications (1)

Publication Number Publication Date
US11864054B1 true US11864054B1 (en) 2024-01-02

Family

ID=71783343

Family Applications (2)

Application Number Title Priority Date Filing Date
US15/628,319 Active 2037-10-27 US10728701B1 (en) 2017-06-20 2017-06-20 Proximity friending
US16/938,690 Active 2037-08-05 US11864054B1 (en) 2017-06-20 2020-07-24 Proximity friending

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US15/628,319 Active 2037-10-27 US10728701B1 (en) 2017-06-20 2017-06-20 Proximity friending

Country Status (1)

Country Link
US (2) US10728701B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10791077B2 (en) 2017-08-08 2020-09-29 Snap Inc. Application-independent messaging system
US11973730B2 (en) * 2022-06-02 2024-04-30 Snap Inc. External messaging function for an interaction system

Citations (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US989686A (en) 1909-07-26 1911-04-18 Bauer Bros Co Hulling and grinding machine.
US20020068632A1 (en) * 2000-12-06 2002-06-06 Shayne Dunlap Interconnection of users via a communications network, for competitive gaming
US20030093669A1 (en) 2001-11-13 2003-05-15 Morais Dinarte R. Network architecture for secure communications between two console-based gaming systems
US20040215756A1 (en) * 2003-04-23 2004-10-28 Microsoft Corporation Match making based on proximity measures between devices
US20050049022A1 (en) * 2003-09-02 2005-03-03 Mullen Jeffrey D. Systems and methods for location based games and employment of the same on location enabled devices
US20050070359A1 (en) * 2003-09-26 2005-03-31 Rodriquez Mario A. Method and apparatus for quickly joining an online game being played by a friend
US20060135264A1 (en) * 2004-12-08 2006-06-22 Microsoft Corporation Social matching of game players on-line
US20070173325A1 (en) * 2006-01-20 2007-07-26 Microsoft Corporation Join in-progress on-line game session
US20070218997A1 (en) * 2006-03-17 2007-09-20 Wing Cho Systems, methods and techniques for safely and effectively coordinating video game play and other activities among multiple remote networked friends and rivals
US20080056215A1 (en) 2006-08-29 2008-03-06 Milind Kopikare Wi-fi based geo-location connectivity
US20090164574A1 (en) * 2007-12-21 2009-06-25 Concert Technology Corporation System and method for identifying transient friends
US20090198666A1 (en) 2008-02-01 2009-08-06 Winston Ronald H Affinity matching system and method
US20100197409A1 (en) * 2006-03-03 2010-08-05 Andrew Van Luchene System which manages relationships between characters in a video game or other virtual environment
US20100205242A1 (en) * 2009-02-12 2010-08-12 Garmin Ltd. Friend-finding system
US20110137813A1 (en) * 2005-12-19 2011-06-09 Stewart Brett B Providing a Map Indicating Locations of Users in a Social Network
US20110142016A1 (en) 2009-12-15 2011-06-16 Apple Inc. Ad hoc networking based on content and location
US20110151892A1 (en) 2006-04-07 2011-06-23 Pelago, Inc. Proximity-Based User Interaction
US20110179064A1 (en) 2010-01-18 2011-07-21 Anthony Peter Russo Method of and system for providing a proximity-based matching notification service
US20110212773A1 (en) * 2008-11-05 2011-09-01 Telefonaktiebolaget Lm Ericsson (Publ) Method and Arrangement for Enabling Games in a Communication Network
US20110238755A1 (en) 2010-03-24 2011-09-29 Hameed Khan Proximity-based social networking
US20110252238A1 (en) 2010-04-07 2011-10-13 Abuan Joe S Apparatus and Method for Efficiently and Securely Exchanging Connection Data
US20120329475A1 (en) 2005-08-08 2012-12-27 Jambo Networks, Inc. System and Method for Providing Communication Services to Mobile Device Users Incorporating Proximity Determination
US20130130805A1 (en) * 2011-09-26 2013-05-23 Jason McGuirk Expanding the gaming social network with unrelated players
US20130254278A1 (en) 2012-03-21 2013-09-26 Sony Computer Entertainment America Llc Apparatus and method for matching users to groups for online communities and computer simulations
US20140025732A1 (en) * 2012-07-17 2014-01-23 Jeffrey Lin Systems and methods that enable player matching for multi-player online games
US20140128161A1 (en) * 2012-11-06 2014-05-08 Stephen Latta Cross-platform augmented reality experience
US20140150068A1 (en) 2010-08-17 2014-05-29 Facebook, Inc. Managing social network accessibility based on age
US20140187333A1 (en) 2009-09-30 2014-07-03 Zynga Inc. Finding friends for multiuser online games
US9033803B1 (en) 2011-06-30 2015-05-19 Zynga Inc. Changing a virtual world based on real-world locations of players
US20150304436A1 (en) 2014-04-16 2015-10-22 Facebook, Inc. Nearby Friend Notifications on Online Social Networks
US20150356318A1 (en) 2011-04-21 2015-12-10 Empire Technology Development Llc Locative social networking using a mobile device
US20160048250A1 (en) * 2011-05-24 2016-02-18 Zynga Inc. Online asynchronous game with player-matching mechanic
US9289686B2 (en) 2011-07-28 2016-03-22 Zynga Inc. Method and system for matchmaking connections within a gaming social network
US20160127486A1 (en) * 2014-01-24 2016-05-05 Tencent Technology (Shenzhen) Company Limited Method and system for location sharing
US20160135014A1 (en) 2008-01-10 2016-05-12 Wireless Discovery Llc Location-based discovery of network members by personal attributes using dynamic and static location data
US9451397B1 (en) 2012-12-12 2016-09-20 Square, Inc. Detecting proximity using WiFi hotspots
US20170026796A1 (en) * 2011-05-23 2017-01-26 Apple Inc. Identifying and Locating Users on a Mobile Network
US20170034659A1 (en) 2014-11-13 2017-02-02 Y R Tech, LLC Mobile Social Activity Networking Systems and Methods
US20170274286A1 (en) * 2016-03-25 2017-09-28 Sony Computer Entertainment Inc. Systems and methods for providing user information to game console
US20170333779A1 (en) * 2016-05-18 2017-11-23 Terence Faycal El Labban System and Method for Invitation to Games or Sports
US9832625B2 (en) 2014-08-19 2017-11-28 Ernesto Nebel Systems and methods for facilitating social discovery
US20180069817A1 (en) * 2015-06-22 2018-03-08 Stephen Constantinides Real time geo-social visualization platform
US9918194B2 (en) * 2002-06-14 2018-03-13 At&T Mobility Ii Llc Apparatus and systems for providing location-based services within a wireless network
US20180075694A1 (en) * 2016-09-09 2018-03-15 Anthony Frolov System and method for providing location-based gaming experience
US20200269139A1 (en) * 2016-03-08 2020-08-27 Electronic Arts Inc. Multiplayer video game matchmaking optimization

Patent Citations (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US989686A (en) 1909-07-26 1911-04-18 Bauer Bros Co Hulling and grinding machine.
US20020068632A1 (en) * 2000-12-06 2002-06-06 Shayne Dunlap Interconnection of users via a communications network, for competitive gaming
US20030093669A1 (en) 2001-11-13 2003-05-15 Morais Dinarte R. Network architecture for secure communications between two console-based gaming systems
US9918194B2 (en) * 2002-06-14 2018-03-13 At&T Mobility Ii Llc Apparatus and systems for providing location-based services within a wireless network
US20040215756A1 (en) * 2003-04-23 2004-10-28 Microsoft Corporation Match making based on proximity measures between devices
US7634569B2 (en) 2003-04-23 2009-12-15 Microsoft Corporation Match making based on proximity measures between devices
US20050049022A1 (en) * 2003-09-02 2005-03-03 Mullen Jeffrey D. Systems and methods for location based games and employment of the same on location enabled devices
US20050070359A1 (en) * 2003-09-26 2005-03-31 Rodriquez Mario A. Method and apparatus for quickly joining an online game being played by a friend
US20060135264A1 (en) * 2004-12-08 2006-06-22 Microsoft Corporation Social matching of game players on-line
US20120329475A1 (en) 2005-08-08 2012-12-27 Jambo Networks, Inc. System and Method for Providing Communication Services to Mobile Device Users Incorporating Proximity Determination
US20110137813A1 (en) * 2005-12-19 2011-06-09 Stewart Brett B Providing a Map Indicating Locations of Users in a Social Network
US20070173325A1 (en) * 2006-01-20 2007-07-26 Microsoft Corporation Join in-progress on-line game session
US20100197409A1 (en) * 2006-03-03 2010-08-05 Andrew Van Luchene System which manages relationships between characters in a video game or other virtual environment
US20070218997A1 (en) * 2006-03-17 2007-09-20 Wing Cho Systems, methods and techniques for safely and effectively coordinating video game play and other activities among multiple remote networked friends and rivals
US20110151892A1 (en) 2006-04-07 2011-06-23 Pelago, Inc. Proximity-Based User Interaction
US20080056215A1 (en) 2006-08-29 2008-03-06 Milind Kopikare Wi-fi based geo-location connectivity
US20090164574A1 (en) * 2007-12-21 2009-06-25 Concert Technology Corporation System and method for identifying transient friends
US20160135014A1 (en) 2008-01-10 2016-05-12 Wireless Discovery Llc Location-based discovery of network members by personal attributes using dynamic and static location data
US20090198666A1 (en) 2008-02-01 2009-08-06 Winston Ronald H Affinity matching system and method
US20110212773A1 (en) * 2008-11-05 2011-09-01 Telefonaktiebolaget Lm Ericsson (Publ) Method and Arrangement for Enabling Games in a Communication Network
US20100205242A1 (en) * 2009-02-12 2010-08-12 Garmin Ltd. Friend-finding system
US20140187333A1 (en) 2009-09-30 2014-07-03 Zynga Inc. Finding friends for multiuser online games
US20110142016A1 (en) 2009-12-15 2011-06-16 Apple Inc. Ad hoc networking based on content and location
US20110179064A1 (en) 2010-01-18 2011-07-21 Anthony Peter Russo Method of and system for providing a proximity-based matching notification service
US20110238755A1 (en) 2010-03-24 2011-09-29 Hameed Khan Proximity-based social networking
US20110252238A1 (en) 2010-04-07 2011-10-13 Abuan Joe S Apparatus and Method for Efficiently and Securely Exchanging Connection Data
US20140150068A1 (en) 2010-08-17 2014-05-29 Facebook, Inc. Managing social network accessibility based on age
US20150356318A1 (en) 2011-04-21 2015-12-10 Empire Technology Development Llc Locative social networking using a mobile device
US20170026796A1 (en) * 2011-05-23 2017-01-26 Apple Inc. Identifying and Locating Users on a Mobile Network
US20160048250A1 (en) * 2011-05-24 2016-02-18 Zynga Inc. Online asynchronous game with player-matching mechanic
US9033803B1 (en) 2011-06-30 2015-05-19 Zynga Inc. Changing a virtual world based on real-world locations of players
US9289686B2 (en) 2011-07-28 2016-03-22 Zynga Inc. Method and system for matchmaking connections within a gaming social network
US20130130805A1 (en) * 2011-09-26 2013-05-23 Jason McGuirk Expanding the gaming social network with unrelated players
US20130254278A1 (en) 2012-03-21 2013-09-26 Sony Computer Entertainment America Llc Apparatus and method for matching users to groups for online communities and computer simulations
US20140025732A1 (en) * 2012-07-17 2014-01-23 Jeffrey Lin Systems and methods that enable player matching for multi-player online games
US20140128161A1 (en) * 2012-11-06 2014-05-08 Stephen Latta Cross-platform augmented reality experience
US9451397B1 (en) 2012-12-12 2016-09-20 Square, Inc. Detecting proximity using WiFi hotspots
US20160127486A1 (en) * 2014-01-24 2016-05-05 Tencent Technology (Shenzhen) Company Limited Method and system for location sharing
US20150304436A1 (en) 2014-04-16 2015-10-22 Facebook, Inc. Nearby Friend Notifications on Online Social Networks
US9832625B2 (en) 2014-08-19 2017-11-28 Ernesto Nebel Systems and methods for facilitating social discovery
US20170034659A1 (en) 2014-11-13 2017-02-02 Y R Tech, LLC Mobile Social Activity Networking Systems and Methods
US20180069817A1 (en) * 2015-06-22 2018-03-08 Stephen Constantinides Real time geo-social visualization platform
US20200269139A1 (en) * 2016-03-08 2020-08-27 Electronic Arts Inc. Multiplayer video game matchmaking optimization
US20170274286A1 (en) * 2016-03-25 2017-09-28 Sony Computer Entertainment Inc. Systems and methods for providing user information to game console
US20170333779A1 (en) * 2016-05-18 2017-11-23 Terence Faycal El Labban System and Method for Invitation to Games or Sports
US20180075694A1 (en) * 2016-09-09 2018-03-15 Anthony Frolov System and method for providing location-based gaming experience

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Cellphonetrackers.org. Track down a cell phone location using WiFi hotspots. Apr. 3, 2015. [Retrived on Dec. 19, 2018]. Retrieved from internet: <URL:https://web.archive.org/web/20150403050653/https://cellphonetrackers.org/track-down-cell-phone-wifi-hotspots.html>. Entire document (Year: 2015).
Gambhir, Sapna, and Vinod Kumar. "Bidirectional trust calculation in online social networks." 2015 4th International Conference on Reliability, Infocom Technologies and Optimization (ICRITO)(Trends and Future Directions). IEEE, 2015. (Year: 2015). *

Also Published As

Publication number Publication date
US10728701B1 (en) 2020-07-28

Similar Documents

Publication Publication Date Title
US11290550B2 (en) Method and device for allocating augmented reality-based virtual objects
US11818138B2 (en) Preventing unauthorized account access based on location and time
US10046240B2 (en) Social networking data augmented gaming kiosk
US12120106B1 (en) Crypto exchange friending
US11673062B2 (en) User-generated content system for the creation of friends
US11016960B2 (en) Systems and methods to record and verify virtual item transactions
US20190232172A1 (en) Chain of custody in gaming platforms
JP2012519908A5 (en)
US20210173879A1 (en) Data flood checking and improved performance of gaming processes
US11864054B1 (en) Proximity friending
KR20210106552A (en) Confirm consent
US11531685B2 (en) Addressing data skew using map-reduce
US10688399B2 (en) Group gameplay with users in proximity using a gaming platform
US10853375B1 (en) Leveraging historical data to improve the relevancy of search results

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE