US20220080324A1 - Managing game sessions in a social network messaging system - Google Patents

Managing game sessions in a social network messaging system Download PDF

Info

Publication number
US20220080324A1
US20220080324A1 US17/537,277 US202117537277A US2022080324A1 US 20220080324 A1 US20220080324 A1 US 20220080324A1 US 202117537277 A US202117537277 A US 202117537277A US 2022080324 A1 US2022080324 A1 US 2022080324A1
Authority
US
United States
Prior art keywords
game
user
social network
social
content entry
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.)
Abandoned
Application number
US17/537,277
Inventor
Andrea Vaccari
Richard Kenneth Zadorozny
Jeremy Harrison Goldberg
Peter Henry Martinazzi
Lei Guang
Yang Li
Jennifer A. Burge
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.)
Meta Platforms Inc
Original Assignee
Meta Platforms Inc
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 Meta Platforms Inc filed Critical Meta Platforms Inc
Priority to US17/537,277 priority Critical patent/US20220080324A1/en
Assigned to FACEBOOK, INC. reassignment FACEBOOK, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MARTINAZZI, PETER HENRY, ZADOROZNY, RICHARD KENNETH, Burge, Jennifer A, GUANG, Lei, GOLDBERG, Jeremy Harrison, VACCARI, ANDREA, YANG, LI
Assigned to META PLATFORMS, INC. reassignment META PLATFORMS, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: FACEBOOK, INC.
Publication of US20220080324A1 publication Critical patent/US20220080324A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • 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/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • 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/85Providing additional services to players
    • A63F13/87Communicating with other players during game play, e.g. by e-mail or chat
    • 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/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • A63F13/2145Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads the surface being also a display device, e.g. touch screens
    • 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/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • 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/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • 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
    • 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
    • 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/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1068Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals being specially adapted to detect the point of contact of the player on a surface, e.g. floor mat, touch pad
    • A63F2300/1075Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals being specially adapted to detect the point of contact of the player on a surface, e.g. floor mat, touch pad using a touch screen
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/57Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player
    • A63F2300/572Communication between players during game play of non game information, e.g. e-mail, chat, file transfer, streaming of audio and streaming of video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer

