U.S. Pat. No. 10,688,399

GROUP GAMEPLAY WITH USERS IN PROXIMITY USING A GAMING PLATFORM

AssigneeRoblox Corporation

Issue DateFebruary 21, 2018

Illustrative Figure

Abstract

A method and system is disclosed that receives a user request for group gameplay of a multiplayer game. The group gameplay enables users to participate in the multiplayer game using secondary client devices as game controllers to control the gameplay and causes the gameplay to be presented on a primary display for consumption by the users. The method and system receive from the plurality of secondary client devices, control instructions that have bypassed a primary client device. The control instructions are responsive to user input to the secondary client devices to control actions in the multiplayer game. The method and system responsive to receiving the control instructions that have bypassed the primary client device, provide first gameplay instructions to the primary client device that cause a presentation of a first view of the gameplay of the multiplayer game on the primary display for consumption by the users.

Description

DETAILED DESCRIPTION Collaboration platforms, such as gaming platforms, offer a variety of ways for users to interact with one another. For example, users of a gaming platform may work together towards a common goal, share various virtual gaming items, send electronic messages to one another, and so forth. Users of a collaboration platform may play games (e.g., playing users) with characters or create games (e.g., creating users) with developmental tools via the collaboration platform. In some systems, a playing user may play a game online with one or more other playing users, some of whom may be located in the same location (e.g., proximately located). For example, multiple playing users may use a gaming console to play a game hosted online and use the native game controllers of the gaming console to control in-game actions and interact with the game. The playing users may watch the gameplay on a central display, such as a television, and enjoy the gaming experience together. Playing users may use the native game controllers of the gaming console to control in-game actions. The number of playing users that may participate in the gameplay may be determined by the number of native game controllers or the capabilities (e.g., computational capabilities such as processing capabilities or network interface capabilities) of the gaming console. In some systems, playing users of an online game may congregate at a central location to further enhance the gameplay experience. For example, playing users may participate in a Local Area Network party, colloquially referred to as a LAN party, where participants often bring their own computers and other hardware so that the participants may be proximately located while playing an online game. As the number of participants increases, the hardware complexity increases and presents challenges such as the shear amount of hardware required, ...

DETAILED DESCRIPTION

Collaboration platforms, such as gaming platforms, offer a variety of ways for users to interact with one another. For example, users of a gaming platform may work together towards a common goal, share various virtual gaming items, send electronic messages to one another, and so forth. Users of a collaboration platform may play games (e.g., playing users) with characters or create games (e.g., creating users) with developmental tools via the collaboration platform.

In some systems, a playing user may play a game online with one or more other playing users, some of whom may be located in the same location (e.g., proximately located). For example, multiple playing users may use a gaming console to play a game hosted online and use the native game controllers of the gaming console to control in-game actions and interact with the game. The playing users may watch the gameplay on a central display, such as a television, and enjoy the gaming experience together. Playing users may use the native game controllers of the gaming console to control in-game actions. The number of playing users that may participate in the gameplay may be determined by the number of native game controllers or the capabilities (e.g., computational capabilities such as processing capabilities or network interface capabilities) of the gaming console.

In some systems, playing users of an online game may congregate at a central location to further enhance the gameplay experience. For example, playing users may participate in a Local Area Network party, colloquially referred to as a LAN party, where participants often bring their own computers and other hardware so that the participants may be proximately located while playing an online game. As the number of participants increases, the hardware complexity increases and presents challenges such as the shear amount of hardware required, properly networking the computers, adequate Internet access, as well as supplying adequate power to the hardware.

Aspects of the disclosure address the above-mentioned and other challenges by implementing a group gameplay feature for a multiplayer game that enables users that are proximately located to participate in a multiplayer game using secondary client devices, such as mobile phones, as game controllers to control gameplay. In implementations, the gameplay may be presented to the users on a primary display, such as a television, for consumption by the users. A server computer (e.g., collaboration platform) may receive from the secondary client devices control instructions that bypass a primary client device, such as a gaming console, and enable the number of users participating in the group gameplay at a particular location to scale (e.g.,1to hundreds of playing users). The control instructions may be responsive to user input to the secondary client devices to control in-game actions in the multiplayer game. Responsive to receiving the control instructions that have bypassed the primary client device, the server computer may provide first gameplay instructions to the primary client device (e.g., gaming console). In some implementations, the primary client device (e.g., gaming console) may render a presentation of a first view of the gameplay of the multiplayer game on the primary display (e.g., television) using the first gameplay instructions from the server computer (e.g., collaboration platform), rather than using control instructions from the secondary client devices (e.g., mobile phones) or native gaming controllers of the primary client device.

In some implementations, responsive to the control instructions received from the secondary client devices (control instructions that bypassed the primary client device), the server computer sends second gameplay instruction directly to the secondary client devices (e.g., second gameplay instructions that bypass the primary client device). In some implementations, the secondary client devices may render a presentation of second views of the gameplay of the multiplayer game on the displays of the secondary client devices using the second gameplay instructions from the server computer (e.g., collaboration platform), rather than using instructions from the primary client device.

In implementations, the presentation of the gameplay on the primary display (e.g., television) may be different from the presentation of the gameplay on the secondary client devices. For example, the view of the gameplay on the primary display may be from the third-person perspective and present all the characters participating in the group gameplay. The views of the gameplay on the secondary client devices may also be from the third-person perspective, but present a smaller portion of the game world than the view on the primary display (e.g., third-person view of the respective character and immediate surroundings). In some implementations, the views of the gameplay on the secondary client devices may be different from one another. For example, the views of the gameplay on the secondary client devices may be from the first-person perspective and present the portion of the game world that the respective character is viewing.

In some implementations, multiple groups of users that are located in different locations may participate in different group gameplay sessions for the same game. For example, a first group of users may be located in a proximate location (e.g., same room) in the United States, and another group of user may be located in a proximate location in Norway. The two groups of users may play a multiplayer game where a first team of the first group of users competes against a second team of the second group of users. The first group of users may request a first group game session (e.g., to play together as a team). The first group of users may have a primary client device and a first group of secondary client devices coupled to collaboration platform. The second group of users may also request a second group gameplay session for the same multiplayer game (e.g., to play together as a team against the first team). The second group of users may have a different primary client device (e.g., different gaming console) and a second group of secondary client devices coupled to collaboration platform. The first team located in the United States and using the first group gameplay session may compete against the second team in Norway using the second group gameplay session. In some implementation, the view of the gameplay displayed on the primary display of the first group of users may be different from the view of the gameplay displayed on the primary display of the second group of users (e.g., to not provide an advantage to one team or another).

Accordingly, aspects of the disclosure provide users with a group gameplay feature that enables users that are proximately located to participate in a multiplayer game using secondary client devices as game controllers and causes the gameplay to be presented on a primary display for consumption by the users. In particular, the aforementioned addresses technological challenges of enabling users that are proximately located to participate in group gameplay. Enabling users that are proximately located to use secondary client devices to participate in group gameplay improves the technological process of collaborative gaming. The aforementioned group gameplay also improves the operation of a computer or computer network. For example, sending control instructions that bypass a primary client device to a collaboration platform hosting the game allows the number of users that participate in group gameplay to scale (e.g., from1to hundreds of playing users may participate in a group gameplay session). For example, by sending control instructions that bypass the primary client device, the control instructions are more efficiently transmitted to the collaboration platform, are not delayed by bottlenecks at the primary client device, and allow the primary client device to focus computing resources (e.g., processing resources or networking resources) on communications with the collaboration platform and on rendering the gameplay. Additionally, gameplay instructions that bypass the primary client device may be sent from the collaboration platform to the secondary client devices, which improve the operation of a computer or computer network. For example, a primary client device may not be able to handle multiple gameplay instructions to each secondary client devices in addition to other gaming functionalities, especially as the number of playing users increases. Sending gameplay instructions directly to the secondary client devices reduces latency caused by the primary client device and reduces the chances that the primary client device causes a bottleneck that throttles the rendering of real-time gameplay on the secondary client devices.