Definitions

  • the first video games were played on massive computers connected to vector displays. Several generations of video game consoles connectable to a television were later developed having interchangeable discs or cartridges. Games on video game consoles could be played amongst users within an immediate vicinity. Online games are now played on various types of computing devices.
  • An online game is a game that is either partially or primarily played by one or more users who communicate through the Internet or other data communications computer network.
  • Conventional online game sessions are hosted or managed by a game server, which is typically a dedicated computer managed by the game publisher or other company. Users typically initiate online game sessions by directly accessing a web page of a third-part game server.
  • applications (“apps”) or console games may communicate with a server to exchange score information, game updates, etc.
  • Social networks may have a social graph that identifies interrelationships between users.
  • a subset of the users of a social network may be friends, in which case the social graph may have particular connections between nodes of the graph representing the users.
  • Some social networks also have a messaging app that enables two or more users to communicate with each other, e.g., by exchanging messages. Because social networks are now used by many millions (even billions) of users daily, they have the potential to offer game publishers tremendous opportunity to expand their online game presence in meaningful ways.
  • FIG. 1 is a block diagram illustrating components which, in some implementations, can be used in a system employing the disclosed technology.
  • FIG. 2A is a block diagram illustrating an overview of an environment in which some implementations of the disclosed technology can operate.
  • FIG. 2B is a block diagram illustrating an overview of another environment in which some implementations of the disclosed technology can operate.
  • FIG. 3 is a flow diagram illustrating a process used in some implementations for managing game instances through a social platform.
  • FIG. 4A is a flow diagram illustrating a process used in some implementations for managing game sessions in a social network system.
  • FIG. 4B is a flow diagram illustrating a process used in some implementations for managing game sessions in a social network system.
  • FIG. 4C is a flow diagram illustrating a process used in some implementations for managing game sessions in a social network system.
  • FIG. 4D is a flow diagram illustrating a process used in some implementations for managing game sessions in a social network system
  • FIGS. 5A-5C are illustrations of an example graphical user interface on a client device.
  • FIGS. 6A-6D are illustrations of an example graphical user interface on a client device.
  • FIG. 7A-7D are illustrations of an example graphical user interface on a client device.
  • FIGS. 8A-8D are illustrations of an example graphical user interface on a client device.
  • FIGS. 9A-9D are illustrations of an example graphical user interface on a client device.
  • FIG. 10 is a block diagram illustrating an example computer system.
  • FIG. 11 is a block diagram illustrating an overview of an environment in which some implementations of the disclosed technology can operate.
  • This patent application is directed to enabling access to a game session within a social network system, including through a messenger application.
  • the messenger application is an application that enables users to communicate online nearly instantaneously.
  • a player component facilitates communication between a game instance on the client device and a backend server of a social networking system.
  • the communication information can be stored in or retrieved from a social graph of the social networking system.
  • the game instance can be initialized from a social platform (e.g., newsfeed, messaging application, etc.) of the social networking system, and the game can be played without leaving the messenger application.
  • a user can identify a game to play using a discovery component.
  • the discovery component may list multiple games and may list the games in a specified order.
  • the discovery component may list games for a user based on that user's prior interactions with games, “friends” indicated in the social graph, contacts in a contact list, games played by the friends and/or contacts, etc.
  • the user may receive a “challenge” in their social network newsfeed or messenger application app.
  • the user may receive a notification that a friend or contact has achieved a high score in a particular game.
  • the user can accept the challenge, e.g., by “clicking” or “pressing” on the notification, to start the game.
  • a user may receive challenges from different users for a particular game.
  • the score the user achieves in the game may be posted to some or all the other users. As an example, the score may be shared with a different user who sent a particular challenge, all users who sent challenges, or publicly.
  • the user's score may be shared with other users, e.g., to challenge the other users.
  • the user can explicitly share the score, e.g., to challenge another user.
  • the score may be shared implicitly, e.g., to a “leaderboard” or as a challenge to friends or contacts.
  • a thread of communication may be created between the user who sent the challenge and the user who accepted it.
  • Embodiments include integration of a gaming platform with a social networking system to enable substantially instant access to a game instance.
  • the system architecture includes a client device that implements a client-side player component (e.g., a software component).
  • the player component can facilitate communication between a game instance on the client device and a backend server of a social networking system.
  • the communication can include high score, game participant identity, game participant connections, game session details, game achievements, etc.
  • the communication information can be stored in or based on a social graph of the social networking system.
  • each messenger app thread of communications between two or more users has a thread identifier (“thread ID”)
  • thread ID a thread identifier
  • each user of the social network has a user ID
  • businesses having social network pages have a page ID
  • apps e.g., game apps
  • app ID a thread identifier
  • a combination of the various IDs may be used to identify a particular instance of the game, e.g., for score sharing purposes.
  • the combination of thread ID and app ID identifies a particular game that is being played by users communicating in the thread.
  • the combination of user ID, app ID, and page ID identifies a game hosted or sponsored by a business that the identified user is playing.
  • some or all of these IDs may be anonymized.
  • the user ID may be anonymized so that although the user's scores or score updates can be posted publicly or to other users of the social network or messenger app, the user may not be identifiable by others except perhaps the user's friends.
  • the thread ID may be anonymized so that the game developer cannot use the actual thread maliciously, e.g., to post advertisement messages that may be unrelated to the game.
  • thread IDs, app IDs, page IDs, and user IDs may be unique within the social network and/or messenger app, the respective anonymized IDs may also be unique.
  • a game instance may employ the messenger app and its underlying communications protocols to exchange messages with other game instances.
  • the game may exchange score information, cards of a card game, moves of a chess game, etc., between the game instances corresponding to each of the players.
  • the game may exchange score information, cards of a card game, moves of a chess game, etc., between the game instances corresponding to each of the players.
  • two players are in a messenger thread concurrently, one player may be able to remotely watch the other player's gameplay.
  • An underlying “live stream” capability of the messenger platform may send a video stream of the game being played to the other user.
  • various social signals may be sent relating to a user's game playing.
  • a glyph or icon may be added to a user's profile photo when the user is a high scorer.
  • a facial recognition system may identify the user's face in their profile photo and add a crown above the user's head in the photo.
  • the modified profile photo may be limited to the messenger thread or may be available for all users of the social network or messenger app to view.
  • Other social signals can include icons, animations, sounds, badges, etc.
  • the social signals can correspond to scores, challenges, or other gaming concepts.
  • Embodiments include a game library having a private application program interface (API) to communicate with a client-side player component and a public API customizable to communicate with a game component hosted on the third-party server.
  • API application program interface
  • the game library facilitates communication between the client-side player component and a third-party game component. Enabling communication between the game component and the player component via the game library unlocks a myriad of social network functions, including enabling users to initiate game sessions and freely share game-related data for games previously inaccessible through a social network system.
  • the game instance can be initialized from a social platform (e.g., newsfeed, messaging application, etc.) of the social networking system.
  • the client-side player component can be implemented as part of a social networking website, which is accessible via a browser application running on the client device, or part of a social networking mobile application.
  • the client-side player can access a plurality of web addresses representing third-party games (e.g., a game webpage that embeds a JavaScript library).
  • a web server of a third-party game developer can host the game webpage.
  • the JavaScript library can encode a public API to logic components within the game webpage and a private API to communicate with the client-side player component. That is, the JavaScript library can translate commands and messages between the client-side player component and the third-party game webpage.
  • the client-side player component can load a splash screen from a game-related URL in parallel to a URL of the third-party game webpage, enabling players to experience substantially instant access to a game session.
  • the client-side player component can further access social network information related to the game, prior to fully loading the game webpage onto the client device.
  • FIG. 1 is a block diagram illustrating components that, in some implementations, can be used in a system employing the disclosed technology.
  • the illustrated components include a social network server 102 , player component 104 , game library 106 , and game component 108 .
  • the game library 106 facilitates communications between the player component 104 and the game component 108 .
  • the game library 106 can be imported by a third-party server and executed remotely by the third-party server.
  • the game library 106 includes a private API 156 and a public API 166 .
  • the game library 106 can use a private API 156 to communicate with the player component 104 .
  • the private API can be configured to communicate with a plurality of player components of various types.
  • Types of player components include player components operable on a desktop/laptop computer (e.g., configured for Windows® or MacOS®) or a mobile device (e.g., configured for Android® or iOS).
  • Types of player components also include a player component operable on the social network server 102 and provided to a user device via a web page accessible through a web browser.
  • Each type of player component can include unique logic components.
  • the private API is encoded with logic components of one or more types of player components.
  • the game library 106 can use the public API 166 to communicate with the game component 108 .
  • the public API 166 is encoded to logic components of the game component 108 .
  • the public API 166 can default to synchronous function calls for communications and include asynchronous function calls for limited communications to improve performance.
  • the game library 106 includes correlations mapping logic components of the player component 104 to logic components of the game component 108 .
  • the game library 106 translates communications received via the private API 156 from logic components consistent with the payer component 104 to logic components consistent with the game component 108 and transmits, via the public API 166 , the translated communications to the game component 108 .
  • the game library 106 translates communications received via the public API 166 from logic components consistent with the game component 108 to logic components consistent with the player component 104 and transmits, via the private API 156 , the translated communications to the player component 104 .
  • the player component 104 communicates with the social network server 102 .
  • game-related communication with the social network server 102 is performed exclusively by the player component 104 .
  • Game-related communication transmitted by the player component 104 to the social network server 102 can include, for example, game loading progress, game load completion, game screenshot, game completion, game score, fatal error notification, log messages, or any combination thereof.
  • Game-related communication transmitted by the social network server 102 to the player component 104 can include, for example, a start instruction, restart instruction, pause instruction, save instruction, user device information, browser information, aspect ratio information, frame rate information, information related to social features (e.g., scores of friends in a social network), or any combination thereof
  • the social network server 102 manages a game leaderboard comprising game scores associated with a plurality of users of the social network system.
  • the social network server 102 updates a game leaderboard database in response to receiving data indicative of game scores for any user of a plurality of users corresponding to any game of a plurality of games.
  • FIGS. 2A-2B are block diagram illustrating an overview of an environment in which some implementations of the disclosed technology can operate.
  • the player component 104 is embedded in an application 214 (e.g., a messenger application) executed by a client device 204 (as shown in FIG. 2A ).
  • the player component 204 can run on the social network server 202 and be accessible by the application 214 (as shown in FIG. 2B ).
  • the client device 204 can seamlessly switch from a game instance on a local player component (as shown in FIG. 2A ) to a game instance on a remote player component (as shown in FIG. 2B ) and vice versa.
  • a state of a local game instance is stored.
  • the state of the local game instance is provided to the social network server 202 .
  • the social network server 202 can execute a remote player component.
  • the remote player component can use state information received from the local game instance to initiate another game instance having the same state as the local game instance.
  • the application 214 (e.g., a messenger application having browser capabilities) running on the client device 204 accesses the remote player component to start a new game session having the same state as the local game session.
  • a similar process can be performed in reverse to seamlessly switch from a remote player component to a local player component.
  • the player component 104 can run on the client device 204 .
  • the player component can be embedded in the application 214 .
  • the application 214 can be, for example, a messenger application, social media application, browser, or any combination thereof.
  • a combination messenger application and browser enables access to web pages without having to leave the messenger application.
  • the player component 104 communicates with the game library 106 (e.g., via the public API 162 ) and with the social network server 102 .
  • the game library 106 and the game component 108 can be hosted by a third-party game server 206 .
  • the game library 106 facilitates communication between the game component 108 and the player component 104 .
  • the private API 152 communicates with the game component 108
  • the public API 162 communicates with the player component 104 .
  • the player component 104 can be embedded in an application 214 running on the client device 204 .
  • the player component 104 receives translated game data from the game library 106 .
  • the player component 104 provides game-related information to the social network server 102 including, for example, game loading progress, game load completion, game screenshot, game completion, game score, fatal error notification, log messages, or any combination thereof.
  • the social network server 102 communicates with the player component 104 running on the client device 204 .
  • the social network server 102 stores game data 282 received from the player component 104 which can be used as part of a social graph 272 .
  • the social network server 102 transmits game-related information to the player component 104 including, for example, a start instruction, restart instruction, pause instruction, save instruction, user device information, browser information, aspect ratio information, frame rate information, information related to social features (e.g., scores of friends in a social network), or any combination thereof
  • the social network server 102 includes the social graph 272 .
  • the social graph 272 includes information related to the social network system including, for example, game data 282 (e.g., information received from the player component 104 ) and social data 292 (e.g., associations between users).
  • the social graph 272 includes a plurality of nodes that are interconnected by a plurality of edges.
  • a social graph node may represent a social networking system object that can act on and/or be acted upon by another node. Each of these interactions can be stored as an edge of the social graph.
  • the edges can be represented as bi-directional. In other embodiments, the edges can be represented as directional.
  • a user node selecting a particular game to initiate a game instance can be represented by either a bi-directional edge between the user node and the social network page or a directional edge from the user node to the social network page.
  • the social graph can thus be stored as a database of edges between nodes.
  • the social graph can be stored separately for user interactions of a specific kind.
  • the social networking system stores the social graph without discriminating the type of user interactions.
  • An edge between nodes in a social graph represents a particular kind of connection between the nodes, which may result from an action that was performed by one of the nodes on the other node. Examples of such actions by a social networking system user include selecting a game to initiate a game session, challenging another user to play a selected game, sharing a game through a messenger application, and sharing a game in a news feed.
  • An implicit social graph connection can be determined based on the social graph of the social networking system.
  • the implicit social graph connection can be leveraged from one or more recorded interactions.
  • the user interactions can be received from a client device (e.g., client device 204 ) connected to the social networking system through a user account.
  • An implicit social graph connection can be determined between any social graph object and any other social graph object.
  • a connection generation module can identify a user account and a social network object (e.g., a game) related to that user interaction.
  • An implicit social graph connection can be added to the social graph based on the user account and the social network object identified.
  • the implicit social graph connection can be generated in response to determining the user interaction, or in a parallel batch process by surveying the social graph.
  • the connection generation module can also calculate an edge weight for the implicit social graph connection, where the edge weight determines a quantitative likelihood that the user may later choose to make an explicit connection with the social network object.
  • the social graph may improve accuracy of personalization of content over conventional methods
  • One or more games can be associated with the user account by traversing a social graph of the social network system.
  • a content entry associated with the identified game based on an implicit social graph connection can be generated.
  • the content entry can be configured for display on the user device.
  • the content entry can include images and/or text related to the identified game.
  • the content entry can include a name of a game, a logo associated with a game, user data related to a game, or any combination thereof.
  • User data related to a game can include, for example, names of users who have played the game, scores of one or more users (e.g., on a leaderboard), a time a user played a game, a user who has challenged other users to a game, a user who has been challenged to a game, or any combination thereof.
  • the player component 104 is executed by the social network server 202 .
  • the application 214 can access the player component 104 , for example, by connecting to a web page hosted by the social network server 202 .
  • a game session is transferable from a local player component running on the client device 204 to a remove player component running on the social network server 202 .
  • the player component 104 communicates with the game library 106 (e.g., via the public API 162 ) and the application 214 .
  • the player component 104 receives game information from the game library.
  • the player component 104 provides game data to the social graph 172 .
  • the social graph 172 is used to identify game suggestions associated with a user account.
  • FIG. 3 is a flow diagram illustrating a process used in some implementations for initiating game instances and sharing game-related information through a social network system.
  • the social network system identifies game suggestions by, for example, traversing a social graph, as discussed above with respect to FIGS. 2A-2B and/or by receiving a share request from a user (block 308 ).
  • the share request can be an invitation or challenge to start a game session of a particular game among a plurality of games.
  • the social network system delivers game suggestions (block 302 ) to an application (e.g., messenger application) running on a user device.
  • the suggested game may be identified by an app ID and posted within an existing messenger thread ID.
  • the user device receives the game selection (block 304 ).
  • the user device initiates the game instance (block 306 ) by utilizing a player component embedded in an application and configured to communicate with a game library.
  • the player component can load a splash screen including game-related information such as, for example, loading progress, user score(s) (e.g., on a leaderboard), game play instructions, or any combination thereof.
  • the social network system receives game data during the game session and updates the game database (block 316 ).
  • the social network system can receive data related to a game loading progress, game load completion, game screenshot, game completion, game score, fatal error notification, log messages, or any combination thereof.
  • the game data can be stored as part of a social graph used to identify game suggestions.
  • the game data updates can include a user ID, app ID, and a thread ID so that a particular instance can be uniquely identified.
  • the IDs may be anonymized, e.g., by using a consistent hashing function, encryption, etc.
  • the player component can prompt a user to share game information and/or challenge another user.
  • the social network system delivers a game suggestion (block 302 ).
  • the social network system transmits a game invitation (block 312 ).
  • Another user device receives the game invitation and selects accept or decline. If the game invitation is declined, the game instance is not initiated. If the game invitation is accepted (block 314 ), the game instance is initiated (block 306 ) by another player component of the another user device.
  • a messenger application having a player component embedded therein manages game sharing and challenges.
  • Various embodiments for providing game suggestions to a user of the messenger application are contemplated.
  • a user can enter a game name in a text field of the messenger application.
  • the message application identifies the game name and provides a content entry associated with the identified game name.
  • the content entry can be sent to one or more users in a message field of the messenger application.
  • the content entry can include the game name, image associated with the game, description of the game, and access information to enable a player component to access the game upon selection.
  • the social network system can traverse a social graph to identify games associated with a user.
  • a content entry associated with identified game(s) can be transmitted to the messenger application.
  • a user can share the content entry with other users in a message field of the messenger application.
  • the social network system can prompt a user before, during, or after a game session to select one or more users to challenge to the game.
  • the social network system transmits a game invitation to the one or more users.
  • the game invitation can include a content entry indicating a user name of the challenger and including information related to the game (e.g., game name, image, description, and access information).
  • a content entry received in a message field of the messenger application is selectable to cause the player component to initiate a game instance.
  • the player component can be embedded in the messenger application running on a user device or be running on the social network server.
  • the messenger application can access the player component running on the social network server through a web page hosted on the social network server.
  • the messenger application can transfer a game session from a first player component embedded in the messenger application to a second player component running on the social network server and vice versa.
  • the messenger application stores a state of a game instance of the first game component and provides the state of the game instance to the second player component so the second player component can initiate a game instance with having the same state as the prior game instance.
  • FIG. 4A is a flow diagram illustrating a process used in some implementations for facilitating communication between a player component and a game component.
  • the method can include providing a private application program interface (API) (block 402 ), providing a public API, (block 404 ), transmitting a pause command to a first instance of the game component executing within a context of a first application but transmitting the restart command to a second instance of the game component executing within a context of a second application (block 406 ), and receiving an indication that a first user has suspended playing the online game at the first application and restarted playing the online game at the second application (block 408 ).
  • API application program interface
  • the routine provides a private API.
  • the private API is configured to communicate with a player component.
  • the private API has one or more methods for performing a sequence of online-game related operations.
  • the private API can receive, from the player component, a messaging service thread identifier.
  • the messaging service thread identifier identifies an online conversation between at least two social network users.
  • the private API can receive, from the player component, a gameplay command.
  • the private API can receive status information (e.g., indicating gameplay complete, a game score, or a crash notification) from the player component.
  • the routine provides a public API.
  • the public API is configured to communicate with a game component.
  • the public API has one or more methods for performing a sequence of online-game related operations.
  • the public API can receive, from the game component, a game instance identifier.
  • the game instance identifier identifies a particular instance of the online game.
  • the online game is capable of being played on one or more computing devices.
  • the public API associates the received messaging service thread identifier with the game instance identifier.
  • the public API transmits, to the game component, the gameplay command to cause the game component to respond to the gameplay command.
  • the gameplay command can include one of play, pause, or restart.
  • the routine causes the public API to transmit a pause command to a first instance of the game component executing within a context of a first application.
  • the public API also transmits the restart command to a second instance of the game component executing within a context of a second application.
  • the first instance and the second instance have a same game instance identifier. The first instance is paused and the second instance is started to transfer a game session.
  • the routine causes the private API to receive an indication that a first user has suspended playing the online game at the first application and restarted playing the online game at the second application.
  • the game library uses this information to determine where to transmit game-related information. Since the game session is active in the second application, the game library uses the public API to transmit game related information to a player component associated with the second application. The first user and a second user can continue to conduct an online conversation using the messaging service during a game session.
  • FIG. 4B is a flow diagram illustrating a process used in some implementations for enabling access to a game instance through a social platform.
  • the method includes receiving a game selection (block 432 ), generating a content entry (block 434 ), transmitting the content entry to the messenger application (block 436 ), receiving data indicative of a selection of the content entry (block 438 ), and transmitting a start message (block 440 ).
  • the description is provided as an example and not intended to be limiting.
  • the social network server is described as performing various functions, other devices such as the client device are also contemplated for performing the various functions.
  • the social network server receives, from a device associated with a user account, a game selection associated with a game component hosted on a third-party server.
  • An application e.g., a messenger application
  • An application may be logged into a user account to receive a suggested game.
  • the suggested game can be solicited by input from a user or be an unsolicited suggestion identified based on an association with the user account (e.g., by traversing a social graph).
  • a user of the messenger application can input a game name into a text bar, the messenger application can provide a drop down menu suggesting one or more games, and the user selects a game to transmit to another user of the messenger application.
  • the messenger application displays a popup suggesting a game associated with a user account and another user account (e.g., according to an analysis of the social graph) where the popup indicates that the another user account may be interested in the game as well.
  • a user logged into the user account selects the game in the popup message to be sent to the another user account.
  • the social network server generates a content entry associated with the game selection, the content entry being configured for display in a messenger application.
  • the content entry can include images and/or text related to the identified game as well as access information (e.g., an identification number associated with the identified game).
  • the content entry can include a name of a game, a logo associated with a game, user data related to a game, or any combination thereof.
  • User data related to a game can include, for example, names of users who have played the game, scores of one or more users (e.g., on a leaderboard), a time a user played a game, a user who has challenged other users to a game, a user who has been challenged to a game, or any combination thereof.
  • one or more elements of the content entry are customizable by a user making the game selection. For example, a user making a game selection can be prompted to select an image or text.
  • a user can select a setting in an application (e.g., the messenger application) to change a default content entry transmitted and/or received by the user.
  • a user can select a setting to omit images in a content entry.
  • a user can select a setting to enlarge images and/or text in a content entry.
  • a user can select a setting to include or omit animations in a content entry.
  • the social network server transmits the content entry to the messenger application to cause a user device running the messenger application to display the content entry in a message field of the messenger application.
  • the content entry is displayed in a message field of the messenger application logged into the user account and a message field of the messenger application logged into another user account included in the conversation.
  • the content entry displayed for the user account and the another user account can vary based on a content entry setting selected in the messenger application.
  • the social network server receives data indicative of a selection of the content entry associated with the game instance.
  • the another user selects the content entry in the message field to initiate a game session.
  • Upon selecting the content entry data indicative of the selection is transmitted to the social network system.
  • the social network server transmits a start message to cause a player component embedded in the messenger application to initiate a game session in response to receiving the data indicative of the selection.
  • the player component Upon receiving the start message, the player component initiates a game instance to start a game session.
  • the player component can be embedded in the messenger application or running on the social network server and accessible to the messenger application via a web page.
  • FIG. 4C is a flow diagram illustrating a process used in some implementations for enabling access to a game instance through a social platform.
  • the method includes identifying a game associated with the user account by traversing a social graph of the social network system (block 452 ), generating a content entry (block 454 ), transmitting the content entry to the user account (block 456 ), receiving data indicative of a selection of the content entry (block 458 ), and transmitting a start message to cause a player component embedded in the messenger application to initiate a game session (block 460 ).
  • the social network server identifies a game associated with the user account by traversing a social graph of the social network system.
  • the implicit social graph connection can be leveraged from one or more recorded interactions of a social network user. Examples of recorded actions include selecting a game to initiate a game session, challenging another user to play a selected game, sharing a game through a messenger application, and sharing a game in a news feed.
  • An edge weight for the implicit social graph connection can be calculated, where the edge weight determines a quantitative likelihood that the user may later choose to make an explicit connection with the social network object.
  • An edge weight exceeding a threshold likelihood of an explicit connection results in identifying an association between a game object and a user account.
  • the social network server generates a content entry associated with the identified game based on an implicit social graph connection, the another content entry being configured for display on the user device.
  • the content entry can include images and/or text related to the identified game as well as access information.
  • the social network server transmits the content entry to the user account to cause the messenger application to display the content entry in the message field of the messenger application.
  • the content entry can be displayed as a selectable prompt that a user can accept or decline.
  • the content entry can disappear if a user declines and remain if a user accepts.
  • the content entry can be shared with other users.
  • the content entry is selectable to initiate a game session.
  • social network server receives data indicative of a selection of the content entry associated with the game instance.
  • the user selects the content entry in the message field to initiate a game session.
  • Upon selecting the content entry data indicative of the selection is transmitted to the social network system.
  • the social network server transmits a start message to cause a player component embedded in the messenger application to initiate a game session in response to receiving the data indicative of the selection.
  • the player component Upon receiving the start message, the player component initiates a game instance to start a game session.
  • the player component can be embedded in the messenger application or running on the social network server and accessible to the messenger application via a web page.
  • FIG. 4D is a flow diagram illustrating a process used in some implementations for enabling access to a game instance through a social platform.
  • the method includes receiving a challenge request (block 472 ), generating a content entry (block 474 ), transmitting the content entry to the user device to cause the messenger application to display the content entry (block 476 ), receiving an acceptance notification from a user account associated with the challenge request (block 478 ).
  • the social network server receives a challenge request associated with the game selection from a user device associated with a user account of the social network system.
  • the player component provides a selectable prompt for challenging one or more users to a game.
  • the player component Upon selection of a challenge for one or more players to a game, the player component transmits the challenge request to the social network server.
  • the social network server generates a content entry indicative of the game selection and the challenge request configured for display by a messenger application.
  • the social network server generates the content entry indicative of the challenge request.
  • the content entry for the challenge request includes information indicative of the user submitting the challenge request as well as information about the game object.
  • the social network server transmits the content entry to the user device to cause the messenger application to display the content entry.
  • the content entry can be displayed in a message field of the messenger application.
  • the social network server receives an acceptance notification from a user account associated with the challenge request.
  • the acceptance notification indicates that the content entry is selected.
  • the acceptance notification causes the messenger application to initiate a player component to communicate with a game webpage hosted on the third-party server.
  • the player component initiates a game instance.
  • the player component is embedded in the messenger application or accessible via a web page hosted on the social media server.
  • FIGS. 5A-5C are illustrations of an example graphical user interface on a client device.
  • FIG. 5A illustrates a content entry displaying a game suggestion provided in a news feed of a social media application or thread of a messenger app.
  • FIG. 5B illustrates a content entry shared by a user on the news feed of the social media application.
  • FIG. 5C illustrates a content entry displaying a suggested game identified by traversing a social graph of the social network system. Additional content entries can be provided upon receiving an input gesture (e.g., detecting a swipe across a touchscreen).
  • an input gesture e.g., detecting a swipe across a touchscreen.
  • the content entry includes the game name (“Swerve”) a game description (“Stay on the road, take sharp turns, and go fast!”), an image of the game including a game logo, social feedback elements (e.g., “Like”, “Comment”, and “Share” as well as a number of plays, likes, comments, and shares), and access information to enable a user to select the game to initiate a game session through a player component.
  • Game name (“Swerve”)
  • a game description (“Stay on the road, take sharp turns, and go fast!”
  • an image of the game including a game logo
  • social feedback elements e.g., “Like”, “Comment”, and “Share” as well as a number of plays, likes, comments, and shares
  • access information to enable a user to select the game to initiate a game session through a player component.
  • FIGS. 6A-6D are illustrations of an example graphical user interface on a client device.
  • FIG. 6A shows a plurality of matches among a plurality of users of the social network system. Matches can be resumed to continue a game session where a last game session ended. Unplayed matches can be provided. Unplayed matches include suggested matches and challenged matches that have not been initiated. Matches as shown in FIG. 6A are selectable to display match details as shown in FIG. 6B .
  • FIG. 6B shows a particular match between Jeff Doe and Jane Doe.
  • FIG. 6C shows a leaderboard for a game object.
  • the social network server maintains a leaderboard for a plurality of game objects. Game scores received by the social network server are used to update the maintained leaderboard.
  • a game is initiated by the player component as shown in FIG. 6D .
  • FIG. 7A-7D are illustrations of an example graphical user interface on a client device. Following a game session, game-related information can be provided.
  • FIG. 7A shows a client device displaying statistics for a particular game and indicating a game score needed to beat another user.
  • FIGS. 7B and 7D show a leaderboard that can be provided following a game session.
  • the leaderboard can include a rank for a user among a plurality of other users (e.g., “13th of 128 friends”). Additional matches as shown in FIG. 7C can be provided following a game session.
  • FIGS. 8A-8D are illustrations of an example graphical user interface on a client device.
  • the social network server can receive a share request following a game session.
  • the social network server In response to receiving a share request, the social network server generates a content entry including game-related information.
  • FIG. 8A shows an example of a content entry shared by Jane Doe.
  • a content entry can be shared, for example, in a news feed and in a message field.
  • the social network server can generate a content entry for display in an application in response to a request or without being solicited by a user.
  • a content entry can be generated during a game session as shown in FIG. 8B .
  • the content entry can include a real-time animation of the game session.
  • the content entry can be selectable to enable social media users to join a game session.
  • FIGS. 8C and 8D show a content entry shared in a message field of a message application.
  • the content entry can include a real-time animation of the game session.
  • the message application provides the animation for one or more user accounts included in the conversation. A user can select the content entry to join the game session.
  • FIGS. 9A-9D are illustrations of an example graphical user interface on a client device.
  • FIGS. 9A-9D show automated messages providing game-related information.
  • FIG. 9A shows a content entry displayed in a news feed indicating that Jane Doe set a new high score in a game.
  • FIG. 9B shows automated text included in a message field of a group conversation provided by a message application indicating that a new high score.
  • FIG. 9C shows a plurality of content entries displayed in a news feed indicating high scores for a plurality of game objects. Additional content entries are provided upon receipt of an input gesture (e.g., detecting a swipe from left to right across a touchscreen).
  • FIG. 9D shows a leaderboard with a plurality of high scores for a particular game including a rank for a user account compared to one or more user accounts associated with the user account (e.g., friends of the user account).
  • FIG. 10 is a diagrammatic representation of a machine in the example form of a computer system 1000 within which a set of instructions, for causing the machine to perform any one or more of the methodologies or modules discussed herein, may be executed.
  • the computer system 1000 includes a processor, memory, non-volatile memory, and an interface device. Various common components (e.g., cache memory) are omitted for illustrative simplicity.
  • the computer system 1000 is intended to illustrate a hardware device on which any of the components described in the example of FIGS. 1-9 (and any other components described in this specification) can be implemented.
  • the computer system 1000 can be of any applicable known or convenient type.
  • the components of the computer system 1000 can be coupled together via a bus or through some other known or convenient device.
  • computer system 1000 may be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, or a combination of two or more of these.
  • SOC system-on-chip
  • SBC single-board computer system
  • COM computer-on-module
  • SOM system-on-module
  • computer system 1000 may include one or more computer systems 1000 ; be unitary or distributed; span multiple locations; span multiple machines; or reside in a cloud, which may include one or more cloud components in one or more networks.
  • one or more computer systems 1000 may perform without substantial spatial or temporal limitation one or more steps of one or more methods described or illustrated herein.
  • one or more computer systems 1000 may perform in real time or in batch mode one or more steps of one or more methods described or illustrated herein.
  • One or more computer systems 1000 may perform at different times or at different locations one or more steps of one or more methods described or illustrated herein, where appropriate.
  • the processor may be, for example, a conventional microprocessor such as an Intel Pentium microprocessor or Motorola power PC microprocessor.
  • Intel Pentium microprocessor or Motorola power PC microprocessor.
  • machine-readable (storage) medium or “computer-readable (storage) medium” include any type of device that is accessible by the processor.
  • the memory is coupled to the processor by, for example, a bus.
  • the memory can include, by way of example but not limitation, random access memory (RAM), such as dynamic RAM (DRAM) and static RAM (SRAM).
  • RAM random access memory
  • DRAM dynamic RAM
  • SRAM static RAM
  • the memory can be local, remote, or distributed.
  • the bus also couples the processor to the non-volatile memory and drive unit.
  • the non-volatile memory is often a magnetic floppy or hard disk, a magnetic-optical disk, an optical disk, a read-only memory (ROM), such as a CD-ROM, EPROM, or EEPROM, a magnetic or optical card, or another form of storage for large amounts of data. Some of this data is often written, by a direct memory access process, into memory during execution of software in the computer 1000 .
  • the non-volatile storage can be local, remote, or distributed.
  • the non-volatile memory is optional because systems can be created with all applicable data available in memory.
  • a typical computer system will usually include at least a processor, memory, and a device (e.g., a bus) coupling the memory to the processor.
  • Software is typically stored in the non-volatile memory and/or the drive unit. Indeed, storing and entire large program in memory may not even be possible. Nevertheless, it should be understood that for software to run, if necessary, it is moved to a computer readable location appropriate for processing, and for illustrative purposes, that location is referred to as the memory in this paper. Even when software is moved to the memory for execution, the processor will typically make use of hardware registers to store values associated with the software, and local cache that, ideally, serves to speed up execution.
  • a software program is assumed to be stored at any known or convenient location (from non-volatile storage to hardware registers) when the software program is referred to as “implemented in a computer-readable medium.”
  • a processor is considered to be “configured to execute a program” when at least one value associated with the program is stored in a register readable by the processor.
  • the bus also couples the processor to the network interface device.
  • the interface can include one or more of a modem or network interface. It will be appreciated that a modem or network interface can be considered to be part of the computer system 1000 .
  • the interface can include an analog modem, ISDN modem, cable modem, token ring interface, satellite transmission interface (e.g. “direct PC”), or other interfaces for coupling a computer system to other computer systems.
  • the interface can include one or more input and/or output devices.
  • the I/O devices can include, by way of example but not limitation, a keyboard, a mouse or other pointing device, disk drives, printers, a scanner, and other input and/or output devices, including a display device.
  • the display device can include, by way of example but not limitation, a cathode ray tube (CRT), liquid crystal display (LCD), light emitting diode (LED) display, or some other applicable known or convenient display device.
  • CTR cathode ray tube
  • LCD liquid crystal display
  • LED light emitting diode
  • controllers of any devices not depicted in the example of FIG. 10 reside in the interface.
  • the computer system 1000 can be controlled by operating system software that includes a file management system, such as a disk operating system.
  • a file management system such as a disk operating system.
  • operating system software with associated file management system software is the family of operating systems known as Windows® from Microsoft Corporation of Redmond, Washington, and their associated file management systems.
  • WindowsTM Windows® from Microsoft Corporation of Redmond, Washington
  • LinuxTM LinuxTM operating system and its associated file management system.
  • the file management system is typically stored in the non-volatile memory and/or drive unit and causes the processor to execute the various acts required by the operating system to input and output data and to store data in the memory, including storing files on the non-volatile memory and/or drive unit.
  • the machine operates as a standalone device or may be connected (e.g., networked) to other machines.
  • the machine may operate in the capacity of a server or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
  • the machine may be a server computer, a client computer, a personal computer (PC), a tablet PC, a laptop computer, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, an iPhone, a Blackberry, a processor, a telephone, a web appliance, 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
  • machine-readable medium or machine-readable storage medium is shown in an exemplary embodiment to be a single medium, the term “machine-readable medium” and “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions.
  • the term “machine-readable medium” and “machine-readable storage medium” shall also be taken to 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 or modules of the presently disclosed technique and innovation.
  • routines executed to implement the embodiments of the disclosure may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as “computer programs.”
  • the computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processing units or processors in a computer, cause the computer to perform operations to execute elements involving the various aspects of the disclosure.
  • machine-readable storage media machine-readable media, or computer-readable (storage) media
  • recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks, (DVDs), etc.), among others, and transmission type media such as digital and analog communication links.
  • CD ROMS Compact Disk Read-Only Memory
  • DVDs Digital Versatile Disks
  • transmission type media such as digital and analog communication links.
  • operation of a memory device may comprise a transformation, such as a physical transformation.
  • a physical transformation may comprise a physical transformation of an article to a different state or thing.
  • a change in state may involve an accumulation and storage of charge or a release of stored charge.
  • a change of state may comprise a physical change or transformation in magnetic orientation or a physical change or transformation in molecular structure, such as from crystalline to amorphous or vice versa.
  • a storage medium typically may be non-transitory or comprise a non-transitory device.
  • a non-transitory storage medium may include a device that is tangible, meaning that the device has a concrete physical form, although the device may change its physical state.
  • non-transitory refers to a device remaining tangible despite this change in state.
  • FIG. 11 is a block diagram illustrating an overview of an environment 1100 in which some implementations of the disclosed technology may operate.
  • Environment 1100 can include one or more client computing devices 1105 A-D, examples of which may include computer system 1000 .
  • Client computing devices 1105 e.g., client device 204
  • Client computing devices 1105 can operate in a networked environment using logical connections 1110 through network 1130 to one or more remote computers such as a server computing device.
  • server 1110 can be an edge server which receives client requests and coordinates fulfillment of those requests through other servers, such as servers 1120 A-C.
  • Server computing devices 1110 and 1120 can comprise computing systems, such as device 100 . Though each server computing device 1110 and 1120 is displayed logically as a single server, server computing devices can each be a distributed computing environment encompassing multiple computing devices located at the same or at geographically disparate physical locations. In some implementations, each server 1120 corresponds to a group of servers.
  • Client computing devices 1105 and server computing devices 1110 and 1120 can each act as a server or client to other server/client devices.
  • Server 1110 can connect to a database 1115 .
  • Servers 1120 A-C can each connect to a corresponding database 1125 A-C.
  • each server 1120 may correspond to a group of servers, and each of these servers can share a database or can have their own database.
  • Databases 1115 and 1125 can warehouse (e.g. store) information such as labeled images, parts models, histograms of gradients, classifiers, region templates, search images, and classified images or image parts. Though databases 1115 and 1125 are displayed logically as single units, databases 1115 and 1125 can each be a distributed computing environment encompassing multiple computing devices, can be located within their corresponding server, or can be located at the same or at geographically disparate physical locations.
  • Network 1130 can be a local area network (LAN) or a wide area network (WAN), but can also be other wired or wireless networks.
  • Network 1130 may be the Internet or some other public or private network.
  • the client computing devices 1105 can be connected to network 1130 through a network interface, such as by wired or wireless communication. While the connections between server 1110 and servers 1120 are shown as separate connections, these connections can be any kind of local, wide area, wired, or wireless network, including network 1130 or a separate public or private network.
  • the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to.”
  • the terms “connected,” “coupled,” or any variant thereof means any connection or coupling, either direct or indirect, between two or more elements.
  • the coupling or connection between the elements can be physical, logical, or a combination thereof.
  • two devices may be coupled directly, or via one or more intermediary channels or devices.
  • devices may be coupled in such a way that information can be passed there between, while not sharing any physical connection with one another.

Abstract

This disclosure is directed to enabling access to a game instance through a messenger application. A client-side player component facilitates communication between a game instance on the client device and a backend server of a social networking system. The communication information can be stored in or retrieved from a social graph of the social networking system. The game instance can be initialized from a social platform of the social networking system, and the game can be played without leaving the messenger application.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • The present application is a continuation of U.S. application Ser. No. 16/702,253, filed on Dec. 3, 2019, which is a continuation of U.S. application Ser. No. 15/475,801, filed on Mar. 31, 2017 which issued as U.S. Pat. No. 10,518,181. Each of the aforementioned applications is hereby incorporated by reference in its entirety.
  • BACKGROUND
  • The first video games were played on massive computers connected to vector displays. Several generations of video game consoles connectable to a television were later developed having interchangeable discs or cartridges. Games on video game consoles could be played amongst users within an immediate vicinity. Online games are now played on various types of computing devices. An online game is a game that is either partially or primarily played by one or more users who communicate through the Internet or other data communications computer network. Conventional online game sessions are hosted or managed by a game server, which is typically a dedicated computer managed by the game publisher or other company. Users typically initiate online game sessions by directly accessing a web page of a third-part game server. Alternatively, applications (“apps”) or console games may communicate with a server to exchange score information, game updates, etc.
  • Over the last several years, social networks have become a useful way to connect with acquaintances or businesses, e.g., to communicate. Social networks may have a social graph that identifies interrelationships between users. A subset of the users of a social network may be friends, in which case the social graph may have particular connections between nodes of the graph representing the users. Some social networks also have a messaging app that enables two or more users to communicate with each other, e.g., by exchanging messages. Because social networks are now used by many millions (even billions) of users daily, they have the potential to offer game publishers tremendous opportunity to expand their online game presence in meaningful ways.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • These and other objects, features and characteristics of the present embodiments will become more apparent to those skilled in the art from a study of the following detailed description in conjunction with the appended claims and drawings, all of which form a part of this specification. While the accompanying drawings include illustrations of various embodiments, the drawings are not intended to limit the claimed subject matter.
  • FIG. 1 is a block diagram illustrating components which, in some implementations, can be used in a system employing the disclosed technology.
  • FIG. 2A is a block diagram illustrating an overview of an environment in which some implementations of the disclosed technology can operate.
  • FIG. 2B is a block diagram illustrating an overview of another environment in which some implementations of the disclosed technology can operate.
  • FIG. 3 is a flow diagram illustrating a process used in some implementations for managing game instances through a social platform.
  • FIG. 4A is a flow diagram illustrating a process used in some implementations for managing game sessions in a social network system.
  • FIG. 4B is a flow diagram illustrating a process used in some implementations for managing game sessions in a social network system.
  • FIG. 4C is a flow diagram illustrating a process used in some implementations for managing game sessions in a social network system.
  • FIG. 4D is a flow diagram illustrating a process used in some implementations for managing game sessions in a social network system
  • FIGS. 5A-5C are illustrations of an example graphical user interface on a client device.
  • FIGS. 6A-6D are illustrations of an example graphical user interface on a client device.
  • FIG. 7A-7D are illustrations of an example graphical user interface on a client device.
  • FIGS. 8A-8D are illustrations of an example graphical user interface on a client device.
  • FIGS. 9A-9D are illustrations of an example graphical user interface on a client device.
  • FIG. 10 is a block diagram illustrating an example computer system.
  • FIG. 11 is a block diagram illustrating an overview of an environment in which some implementations of the disclosed technology can operate.
  • DETAILED DESCRIPTION
  • This patent application is directed to enabling access to a game session within a social network system, including through a messenger application. The messenger application is an application that enables users to communicate online nearly instantaneously. A player component facilitates communication between a game instance on the client device and a backend server of a social networking system. The communication information can be stored in or retrieved from a social graph of the social networking system. The game instance can be initialized from a social platform (e.g., newsfeed, messaging application, etc.) of the social networking system, and the game can be played without leaving the messenger application.
  • In various embodiments, a user can identify a game to play using a discovery component. The discovery component may list multiple games and may list the games in a specified order. As an example, the discovery component may list games for a user based on that user's prior interactions with games, “friends” indicated in the social graph, contacts in a contact list, games played by the friends and/or contacts, etc.
  • In various embodiments, the user may receive a “challenge” in their social network newsfeed or messenger application app. As an example, the user may receive a notification that a friend or contact has achieved a high score in a particular game. The user can accept the challenge, e.g., by “clicking” or “pressing” on the notification, to start the game. A user may receive challenges from different users for a particular game. In various embodiments, the score the user achieves in the game may be posted to some or all the other users. As an example, the score may be shared with a different user who sent a particular challenge, all users who sent challenges, or publicly.
  • After the user plays a game, the user's score may be shared with other users, e.g., to challenge the other users. In various embodiments, the user can explicitly share the score, e.g., to challenge another user. In some embodiments, the score may be shared implicitly, e.g., to a “leaderboard” or as a challenge to friends or contacts. When the other user accepts the challenge, a thread of communication may be created between the user who sent the challenge and the user who accepted it.
  • Embodiments include integration of a gaming platform with a social networking system to enable substantially instant access to a game instance. The system architecture includes a client device that implements a client-side player component (e.g., a software component). The player component can facilitate communication between a game instance on the client device and a backend server of a social networking system. The communication can include high score, game participant identity, game participant connections, game session details, game achievements, etc. The communication information can be stored in or based on a social graph of the social networking system.
  • In various embodiments, each messenger app thread of communications between two or more users has a thread identifier (“thread ID”), each user of the social network has a user ID, businesses having social network pages have a page ID, and apps (e.g., game apps) have an app ID. Because a user may be simultaneously involved in playing a particular game with multiple other users , a combination of the various IDs may be used to identify a particular instance of the game, e.g., for score sharing purposes. As an example, the combination of thread ID and app ID identifies a particular game that is being played by users communicating in the thread. As another example, the combination of user ID, app ID, and page ID identifies a game hosted or sponsored by a business that the identified user is playing.
  • In various embodiments, some or all of these IDs may be anonymized. As an example, the user ID may be anonymized so that although the user's scores or score updates can be posted publicly or to other users of the social network or messenger app, the user may not be identifiable by others except perhaps the user's friends. Similarly, the thread ID may be anonymized so that the game developer cannot use the actual thread maliciously, e.g., to post advertisement messages that may be unrelated to the game. Just as thread IDs, app IDs, page IDs, and user IDs may be unique within the social network and/or messenger app, the respective anonymized IDs may also be unique.
  • In various embodiments, a game instance may employ the messenger app and its underlying communications protocols to exchange messages with other game instances. As examples, when a game is played by two different users in a thread, the game may exchange score information, cards of a card game, moves of a chess game, etc., between the game instances corresponding to each of the players. As a further example, when two players are in a messenger thread concurrently, one player may be able to remotely watch the other player's gameplay. An underlying “live stream” capability of the messenger platform may send a video stream of the game being played to the other user.
  • In various embodiments, various social signals may be sent relating to a user's game playing. As examples, a glyph or icon may be added to a user's profile photo when the user is a high scorer. As an example, a facial recognition system may identify the user's face in their profile photo and add a crown above the user's head in the photo. The modified profile photo may be limited to the messenger thread or may be available for all users of the social network or messenger app to view. Other social signals can include icons, animations, sounds, badges, etc. The social signals can correspond to scores, challenges, or other gaming concepts.
  • Third-party game servers typically utilize a vast assortment of inconsistent programming languages and protocols. Facilitating communication among these third-party servers using disparate programming languages is an unmanageable task on an individual basis. Embodiments include a game library having a private application program interface (API) to communicate with a client-side player component and a public API customizable to communicate with a game component hosted on the third-party server. Thus, the game library facilitates communication between the client-side player component and a third-party game component. Enabling communication between the game component and the player component via the game library unlocks a myriad of social network functions, including enabling users to initiate game sessions and freely share game-related data for games previously inaccessible through a social network system.
  • The game instance can be initialized from a social platform (e.g., newsfeed, messaging application, etc.) of the social networking system. The client-side player component can be implemented as part of a social networking website, which is accessible via a browser application running on the client device, or part of a social networking mobile application. The client-side player can access a plurality of web addresses representing third-party games (e.g., a game webpage that embeds a JavaScript library). A web server of a third-party game developer can host the game webpage. The JavaScript library can encode a public API to logic components within the game webpage and a private API to communicate with the client-side player component. That is, the JavaScript library can translate commands and messages between the client-side player component and the third-party game webpage. The client-side player component can load a splash screen from a game-related URL in parallel to a URL of the third-party game webpage, enabling players to experience substantially instant access to a game session. The client-side player component can further access social network information related to the game, prior to fully loading the game webpage onto the client device.
  • Turning now to the Figures, FIG. 1 is a block diagram illustrating components that, in some implementations, can be used in a system employing the disclosed technology. The illustrated components include a social network server 102, player component 104, game library 106, and game component 108.
  • The game library 106 facilitates communications between the player component 104 and the game component 108. The game library 106 can be imported by a third-party server and executed remotely by the third-party server. The game library 106 includes a private API 156 and a public API 166.
  • The game library 106 can use a private API 156 to communicate with the player component 104. The private API can be configured to communicate with a plurality of player components of various types. Types of player components include player components operable on a desktop/laptop computer (e.g., configured for Windows® or MacOS®) or a mobile device (e.g., configured for Android® or iOS). Types of player components also include a player component operable on the social network server 102 and provided to a user device via a web page accessible through a web browser. Each type of player component can include unique logic components. The private API is encoded with logic components of one or more types of player components.
  • The game library 106 can use the public API 166 to communicate with the game component 108. The public API 166 is encoded to logic components of the game component 108. The public API 166 can default to synchronous function calls for communications and include asynchronous function calls for limited communications to improve performance.
  • The game library 106 includes correlations mapping logic components of the player component 104 to logic components of the game component 108. The game library 106 translates communications received via the private API 156 from logic components consistent with the payer component 104 to logic components consistent with the game component 108 and transmits, via the public API 166, the translated communications to the game component 108. The game library 106 translates communications received via the public API 166 from logic components consistent with the game component 108 to logic components consistent with the player component 104 and transmits, via the private API 156, the translated communications to the player component 104.
  • The player component 104 communicates with the social network server 102. In some embodiments, game-related communication with the social network server 102 is performed exclusively by the player component 104. Game-related communication transmitted by the player component 104 to the social network server 102 can include, for example, game loading progress, game load completion, game screenshot, game completion, game score, fatal error notification, log messages, or any combination thereof. Game-related communication transmitted by the social network server 102 to the player component 104 can include, for example, a start instruction, restart instruction, pause instruction, save instruction, user device information, browser information, aspect ratio information, frame rate information, information related to social features (e.g., scores of friends in a social network), or any combination thereof
  • The social network server 102 manages a game leaderboard comprising game scores associated with a plurality of users of the social network system. The social network server 102 updates a game leaderboard database in response to receiving data indicative of game scores for any user of a plurality of users corresponding to any game of a plurality of games.
  • FIGS. 2A-2B are block diagram illustrating an overview of an environment in which some implementations of the disclosed technology can operate. In an embodiment, the player component 104 is embedded in an application 214 (e.g., a messenger application) executed by a client device 204 (as shown in FIG. 2A). In another embodiment, the player component 204 can run on the social network server 202 and be accessible by the application 214 (as shown in FIG. 2B).
  • In an embodiment, the client device 204 can seamlessly switch from a game instance on a local player component (as shown in FIG. 2A) to a game instance on a remote player component (as shown in FIG. 2B) and vice versa. In response to a request to switch from a local to a remote player component, a state of a local game instance is stored. The state of the local game instance is provided to the social network server 202. The social network server 202 can execute a remote player component. The remote player component can use state information received from the local game instance to initiate another game instance having the same state as the local game instance. The application 214 (e.g., a messenger application having browser capabilities) running on the client device 204 accesses the remote player component to start a new game session having the same state as the local game session. A similar process can be performed in reverse to seamlessly switch from a remote player component to a local player component.
  • Referring now to FIG. 2A, the player component 104 can run on the client device 204. The player component can be embedded in the application 214. The application 214 can be, for example, a messenger application, social media application, browser, or any combination thereof. A combination messenger application and browser enables access to web pages without having to leave the messenger application. The player component 104 communicates with the game library 106 (e.g., via the public API 162) and with the social network server 102.
  • The game library 106 and the game component 108 can be hosted by a third-party game server 206. The game library 106 facilitates communication between the game component 108 and the player component 104. The private API 152 communicates with the game component 108, and the public API 162 communicates with the player component 104.
  • The player component 104 can be embedded in an application 214 running on the client device 204. The player component 104 receives translated game data from the game library 106. The player component 104 provides game-related information to the social network server 102 including, for example, game loading progress, game load completion, game screenshot, game completion, game score, fatal error notification, log messages, or any combination thereof.
  • The social network server 102 communicates with the player component 104 running on the client device 204. The social network server 102 stores game data 282 received from the player component 104 which can be used as part of a social graph 272. The social network server 102 transmits game-related information to the player component 104 including, for example, a start instruction, restart instruction, pause instruction, save instruction, user device information, browser information, aspect ratio information, frame rate information, information related to social features (e.g., scores of friends in a social network), or any combination thereof
  • The social network server 102 includes the social graph 272. The social graph 272 includes information related to the social network system including, for example, game data 282 (e.g., information received from the player component 104) and social data 292 (e.g., associations between users). The social graph 272 includes a plurality of nodes that are interconnected by a plurality of edges. A social graph node may represent a social networking system object that can act on and/or be acted upon by another node. Each of these interactions can be stored as an edge of the social graph. In some embodiments, the edges can be represented as bi-directional. In other embodiments, the edges can be represented as directional. For example, a user node selecting a particular game to initiate a game instance, can be represented by either a bi-directional edge between the user node and the social network page or a directional edge from the user node to the social network page. The social graph can thus be stored as a database of edges between nodes. In some embodiments, the social graph can be stored separately for user interactions of a specific kind. In other embodiments, the social networking system stores the social graph without discriminating the type of user interactions.
  • An edge between nodes in a social graph represents a particular kind of connection between the nodes, which may result from an action that was performed by one of the nodes on the other node. Examples of such actions by a social networking system user include selecting a game to initiate a game session, challenging another user to play a selected game, sharing a game through a messenger application, and sharing a game in a news feed.
  • An implicit social graph connection can be determined based on the social graph of the social networking system. The implicit social graph connection can be leveraged from one or more recorded interactions. The user interactions can be received from a client device (e.g., client device 204) connected to the social networking system through a user account. An implicit social graph connection can be determined between any social graph object and any other social graph object. For example, from the user interaction, a connection generation module can identify a user account and a social network object (e.g., a game) related to that user interaction. An implicit social graph connection can be added to the social graph based on the user account and the social network object identified. The implicit social graph connection can be generated in response to determining the user interaction, or in a parallel batch process by surveying the social graph. The connection generation module can also calculate an edge weight for the implicit social graph connection, where the edge weight determines a quantitative likelihood that the user may later choose to make an explicit connection with the social network object. The social graph may improve accuracy of personalization of content over conventional methods.
  • One or more games can be associated with the user account by traversing a social graph of the social network system. A content entry associated with the identified game based on an implicit social graph connection can be generated. The content entry can be configured for display on the user device. The content entry can include images and/or text related to the identified game. For example, the content entry can include a name of a game, a logo associated with a game, user data related to a game, or any combination thereof. User data related to a game can include, for example, names of users who have played the game, scores of one or more users (e.g., on a leaderboard), a time a user played a game, a user who has challenged other users to a game, a user who has been challenged to a game, or any combination thereof.
  • Referring now to FIG. 2B, the player component 104 is executed by the social network server 202. The application 214 can access the player component 104, for example, by connecting to a web page hosted by the social network server 202. A game session is transferable from a local player component running on the client device 204 to a remove player component running on the social network server 202.
  • The player component 104 communicates with the game library 106 (e.g., via the public API 162) and the application 214. The player component 104 receives game information from the game library. The player component 104 provides game data to the social graph 172. As discussed above with respect to FIG. 2A, the social graph 172 is used to identify game suggestions associated with a user account.
  • FIG. 3 is a flow diagram illustrating a process used in some implementations for initiating game instances and sharing game-related information through a social network system. The social network system identifies game suggestions by, for example, traversing a social graph, as discussed above with respect to FIGS. 2A-2B and/or by receiving a share request from a user (block 308). The share request can be an invitation or challenge to start a game session of a particular game among a plurality of games. The social network system delivers game suggestions (block 302) to an application (e.g., messenger application) running on a user device. The suggested game may be identified by an app ID and posted within an existing messenger thread ID. The user device (e.g., client device 204) receives the game selection (block 304). The user device initiates the game instance (block 306) by utilizing a player component embedded in an application and configured to communicate with a game library. The player component can load a splash screen including game-related information such as, for example, loading progress, user score(s) (e.g., on a leaderboard), game play instructions, or any combination thereof.
  • The social network system receives game data during the game session and updates the game database (block 316). For example, the social network system can receive data related to a game loading progress, game load completion, game screenshot, game completion, game score, fatal error notification, log messages, or any combination thereof. The game data can be stored as part of a social graph used to identify game suggestions. The game data updates can include a user ID, app ID, and a thread ID so that a particular instance can be uniquely identified. The IDs may be anonymized, e.g., by using a consistent hashing function, encryption, etc.
  • The player component can prompt a user to share game information and/or challenge another user. In response to receiving a share request (block 308), the social network system delivers a game suggestion (block 302). In response to receiving a challenge request (block 310), the social network system transmits a game invitation (block 312). Another user device receives the game invitation and selects accept or decline. If the game invitation is declined, the game instance is not initiated. If the game invitation is accepted (block 314), the game instance is initiated (block 306) by another player component of the another user device.
  • In an embodiment, a messenger application having a player component embedded therein manages game sharing and challenges. Various embodiments for providing game suggestions to a user of the messenger application are contemplated. For example, a user can enter a game name in a text field of the messenger application. The message application identifies the game name and provides a content entry associated with the identified game name. The content entry can be sent to one or more users in a message field of the messenger application. The content entry can include the game name, image associated with the game, description of the game, and access information to enable a player component to access the game upon selection.
  • In another example, the social network system can traverse a social graph to identify games associated with a user. A content entry associated with identified game(s) can be transmitted to the messenger application. A user can share the content entry with other users in a message field of the messenger application.
  • In another example, the social network system can prompt a user before, during, or after a game session to select one or more users to challenge to the game. In response to receiving a challenge request for one or more users, the social network system transmits a game invitation to the one or more users. The game invitation can include a content entry indicating a user name of the challenger and including information related to the game (e.g., game name, image, description, and access information).
  • A content entry received in a message field of the messenger application is selectable to cause the player component to initiate a game instance. The player component can be embedded in the messenger application running on a user device or be running on the social network server. The messenger application can access the player component running on the social network server through a web page hosted on the social network server. The messenger application can transfer a game session from a first player component embedded in the messenger application to a second player component running on the social network server and vice versa. The messenger application stores a state of a game instance of the first game component and provides the state of the game instance to the second player component so the second player component can initiate a game instance with having the same state as the prior game instance.
  • FIG. 4A is a flow diagram illustrating a process used in some implementations for facilitating communication between a player component and a game component. The method can include providing a private application program interface (API) (block 402), providing a public API, (block 404), transmitting a pause command to a first instance of the game component executing within a context of a first application but transmitting the restart command to a second instance of the game component executing within a context of a second application (block 406), and receiving an indication that a first user has suspended playing the online game at the first application and restarted playing the online game at the second application (block 408).
  • At block 402, the routine provides a private API. The private API is configured to communicate with a player component. The private API has one or more methods for performing a sequence of online-game related operations. The private API can receive, from the player component, a messaging service thread identifier. The messaging service thread identifier identifies an online conversation between at least two social network users. The private API can receive, from the player component, a gameplay command. The private API can receive status information (e.g., indicating gameplay complete, a game score, or a crash notification) from the player component.
  • At block 404, the routine provides a public API. The public API is configured to communicate with a game component. The public API has one or more methods for performing a sequence of online-game related operations. The public API can receive, from the game component, a game instance identifier. The game instance identifier identifies a particular instance of the online game. The online game is capable of being played on one or more computing devices. The public API associates the received messaging service thread identifier with the game instance identifier. The public API transmits, to the game component, the gameplay command to cause the game component to respond to the gameplay command. The gameplay command can include one of play, pause, or restart.
  • At block 406, the routine causes the public API to transmit a pause command to a first instance of the game component executing within a context of a first application. The public API also transmits the restart command to a second instance of the game component executing within a context of a second application. The first instance and the second instance have a same game instance identifier. The first instance is paused and the second instance is started to transfer a game session.
  • At block 408, the routine causes the private API to receive an indication that a first user has suspended playing the online game at the first application and restarted playing the online game at the second application. The game library uses this information to determine where to transmit game-related information. Since the game session is active in the second application, the game library uses the public API to transmit game related information to a player component associated with the second application. The first user and a second user can continue to conduct an online conversation using the messaging service during a game session.
  • FIG. 4B is a flow diagram illustrating a process used in some implementations for enabling access to a game instance through a social platform. The method includes receiving a game selection (block 432), generating a content entry (block 434), transmitting the content entry to the messenger application (block 436), receiving data indicative of a selection of the content entry (block 438), and transmitting a start message (block 440). The description is provided as an example and not intended to be limiting. Although the social network server is described as performing various functions, other devices such as the client device are also contemplated for performing the various functions.
  • At block 432, the social network server receives, from a device associated with a user account, a game selection associated with a game component hosted on a third-party server. An application (e.g., a messenger application) receives a game selection from the user and transmits the game selection to the social network server. An application may be logged into a user account to receive a suggested game. The suggested game can be solicited by input from a user or be an unsolicited suggestion identified based on an association with the user account (e.g., by traversing a social graph). For example, a user of the messenger application can input a game name into a text bar, the messenger application can provide a drop down menu suggesting one or more games, and the user selects a game to transmit to another user of the messenger application. In another example, the messenger application displays a popup suggesting a game associated with a user account and another user account (e.g., according to an analysis of the social graph) where the popup indicates that the another user account may be interested in the game as well. A user logged into the user account selects the game in the popup message to be sent to the another user account.
  • At block 434, the social network server generates a content entry associated with the game selection, the content entry being configured for display in a messenger application. The content entry can include images and/or text related to the identified game as well as access information (e.g., an identification number associated with the identified game). For example, the content entry can include a name of a game, a logo associated with a game, user data related to a game, or any combination thereof. User data related to a game can include, for example, names of users who have played the game, scores of one or more users (e.g., on a leaderboard), a time a user played a game, a user who has challenged other users to a game, a user who has been challenged to a game, or any combination thereof. In an embodiment, one or more elements of the content entry are customizable by a user making the game selection. For example, a user making a game selection can be prompted to select an image or text. In another example, a user can select a setting in an application (e.g., the messenger application) to change a default content entry transmitted and/or received by the user. For example, a user can select a setting to omit images in a content entry. In another example, a user can select a setting to enlarge images and/or text in a content entry. In another example, a user can select a setting to include or omit animations in a content entry.
  • At block 436, the social network server transmits the content entry to the messenger application to cause a user device running the messenger application to display the content entry in a message field of the messenger application. The content entry is displayed in a message field of the messenger application logged into the user account and a message field of the messenger application logged into another user account included in the conversation. The content entry displayed for the user account and the another user account can vary based on a content entry setting selected in the messenger application.
  • At block 438, the social network server receives data indicative of a selection of the content entry associated with the game instance. The another user selects the content entry in the message field to initiate a game session. Upon selecting the content entry data indicative of the selection is transmitted to the social network system.
  • At block 440, the social network server transmits a start message to cause a player component embedded in the messenger application to initiate a game session in response to receiving the data indicative of the selection. Upon receiving the start message, the player component initiates a game instance to start a game session. The player component can be embedded in the messenger application or running on the social network server and accessible to the messenger application via a web page.
  • FIG. 4C is a flow diagram illustrating a process used in some implementations for enabling access to a game instance through a social platform. The method includes identifying a game associated with the user account by traversing a social graph of the social network system (block 452), generating a content entry (block 454), transmitting the content entry to the user account (block 456), receiving data indicative of a selection of the content entry (block 458), and transmitting a start message to cause a player component embedded in the messenger application to initiate a game session (block 460).
  • At block 452, the social network server identifies a game associated with the user account by traversing a social graph of the social network system. The implicit social graph connection can be leveraged from one or more recorded interactions of a social network user. Examples of recorded actions include selecting a game to initiate a game session, challenging another user to play a selected game, sharing a game through a messenger application, and sharing a game in a news feed. An edge weight for the implicit social graph connection can be calculated, where the edge weight determines a quantitative likelihood that the user may later choose to make an explicit connection with the social network object. An edge weight exceeding a threshold likelihood of an explicit connection results in identifying an association between a game object and a user account.
  • At block 454, the social network server generates a content entry associated with the identified game based on an implicit social graph connection, the another content entry being configured for display on the user device. The content entry can include images and/or text related to the identified game as well as access information.
  • At block 456, the social network server transmits the content entry to the user account to cause the messenger application to display the content entry in the message field of the messenger application. The content entry can be displayed as a selectable prompt that a user can accept or decline. The content entry can disappear if a user declines and remain if a user accepts. The content entry can be shared with other users. The content entry is selectable to initiate a game session.
  • At block 458, social network server receives data indicative of a selection of the content entry associated with the game instance. The user selects the content entry in the message field to initiate a game session. Upon selecting the content entry data indicative of the selection is transmitted to the social network system.
  • At block 460, the social network server transmits a start message to cause a player component embedded in the messenger application to initiate a game session in response to receiving the data indicative of the selection. Upon receiving the start message, the player component initiates a game instance to start a game session. The player component can be embedded in the messenger application or running on the social network server and accessible to the messenger application via a web page.
  • FIG. 4D is a flow diagram illustrating a process used in some implementations for enabling access to a game instance through a social platform. The method includes receiving a challenge request (block 472), generating a content entry (block 474), transmitting the content entry to the user device to cause the messenger application to display the content entry (block 476), receiving an acceptance notification from a user account associated with the challenge request (block 478).
  • At block 472, the social network server receives a challenge request associated with the game selection from a user device associated with a user account of the social network system. The player component provides a selectable prompt for challenging one or more users to a game. Upon selection of a challenge for one or more players to a game, the player component transmits the challenge request to the social network server.
  • At block 474, the social network server generates a content entry indicative of the game selection and the challenge request configured for display by a messenger application. The social network server generates the content entry indicative of the challenge request. The content entry for the challenge request includes information indicative of the user submitting the challenge request as well as information about the game object.
  • At block 476, the social network server transmits the content entry to the user device to cause the messenger application to display the content entry. The content entry can be displayed in a message field of the messenger application.
  • At block 478, the social network server receives an acceptance notification from a user account associated with the challenge request. The acceptance notification indicates that the content entry is selected. The acceptance notification causes the messenger application to initiate a player component to communicate with a game webpage hosted on the third-party server. The player component initiates a game instance. The player component is embedded in the messenger application or accessible via a web page hosted on the social media server.
  • FIGS. 5A-5C are illustrations of an example graphical user interface on a client device. FIG. 5A illustrates a content entry displaying a game suggestion provided in a news feed of a social media application or thread of a messenger app. FIG. 5B illustrates a content entry shared by a user on the news feed of the social media application. FIG. 5C illustrates a content entry displaying a suggested game identified by traversing a social graph of the social network system. Additional content entries can be provided upon receiving an input gesture (e.g., detecting a swipe across a touchscreen). Although the illustrations are of a newsfeed, one skilled in the art will recognize that a similar interface can be provided within a messenger app thread.
  • The content entry includes the game name (“Swerve”) a game description (“Stay on the road, take sharp turns, and go fast!”), an image of the game including a game logo, social feedback elements (e.g., “Like”, “Comment”, and “Share” as well as a number of plays, likes, comments, and shares), and access information to enable a user to select the game to initiate a game session through a player component.
  • FIGS. 6A-6D are illustrations of an example graphical user interface on a client device. FIG. 6A shows a plurality of matches among a plurality of users of the social network system. Matches can be resumed to continue a game session where a last game session ended. Unplayed matches can be provided. Unplayed matches include suggested matches and challenged matches that have not been initiated. Matches as shown in FIG. 6A are selectable to display match details as shown in FIG. 6B. FIG. 6B shows a particular match between Jeff Doe and Jane Doe.
  • FIG. 6C shows a leaderboard for a game object. The social network server maintains a leaderboard for a plurality of game objects. Game scores received by the social network server are used to update the maintained leaderboard. Upon receiving a play selection, a game is initiated by the player component as shown in FIG. 6D.
  • FIG. 7A-7D are illustrations of an example graphical user interface on a client device. Following a game session, game-related information can be provided. FIG. 7A shows a client device displaying statistics for a particular game and indicating a game score needed to beat another user. FIGS. 7B and 7D show a leaderboard that can be provided following a game session. The leaderboard can include a rank for a user among a plurality of other users (e.g., “13th of 128 friends”). Additional matches as shown in FIG. 7C can be provided following a game session.
  • FIGS. 8A-8D are illustrations of an example graphical user interface on a client device. The social network server can receive a share request following a game session. In response to receiving a share request, the social network server generates a content entry including game-related information. FIG. 8A shows an example of a content entry shared by Jane Doe. A content entry can be shared, for example, in a news feed and in a message field.
  • The social network server can generate a content entry for display in an application in response to a request or without being solicited by a user. For example, a content entry can be generated during a game session as shown in FIG. 8B. The content entry can include a real-time animation of the game session. The content entry can be selectable to enable social media users to join a game session.
  • FIGS. 8C and 8D show a content entry shared in a message field of a message application. As shown in FIG. 8D, the content entry can include a real-time animation of the game session. The message application provides the animation for one or more user accounts included in the conversation. A user can select the content entry to join the game session.
  • FIGS. 9A-9D are illustrations of an example graphical user interface on a client device. FIGS. 9A-9D show automated messages providing game-related information. FIG. 9A shows a content entry displayed in a news feed indicating that Jane Doe set a new high score in a game. FIG. 9B shows automated text included in a message field of a group conversation provided by a message application indicating that a new high score. FIG. 9C shows a plurality of content entries displayed in a news feed indicating high scores for a plurality of game objects. Additional content entries are provided upon receipt of an input gesture (e.g., detecting a swipe from left to right across a touchscreen). FIG. 9D shows a leaderboard with a plurality of high scores for a particular game including a rank for a user account compared to one or more user accounts associated with the user account (e.g., friends of the user account).
  • FIG. 10 is a diagrammatic representation of a machine in the example form of a computer system 1000 within which a set of instructions, for causing the machine to perform any one or more of the methodologies or modules discussed herein, may be executed.
  • In the example of FIG. 10, the computer system 1000 includes a processor, memory, non-volatile memory, and an interface device. Various common components (e.g., cache memory) are omitted for illustrative simplicity. The computer system 1000 is intended to illustrate a hardware device on which any of the components described in the example of FIGS. 1-9 (and any other components described in this specification) can be implemented. The computer system 1000 can be of any applicable known or convenient type. The components of the computer system 1000 can be coupled together via a bus or through some other known or convenient device.
  • This disclosure contemplates the computer system 1000 taking any suitable physical form. As example and not by way of limitation, computer system 1000 may be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, or a combination of two or more of these. Where appropriate, computer system 1000 may include one or more computer systems 1000; be unitary or distributed; span multiple locations; span multiple machines; or reside in a cloud, which may include one or more cloud components in one or more networks. Where appropriate, one or more computer systems 1000 may perform without substantial spatial or temporal limitation one or more steps of one or more methods described or illustrated herein. As an example and not by way of limitation, one or more computer systems 1000 may perform in real time or in batch mode one or more steps of one or more methods described or illustrated herein. One or more computer systems 1000 may perform at different times or at different locations one or more steps of one or more methods described or illustrated herein, where appropriate.
  • The processor may be, for example, a conventional microprocessor such as an Intel Pentium microprocessor or Motorola power PC microprocessor. One of skill in the relevant art will recognize that the terms “machine-readable (storage) medium” or “computer-readable (storage) medium” include any type of device that is accessible by the processor.
  • The memory is coupled to the processor by, for example, a bus. The memory can include, by way of example but not limitation, random access memory (RAM), such as dynamic RAM (DRAM) and static RAM (SRAM). The memory can be local, remote, or distributed.
  • The bus also couples the processor to the non-volatile memory and drive unit. The non-volatile memory is often a magnetic floppy or hard disk, a magnetic-optical disk, an optical disk, a read-only memory (ROM), such as a CD-ROM, EPROM, or EEPROM, a magnetic or optical card, or another form of storage for large amounts of data. Some of this data is often written, by a direct memory access process, into memory during execution of software in the computer 1000. The non-volatile storage can be local, remote, or distributed. The non-volatile memory is optional because systems can be created with all applicable data available in memory. A typical computer system will usually include at least a processor, memory, and a device (e.g., a bus) coupling the memory to the processor.
  • Software is typically stored in the non-volatile memory and/or the drive unit. Indeed, storing and entire large program in memory may not even be possible. Nevertheless, it should be understood that for software to run, if necessary, it is moved to a computer readable location appropriate for processing, and for illustrative purposes, that location is referred to as the memory in this paper. Even when software is moved to the memory for execution, the processor will typically make use of hardware registers to store values associated with the software, and local cache that, ideally, serves to speed up execution. As used herein, a software program is assumed to be stored at any known or convenient location (from non-volatile storage to hardware registers) when the software program is referred to as “implemented in a computer-readable medium.” A processor is considered to be “configured to execute a program” when at least one value associated with the program is stored in a register readable by the processor.
  • The bus also couples the processor to the network interface device. The interface can include one or more of a modem or network interface. It will be appreciated that a modem or network interface can be considered to be part of the computer system 1000. The interface can include an analog modem, ISDN modem, cable modem, token ring interface, satellite transmission interface (e.g. “direct PC”), or other interfaces for coupling a computer system to other computer systems. The interface can include one or more input and/or output devices. The I/O devices can include, by way of example but not limitation, a keyboard, a mouse or other pointing device, disk drives, printers, a scanner, and other input and/or output devices, including a display device. The display device can include, by way of example but not limitation, a cathode ray tube (CRT), liquid crystal display (LCD), light emitting diode (LED) display, or some other applicable known or convenient display device. For simplicity, it is assumed that controllers of any devices not depicted in the example of FIG. 10 reside in the interface.
  • In operation, the computer system 1000 can be controlled by operating system software that includes a file management system, such as a disk operating system. One example of operating system software with associated file management system software is the family of operating systems known as Windows® from Microsoft Corporation of Redmond, Washington, and their associated file management systems. Another example of operating system software with its associated file management system software is the Linux™ operating system and its associated file management system. The file management system is typically stored in the non-volatile memory and/or drive unit and causes the processor to execute the various acts required by the operating system to input and output data and to store data in the memory, including storing files on the non-volatile memory and/or drive unit.
  • Some portions of the detailed description may be 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 operations leading to a desired result. The operations 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 should 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 as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or “generating” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories 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 algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the methods of some embodiments. The required structure for a variety of these systems will appear from the description below. In addition, the techniques are not described with reference to any particular programming language, and various embodiments may thus be implemented using a variety of programming languages.
  • In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
  • The machine may be a server computer, a client computer, a personal computer (PC), a tablet PC, a laptop computer, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, an iPhone, a Blackberry, a processor, a telephone, a web appliance, 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.
  • While the machine-readable medium or machine-readable storage medium is shown in an exemplary embodiment to be a single medium, the term “machine-readable medium” and “machine-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” and “machine-readable storage medium” shall also be taken to 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 or modules of the presently disclosed technique and innovation.
  • In general, the routines executed to implement the embodiments of the disclosure, may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as “computer programs.” The computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processing units or processors in a computer, cause the computer to perform operations to execute elements involving the various aspects of the disclosure.
  • Moreover, while embodiments have been described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various embodiments are capable of being distributed as a program product in a variety of forms, and that the disclosure applies equally regardless of the particular type of machine or computer-readable media used to actually effect the distribution.
  • Further examples of machine-readable storage media, machine-readable media, or computer-readable (storage) media include but are not limited to recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks, (DVDs), etc.), among others, and transmission type media such as digital and analog communication links.
  • In some circumstances, operation of a memory device, such as a change in state from a binary one to a binary zero or vice-versa, for example, may comprise a transformation, such as a physical transformation. With particular types of memory devices, such a physical transformation may comprise a physical transformation of an article to a different state or thing. For example, but without limitation, for some types of memory devices, a change in state may involve an accumulation and storage of charge or a release of stored charge. Likewise, in other memory devices, a change of state may comprise a physical change or transformation in magnetic orientation or a physical change or transformation in molecular structure, such as from crystalline to amorphous or vice versa. The foregoing is not intended to be an exhaustive list in which a change in state for a binary one to a binary zero or vice-versa in a memory device may comprise a transformation, such as a physical transformation. Rather, the foregoing is intended as illustrative examples.
  • A storage medium typically may be non-transitory or comprise a non-transitory device. In this context, a non-transitory storage medium may include a device that is tangible, meaning that the device has a concrete physical form, although the device may change its physical state. Thus, for example, non-transitory refers to a device remaining tangible despite this change in state.
  • FIG. 11 is a block diagram illustrating an overview of an environment 1100 in which some implementations of the disclosed technology may operate. Environment 1100 can include one or more client computing devices 1105A-D, examples of which may include computer system 1000. Client computing devices 1105 (e.g., client device 204) can operate in a networked environment using logical connections 1110 through network 1130 to one or more remote computers such as a server computing device.
  • In some implementations, server 1110 can be an edge server which receives client requests and coordinates fulfillment of those requests through other servers, such as servers 1120A-C. Server computing devices 1110 and 1120 can comprise computing systems, such as device 100. Though each server computing device 1110 and 1120 is displayed logically as a single server, server computing devices can each be a distributed computing environment encompassing multiple computing devices located at the same or at geographically disparate physical locations. In some implementations, each server 1120 corresponds to a group of servers.
  • Client computing devices 1105 and server computing devices 1110 and 1120 can each act as a server or client to other server/client devices. Server 1110 can connect to a database 1115. Servers 1120A-C can each connect to a corresponding database 1125A-C. As discussed above, each server 1120 may correspond to a group of servers, and each of these servers can share a database or can have their own database. Databases 1115 and 1125 can warehouse (e.g. store) information such as labeled images, parts models, histograms of gradients, classifiers, region templates, search images, and classified images or image parts. Though databases 1115 and 1125 are displayed logically as single units, databases 1115 and 1125 can each be a distributed computing environment encompassing multiple computing devices, can be located within their corresponding server, or can be located at the same or at geographically disparate physical locations.
  • Network 1130 can be a local area network (LAN) or a wide area network (WAN), but can also be other wired or wireless networks. Network 1130 may be the Internet or some other public or private network. The client computing devices 1105 can be connected to network 1130 through a network interface, such as by wired or wireless communication. While the connections between server 1110 and servers 1120 are shown as separate connections, these connections can be any kind of local, wide area, wired, or wireless network, including network 1130 or a separate public or private network.
  • Brief definitions of terms, abbreviations, and phrases used throughout this application are given below.
  • Reference in this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described that may be exhibited by some embodiments and not by others. Similarly, various requirements are described that may be requirements for some embodiments but not others.
  • Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to.” As used herein, the terms “connected,” “coupled,” or any variant thereof, means any connection or coupling, either direct or indirect, between two or more elements. The coupling or connection between the elements can be physical, logical, or a combination thereof. For example, two devices may be coupled directly, or via one or more intermediary channels or devices. As another example, devices may be coupled in such a way that information can be passed there between, while not sharing any physical connection with one another. Additionally, the words “herein,” “above,” “below,” and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word “or,” in reference to a list of two or more items, covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.
  • If the specification states a component or feature “may,” “can,” “could,” or “might” be included or have a characteristic, that particular component or feature is not required to be included or have the characteristic.
  • The terminology used in the Detailed Description is intended to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with certain examples. The terms used in this specification generally have their ordinary meanings in the art, within the context of the disclosure, and in the specific context where each term is used. For convenience, certain terms may be highlighted, for example using capitalization, italics, and/or quotation marks. The use of highlighting has no influence on the scope and meaning of a term; the scope and meaning of a term is the same, in the same context, whether or not it is highlighted. It will be appreciated that the same element can be described in more than one way.
  • Consequently, alternative language and synonyms may be used for any one or more of the terms discussed herein, but special significance is not to be placed upon whether or not a term is elaborated or discussed herein. A recital of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification, including examples of any terms discussed herein, is illustrative only and is not intended to further limit the scope and meaning of the disclosure or of any exemplified term. Likewise, the disclosure is not limited to various embodiments given in this specification.
  • The foregoing description of various embodiments of the claimed subject matter has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the claimed subject matter to the precise forms disclosed. Many modifications and variations will be apparent to one skilled in the art. Embodiments were chosen and described in order to best describe the principles of the technology and its practical applications, thereby enabling others skilled in the relevant art to understand the claimed subject matter, the various embodiments, and the various modifications that are suited to the particular uses contemplated.
  • While embodiments have been described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various embodiments are capable of being distributed as a program product in a variety of forms, and that the disclosure applies equally regardless of the particular type of machine or computer-readable media used to actually effect the distribution.
  • Although the above Detailed Description describes certain embodiments and the best mode contemplated, no matter how detailed the above appears in text, the embodiments can be practiced in many ways. Details of the systems and methods may vary considerably in their implementation details, while still being encompassed by the specification. As noted above, particular terminology used when describing certain features or aspects of various embodiments should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the technology with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the invention to the specific embodiments disclosed in the specification, unless those terms are explicitly defined herein. Accordingly, the actual scope of the invention encompasses not only the disclosed embodiments, but also all equivalent ways of practicing or implementing the embodiments under the claims.
  • The language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this Detailed Description, but rather by any claims that issue on an application based hereon. Accordingly, the disclosure of various embodiments is intended to be illustrative, but not limiting, of the scope of the embodiments, which is set forth in the following claims.