It may be noted that a collaboration platform described as a gaming platform herein is provided for purposes of illustration, rather than limitation. A collaboration platform may be one or more of numerous platforms, such as a gaming platform, a social networking platform, purchasing platform, a messaging platform, creation platform, and so forth. It may be further noted that aspects of the disclosure are illustrated using an example of a gaming platform and games for purposes of illustration, rather than limitation.

FIG. 1illustrates an example system architecture100, in accordance with implementations of the disclosure. The system architecture100(also referred to as “system” herein) includes client devices110A and110B (generally referred to as “client device(s)110” herein), a network105, a data store106, a collaboration platform120, and a server130.

In one implementation, network105may include a public network (e.g., the Internet), a private network (e.g., a local area network (LAN) or wide area network (WAN)), a wired network (e.g., Ethernet network), a wireless network (e.g., an 802.11 network, a Wi-Fi® network, or wireless LAN (WLAN)), a cellular network (e.g., a Long Term Evolution (LTE) network), routers, hubs, switches, server computers, and/or a combination thereof.

In one implementation, the data store106may be a memory (e.g., random access memory), a cache, a drive (e.g., a hard drive), a flash drive, a database system, or another type of component or device capable of storing data. The data store106may also include multiple storage components (e.g., multiple drives or multiple databases) that may also span multiple computing devices (e.g., multiple server computers).

In implementations, the server130may be one or more computing devices (e.g., a rackmount server, a server computer, cluster of physical servers, etc.). In implementations, the server130may be included in the collaboration platform120, be an independent system, or be part of another system or platform. The server130may include group gameplay module140.

In some implementations, the collaboration platform120may be one or more computing devices (such as a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, etc.), data stores (e.g., hard disks, memories, databases), networks, software components, and/or hardware components that may be used to provide a user with access to collaboration platform120. The collaboration platform120may also include a website (e.g., a webpage) or application back-end software that may be used to provide a user with access to content provided by collaboration platform120. For example, users may access collaboration platform120using collaboration application114on client devices110. It may be noted that collaboration application114A and114B may generally referred to as collaboration application(s)114. In some implementations, collaboration application114may be two instances of the same application.

In implementations, collaboration platform120may be a type of social network providing connections between users. In implementations of the disclosure, a “user” may be represented as a single individual. However, other implementations of the disclosure encompass a “user” being an entity controlled by a set of users and/or an automated source. For example, a set of individual users federated as a community in a social network may be considered a “user.”

In one implementation, collaboration platform120may be a gaming platform, such as an online gaming platform or virtual gaming platform. For example, the gaming platform may provide single-player or multiplayer games to a community of users that may access or interact with the games122A-122Z using client devices110via network105. In implementations, games122(also referred to as “video game,” “online game,” or “virtual game” herein) may be two-dimensional (2D) games, three-dimensional (3D) games, virtual reality (VR) games, or augmented reality (AR) games, for example. In implementations, a game122may be played in real-time with other users of the game122.

In some implementations, a game122can include an electronic file that can be executed or loaded using software, firmware or hardware configured to present the game content (e.g., digital media item) to an entity. In some implementations, a game122may be executed by a game engine124to generate a gaming video including multiple frames and audio. The gaming video may be generated (e.g., rendered) by the game engine124based on commands or user input. In some implementations, a game engine124(e.g., a rendering engine of the game engine124) receives user input and generates a gaming video based on the user input. In some implementations, a game engine124(either local to the client device110or at collaboration platform120) receives user input and generates commands (e.g., rendering commands, graphics library commands, etc.) based on the user input. In some implementations, a game engine124(e.g., a rendering engine of the game engine124) receives from collaboration platform120the generated commands and generates the gaming video based on the generated commands. The gaming video may be displayed via a user interface of a client device110.

In some implementations, collaboration platform120hosts games122and allows users to interact with the games122using collaboration application114of client devices110. Users of collaboration platform120may play, create, interact with, or build games122, or create and build objects (e.g., also referred to as “item(s)” or “game objects” or “virtual game item(s)” herein) of games122. For example, in generating user-generated virtual items, users may create characters, decoration for the characters, one or more virtual environments for an interactive game, or build structures used in a game122, among others. In implementations, users may buy, sell, or trade game virtual game objects, such as in-platform currency (e.g., virtual currency), with other users of the collaboration platform120. In implementations, collaboration platform may transmit game content to collaboration applications114. Game content (also referred to as “content” herein) may refer to any data or software instructions (e.g., game objects, game, user information, video, images, commands, media item, etc.) associated with collaboration platform120or collaboration applications114.

It may be noted that collaboration platform120hosting games122, is provided for purposes of illustration, rather than limitation. In some implementations, collaboration platform120may host one or more media items. Media items can include, but are not limited to, digital video, digital movies, digital photos, digital music, audio content, melodies, website content, social media updates, electronic books, electronic magazines, digital newspapers, digital audio books, electronic journals, web blogs, real simple syndication (RSS) feeds, electronic comic books, software applications, etc. In implementations, a media item may be an electronic file that can be executed or loaded using software, firmware or hardware configured to present the digital media item to an entity.

In one implementation, collaboration platform120may consolidate the game content from the client devices110and transmit the consolidated game content (e.g., gaming video, rendering commands, user input, graphics library commands, position and velocity information of the characters of a game, etc.) to each of the client devices110to display interactions of the multiple users in a multiplayer gaming environment. In another implementation, collaboration platform120may transmit the game content from one or more client devices110to another client device for the other client device to consolidate and display the game content. In another implementation, the collaboration platform120may receive the game content (e.g., first user transmitting user input via client device110A and second user transmitting user input via client device110B), generate game results (e.g., first user beats second user), and transmit the game results to the client devices110.

In some implementations, a game122may be associated with a particular user or particular group of users (e.g., a private game), or made widely available to users of the collaboration platform120(e.g., a public game). In implementations, where collaboration platform120associates one or more games122with a specific user or group of users, collaboration platform120may associated the specific user(s) with a game122using user account information (e.g., a user account identifier such as username and password).

In some implementations, collaboration platform120may include a game engine124. In implementations, game engine124may be used for the development or execution of games122. For example, game engine124may include a rendering engine (“renderer”) for 2D, 3D, VR, or AR graphics, a physics engine or collision detection (and collision response), sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, scene graph, or video support for cinematics, among other features. In some implementations, an instance of game engine124may be included on client devices110. In some implementations, game engine124of client devices110may work independently, in collaboration with game engine124of collaboration platform120, or a combination of both.

In implementations, collaboration platform120may include a creator module126. In implementations, creator module126may allow users to become creators to design or create environments in an existing game122or create new games or create new game objects within games or environments. In some implementations, a game122may have a common set of rules or common goal, and the environments of a game122share the common set of rules or common goal. In implementations, different games may have different rules or goals from one another. In some implementations, games may have one or more environments (also referred to as “gaming environments” or “virtual environment” herein) where multiple environments may be linked. An example of an environment may be a three-dimensional (3D) environment. The one or more environments of a game122may be collectively referred to a “world” or “gaming world” or “virtual world” or “universe” herein. An example of a world may be a 3D world of a game122. For example, a user may build a virtual environment that is linked to another virtual environment created by another user. A character of the virtual game may cross the virtual border to enter the adjacent virtual environment. In implementations, game objects (e.g., also referred to as “item(s)” or “objects” or “virtual game item(s)” herein) may refer to objects that are used, created, shared or otherwise depicted in games122of the collaboration platform120. For example, game objects may include a part, model, character, tools, weapons, clothing, buildings, vehicles, currency, flora, fauna, components of the aforementioned (e.g., windows of a building), and so forth. It may be noted that 3D environments or 3D worlds use graphics that use a three-dimensional representation of geometric data representative of game content (or at least present game content to appear as 3D content whether or not 3D representation of geometric data is used). 2D environments or 2D worlds use graphics that use two-dimensional representation of geometric data representative of game content.

In implementations, creator module126may allow a user to create, modify, or customize characters. In implementations, characters (or game objects generally) are constructed from components, one or more of which may be selected by the user, that automatically join together to aid the user in editing. One or more characters (also referred to as an “avatar” or “model” herein) may be associated with a user (also referred to as a “playing user” herein) where the user may control the character to facilitate a user's interaction with the game122. In implementations, a character may include components such as body parts (e.g., hair, arms, legs, etc.) and accessories (e.g., t-shirt, glasses, decorative images, tools, etc.). In implementations, body parts of characters that are customizable include head type, body part types (arms, legs, torso, and hands), face types, hair types, and skin types, among others. In implementations, the accessories that are customizable include clothing (e.g., shirts, pants, hats, shoes, glasses, etc.), weapons, or other tools. In implementations, the user may also control the scale (e.g., height, width, or depth) of a character or the scale of components of a character. In implementations, the user may control the proportions of a character (e.g., blocky, anatomical, etc.). It may be noted that is some implementations, a character may not include a character game object (e.g., body parts, etc.) but the user may still control a character to facilitate the user's interaction with the game (e.g., a puzzle game where there is no rendered character game object, but the user still controls a character to control in-game action).

In some implementations, a component, such as a body part, may be a primitive geometrical shape such as a block, a cylinder, a sphere, etc., or some other primitive shape such as a wedge, a torus, a tube, a channel, etc. In implementations, creator module126may publish a user's character for view or use by other users of collaboration platform120. It some implementations, creating, modifying, or customizing characters, other game objects, games122, or game environments may be performed by a user using a user interface (e.g., developer interface) and with or without scripting (or without an application programming interface (API)). It may be noted that for purposes of illustration, rather than limitation, characters are described as having a humanoid form. In may further be noted that characters may have any form such as a vehicle, animal, inanimate object, or other creative form.

In implementations, collaboration platform120may store characters created by users in data store106. In implementations, the collaboration platform120maintains a character catalog and game catalog that may be presented to users via collaboration application114. A user may select a game122from the game catalog to play. In implementations, the game catalog includes images of games stored on collaboration platform120. In addition, a user may select a character (created by the playing user or other user) from the character catalog to participate in the chosen game. The character catalog includes images of characters stored on the collaboration platform120. In implementations, one or more of the characters in the character catalog may have been created or customized by the user. In implementations, the chosen character may have character settings defining one or more of the components of the character.

In implementations, a user's character includes a configuration of components, where the configuration and appearance of components and more generally the appearance of the character may be defined by character settings. In implementations, the character settings of a user's character may at least in part be chosen by the user. In other implementations, a user may choose a character with default character settings or character setting chosen by other users. For example, a user may choose a default character from a character catalog that has predefined character settings, and the user may further customize the default character by changing some of the character settings (e.g., adding a shirt with a customized logo). The character settings may be associated with a particular character by collaboration platform120.

In implementations, creator module126includes a unique personal build and publishing service for creating and administering games122and gaming environments on the Internet that allows users (also referred to as “creating users,” “creators,” “owners,” or “owning users” herein) to create, own, or administrate games122and gaming environments using cloud-mediated computational resources, for example. In implementations, creator module126may use a user interface (also referred a “developer interface” herein) via collaboration application114to allow users access the functionality of creator module126. In implementations, the developer interface may be part of collaboration application114. For example, a developer interface of collaboration application114may allow a user access to a library of game objects that may be selected by the user to build a game environment or place game objects within a game122or environment. The user may publish their selected game objects via the developer interface so that the game objects are available to playing users of the game122or environment.

In implementations, collaboration platform120executing creator module126includes a user-interfacing website or application (e.g., collaboration application114) where users may access online computational resources hosted by collaboration platform120for the purposes of building, administrating, editing, and interacting with personally owned games122or gaming environments. In implementations, creator module126includes tools available to users for creating and instantiating three-dimensional virtual games or environments. In implementations, creator module126is available to users that wish to create and administer their own private virtual game122. In implementations, a user may access creator module126using collaboration application114.

In implementations, creator module126may provide control of created games122and environments to owning users who may set administrative policy regarding who will be allowed to interact with the created game122or environment and who has the capability of modifying, editing, or interacting with the game122or environment. Users with administrative control may also be referred to as owning users herein, unless otherwise specified. In some implementations, administrative rules can be granular to the point of specifying various levels of interaction, modification, or editing capabilities for certain individuals who might be recruited or otherwise desire to interact with the game122or gaming environment. For example, individuals may be recruited from friends in collaboration platform120or friends from social networks or in other collaborative or group associated online venues. In implementations, creator module126has administrative tools for setting such policies including or in addition to general rules for interaction within the game122or gaming environment.

In implementations, the client devices110A through110B may each include computing devices such as personal computers (PCs), mobile devices (e.g., laptops, mobile phones, smart phones, tablet computers, or netbook computers), network-connected televisions, gaming consoles, etc. In some implementations, client devices110A through110B may also be referred to as “user devices.” In implementations, one or more client devices110via collaboration application114may connect to collaboration platform120at any given moment.

In implementations, each client device110may include an instance of collaboration application114. In one implementation, the collaboration application114may be an application that allows users to use and interact with collaboration platform120, such as control a virtual character in a virtual game hosted by collaboration platform120, or view or upload content, such as images, video items, web pages, documents, and so forth. In one example, the collaboration application114may be a web application (e.g., an application that operates in conjunction with a web browser) that can access, retrieve, present, and/or navigate content (e.g., virtual character in a virtual environment, etc.) served by a web server. In another example, collaboration application114may be a native application. The collaboration application114may render, display, and/or present the content (e.g., a web page, a media viewer) to a user. In an implementation, the collaboration application114may also include an embedded media player (e.g., a Flash® player) that is embedded in a web page. In another example, the collaboration application114may be a standalone application (e.g., a mobile application, app, or a gaming program) that allows users to interact with collaboration platform120. According to aspects of the disclosure, the collaboration application114may be a collaboration platform application for users to build, create, edit, upload content to the collaboration platform120as well as interact with collaboration platform120. As such, the collaboration applications114may be provided to the client devices110A and110B by the server130or collaboration platform120. In another example, the collaboration applications114may be applications that are downloaded from the server130. In some implementations, collaboration application114of client device110may include game engine124. In some implementations, game engine124of client device110may be separate from collaboration application114A.

In implementations, a user may login to collaboration platform120via collaboration application114. The user may access a user account by providing user account information (e.g., username and password) where the user account is associated with one or more characters available to participate in one or more games122of collaboration platform120.