Claims (1)

What is claimed is:
1. A method performed by at least one computing device having a processor and a memory, the method comprising:
causing a first user device associated with a first user to display a game selection menu within a first messaging thread user interface for a messaging thread in a messaging application, wherein the game selection menu comprises a plurality of game components, and wherein the messaging thread facilitates communication between the first user and a second user;
receiving, from the first user device, an indication of a selected game component from the plurality of game components;
causing a second user device associated with the second user to display an interactive content entry within a second messaging thread user interface for the messaging thread, wherein the interactive content entry, when selected, allows access to join a game session between the first user and the second user for the selected game component; and
causing the second user device to open, in response to a user input selecting the interactive content entry, a first instance of the game session within the messenger application.
US17/537,277 2017-03-31 2021-11-29 Managing game sessions in a social network messaging system Abandoned US20220080324A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/537,277 US20220080324A1 (en) 2017-03-31 2021-11-29 Managing game sessions in a social network messaging system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/475,801 US10518181B2 (en) 2017-03-31 2017-03-31 Managing game sessions in a social network messaging system
US16/702,253 US11185787B2 (en) 2017-03-31 2019-12-03 Managing game sessions in a social network messaging system
US17/537,277 US20220080324A1 (en) 2017-03-31 2021-11-29 Managing game sessions in a social network messaging system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US16/702,253 Continuation US11185787B2 (en) 2017-03-31 2019-12-03 Managing game sessions in a social network messaging system