In general, functions described in one implementation as being performed by the collaboration platform120can also be performed on the client devices110A through110B, or server130, in other implementations if appropriate. In addition, the functionality attributed to a particular component can be performed by different or multiple components operating together. The collaboration platform120can also be accessed as a service provided to other systems or devices through appropriate application programming interfaces, and thus is not limited to use in websites.

In implementations, collaboration platform120may include messaging module128. In implementations, messaging module128may be a system, application, or module that allows users to exchange electronic messages via a communication system, such as network105. Messaging module128may be associated with collaboration application114(e.g., module of collaboration application114or be a separate application). In implementations, users may interface with messaging module128and exchange electronic messages among users of collaboration platform120. Messaging module128may be, for example, an instant messaging application, a text messaging application, an email application, a voice messaging application, a video messaging application, or a combination of multiple applications, among others.

In implementations, messaging module128may facilitate the exchange of electronic messages between users. For example, a user may be logged into a messaging application on client device110A, and another user may be logged into a messaging application on client device110B. The two users may start a conversation, such as an instant messaging conversation. Messaging module128may help facilitate the messaging conversation by sending and receiving the electronic messages between the users of collaboration platform120.

For the sake of illustration, rather than limitation, group gameplay module140is described as implemented on collaboration platform120. In other implementations, group gameplay module140may in part or wholly be implemented on server130. In other implementations, group gameplay module140may in part or wholly be implemented on client devices110. In other implementations, group gameplay module140operating on one or more of client device110, server130, or collaboration platform120may work in conjunction to perform the operations described herein. Although implementations of the disclosure are discussed in terms of collaboration platforms, implementations may also be generally applied to any type of platform providing connections between users. The group gameplay module140may help facilitate the operations described herein, such as operations described with respect toFIG. 2throughFIG. 5. In some implementations, the group gameplay module140may part of another application (e.g., collaboration application114), such as a plug-in. In some implementations, group gameplay module140may be a separate application executing on the device.

In situations in which the systems discussed here collect personal information about users, or may make use of personal information, the users may be provided with an opportunity to control whether the collaboration platform120collects user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that may be more relevant to the user. In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user's identity may be treated so that no personally identifiable information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, the user may have control over how information is collected about the user and used by the collaboration platform120.

FIG. 2illustrates another example system architecture200, in accordance with implementations of the disclosure. Elements of system architecture100ofFIG. 1may be used to help illustrateFIG. 2. It may be noted that system architecture200(also referred to as “system” herein) is provided for purposes of illustration, rather than limitation. In implementations, system200may include some, all, none, or more of the elements of system100ofFIG. 1.

In some implementations, users of system200may want to participate in group gameplay. Group gameplay may refer to gameplay (e.g., real-time gameplay) of a game where the participants (e.g., playing users) of the game are proximately located (e.g., same room). Users participating in group gameplay may view the gameplay on a common display, such as primary display250.

In some implementations, system200may be used to implement a group gameplay feature to provide group gameplay to one or more groups of users that are proximately located. Primary client device245, such as a gaming console, may be used to select a game hosted by server230(also referred to as “server computer” herein). Server230may implement a group gameplay feature that allows the playing users to participate in group gameplay for the selected game. Rather than use the gaming console's game controllers (e.g., native game controllers to the gaming console) to control the game, playing users may use their secondary client devices210, such as mobile phones as game controllers to play the game. The secondary client devices210may have an application or plug-in that allows the secondary client devices210to be used as game controllers to control a game hosted by server230. The secondary client devices210(e.g., mobile phones) used as game controllers may receive user inputs for the game and send control instructions (e.g., user inputs to control the game) to the server230that bypass the primary client device245. For example, the control instructions from the mobile phone may be sent directly to the server230, without being received or executed by the gaming console, via a LAN or WLAN (e.g., network205). In some implementations, secondary client devices210sending control instructions that bypass the primary client device245allows the system200to scale for a large number of playing users. For instance, sending control instructions through the gaming console for a large number of users may result in a bottleneck at the gaming console, which may result in latency in the presentation of the gameplay. Subsequent to receiving control instructions from the secondary client devices210, server230may send gameplay instructions (e.g., position and velocity information of the characters participating in the group gameplay or commands) to the primary client device245. The primary client device245may use the gameplay instructions and render the gameplay for presentation on primary display250. The gameplay may be presented in a first view (e.g., third-person view, split-screen first-person view) on the primary display250so that all the playing users may concurrently view their characters actions in the game in real-time. In implementations, the gaming console may not receive any control instructions for the gameplay form secondary client devices210, which may allow primary client device245to and focus computing resources (e.g., processing resources, etc.) on instructions received from the server230and to render gameplay on the primary display250.

In implementations, gameplay may refer to interaction of one or more players with a game (e.g., user inputs) and the presentation of the interaction on a display. Real-time or live gameplay may refer to the broadcast, presentation, or display of gameplay as the gameplay occurs, rather than past or recorded gameplay. For example, real-time gameplay may be displayed on primary display250substantially concurrent with user interaction with a game (at least within the technical limitations of displaying real-time action, e.g., the user interaction with the game may be displayed within milliseconds of user input and may appear to the user as if in absolute real-time).

In implementations, a view (also referred to as “field of view” herein) may refer to the extent of the observable game world that may be seen at any given moment from the perspective of the game camera and that is presented in the display of a client device. For example, the view of the game camera may be from a first-person perspective or a third-person perspective or some combination thereof.

In implementations, system200includes server230(e.g., hardware server computing device). Server230may be similar to or include similar elements as server130ofFIG. 1. In implementations, server230may be part of collaboration platform120. In other implementations, server230may be separate from collaboration platform120. In implementations, server230includes group gameplay module140.

In implementations, system200includes primary client device245. Primary client device245may be similar to or include similar elements as client devices110ofFIG. 1. In some implementations, primary client device245may include one or more of collaboration application114, game engine124, or group gameplay module140(not shown). In some implementations, primary client device may be a personal computer or a gaming console (e.g., Xbox™ or PlayStation™). In some implementations, the primary client device245may have accessories such as native game controllers (not shown) that interact with primary client device245and communicate user input to primary client device245. “Native game controllers” may refer to the game controllers that interact directly with primary client device245(and may be dedicated devices for interaction with primary client device245). It may be noted that “game controller(s)” may refer to the secondary client devices210herein, unless otherwise described.

In implementations, system200includes primary display250. In some implementations, primary display250may be coupled to primary client device245. In implementations, primary display250may receive display instructions from primary client device245and present a view of the gameplay of a game, such as a multiplayer game, on the primary display250for consumption by the users. In some implementations, the primary display250may be a television or a projector, for example. In implementations, the view displayed from the primary display250may be from a perspective (e.g., third-person perspective) so that all the playing users that are proximately located (e.g., same room) may watch the in-game actions of the playing users' respective characters.

System200includes secondary client devices210A through210N, generally referred to as secondary client devices210(also referred to as “game controllers” herein). Secondary client devices210may include any number of devices associated with any number of users. Secondary client devices210may be similar to and include similar elements as client devices110ofFIG. 1. In some implementations, secondary client devices210may have a display, such as displays212A-212N. In implementations, secondary client devices210may include one or more of collaboration application114, game engine124, or group gameplay module140(not shown). In some implementations, secondary client devices210may be mobile devices (e.g., mobile phone, tablet, etc.), personal computers, or a combination thereof, for example. For instance, a playing user may use a mobile phone as a game controller to control a character in a particular game that is being displayed on primary display250. In some implementations, the secondary client device210may send control instructions (e.g., user inputs, such as right, left, up, down, user election, or character position and velocity information, etc.) directly to server230, bypassing the primary client device245. For example, the secondary client devices210may be connected to network105, such as a LAN or WLAN, and send the control instructions to the server230via network105, rather than through primary client device245.

In some implementations, a view of the gameplay may be presented on the display112of secondary client devices210that is different from the view presented on primary display250. For example, primary display250may present a view from the third-person perspective (e.g., top-down view), and each of the secondary client devices210may present a view from the first-person perspective for each of the respective characters associated with the secondary client devices210. In some implementations, gameplay instructions may be sent directly from server230to secondary client devices210(bypassing primary client device245) where the gameplay instructions may be used by the respective secondary client devices210to render a view of the gameplay on the respective secondary client device210.

In implementations, server230may be coupled to primary client device245or secondary client devices210via network205. Network205may be similar to network105as describe with respect toFIG. 1. In some implementations, network205may include a WLAN or LAN.

As noted above, in some implementations multiple groups of users that are located in different locations may participate in different group gameplay sessions for the same game. For example, a first group of users may be located in a proximate location (e.g., same room) in the United States, and another group of user may be located in a proximate location in Norway. The two groups of users may play a multiplayer game where a first team of the first group of users competes against a second team of the second group of users. Each of the groups of users may use a system200to implement the group gameplay sessions. For example, the first group of users may request a first group game session (e.g., to play together as a team) using primary client device245. The first group of users may have a primary client device245and a first group of secondary client devices210coupled to collaboration platform (e.g., server230). The second group of users may also request a second group gameplay session for the same multiplayer game (e.g., to play together as a team against the first team) using a different primary client device. The second group of users may have the different primary client device (e.g., different gaming console) and a second group of secondary client devices coupled to collaboration platform (e.g., server230). The first team located in the United States and using the first group gameplay session may compete against the second team in Norway using the second group gameplay session.

FIG. 3is a diagram of operations for group gameplay, in accordance with implementations of the disclosure. System300may include similar elements as system architecture100as described with respect toFIG. 1and system architecture200described with respect toFIG. 2. It may be noted that elements ofFIG. 1andFIG. 2may be used herein to help describeFIG. 3. In some implementations, collaboration platform120(using group gaming module140) or server230may interact with secondary client devices210(using respective group gameplay modules140) and primary client device245(using group gameplay module140) to perform operations described with respect toFIG. 3. In other implementations, any of the devices with respect to system100ofFIG. 1or system200ofFIG. 2may perform one or more of the operations described with respect toFIG. 3. For purpose of illustration, rather than limitation, operations described as performed by collaboration platform120may be performed by one or more elements of collaboration platform120, unless otherwise described. For purposes of illustration, rather than limitation, one or more operations performed by secondary client device210may be performed by one or more of collaboration application114, group gaming module140, or game engine124. For purposes of illustration, rather than limitation, one or more operations performed by primary client device245may be performed by one or more of collaboration application114, group gaming module140, or game engine124. It may be noted that for the purposes of illustration, rather than limitation, a single secondary client device210is shown. It may be further noted that any number of secondary client devices210may be implemented in a similar manner as described with respect to secondary client device210ofFIG. 3. The operations described with respect toFIG. 3are shown to be performed serially for the sake of illustration, rather than limitation. It may be noted that in implementations the operations may be performed in any order, may be performed multiple times, or may include the same, fewer, or additional operations.

In implementations, operation310may include a login operation. For example, a user may use a native game controller of the primary client device245to access the collaboration platform120. For example, a user may supply login information, such as user account information (e.g., username and password) to collaboration platform120via primary client device245. In implementations, collaboration platform120may verify the login information.

In implementations, responsive to the verification, collaboration platform120may perform operation312and grant the user of primary client device245access to collaboration platform120and the user account content associated with particular user account. Responsive to the login information not being verified, collaboration platform120may request the user of primary client device245to re-submit login information and deny access to collaboration platform120until the login information is verified. In alternative implementations, a user may use secondary client device210to perform operation310.

In implementations, at operation314the user of primary client device245may submit a user request for a group gameplay feature of a multiplayer game to collaboration platform120. In one example, the user may use the native game controller of primary client device245to submit the request to collaboration platform120. In an example, the user of primary client device245may select a game hosted by collaboration platform120using primary client device245. Responsive to selecting the game, primary client device245may automatically send the user request for group gameplay (e.g., the selected game only supports group gameplay).

In another example, a user may access collaboration platform120using primary client device245and access games hosted by collaboration platform120that include a “group gameplay” feature. The user may select a game and further select the group gameplay feature (e.g., user interface element), which initiates the primary client device245to send the user request for group gameplay to collaboration platform120.

In some implementations, subsequent to receiving the user input requesting group gameplay, the native game controller associated with the primary client device245may become inactive (e.g., does not contribute to control of characters in the selected game) except for quitting or exiting the game on behalf of primary client device245. In alternative implementations, the user request may be sent from the secondary client device210to the collaboration platform120(e.g., operation314may be performed by secondary client device210).

In implementations, at operation316responsive to receiving, from the primary client device245, a user request for the group gameplay feature of the game, collaboration platform120identifies users to include in the group gameplay for the game. In some implementations, the user request for group gameplay may specify one or more users that are to be invited to the group gameplay. For example, the user that sent the user request for group gameplay may select a group of users that are included in the group gameplay. The group of users may be included in the user request for group gameplay that is sent to collaboration platform120. Collaboration platform120may parse the user request for group gameplay to identify the users to include in group gameplay.

In other implementations, collaboration platform120may identify users that are logged into collaboration platform120and are accessing the same LAN or WLAN as primary client device245. For example, the collaboration platform120may identify a network identifier associated with the user request of the group gameplay feature. The collaboration platform120may identify the users accessing the collaboration platform120and using the same network identifier. In some implementations, a network identifier may include an identifier that identifies the WLAN or LAN being accessed by secondary client devices210and primary client device245. In implementations, the network identifier may be a service set identifier (SSID) or other network identifier.

In still other implementations, responsive to a user request for a group gameplay feature, collaboration platform120may send a group gameplay identifier to primary client device245. The group gameplay identifier may, for example, be displayed on the primary display250by the primary client device245. Users of the secondary client devices210may input the group gameplay identifier into their respective secondary client devices210and send a request (that includes the group gameplay identifier) to collaboration platform120for an invitation to join the group gameplay.