Publications (1)

Publication Number Publication Date
US20220080324A1 true US20220080324A1 (en) 2022-03-17

Family

ID=63671977

Family Applications (3)

Application Number Title Priority Date Filing Date
US15/475,801 Active 2037-09-17 US10518181B2 (en) 2017-03-31 2017-03-31 Managing game sessions in a social network messaging system
US16/702,253 Active US11185787B2 (en) 2017-03-31 2019-12-03 Managing game sessions in a social network messaging system
US17/537,277 Abandoned US20220080324A1 (en) 2017-03-31 2021-11-29 Managing game sessions in a social network messaging system

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US15/475,801 Active 2037-09-17 US10518181B2 (en) 2017-03-31 2017-03-31 Managing game sessions in a social network messaging system
US16/702,253 Active US11185787B2 (en) 2017-03-31 2019-12-03 Managing game sessions in a social network messaging system

Country Status (1)

Country Link
US (3) US10518181B2 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10518181B2 (en) 2017-03-31 2019-12-31 Facebook, Inc. Managing game sessions in a social network messaging system
US10874950B2 (en) 2017-04-17 2020-12-29 Facebook, Inc. Gameplay threads in messaging applications
US10532291B2 (en) * 2017-04-19 2020-01-14 Facebook, Inc. Managing game sessions in a social network system
USD926780S1 (en) * 2018-12-20 2021-08-03 Google Llc Display screen with graphical user interface
USD944827S1 (en) * 2019-03-26 2022-03-01 Facebook, Inc. Display device with graphical user interface
USD934286S1 (en) * 2019-03-26 2021-10-26 Facebook, Inc. Display device with graphical user interface
USD934287S1 (en) * 2019-03-26 2021-10-26 Facebook, Inc. Display device with graphical user interface
US11583779B2 (en) * 2020-06-10 2023-02-21 Snap Inc. Message interface expansion system
EP4272150A1 (en) * 2020-12-31 2023-11-08 Snap Inc. User behavior based notification interface

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020082067A1 (en) * 1999-07-07 2002-06-27 Mckay Michael J. Computer game producing an award certificate and a contest mode of play
US20040224772A1 (en) * 2003-05-09 2004-11-11 Microsoft Corporation Instant messaging embedded games
US20100106612A1 (en) * 2008-10-24 2010-04-29 Embarq Holdings Company, Llc System and method for providing online sms games
US20110092282A1 (en) * 2009-10-20 2011-04-21 Sony Computer Entertainment America Inc. Video game competition notifications
US20110281638A1 (en) * 2010-05-12 2011-11-17 Charnjit Singh Bansi System And Method For Enabling Players To Participate In Asynchronous, Competitive Challenges
US20140187314A1 (en) * 2012-12-27 2014-07-03 David Perry Systems and Methods for Sharing Cloud-Executed Mini-Games, Challenging Friends and Enabling Crowd Source Rating
US20150050993A1 (en) * 2013-08-13 2015-02-19 Facebook, Inc. Techniques to interact with an application via messaging
US20160092035A1 (en) * 2014-09-29 2016-03-31 Disney Enterprises, Inc. Gameplay in a Chat Thread
US20160314504A1 (en) * 2015-04-21 2016-10-27 Facebook, Inc. Messenger application plug-in for providing tailored advertisements within a conversation thread
US20170054662A1 (en) * 2015-08-21 2017-02-23 Disney Enterprises, Inc. Systems and methods for facilitating gameplay within messaging feeds
US20180001194A1 (en) * 2016-06-30 2018-01-04 Sony Interactive Entertainment LLC Method and system for sharing video game content
US20180043269A1 (en) * 2016-08-15 2018-02-15 Yio-Chian Tao Systems and methods for interactive graphics game and application objects in an instant messaging session
US10518181B2 (en) * 2017-03-31 2019-12-31 Facebook, Inc. Managing game sessions in a social network messaging system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788260B2 (en) 2004-06-14 2010-08-31 Facebook, Inc. Ranking search results based on the frequency of clicks on the search results by members of a social network who are within a predetermined degree of separation
US7828661B1 (en) * 2004-12-21 2010-11-09 Aol Inc. Electronic invitations for an on-line game
US8777753B2 (en) * 2009-09-30 2014-07-15 Wms Gaming, Inc. Controlling interactivity for gaming and social-communication applications
US8909719B2 (en) * 2011-03-24 2014-12-09 Yammer, Inc. Method of managing feeds based on classifications
ES2730740T3 (en) * 2011-09-29 2019-11-12 Sony Interactive Entertainment Europe Ltd Video game support system and method
US8870661B2 (en) * 2012-12-21 2014-10-28 Sony Computer Entertainment America Llc Cloud-based game slice generation and frictionless social sharing with instant play
US9446310B2 (en) 2013-03-13 2016-09-20 Facebook, Inc. Suggesting friends for playing a game
US20180015374A1 (en) * 2013-05-01 2018-01-18 Zco, Llc System and methods for managing side challenges between users in fantasy gaming
US20160294756A1 (en) * 2015-04-06 2016-10-06 BetterCompany Inc. Anonymous content posting
US20170011595A1 (en) * 2015-07-10 2017-01-12 M-Biz Global Solutions Gmbh Online challenge game method, online challenge game system and method for calculating advertisement costs

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020082067A1 (en) * 1999-07-07 2002-06-27 Mckay Michael J. Computer game producing an award certificate and a contest mode of play
US20040224772A1 (en) * 2003-05-09 2004-11-11 Microsoft Corporation Instant messaging embedded games
US20100106612A1 (en) * 2008-10-24 2010-04-29 Embarq Holdings Company, Llc System and method for providing online sms games
US20110092282A1 (en) * 2009-10-20 2011-04-21 Sony Computer Entertainment America Inc. Video game competition notifications
US20110281638A1 (en) * 2010-05-12 2011-11-17 Charnjit Singh Bansi System And Method For Enabling Players To Participate In Asynchronous, Competitive Challenges
US20140187314A1 (en) * 2012-12-27 2014-07-03 David Perry Systems and Methods for Sharing Cloud-Executed Mini-Games, Challenging Friends and Enabling Crowd Source Rating
US20150050993A1 (en) * 2013-08-13 2015-02-19 Facebook, Inc. Techniques to interact with an application via messaging
US20160092035A1 (en) * 2014-09-29 2016-03-31 Disney Enterprises, Inc. Gameplay in a Chat Thread
US20160314504A1 (en) * 2015-04-21 2016-10-27 Facebook, Inc. Messenger application plug-in for providing tailored advertisements within a conversation thread
US20170054662A1 (en) * 2015-08-21 2017-02-23 Disney Enterprises, Inc. Systems and methods for facilitating gameplay within messaging feeds
US20180001194A1 (en) * 2016-06-30 2018-01-04 Sony Interactive Entertainment LLC Method and system for sharing video game content
US20180043269A1 (en) * 2016-08-15 2018-02-15 Yio-Chian Tao Systems and methods for interactive graphics game and application objects in an instant messaging session
US10518181B2 (en) * 2017-03-31 2019-12-31 Facebook, Inc. Managing game sessions in a social network messaging system