At operation318, collaboration platform120may send invitations to the secondary client devices210to invite the identified users to participate in the group gameplay of the game. The users may be the users identified in operation316. In some implementations, the invitation may include a resource locator (e.g., link) that responsive to being selected may take the user (e.g., user's character) into the particular game. The invitation may also include a server identifier (e.g., unique identifier to the particular group gameplay session). As described below at operation322, the server identifier may be used to identify a particular server on which the character for the game is to be hosted.

At operation320, one or more secondary client devices210send to collaboration platform120responses to the invitation to participate in the group gameplay of the game. In some implementations, a response may be a user acceptance or user decline.

At operation322, collaboration platform120identifies a server (e.g., cluster of hardware servers) on which to host the characters of the users that accepted the invitation to participate in the group gameplay of the game. As noted above, the invitations may include a server identifier that may be used to identify a particular server on which the character for the game is to be hosted. In some implementations, the server identifier may also identify a server on which the game is hosted. In some implementations, responsive to receiving user acceptances to the invitations to participate in the group gameplay of the game, collaboration platform120directs characters associated with the users to be hosted on a particular server computer based on the server identifier.

In some implementations, the server identifier may be a unique identifier associated with the particular group gameplay session for the primary client device245. The server identifier may be used to identify the server on which the characters of the users are to be hosted (which may or may not be the same server on which the game is hosted). In some implementations, the server identifier may be the resource locator (e.g., unique link) sent in the invitations. In other implementations, the server identifier may be embedded in the resource locator or distinct from the resource locator.

It may be noted that hosting the characters (or characters and game) on a common server may allow for greater efficiency in the use of computing resources. For example, game logic executing on the common server may be shared between multiple characters. For instance, a character hits a wall and the server uses the physics engine to calculate physics commands indicative of the physical interaction of the character with the wall. If another character hits the same wall in the same or similar manner, the physics commands that were previously calculated may be cached and reused for the other character's collision with the wall. In other implementations, the characters may not be hosted on a common server.

At operation324, the secondary client device210sends control instructions to the collaboration platform120responsive to user input to the secondary client device210to control in-game actions in the game. As noted above, the secondary client device210may be used as a game controller to control the game hosted by collaboration platform120. The control instructions may refer to instructions that are indicative of in-game actions of the user's character. For example, control instructions may include user input to control the in-game action, such as right, left, up, down, user election, gyroscope position and orientation data, force sensor data, etc. The control instructions may include character position and velocity information. In implementations, the control instructions are sent directly (e.g., perhaps being sent through intermediary nodes none of which are the primary client device245) to the collaboration platform120having bypassed the primary client device245.

In some implementations, the primary client device245may receive the control instructions from the secondary client devices210(e.g., the primary client device245includes a router for the LAN) but the control instructions may still bypass the primary client device245. For instance, the primary client device245may not execute the control instructions or render any gameplay for display on the primary display250based on the received control instructions. The received control instructions are routed to the collaboration platform120without additional processing outside the transmission operations.

At operation326, collaboration platform120performs server-side processing on the control instructions to generate gameplay instructions. The gameplay instructions may be instructions that allow a client device, such as primary client device245or secondary client device210, to render gameplay of a game, such as a multiplayer game. The control instructions may include one or more of user input (e.g., control instructions), character position and velocity information, or commands (e.g., physics commands, rendering commands, etc.). In some implementations, both the collaboration platform120and primary client device245(and secondary client device210) execute a game engine124. The collaboration platform120may perform some or all the game engine functions (e.g., generate physics commands, rendering commands, etc.), or offload some or all the game engine functions to primary client device245. In some implementations, each game may have a different ratio between the game engine functions that are performed on the collaboration platform120and the game engine functions that are performed on the primary client device245(or secondary client device210). For example, the game engine124of the collaboration platform120may be used to generate physics commands in cases where there is a collision between at least two game objects, while the additional game engine functionality (e.g., generate rendering commands) may be offloaded to the primary client device245. In some implementations, the ratio of game engine functions performed on the collaboration platform120and primary client device245may be changed (e.g., dynamically) based on gameplay conditions. For example, if the number of user participating in group gameplay on the primary client device245exceeds a threshold number, the collaboration platform120may perform more game engine functions so that that the primary client device245is not overworked or to improve latency.

At operation328, responsive to receiving the control instructions (e.g., operation324) that have bypassed the primary client device245, collaboration platform120provides first gameplay instructions to the primary client device245that cause a presentation of a first view of the gameplay of the game on the primary display250. For example, primary client device245may use the gameplay instructions to generate display instructions (e.g., rendering commands) to render real-time gameplay on the primary display250. In some implementations, the first gameplay instructions are sent from collaboration platform120directly (e.g., perhaps being sent through intermediary nodes none of which are the secondary client devices210) to the primary client device245having bypassed the secondary client devices210.

As noted above, the gameplay may be presented on the primary display250in a view from a perspective where all the playing users may watch the gameplay of their respective characters. For example, the view on the primary display250may be from the third-person perspective, such as top-down view or side view. In another example, the view on the primary display250may be from a first-person perspective, such as split-screen view where all the characters participating in the group gameplay are shown in a section of the split screen from a first-person perspective. Examples of different views are further illustrated inFIG. 4A-4C.

It may be noted that primary client device245may execute rendering commands to provide the first view of the gameplay on the primary display250. In implementations, the rendering commands are not based on control information received directly from the game controllers (or native game controllers to the primary client device245). In implementations, the primary client device245only is responsive to gameplay instructions from the collaboration platform120(e.g., the primary client device245is performing game engine functions, but only from instructions from collaboration platform120) and is not receiving input from secondary client devices210. Such a system architecture (e.g., system200) allows the primary client device245to operate more efficiently by dedicating computing resources to handling gameplay instructions from collaboration platform120, rather than dedicate computing resources to sending, receiving, and processing instructions from both collaboration platform120and game controllers (e.g., secondary client devices210or native game controllers). Additionally, collaboration platform120may change the ratio of game engine functions that are performed on the collaboration platform120and primary client device245to enhance the performance of the primary client device245(e.g., reduce the computational load on the primary client device245).

At operation330, collaboration platform120provides second gameplay instructions to the secondary client device210. The second gameplay instructions may cause a presentation of the gameplay to be presented on displays of the secondary client device210. In implementations, the second view of the gameplay on the secondary client device210is different than the first view of the gameplay on the primary display250. For example, the view on a secondary client device210may be from a first-person perspective. The view on the primary client device245may be from a third-person perspective. In implementations, the views on the secondary client devices210may be different from one another. For example, the views on the secondary client devices210may be from a first-person perspective of the respective characters associated with the users of the respective secondary client devices210. In some implementations, the view on the secondary client device210may include user controls (e.g., up, down, right, left, user selection user interface such as “A” and “B”) to control the in-game actions. In some implementations, the view presented on the secondary client device210may not include gameplay, but include additional information such as title of the game or user controls, for example. In some implementations, the second gameplay instructions are sent from collaboration platform120directly (e.g., perhaps being sent through intermediary nodes none of which are the primary client device245) to the secondary client devices210having bypassed the primary client device245.

At operation332, secondary client device210may send a message (e.g., instant message) to another user (e.g., another of the secondary client devices210) participating in the group gameplay. At operation334, the message of operation332may be received by collaboration platform120and filtered. For example, the filter may search for and remove any inappropriate language or sensitive information (e.g., telephone number, address, credit card information). At operation336, the filtered message is sent to primary client device245for display on the primary display250. For example, the message may be displayed in a chat area that is associated with only the recipient user. In another example, the message may be displayed in a group chat area in the presentation on the primary display250where all the users of the group gameplay may participate in the discussion. In other implementations, the message may be sent to the secondary client device of the recipient of the message for presentation in the recipient's secondary client device.

As noted above, the group gameplay feature of a game may be implemented for another group of users located in a different location from the first group of users. In implementations, the second group of users may implement the group gameplay feature in a similar manner as described above. The second group of users may participate in a group gameplay session of the game using a second set of secondary client devices as game controllers, a different primary client device, and a different primary display.

In still other implementations, users may participate in the game that are not part of a group gameplay session. For example, a group of users may participate in a group gameplay session for a particular game and another person in a different location may be playing the same game. The person not participating in the group gameplay may not view the group gameplay from the view presented on the primary display250, but may for example view the gameplay from a first-person perspective from their client device.

FIG. 4A-4Cillustrate views of gameplay of a multiplayer game on a primary display and an views of gameplay on the display of a secondary client device, in accordance with implementations of the disclosure. It may be further noted that elements of previous Figures may be used to help illustrated theFIG. 4A-4C.

FIG. 4Aillustrates view400of the gameplay of a multiplayer game on the primary display250and view410of the gameplay of the same multiplayer gem on the display112of the secondary client device210at a first point in time, in accordance with implementations of the disclosure. View400shows a top-down view of the gameplay as shown on primary display250(e.g., character positions on a racetrack). For example, the top-down view shows the world map of the game from the perspective of the camera above the game world and shows all the characters (e.g., 1 through 5) participating in the group gameplay of the game. View410shows a top-down view of character 1 as shown on display112of the secondary client device210. View410shows only character 1 (e.g., in a car, i.e., game object417) and a portion of the game world. View410shows user control415A (a “joystick”, e.g., up, down, right, left) and user control415B (e.g., user selection “A” and “B”) used to control in-game action of character 1. It may be noted that view400and view410show gameplay for the same point in time but from different views.

FIG. 4Billustrates view430of the gameplay of a multiplayer game on the primary display250and view440of the gameplay of the same multiplayer game on the display112of the secondary client device210at a second point in time, in accordance with implementations of the disclosure. View430shows a side view of the gameplay as shown on primary display250. View430shows the actions of all the characters 1-5 concurrently. Additionally, view430shows message area435that may display the chat messages between all the characters, and in the current illustration between character 1 and character 2. View440shows a side view from the first-person perspective of character 1 as shown on display112of the secondary client device210(e.g., character 1 looking at character 2). It may be noted that view430and view440show gameplay for the same point in time but from different views.

FIG. 4Cillustrates view460of the gameplay of a multiplayer game on the primary display250and view470of the gameplay of the same multiplayer game on the display112of the secondary client device210at a third point in time, in accordance with implementations of the disclosure. View460shows a split-screen view of the gameplay as shown on primary display250. Each of the sections of the split-screen shows a view from a third-person perspective relative to the particular character. For example, the top left split-screen shows the view from the third-person perspective of character 1. In other implementations, the split-screen view may show the views from the first-person perspective of each of the characters. View470shows the view from the third-person perspective with respect to character 1. It may be noted that view460and view470show gameplay for the same point in time but from different views.

FIG. 5is a flow diagram illustrating method500for implementing a group gameplay feature of a multiplayer game for users that are proximately located, in accordance with implementations of the disclosure. Method500may be performed by processing logic that includes hardware (e.g., circuitry, dedicated logic, programmable logic, microcode), software (e.g., instructions run on a processing device to perform hardware simulation), or a combination thereof. In some implementations, group gameplay module140executing at collaboration platform120may perform some or all the operations. In other implementations, group gameplay module140executing at collaboration platform120, client device110A, client device110B, server130or combination thereof may perform some or all the operations. In some implementations, group gameplay module140executing at collaboration platform120(or server230), secondary client devices210, primary client device245or combination thereof may perform some or all the operations. Elements ofFIG. 1 through 4Cmay be used to help illustrated method500. It may be noted that the in some implementations, method500may include the same, different, fewer, or greater operations performed in any order.

At block505of method500, processing logic performing method500receives a user request for group gameplay of a multiplayer game. The group gameplay enables users that are proximately located to participate in the multiplayer game using secondary client devices210as game controllers to control the gameplay and causes the gameplay to be presented on a primary display250for consumption by the users.

At block510, responsive to receiving, from the primary client device, the user request for the group gameplay of the multiplayer game, processing logic identifies the users to include in the group gameplay of the multiplayer game.

At block515, processing logic sends invitations to the secondary client devices210to invite the users to participate in the group gameplay of the multiplayer game.

At block520, processing logic receives, from the secondary client devices210, user acceptances to the invitations to participate in the group gameplay of the multiplayer game.

At block525, responsive to receiving user acceptances to the invitations to participate in the group gameplay of the multiplayer game, processing logic directs characters associated with the users to be hosted on a particular server computer (e.g., server230) based on the server identifier. In some implementations, the particular server computer also hosts the multiplayer game.

At block530, processing logic receives, from the secondary client devices210, control instructions that have bypassed a primary client device245. The control instructions are responsive to user input to the secondary client devices210to control actions (e.g., in-game actions) in the multiplayer game.

At block535, responsive to receiving the control instructions that have bypassed the primary client device245, processing logic provides first gameplay instructions to the primary client device245that cause a presentation of a first view of the gameplay of the multiplayer game on the primary display250for consumption by the users. In some implementations, processing logic may return to block530and wait to receive additional control instructions that are used to generate new gameplay instructions (not shown).

At block540, processing logic provides second gameplay instructions to the secondary client devices210based on the control instructions received by processing logic. The second gameplay instructions may cause presentations associated with the multiplayer game to be presented on displays112of the secondary client devices210. In some implementations, processing logic may return to block530and wait to receive additional control instructions that are used to generate new gameplay instructions for the primary client device245or secondary client devices210.

FIG. 6is a block diagram illustrating an exemplary computer system600, in accordance with implementations. The computer system600executes one or more sets of instructions that cause the machine to perform any one or more of the methodologies discussed herein. Set of instructions, instructions, and the like may refer to instructions that, when executed computer system600, cause computer system600to perform one or more operations of group gameplay module140. The machine may operate in the capacity of a server or a client device in client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute the sets of instructions to perform any one or more of the methodologies discussed herein.

The computer system600includes a processing device602, a main memory604(e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory606(e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device616, which communicate with each other via a bus608.

The processing device602represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device602may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processing device implementing other instruction sets or processing devices implementing a combination of instruction sets. The processing device602may also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device602is configured to execute instructions of the system architecture100and the group gameplay module140for performing the operations discussed herein.

The computer system600may further include a network interface device622that provides communication with other machines over a network618, such as a local area network (LAN), an intranet, an extranet, or the Internet. The computer system600also may include a display device610(e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device612(e.g., a keyboard), a cursor control device614(e.g., a mouse), and a signal generation device620(e.g., a speaker).

The data storage device616may include a non-transitory computer-readable storage medium624on which is stored the sets of instructions of the system architecture100and group gameplay module140embodying any one or more of the methodologies or functions described herein. The sets of instructions of the system architecture100and group gameplay module140may also reside, completely or at least partially, within the main memory604and/or within the processing device602during execution thereof by the computer system600, the main memory604and the processing device602also constituting computer-readable storage media. The sets of instructions may further be transmitted or received over the network618via the network interface device622.

While the example of the computer-readable storage medium624is shown as a single medium, the term “computer-readable storage medium” can include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the sets of instructions. The term “computer-readable storage medium” can include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the disclosure. The term “computer-readable storage medium” can include, but not be limited to, solid-state memories, optical media, and magnetic media.

In the foregoing description, numerous details are set forth. It will be apparent, however, to one of ordinary skill in the art having the benefit of this disclosure, that the disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the disclosure.

Some portions of the detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operation s leading to a desired result. The sequence of operations is those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

It may be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, it is appreciated that throughout the description, discussions utilizing terms such as “receiving,” “providing,” “receiving,” “directing,” “sending,” “identifying,” “implementing,” or the like, refer to the actions and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computer system memories or registers into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.

The disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may include a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including a floppy disk, an optical disk, a compact disc read-only memory (CD-ROM), a magnetic-optical disk, a read-only memory (ROM), a random access memory (RAM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic or optical card, or any type of media suitable for storing electronic instructions.

The words “example” or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example” or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations. That is, if X includes A; X includes B; or X includes both A and B, then “X includes A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims may generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Moreover, use of the term “an implementation” or “one implementation” or “an embodiment” or “one embodiment” or the like throughout is not intended to mean the same implementation or implementation unless described as such. One or more implementations or embodiments described herein may be combined in a particular implementation or embodiment. The terms “first,” “second,” “third,” “fourth,” etc. as used herein are meant as labels to distinguish among different elements and may not necessarily have an ordinal meaning according to their numerical designation.

It is to be understood that the above description is intended to be illustrative, and not restrictive. Other implementations will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the disclosure may, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.

In additional implementations, one or more processing devices for performing the operations of the above described implementations are disclosed. Additionally, in implementations of the disclosure, a non-transitory computer-readable storage medium stores instructions for performing the operations of the described implementations. Also in other implementations, systems for performing the operations of the described implementations are also disclosed.

Claims

  1. A method, comprising: receiving, by a processing device, a user request for group gameplay of a multiplayer game, wherein the group gameplay enables users to participate in the multiplayer game using a plurality of secondary client devices as game controllers to control the group gameplay and causes the group gameplay to be presented on a primary display for consumption by the users;receiving, by the processing device and from the plurality of secondary client devices, control instructions that have bypassed a primary client device in communication with the processing device, wherein the control instructions are responsive to user input to the plurality of secondary client devices to control actions in the multiplayer game;and responsive to receiving the control instructions that have bypassed the primary client device, providing, by the processing device, first gameplay instructions to the primary client device that cause the primary client device to render a presentation of a first view of the group gameplay of the multiplayer game on the primary display for consumption by the users.
  1. The method of claim 1 , further comprising: responsive to receiving, from the primary client device, the user request for the group gameplay of the multiplayer game, identifying the users to include in the group gameplay of the multiplayer game;and sending invitations to the plurality of secondary client devices to invite the users to participate in the group gameplay of the multiplayer game.
  2. The method of claim 2 , further comprising: receiving, from the plurality of secondary client devices, user acceptances to the invitations to participate in the group gameplay of the multiplayer game.
  3. The method of claim 3 , wherein the invitations comprise a server identifier associated with the group gameplay, and wherein the method further comprises: responsive to receiving the user acceptances to the invitations to participate in the group gameplay of the multiplayer game, directing characters associated with the users to be hosted on a particular server computer based on the server identifier, wherein the particular server computer hosts the multiplayer game.
  4. The method of claim 1 , further comprising: providing, by the processing device, second gameplay instructions to the plurality of secondary client devices based on the control instructions, wherein the second gameplay instructions cause presentations associated with the multiplayer game to be presented on displays of the plurality of secondary client devices.
  5. The method of claim 5 , wherein the presentations associated with the multiplayer game comprises a second view of the group gameplay of the multiplayer game, and wherein the first view of the group gameplay on the primary display is different from the second view of the group gameplay on the plurality of secondary client devices.
  6. The method of claim 5 , wherein the second gameplay instructions are provided by the processing device directly to the plurality of secondary client devices thereby bypassing the primary client device.
  7. The method of claim 1 , wherein the control instructions are received from a local area network (LAN) to which the plurality of secondary client devices are connected.
  8. The method of claim 1 , further comprising: implementing, by the processing device, an additional group gameplay of the multiplayer game for other users, wherein the additional group gameplay enables the other users to participate in the multiplayer game using another plurality of secondary client devices as game controllers to control the group gameplay and causes the group gameplay to be presented on another primary display for consumption by the other users.
  9. The method of claim 1 , further comprising: receiving, by the processing device, from a first client device of the plurality of secondary client devices, a message to a user of a second client device of the plurality of secondary client devices;and sending, by the processing device, the message to the primary client device to cause a presentation of the message on the primary display.
  10. A system, comprising: a memory;and a processing device, coupled to the memory, and configured to: receive a user request for group gameplay of a multiplayer game, wherein the group gameplay enables users to participate in the multiplayer game by use of a plurality of secondary client devices as game controllers to control the group gameplay and causes the group gameplay to be presented on a primary display for consumption by the users;receive, from the plurality of secondary client devices, control instructions that have bypassed a primary client device in communication with the processing device, wherein the control instructions are responsive to user input to the plurality of secondary client devices to control actions in the multiplayer game;and responsive to receiving the control instructions that have bypassed the primary client device, provide first gameplay instructions to the primary client device that cause the primary client device to render a presentation of a first view of the group gameplay of the multiplayer game on the primary display for consumption by the users.
  11. The system of claim 11 , wherein the processing device is further configured to: provide second gameplay instructions to the plurality of secondary client devices based on the control instructions, wherein the second gameplay instructions cause presentations associated with the multiplayer game to be presented on displays of the plurality of secondary client devices.
  12. The system of claim 12 , wherein the presentations associated with the multiplayer game comprises a second view of the group gameplay of the multiplayer game, and wherein the first view of the group gameplay on the primary display is different from the second view of the group gameplay on the plurality of secondary client devices.
  13. The system of claim 11 , wherein the processing device is further configured to: implement an additional group gameplay of the multiplayer game for other users, wherein the additional group gameplay enables the other users to participate in the multiplayer game by use of another plurality of secondary client devices as game controllers to control the group gameplay and causes the group gameplay to be presented on another primary display for consumption by the other users.
  14. The system of claim 11 , wherein the processing device is further configured to: receive, from a first client device of the plurality of secondary client devices, a message to a user of a second client device of the plurality of secondary client devices;and send the message to the primary client device to cause a presentation of the message on the primary display.
  15. A non-transitory computer-readable medium comprising instructions stored thereon that, responsive to execution by a processing device, cause to perform or control performance of operations comprising: receiving a user request for group gameplay of a multiplayer game, wherein the group gameplay enables users to participate in the multiplayer game using a plurality of secondary client devices as game controllers to control the group gameplay and causes the group gameplay to be presented on a primary display for consumption by the users;receiving from the plurality of secondary client devices, control instructions that have bypassed a primary client device in communication with the processing device, wherein the control instructions are responsive to user input to the plurality of secondary client devices to control actions in the multiplayer game;and responsive to receiving the control instructions that have bypassed the primary client device, providing first gameplay instructions to the primary client device that cause the primary client device to render a presentation of a first view of the group gameplay of the multiplayer game on the primary display for consumption by the users.
  16. The non-transitory computer-readable medium of claim 16 , wherein the operations further comprise: providing second gameplay instructions to the plurality of secondary client devices based on the control instructions, wherein the second gameplay instructions cause presentations associated with the multiplayer game to be presented on displays of the plurality of secondary client devices.
  17. The non-transitory computer-readable medium of claim 17 , wherein the presentations associated with the multiplayer game comprises a second view of the group gameplay of the multiplayer game, and wherein the first view of the group gameplay on the primary display is different from the second view of the group gameplay on the plurality of secondary client devices.
  18. The non-transitory computer-readable medium of claim 16 , wherein the operations further comprise: implementing an additional group gameplay of the multiplayer game for other users, wherein the additional group gameplay enables the other users to participate in the multiplayer game using another plurality of secondary client devices as game controllers to control the group gameplay and causes the group gameplay to be presented on another primary display for consumption by the other users.
  19. The non-transitory computer-readable medium of claim 16 , wherein the operations further comprise: receiving, from a first client device of the plurality of secondary client devices, a message to a user of a second client device of the plurality of secondary client devices;and sending the message to the primary client device to cause a presentation of the message on the primary display.
  20. The non-transitory computer-readable medium of claim 16 , wherein the operations further comprise: receiving, from a first client device of the plurality of secondary client devices, a message to a user of a second client device of the plurality of secondary client devices;and sending the message to the primary client device to cause a presentation of the message on the primary display.

Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.