Also Published As

Publication number Publication date
US20200101388A1 (en) 2020-04-02
US20180280812A1 (en) 2018-10-04
US10518181B2 (en) 2019-12-31
US11185787B2 (en) 2021-11-30

Similar Documents

Publication Publication Date Title
US11213760B2 (en) Managing game sessions in a social network system
US11185787B2 (en) Managing game sessions in a social network messaging system
US8814643B2 (en) Challenge search query game
JP6563627B2 (en) System and method for tagging mini-game content running in a shared cloud and controlling tag sharing
US9361625B2 (en) Game navigation interface for electronic content
US8727885B2 (en) Social information game system
JP2022095765A (en) Systems and methods for ranking of cloud-executed mini-games based on tag content and social network content
US20120278262A1 (en) Suggesting Users for Interacting in Online Applications in a Social Networking Environment
JP6336655B2 (en) Display system, display method and display program in the same system
US20210064827A1 (en) Adjusting chatbot conversation to user personality and mood
JP6470487B2 (en) Information processing system, server device, information processing device, program, and information processing method
WO2018145527A1 (en) Cross-platform interaction method and device, program, and medium
US20150224408A1 (en) Information sharing system, information-processing device, storage medium, and information sharing method
US20210173879A1 (en) Data flood checking and improved performance of gaming processes
US20160361645A1 (en) Method and system for evaluating game content
Huang et al. Recommender ai agent: Integrating large language models for interactive recommendations
US11720576B1 (en) Leveraging historical data to improve the relevancy of search results
US10289986B2 (en) Information processing system, information processing method, information processing device, and non-transitory storage medium encoded with computer readable information processing program
Grosser How the technological design of Facebook homogenizes identity and limits personal representation
US20130110866A1 (en) Information system incorporating real-time data sources to enrich connections among users
CN114564647A (en) Information processing method, information processing device, electronic equipment and storage medium
KR20170074483A (en) Method and apparatus for mission completion reward
US10866946B1 (en) Content aggregation and automated assessment of network-based platforms
US11561989B2 (en) Matching system and display method using real-time event processing
US20240091653A1 (en) Anonymous Leaderboard Based on Non-Fungible Tokens

Legal Events

Date Code Title Description
AS Assignment

Owner name: FACEBOOK, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VACCARI, ANDREA;ZADOROZNY, RICHARD KENNETH;GOLDBERG, JEREMY HARRISON;AND OTHERS;SIGNING DATES FROM 20170331 TO 20170608;REEL/FRAME:058232/0371

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

AS Assignment

Owner name: META PLATFORMS, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:FACEBOOK, INC.;REEL/FRAME:058961/0436

Effective date: 20211028

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION