System and method for enriching personalization of computer game experience
By analyzing user game history and tags, the recommendation system can more accurately match user preferences, solve the problem that users find difficult to find games that match their interests among massive game selections, and provide personalized game recommendations.
Patent Information
- Application Number
- CN202380039783.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-05-31
- Filing Date
- 2023-04-27
- Publication Date
- 2024-12-20
AI Technical Summary
When choosing video games, users face the problem of a large number of game applications but limited time. Traditional recommendation systems are difficult to provide game recommendations that meet users' gaming preferences.
By obtaining game events in user game history, accessing related tag tables, aggregating user tag lists, identifying game events and adding new tags, recommending unplayed game applications to users based on these tags, and using multiple game attribute tags for unplayed games. Compare and rank with the user profile's tag list to provide personalized recommendations.
It improves the accuracy and user experience of video game recommendations, can better match users' gaming preferences and interests, and provide a more complete gaming experience.
Smart Images

Figure CN119173307A_ABST
Abstract
Description
Background Art
[0001] Background and Related Technology
[0002] Users face multiple choices when selecting a game application to play on a personal computer or video game console. Many game applications may take dozens of hours to complete, and the user's time may be limited. In addition, due to the amount of gameplay available or provided by a single game application, even an avid user may have a user profile that plays a limited number of games. Customized recommendations based on experiences, events, achievements, and decisions in game applications can provide users with more relevant information. Summary of the invention
[0003] In some embodiments, a method for recommending unplayed game applications to a user includes: obtaining a game history associated with a user profile, wherein the game history includes at least one game record of a game application that has been played with the user profile; and evaluating the game history to obtain a plurality of game events associated with the game application of the game history. The method further includes: accessing a tag table associated with the plurality of game events related to the game application; aggregating a plurality of tags in a tag list in the user profile based at least in part on the tag table and the plurality of game events; and presenting a recommendation for unplayed game applications to the user based at least in part on the plurality of tags.
[0004] In some embodiments, a method for recommending unplayed game applications to a user includes: obtaining a game history associated with a user profile, wherein the game history includes at least one game record of a game application that has been played with the user profile; and evaluating the game history to obtain a plurality of game events associated with the game application of the game history. The method further includes: accessing a tag table associated with the plurality of game events associated with the game application; and aggregating a plurality of tags in a tag list in the user profile based at least in part on the tag table and the plurality of game events. The method further includes: identifying a gameplay event during user gameplay; obtaining a new tag associated with the gameplay event; and adding the new tag to the plurality of tags in the user profile. The method includes: presenting a recommendation for unplayed game applications to the user based at least in part on the plurality of tags.
[0005] In some embodiments, a method for recommending unplayed games to a user comprises: accessing a list of unplayed games; comparing one or more game attribute tags of a plurality of unplayed games to a tag list of a user profile; ranking at least a portion of the plurality of unplayed games based at least in part on the tag list; and presenting recommended games to the user based at least in part on the ranked plurality of unplayed games.
[0006] This Summary is provided to introduce a selection of concepts in a simplified form that are also described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter.
[0007] Additional features and advantages will be set forth in the following description, and in part will be apparent from the description, or may be learned by practicing the teachings herein. The features and advantages of the present disclosure may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. The features of the present disclosure will become more fully apparent from the following description and the appended claims, or may be learned by practicing the present disclosure as set forth below. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] In order to describe the manner in which the above-listed and other features of the present disclosure can be obtained, a more specific description will be presented by reference to specific embodiments thereof illustrated in the accompanying drawings. For better understanding, the same elements have been designated by the same reference numerals throughout the various drawings. Although some of the drawings may be schematic or exaggerated representations of concepts, at least some of the drawings may be drawn to scale. It will be understood that the drawings depict some example embodiments, which will be described and explained with additional specificity and detail through the use of the drawings, in which:
[0009] Figure 1 is a system diagram of a computing device in communication with a network in accordance with at least some embodiments of the present disclosure;
[0010] Figure 2 is a frame of video information for a detected gaming event according to at least some embodiments of the present disclosure;
[0011] Figure 3 is a flow chart illustrating a method for recording tags based on game events according to at least some embodiments of the present disclosure;
[0012] Figure 4 is a system diagram illustrating network communications for detecting game events and recording tags in accordance with at least some embodiments of the present disclosure;
[0013] Figure 5 is a user profile including a gaming history according to at least some embodiments of the present disclosure;
[0014] Figure 6 is a user profile including a tag list according to at least some embodiments of the present disclosure;
[0015] Figure 7 is a flow chart illustrating a method for recommending unplayed games to a user according to at least some embodiments of the present disclosure;
[0016] Figure 8 is a representation of a graphical user interface (GUI) for presenting recommended unplayed games to a user in accordance with at least some embodiments of the present disclosure; and
[0017] Fig. 9 is a flow chart of another method of recommending unplayed games to a user in accordance with at least some embodiments of the present disclosure. DETAILED DESCRIPTION
[0018] The present disclosure generally relates to systems and methods for recommending video games to users. More specifically, the present disclosure relates to providing users with more complete recommendations for new gameplay experiences based at least in part on the user's gameplay preferences and style measured during gameplay of one or more gaming applications. In some embodiments, selections made by the user during gameplay are detected and / or measured so as to populate a user profile with experience attributes in addition to or in lieu of a conventional list of games played by the user.
[0019] For example, the recommendation engine accesses multiple tags associated with a user profile. Multiple tags represent multiple choices and experiences that occur during the use of a user account to play one or more video games. For example, tags can be associated with the game application itself, where the user profile includes tags related to the type, publisher, developer, platform, or release date of the game application. In other examples, tags are associated with one or more gameplay modes selected by the user account (on behalf of the user) when playing the game application. In a specific example, tags are associated with certain multiplayer game modes of the game application, indicating the user's preference for the game mode. In another example, tags are associated with certain decisions made during gameplay, such as narrative decisions in the game application that may change the user experience or the ending of the game application story.
[0020] By aggregating the tags in the user profile, multiple tags can inform the recommendation engine of the user's playability preferences based on a single game. For example, a traditional recommendation system associates a game application or other product with one or more tags (such as a type) describing the game application. However, the game application is an interactive form of media, which allows users to enjoy the game application and participate in the game application in various ways more freely than other forms or media. In the example, the user can choose to play only or mainly play the multiplayer mode of the game, without the single-player mode or "campaign" mode of the game application. In another example, after trying once or not frequently trying the multiplayer mode and not returning to the multiplayer mode, the user can choose to play only or mainly play the single-player mode or "campaign" mode of the game application, while avoiding or "probing" the multiplayer mode. In a traditional recommendation system, a game with a portion of shared features of a game application that the user does not like or the user does not spend a lot of time participating in may be presented to the user.
[0021] In some embodiments, a recommendation engine according to the present disclosure detects, collects, records, aggregates, and combines events and behaviors of a user during gameplay of one or more game applications to provide a more complete presentation of the user's preferences and gameplay in a user profile. Although examples and embodiments involving user profiles including tags from a single game and tags from multiple games will be described herein, it should be understood that systems and methods according to the present disclosure can provide improved recommendations to users based on the user playing a portion of a single game, completing multiple games, or any number or type of gameplay in between.
[0022] In some embodiments, the recommendation engine includes a fixed set of tags representing multiple gameplay categories across various game applications. For example, tags associated with competitive multiplayer games (e.g., "player vs. player" or "PVP") can be associated with multiple game applications that provide PVP multiplayer game modes. In other examples, tags associated with unlocking at least a threshold percentage or all of the achievements or trophies associated with the game application (such as "completionist") can be associated with all game applications that provide achievements or trophies on the video game platform. In some embodiments, the recommendation engine includes a dynamic set of tags based at least in part on community participation and / or behavior, as will be described in more detail herein.
[0023] In some embodiments, the video game platform hosted on one or more server computers includes a recommendation engine. In some embodiments, the recommendation engine resides locally on the user's local computing device (such as a general computing device for playing game applications, or a special computing device such as a video game console). In some embodiments, the recommendation engine is hosted and executed independently of the server computer providing the video game platform or independently of the local computing device executing the game application. For example, the local computing device and the server computer of the video game platform communicate data via a network, and the recommendation engine further communicates data with the local computing device and the server computer of the video game platform via a network. The recommendation engine can receive data from the local computing device and / or server computer of the video game platform to receive information from a user profile and / or create a user profile.
[0024] In some embodiments, the user profile is part of the recommendation engine. For example, the recommendation engine can detect, receive, acquire, aggregate, and combine information related to a user's gameplay to create a user profile for the user that is stored in the recommendation engine. In other embodiments, the recommendation engine obtains information from a user profile that is stored locally on a local computing device used to execute the game application. In other embodiments, the recommendation engine obtains information from a user profile that is stored on one or more server computers remote from the local computing device.
[0025] In some embodiments, a fixed set of tags is determined by the operator of the video game platform. For example, a user profile may be associated with a specific video game platform from which a game application is purchased, rented, downloaded, or played in single-player or multiplayer mode. The operator of the video game platform may determine tags to provide a unified set of tags that are identifiable and interoperable between game applications on the video game platform.
[0026] The operator of the video game platform can associate or assign the tags in the fixed tag set to one or more game events, modes or other aspects of the game application. The operator of the video game platform usually approves the game application to be distributed and / or played on the video game platform. In some embodiments, the operator of the video game platform associates or assigns the tags to the game events, modes or other aspects of the game application during the review and approval process. In other embodiments, the publisher or developer of the game application associates or assigns the tags in the fixed tag set provided by the operator of the video game platform. In this process, the publisher or developer can select the aspects of the game application that are considered to be the most important for the user experience and the game application engagement to be associated with the tags.
[0027] In at least some embodiments, one or more tags can be automatically associated and / or assigned based on event detection. For example, tags in a fixed tag set can be related to a round victory or a victory over a battle boss character. Although a video game platform can provide achievements, achievements previously associated with a game application may not be able to track or identify a victory over a single round or a victory over a battle boss character. Event detection by object detection, animation detection, or optical character recognition (OCR) can allow detection and recording of game events and unassigned tags when the game is released. In addition, game event detection can allow similar game events across multiple game applications to be identified using similar tags, to provide consistent tracking and aggregation of user preferences and experience across multiple game applications. In at least some embodiments, game event detection is performed at least in part by a machine learning (ML) model.
[0028] At least some tags may be community created. For example, many video game communities capture, share and participate in screen capture and / or recording of gameplay on various social media platforms. In certain embodiments, the recommendation engine can obtain comparative videos from social media platforms and identify popular game events in the community of this game application or similar game applications in the comparative video. The recommendation engine can create additional tags or associate one or more existing tags in the fixed tag set with the game events identified in the comparative video from social media. In at least one example, the game events in the game application can be unassociated with the tags from the developer, publisher or operator of the video game platform, but can show importance in the community. The recommendation engine can identify such game events and associate a tag with these events, thereby allowing to recommend games with similar popular or viral events in the gameplay.
[0029] In some embodiments, a system for detecting and recording gaming events from video information or user gameplay includes a client device and a server computer communicating via a data network, such as Figure 1As shown. The system 100 includes a client device 102 and a server computer 104 that communicate via a data network 106. In some embodiments, the client device 102 is a computing device having a processor 108 and a hardware storage device 110 that communicates with the processor 108. In some embodiments, the hardware storage device 110 is any non-transitory computer-readable medium on which instructions can be stored. The hardware storage device 110 can be any type of solid-state memory; volatile memory, such as static random access memory (SRAM) or dynamic random access memory; or non-volatile memory, such as read-only memory (ROM) including programmable ROM (PROM), erasable PROM (ERPOM) or EEPROM; magnetic storage media, such as tape; plate-based storage devices, such as hard drives; optical media, such as compact disks (CDs), digital video disks (DVDs), Blu-ray disks, or other optical media; removable media such as USB drives; non-removable media such as internal SATA or non-volatile memory express (NVMe) type NAND flash memory or any other non-transitory storage media. In some implementations, the hardware storage device 110 is local to and / or integrated with the client device 102. In some embodiments, the client device 102 accesses the hardware storage device 110 through a network connection.
[0030] The processor 108 can execute a game application 112 stored on the hardware storage device 110 to present video information at least in part in response to user input to the client device 102. In some embodiments, the client device 102 includes a display device for displaying video information to a user currently playing the game. For example, the client device 102 can be a dedicated game console with an integrated display or a general-purpose computer (e.g., a laptop computer) with an integrated display. In some embodiments, the client device 102 communicates with the display device to display video information to the user currently playing the game. For example, the client device 102 can be a game console (e.g., MICROSOFT XBOX) that outputs video information to a connected display device (e.g., a television) to display to the user currently playing the game.
[0031] In some embodiments, the video information or a portion of the video information is also transmitted to the server computer 104 via the data network 106. In some embodiments, the server computer 104 is located at a location remote from the client device 102, and the data network 106 is or includes the World Wide Web. For example, the client device 102 can be connected to the data network 106 via the home Internet connection of the user who is currently playing the game, and the server computer 104 can be located in a data center. In some embodiments, the server computer 104 is located locally at the client device 102, and the video information is transmitted via a local area network or a direct data connection. For example, a competitive electronic game tournament (e.g., an e-sports competition) can have a local data network 106, and all client devices 102 used for the competition are connected to the local data network 106. The server computer 104 connected to the local data network 106 can communicate with the client device 102 used for the competition.
[0032] In some embodiments, the server computer 104 receives video information from the client device 102 via a data network 106. The server computer 104 includes a processor 114 and a hardware storage device 116 in data communication with the processor 114. The hardware storage device 116 has instructions stored thereon that, when executed by the processor 114, cause the server computer 104 to perform any of the methods described herein. For example, the server computer 104 can detect events in the video information to classify different events and / or objects based on identified textures, models, animations, or other criteria.
[0033] In at least one embodiment, the server computer 104 includes or communicates with an ML model that detects and / or reports game events in the video information to evaluate the video information and identify and mark the game events. In some embodiments, the server computer 104 has stored thereon (e.g., in a hardware storage device 116) an ML model that accesses and / or communicates with the ML model data 118. In some examples, the ML model data 118 is stored locally to the server computer. In some examples, the ML model data 118 is stored away from the server computer 104 and is accessed by the server computer 104 via the data network 106. For example, the ML model data 118 can be aggregated and / or refined from multiple ML models executed by multiple server computers. The ML model data can be updated based on the output of the ML model, wherein the latest ML model data is available to the ML model running on the server computer 104 when needed.
[0034] In some embodiments, the recommendation engine 119 is in data communication with the network 106 to communicate with the client device 102, the server computer 104, and / or the ML model data 118. As described herein, the recommendation engine 119 can be stored on and / or executed on the server computer 104, the client device 102, another remote computer, or a combination thereof.
[0035] As illustrated in the preceding discussion, the present disclosure utilizes various terms to describe the features and advantages of ML models. Additional details are now provided regarding the meaning of such terms. For example, as used herein, an "ML model" refers to a computer algorithm or model (e.g., a classification model, a regression model, a language model, an object detection model) that can be adjusted (e.g., trained) based on training inputs to approximate an unknown function. For example, an ML model can refer to a neural network or other ML algorithm or architecture that learns and approximates complex functions and generates outputs based on multiple inputs provided to the ML model.
[0036] In some embodiments, the ML system, model, or neural network described herein is an artificial neural network. In some embodiments, the ML system, model, or neural network described herein is a convolutional neural network. In some embodiments, the ML system, model, or neural network described herein is a recurrent neural network. In at least one embodiment, the ML system, model, or neural network described herein is a Bayesian classifier. As used herein, "ML system" may refer to one or more ML models that collaboratively generate one or more outputs based on corresponding inputs. For example, an ML system may refer to any system architecture with multiple discrete machine learning components that consider different kinds of information or inputs.
[0037] As used herein, an "instance" refers to an input object that can be provided as an input to an ML system for generating an output (such as an event within video information). For example, an instance may refer to any virtual object provided in a user interface (UI) of video information. For example, a UI may present a notification to a user in response to certain game events. When a UI notification is present, the ML system may perform one or more machine vision techniques to evaluate the video information of the relevant event. The ML system may be refined through iterations to "learn" when a visual game event is associated with a UI notification. For example, the value of a UI element indicating the health of a player avatar may increase as the player avatar interacts with a health pack in the game environment.
[0038] In some embodiments, the ML system may create an application module of expected or relevant game events in the video information. In a specific example, if a UI element indicates that the user currently playing the game has eliminated an opponent, other aspects of the video information may be detected and / or identified to associate the opponent elimination with the identified animation. In another example, each time a player avatar performs an assist, the ML system may identify to whom the player avatar passed the ball to achieve a goal (such as in a sports game). In addition, the ML system may create or refine an application module to include commonly queried or associated tag categories for events. In some examples, all key events may be associated with a game timestamp, and opponent elimination specifically further includes a tag indicating the weapon that the player avatar was equipped with at the time. In some examples, a player elimination key event may include a tag associated with the name of the opponent who eliminated the player and / or the weapon used to eliminate the player. Tags may allow the ML system and / or recommendation engine to determine a preferred game style within a game application. For example, a role-playing game with a variety of avatar categories or skill options may interest different users for different reasons. A user profile may record or aggregate tags indicating a preferred play style not captured in gaming history or achievements, such as a healer in a massively multiplayer online RPG (role playing game) or a mage in a competitive multiplayer online battle arena.
[0039] The instances provided to the ML system may also include other digital objects, including text, identified objects, or other types of data that can be parsed and / or analyzed using one or more algorithms. In one or more embodiments described herein, an instance is a "training instance," which refers to an instance from a set of training instances used in training the ML system. Additionally, an "input instance" may refer to any instance used to implement a machine learning system to achieve its intended purpose. As used herein, a "training data set" may refer to a set of training instances. In some embodiments, a training data set includes multiple frames of video information.
[0040] In some embodiments, the systems and methods described herein obtain a training data set and identify one or more tags for instances of the training data set to detect events based on comparison of the labeled events with application modules. In some embodiments, the application modules are predetermined, such as by a developer or publisher of a gaming application. In some embodiments, the application modules are developed and refined by the ML system through iterations of processing video information.
[0041] Figure 2 is an example of a frame of video information that can be used to identify events within a user's gameplay. Figure 2In FIG. 1 , a frame of video information includes an object 224 (e.g., a tree) located in a game environment 222 along with a player avatar 220, which in this case is a car. Other objects in the frame include a user interface 226, which may be independent of the three-dimensional game environment 222. Machine vision may identify the position, size, and shape of the tree object 224 relative to the player avatar 220 to determine the relative position of the object 224 and the avatar 220 in the game environment 222. By evaluating the relative position of the object 224 and the avatar 220 in a frame or a series of frames (adjacent frames or non-adjacent keyframes at the native frame rate), the machine vision and / or ML system may identify a collision between the car and the tree. The collision may be identified as a critical event and annotated in the social media metrics as well.
[0042] In some embodiments, the video information provided by the client device running the game application is associated with the game state data. The game state data includes any information that can allow the second electronic device to rebuild a given game state. For example, the game state data of the game instance running on the client device can be provided to the second electronic device, and the second electronic device can present a copy of the first game instance based on the game state data. In some embodiments, the game state data includes virtual object or avatar position, movement, player character statistics or features, player character directory, player character state, ability cooling state, non-player character state, or any other information about the game state.
[0043] Because the video information can be associated with the game state data, object identifications (IDs) can be associated with objects detected in the video information, allowing for greater reliability in object detection. Additionally, the game state data can include object IDs, which can be compared to detected objects to refine the machine vision ML system and improve the system's object detection.
[0044] In some embodiments, machine vision and / or object detection can measure the relative motion of edges to determine the position of virtual objects. For example, a detected object that does not change position within a frame across multiple frames of video information as the avatar moves and / or the user's perspective moves relative to the game environment can be an element of UI 226. In other examples, a detected object that increases in size differently than other objects in the game environment can be moving relative to the game environment. Figure 2 In the illustrated embodiment, a collision critical event can be identified by a change in the UI 226 depicting a rapid and / or sudden decrease in the value of the speedometer. For example, a rapid change in the UI 226 reflecting the speed of the car avatar 220 changing from 150 kilometers per hour (kph) to 0 kph in 1.0 second can be identified as a collision.
[0045] As used herein, a virtual object may include any object or element rendered or presented by a client device during the running of a game application. For example, a virtual object may be an element of a UI 226. In some examples, a virtual object may be a player avatar 220. In some examples, a virtual object may be a wall, floor, or other geometry of a game environment 222, such as a tree object 224. In some examples, a virtual object may be an interactive or movable object within a game environment, such as a door, a box, or a power source.
[0046] In some embodiments, machine vision and / or ML models can identify objects in the game environment 222 without explicit training to identify the objects. For example, a machine vision system including ML can learn to identify a tree object 224 within the game environment 222, even if the specific model of the tree object 224 has not been explicitly taught to the machine vision system. In at least one example, the systems and methods according to the present disclosure can be transplanted between video information from various game applications, where different models for common objects (such as tree objects 224) are used. By training the ML model, machine vision is able to recognize and detect tree objects 224 in the video information. In some examples, elements of the game environment are generated programmatically. A series of programmatically generated tree objects 224 may include common elements, but are different models from each other, as presented in the video information. Therefore, the explicitly provided model will not be applicable to the programmatically generated tree objects 224.
[0047] In some embodiments, the machine vision system calls an application module associated with a game application as a source of video information. There may be great differences in the artistic styles between game applications. Even an ML model trained to detect tree objects 224 based on video information of multiple game applications may fail when encountering a new artistic style. For example, although FORNITE and CALL OF DUTY are both competitive first-person shooter games, the appearance of objects in each game is completely different. Specifically, tree objects 224 and other elements of the game environment 222 appear very different between the two game applications.
[0048] The system and method according to the present disclosure can access an application module associated with a game application as a source of video information. The application module can be generated by an ML model based on a game engine, and can include predetermined or user-defined events, or a combination of both.
[0049] As described herein, the ML model data can be stored remotely to a client device and / or a server computer and accessed on demand by the server computer based on video information or other information provided by the client device. In at least one embodiment, the ML model data is part of an application module that includes information specific to a gaming application for machine vision and / or event identification and classification.
[0050] In some embodiments, social media metrics (e.g., "likes," shares, comments, views, saves, or other social media metrics) of the comparison videos obtained from the social media platform may be reported to the ML model and / or ML model data to further refine the ML model based on other users' reactions to the event and / or associated tags. For example, a clip posted to social media shows that in a multiplayer online battle arena (MOBA) game, eliminations performed at very low resource levels may inspire greater social engagement than a single elimination performed at high resource levels. Thus, the ML model can be refined and trained over time to identify and / or highlight events associated with high levels of social engagement on social media.
[0051] The ML model may allow for identification of objects and / or events having tags associated therewith. Object detection may include any method or technique described herein for identifying virtual objects in video information. In some embodiments, the method includes determining the presence of key events, popular events, rare events, or any other type of events based on the presence of objects, textures, models, or animations. In some embodiments, determining the presence of an event includes evaluating changes in virtual objects, textures, models, or animations between frames in a plurality of frames. In some embodiments, the comparison frames are adjacent frames in the native frame rate of the rendered gaming environment. For example, when the client device renders the gaming environment at 60 frames per second, the video information may include 60 frames per second. The comparison frames may be adjacent frames in the native 60 frames per second, with the difference between the frames being approximately 16.67 milliseconds. In some embodiments, the comparison frames are key frames or other non-adjacent frames in the original frame rate. For example, when the client device renders the gaming environment at 60 frames per second, the video information may include 60 frames per second, but the selected comparison frames are 0.25 seconds or approximately 15 frames apart from each other.
[0052] The change of the virtual object between the first frame and the second frame can be calculated based on the change relative to the game environment or based on the change of expected correlation. Some changes of the virtual object relative to the game environment can include the appearance or disappearance of the virtual object in the game environment. The comparison of frames can include detecting specific animations of an avatar model or other model. The comparison of frames can include detecting changes in the texture of a skinned model, which can be associated with events such as taking damage or acquiring a new piece of equipment in the game.
[0053] Figure 3 is an example of an identifier from a server computer (e.g., Figure 1 server computer 104) or a client device (e.g., Figure 1 Flowchart of one embodiment of a method 328 for capturing an event in video information of a video game executed at a client device 102 of a computer system. In at least one example, the client device presents video information rendered at a remote computer to a user, such as during a cloud-based game. In some embodiments, the method 328 may be performed from a gaming application (e.g., Figure 1 The video information may be executed on a gaming application 112 of the client device or any source of video information from a real-time stream of gameplay, such as a gameplay recording, a reconstructed rendering of a gameplay session based on game state data. For example, obtaining video information may include obtaining video information in real time as the video information is generated by a processor of the client device (e.g., during a real-time streaming of gameplay). In some examples, obtaining video information includes accessing a gameplay recording generated after the fact by a processor of the client device, such as from an archived gameplay recording and / or game state data posted on a social media platform.
[0054] The method 328 includes evaluating at least one of the plurality of frames of video information to identify a virtual object, texture, model, or animation. After identifying the virtual object, texture, model, or animation in the frame, the method includes determining at 330 the presence of at least one event associated with the detected element.
[0055] In some embodiments, determining the presence of at least one event in the video information comprises comparing the detected object, texture, model, or animation to one or more events of an application module. As described herein, the application module can be predetermined or can be generated by the ML system. In some embodiments, the application module includes key events, popular events, rare events, any other type of event, or a combination thereof.
[0056] In at least one embodiment, a key event is an event that progresses a gameplay session toward a resolution or a decisive outcome. In some embodiments, key events may be predetermined in an application module specifically for the game application being played. Key events for an American football game application may include a touchdown, a field goal, a fumble, a fumble comeback, an interception, a volley, a fumble, a kickoff, a halftime break, or the end of a full game. Key events for a first-person shooter (FPS) game application may include an opponent elimination, a player elimination, a health pickup, a shield pickup, a reload, multiple eliminations, a round win, a teammate elimination, a flag pickup, or a point grab. Key events for a MOBA game application may include an opponent elimination, a player elimination, a health pickup, a shield pickup, an ability use, a cooldown expiration, multiple eliminations, a round win, a teammate elimination, a player versus environment (PvE) elimination; or a player avatar rebirth (because rebirth may be delayed by elimination). An application module may include information about key events that may be used to detect and identify commonly referenced events during a game session for later review.
[0057] In some embodiments, the application module includes additional event identifiers based on popular events. For example, some game applications develop specific popular event sets, through which spectators and players can understand the skills, strategies or viewing of the game, and these events may not be regarded as key events in the game process. In at least one example, popular events do not need to push the game to a specific result, but maintain unique interest among viewers of the game application. For example, in a baseball game application, the batter's progress from home plate to first base pushes the game towards a solution. In some embodiments, according to the machine vision and / or ML system disclosed herein, the batter can detect and identify the difference between hitting a single, walking, or being hit by a pitch.
[0058] Popular events may be independent of key events. In some embodiments, breaking the board in a hockey game application has no effect on the outcome of the game, but can arouse unique interest for players and spectators. In addition to key events, popular events can also be identified. In some embodiments, machine vision and / or ML systems can identify fly balls as key events, while identifying fly balls caught by outfielders jumping over the home run fence as hot events with unique interest. Popular events can be a combination of key events in sequence or proximity. In some embodiments, super attacks in fighting games are key events, and defensive reversals are key events, but specifically, super attacks when players defend and counterattack are identified as popular events. In some embodiments, events that occur within a specific amount of time (time proximity) of another event (such as a series of opponent eliminations) are identified as popular events.
[0059] In some embodiments, the application module includes defects in the game, such as known vulnerabilities, which are allowed in certain areas of competitive electronic games. For example, a collision vulnerability between a player's avatar and an object in the game environment can be exploited to implement a traversal technique in the game engine that would otherwise be impossible. In some communities of speedrunning electronic games, the use of defects is allowed or encouraged, even though this is not the intended mode of operation of the game engine. Such defect events can be considered popular events because they are not necessary to complete the game, but are unique and interesting uses or interactions of the game environment for a specific audience group.
[0060] In certain embodiments, the texture, model, animation or key event sequence or other occurrences in the video information describing the game environment may not exist or cannot be identified in an existing application module or event list. Such occurrences can be identified as rare events. In certain embodiments, rare events include some loopholes or defects that are not expected in the game environment. In certain embodiments, rare events are included in secrets or hidden features that are not commonly experienced in the game. For example, a hidden role or stage in a game application may need to meet carefully designed conditions before the player can activate the role. Therefore, a limited number of players may experience rare events. The experience of rare events can be associated with a specific type of player who is interested in exploring the details of the game environment or game application, and tags associated with rare events can help provide relevant information in the user profile.
[0061] In some embodiments, the application module includes a probability table that allows detection of rare events in video information. For example, a drop table for a role-playing game can control the probability that the game engine provides a specific item to a player avatar in a game environment. If the drop rate of an item is 5.0%, a single detection of the item in the video information is not common by design, but it is not abnormal. However, if the method or system described herein detects that the item has 5 drops in 20 opportunities (0.000000147% chance), then the sequence can indicate a rare event of interest. In another example, it may be impossible to run the same gameplay multiple times in a football simulation game application and obtain the same result. Although it may not be rare or impossible to select the same gameplay multiple times in a row, executing the same gameplay but obtaining the same result (such as a weak side sweep running to the sideline tactic 11 times in a row, each time producing 7 yards), may indicate that a rare event of interest has occurred. The application module may include a threshold to determine when a series of possible events become rare enough to be designated as a rare event. In some embodiments, a probability curve may be calculated based on a drop table or other probability table, and a threshold may be set as a standard deviation away from the most likely outcome. In another embodiment, a threshold may be set manually so that a detected rare event or sequence of events is reported when an occurrence exceeds a manually set threshold.
[0062] Although in some embodiments of the system and method for identifying and / or marking events, users only evaluate video information, some embodiments evaluate other forms of information or data to supplement the video information. In some embodiments, the game play obtained further includes audio information. The audio information can provide additional data about events in the game environment, which may not be visible on the video information. In some embodiments, audio prompts such as dialogue, music, or sound effects can indicate the existence, proximity, or direction of objects or events in the game environment. In some examples, the player avatar can dodge attacks made by the boss character, preventing visual identification of the boss character or attack, and the audio prompt indicates the occurrence of an off-screen attack. In some embodiments, the audio information includes recorded player or chat comments from the video information and the audio information, thereby allowing identification of discussions or comments about the game environment.
[0063] In some embodiments, the video information includes user input information. According to the present disclosure, user input should be understood to include any signal or input by any input mechanism that provides instructions to the client device to interact with and / or affect the game application. The user input information can provide additional context for the events detected in the evaluation frame of the video information. For example, the user input can indicate that the user is trying to enter a super attack command in a fighting game, which is expected and defensive, generating examples of combined key events, popular events, and rare events.
[0064] The video information and events identified therein can be associated with tags or tag categories in the application module and / or recommendation engine. Method 328 further includes querying a tag table at 332 and identifying tags associated with the identified events at 334. For example, in a first game application, an identified event related to healing a cooperative teammate in an MMORPG can be associated with a "cooperation" tag or a "team player" tag. In another game application, providing an assist to a teammate in a sports game application can be associated with the same tag, although the actual event is different. Aggregation of multiple iterations of a tag within a user profile can increase the impact of the tag on the user profile.
[0065] Method 328 includes recording the identified tag to the user profile at 336. In some examples, the tag is recorded in the user profile independently of the game application being played. In some examples, multiple tags are recorded for a single identified event. Aggregation of multiple iterations of a tag within a user profile can increase the impact of the tag on the user profile.
[0066] In other examples, the recommendation engine detects network communications between a client device and a game server computer, where the network communications are indicative of user decisions within a gaming application. Figure 44 is an embodiment of the system 400 in which a client device 402 is in data communication with a server computer 404 via a network. In some examples, the server computer 404 provides information of at least some portions of a game application 412 executed by a processor 408 to the client device 402 from a hardware storage device 410. For example, the processor 408 can receive network communications about a game state of an online multiplayer match of the game application from the server computer 404. The recommendation engine 419 detects the game state communications between the client device 402 and the server computer 404 to identify events or patterns within the game application 412 executed by the processor 408 of the client device 402. In at least one example, the recommendation engine 419 detects a match request from the client device 402 to the server computer 404 to initiate an online competitive PVP match in the game application 412. In at least another example, the recommendation engine 419 detects a support request from the game application 412 to allow another user to assist the user (or client device 402) in a single player campaign mode of the game application 412.
[0067] In some embodiments, the recommendation engine 419 detects network communications between the client device 402 and the server computer 404 related to achievement or trophy completion. For example, most achievement or trophy completions are stored in the server computer 404 (via the processor 414 on the hardware storage device 416) to allow a user to access his or her list of achievements (and progress toward completing achievements) from multiple networked devices. Therefore, when an achievement or trophy is completed at the client device 402 executing the game application 412, the network communication related to the achievement or trophy is transmitted to the server computer 404. The network communication can notify the recommendation engine 419 of the achievement and / or trophy, for which the recommendation engine 419 can query the tag table and record one or more tags to the user profile.
[0068] In some embodiments, the network communication between the client device 402 and the server computer further includes game statistics, such as total game time, time played multiplayer games, total number of matches played, total number of eliminations, total number of cures, game ranking, PVP ranking, etc. In some embodiments, the game statistics are associated with a game profile that the user can share between platforms. For example, a competitive online game application can allow cross-platform gaming using different user accounts associated with a single game profile that varies from one game application to another. In at least one example, a first user account associated with a video game console platform and a second user account associated with a personal computer platform are both associated with a game profile (e.g., linked to a game profile) that shares cumulative game statistics between two user accounts used to play the game application. In some examples, the recommendation engine 419 detects network communications associated with the cumulative game statistics of the game profile, thereby allowing the recommendation engine 419 to identify and record tags associated with cross-platform gaming.
[0069] Figure 5 It is an embodiment of a user profile 538 that can be accessed by a recommendation engine or stored in a recommendation engine. In some embodiments, the user profile 538 includes a game history 540 and multiple game records 542-1, 542-2, 542-3 associated therewith. Game records 542-1, 542-2, 542-3 include one or more events and / or game statistics for each game. For example, an event may include an event (such as a key event) identified based on object detection and / or event detection described herein or based on an identified achievement or trophy completed while playing a game using the user profile 538. Game statistics reflect the cumulative operation or time spent by the user when playing a game application using the user profile, and may include game statistics tracked by the game application, or statistics (such as total time) measured by the user profile, or statistics (such as total game matches, eliminations, wins, losses, treatments, completed levels, completed game clearances, etc.) measured by the ML system or recommendation engine.
[0070] In some embodiments, the recommendation engine accesses or obtains one or more game records 542-1, 542-2, 542-3 in the user profile to determine tags associated with game events and / or game statistics. For example, the recommendation engine can query the tag table for any tags associated with the first event of the first game record 542-1. When the associated tags are identified, the recommendation engine then records the associated tags in the tag list. Similarly, the recommendation engine can query the tag table for any tags associated with the game statistics of the first game record 542-1. When the associated tags are identified, the recommendation engine then records the associated tags in the tag list. The recommendation engine can repeat this process for each game record.
[0071] In some embodiments, the tag list 644 is stored in the user profile 638, such as Figure 6 As illustrated in the embodiment of , this can reduce and / or eliminate the need for redundant queries and records of tags. The recommendation engine can record tags 646 in the tag list 644 together with the number or weight 648 of corresponding tags 646. In some embodiments, the relative number or weight 648 of tags 646 allows the recommendation engine to evaluate the user's preferences and experience during gameplay to customize the recommendation for new unplayed games. It should be understood that although the recommendation herein is described as being for unplayed games, the recommendation engine can also recommend games that have been played before for more than an unplayed time period or games that the user "explored" in the game history and only played for a short time. In other words, the recommendation engine can recommend a new unplayed game to the user profile, or a functionally "unplayed" game, because the user has not played this game for a long enough period of time (e.g., 1 year, 3 years, 5 years, on the current generation console, etc.), or has not fully played this game.
[0072] Figure 6 An example tag list 644 is illustrated for a user profile 638 that primarily plays a support role as a spellcaster in a competitive multiplayer game. For example, while the tag list 644 includes "Careful Platformer" and "Completionist," the weights 648 associated with these tags 646 are relatively low compared to the weights 648 of the "Player vs. Player," "Spellcaster," and "Teammate" tags 646.
[0073] In some embodiments, weight 648 is based at least in part on the number of times a particular tag 646 has been recorded to tag list 644 based on unique events, achievements, game statistics, etc. For example, a "completionist" tag 646 may be recorded when user profile 638 is associated with completing 100% of achievements or trophies in a game application. For each game record in the game history that reflects all achievements or trophies completed (such as a record of a game in which the game is played), the game history may be recorded as "completionist". Figure 5), the recommendation engine may assign an instance of the “completionist” tag 646. In another example, the recommendation engine may record an instance of the “player vs. player” tag 646 each time a competitive match request network communication is detected and / or each time a competitive PvP round is completed.
[0074] In some embodiments, weights 648 are relative weights between tags 646. In some examples, weights 648 are based at least in part on the duration of playing the gaming application (or gaming record) associated with the instance of tag 646. For example, weight 648 for “caster” tag 646 may reflect that user profile 638 played a caster-class character in any gaming application for 140 hours, compared to only 7 hours playing a melee-class character in any gaming application.
[0075] In other examples, the weight 648 is based at least in part on the estimated or calculated time to earn the tag 646. For example, a "completionist" tag may be assigned a greater weight 648 because the "completionist" tag is associated with completing all achievements or trophies in the game, which inherently includes completing or experiencing many events where each event is associated with other tags. In the previous example, the weight of the "caster" tag 646 is based on the number of hours played as a character of that category. In some embodiments, each instance of the "completionist" tag 646 recorded to the tag list 644 may be assigned a weight 648 of 100 based on an estimated 100 hours required to achieve each instance of the "completionist" tag 646.
[0076] Figure 7 750 includes accessing a list of games not played at 752. In some embodiments, accessing the list of games not played includes comparing the game history of the user profile with the list of available games. For example, the user profile may be associated with a video game platform, such as a video game distribution platform, a video game multiplayer platform, a video game social platform, or another online video game platform that allows users to communicate with the video game platform to access available game applications or parts of game applications. In a specific example, the video game distribution platform includes a game application library that can be downloaded to a client device, and the downloaded game application can be executed on the client device. In another example, the video game distribution platform is a cloud-based video game platform that allows client devices to access and interact with game applications stored and executed on a remote server. In some embodiments, the list of games not played includes game applications that can be downloaded to a client device and / or can be used for cloud-based access and interaction.
[0077] The unplayed game list includes at least one game application that exists in the available game list and does not exist in the game history of the user profile. In some embodiments, the unplayed game list includes at least one game application that the user profile that exists in the game history has not visited or played within a predetermined time period. In one example, the unplayed game list can include any game application that is not in the game history or that the user profile has not visited or played in 3 years in the available game list. In such examples, method 750 allows recommendation to play old games that the user may like to play again, although the user has played the game before. In some embodiments, the unplayed game list includes at least one game application that the user profile that exists in the game history has played for a total time less than a predetermined duration. For example, the unplayed game list can include any game application that is not in the game history or that the user profile has not visited or played for more than 30 minutes in the available game list. In such an example, method 750 allows recommendation to play a game application that matches the user profile that the user can have enough game time to enjoy, although the game application exists in the game history in a minimal sense.
[0078] Method 750 further includes comparing one or more game attribute tags of a plurality of unplayed games with a tag list of a user profile at 754. The unplayed game list includes a plurality of unplayed games. In some embodiments, at least some of the unplayed games in the plurality of unplayed games have game attribute tags associated therewith, which describe or reflect gameplay, type, art style, game mode, theme, or other game attributes. In some examples, at least some game attribute tags may be predetermined by an operator, developer, or publisher of a video game platform. In other examples, at least some game attribute tags may be community generated. In a specific example, a game application in which a threshold percentage of users complete 100% of achievements or trophies (associated with a "completionist" tag recorded to a user profile) adds a "completionist" tag to the game attribute tag of the game application. The game attribute tag indicates that the game application is particularly interested in users who like to complete 100% achievements or trophies. In another specific example, a game application in which a threshold number of users complete a minimum number of competitive online PvP matches (associated with a "PvP" tag recorded to a user profile) adds a "PvP" tag to the game attribute tag of the game application. The game attribute tag indicates that the game application is particularly interesting to users who like active PvP communities. Method 750 includes comparing one or more tags of the game not played to the tag list of the user profile to determine a degree of match between the one or more tags of the game not played and the tag list of the user profile.
[0079] In some embodiments, the game attribute tags are further weighted, similar to the Figure 6For example, a fighting game type game app is primarily focused on or relies on competitive multiplayer gameplay. This is in stark contrast to an action / adventure type game app, which is primarily conducted in a single-player campaign but offers competitive PvP gameplay. While both game apps may have a "PvP" game attribute tag associated with them, a fighting game type game app may have a higher-weighted "PvP" tag than an action / adventure type game app to more accurately reflect the relative portion of the user experience focused on PvP in each game app.
[0080] In some embodiments, method 750 further includes ranking at least a portion of a plurality of unplayed games based at least in part on the tag list at 756. In some embodiments, ranking at least a portion of a plurality of unplayed games includes calculating a percentage match of a tag list with a game attribute tag of each unplayed game in a plurality of unplayed games. For example, a tag list of a user profile including all game attribute tags of an unplayed game application may be a 100% match. In another example, a tag list of a user profile including all game attribute tags of an unplayed game application and no tags that are not present in the game attribute tags may be a 100% match. In yet another example, a tag list of a user profile including all game attribute tags of an unplayed game application and equal weights of each tag may be a 100% match. In such an example, a tag list of a user profile including game attribute tags of an unplayed game application with different weights may produce a match less than 100%.
[0081] In some embodiments, ranking at least a portion of the plurality of unplayed games includes clustering the unplayed games into a hierarchy from which the user can select an unplayed game. For example, a first hierarchy may include unplayed game applications that have a 75% or higher match between the tag list of the user profile and the game attribute tags of the unplayed game applications, and a second hierarchy may include unplayed game applications that have a 50% match and a 75% match between the tag list of the user profile and the game attribute tags of the unplayed game applications. The first hierarchy indicates that the commonality between the tag list of the user profile and the game attribute tags of the game applications is high, while the second hierarchy indicates that the commonality between the tag list of the user profile and the game attribute tags of the game applications is low.
[0082] In another example, the first tier may include unplayed game applications that have a 75% or higher match between the tag list of the user profile and the game attribute tags of the unplayed game applications, and the second tier may include unplayed game applications that have a 75% or higher match between the tag list of the user profile and the game attribute tags of the unplayed game applications, but at least one tag or tag category between the tag list and the game attribute does not match. For example, the user profile may have a tag list including "PvP", "Fast-paced", "Fantasy", "Teammate", and "Melee", while the game attribute tags include "PvP", "Fast-paced", "Sci-Fi", "Teammate", and "Melee". The first tier indicates that the commonality between the tag list of the user profile and the game attribute tags of the game application is high, while the second tier provides users with different types of games to try while indicating that the commonality between the tag list of the user profile and the game attribute tags of the game application is high.
[0083] A user may not always want his or her next gaming experience to be exactly the same as the previous gaming experience, and different hierarchies can allow the user to quickly visualize options. The method 750 includes presenting recommended games to the user at 758 based at least in part on a plurality of ranked unplayed games. In some embodiments, presenting recommended games includes presenting a graphical user interface (GUI) to the user, which includes a representation of an unplayed game application. In some examples, the GUI includes a ranking indicator. The ranking indicator can convey to the user a percentage match between a list of tags of a user profile and a game attribute tag of an unplayed game application. The ranking indicator can convey the level of matching, such as "A", "B", "C", etc. The ranking indicator can include a description of the relationship between a list of tags of a user profile and a game attribute tag of an unplayed game application, such as "very much matches your preferences" or "similar to your preferences, but with science fiction".
[0084] In some embodiments, presenting a recommended game to a user based at least in part on a plurality of ranked unplayed games includes providing a link to a cloud-based copy of a game application to allow the user to quickly try or experience the game without waiting for the game application to be downloaded to the client device. In some embodiments, presenting a recommended game to a user based at least in part on a plurality of ranked unplayed games includes automatically downloading at least a portion of the recommended game to the client device to allow the user to quickly try or experience the game without initializing the download and waiting for the game application to be downloaded to the client device. In some examples, the game application can execute a portion of the game, such as a tutorial, without having to download the game application in its entirety. Method 750 may include downloading a portion of the game application required to allow the user to automatically experience the game application. In some embodiments, presenting a recommended game to a user based at least in part on a plurality of ranked unplayed games includes downloading at least a portion of the highest-ranked matches between a tag list and a plurality of game application game attribute tags.
[0085] Figure 8 is a representation of a GUI 860 that presents recommended games from a list of unplayed games based at least in part on a ranked plurality of unplayed games, e.g., with reference to Figure 7 As described. In some embodiments, the client device displays a recommended game template 862 having multiple fields to the user. The client device receives fill information from the recommendation engine to display recommended game applications to the user. For example, the recommended game template 862 may include the highest ranked recommended game application within a plurality of ranked unplayed games. In other examples, the recommended game template 862 may include a plurality of highest ranked recommended game applications. In yet another example, the recommended game template 862 may further include the highest ranked recommended game application and at least one unplayed game application that matches above the minimum recommendation threshold percentage but has at least one game attribute tag that is not shared with the tag list of the user profile. For example, the recommended game template 862 may include the highest ranked matches in a plurality of different types based at least in part on a plurality of ranked unplayed games.
[0086] In some embodiments, the recommended game template 862 includes a game title 864 and game art 866. The recommended game template 862 presents one or more options for launching or preparing to launch the recommended game, such as a local launch input 868 (if the client device has downloaded the recommended game application to a local hardware storage device), a cloud launch input 870 (if the recommended game application is cloud-based for play), or a download input 872 (to initialize the download of the recommended game application to the client device).
[0087] To help users select recommended game applications, in some embodiments, the recommended game template 862 includes a quantitative relationship indicator 874 and / or a qualitative relationship indicator 876. The quantitative relationship indicator 874 can convey the quantitative relationship or match between the tag list of the user profile and the game attribute tags of the recommended game. For example, the quantitative relationship indicator 874 can be a digital representation of the percentage match between the tag list of the user profile and the game attribute tags of the recommended game. The qualitative relationship indicator 876 can convey the qualitative relationship or match between the tag list of the user profile and the game attribute tags of the recommended game. For example, the qualitative relationship indicator 876 can describe to the user how the recommended game matches or does not match the tag list of the user profile. In at least one example, the qualitative relationship indicator 876 can indicate that the recommended game is "the highest match with the tag list of the user profile within the sports game type" or a similar qualitative description.
[0088] In some embodiments, the recommendation engine (whether executed on a client device, a server computer, or other computing device in data communication with the client device and / or server computer) can continuously or periodically update the tag list and the ranked plurality of unplayed games for the user profile. Fig. 9 The illustrated method 978 of recommending unplayed games to a user includes, in some embodiments, identifying events in video information from a gaming application, populating a tag list for a user profile with the identified events, and using the tag list for ranked unplayed games for presentation to the user.
[0089] In some embodiments, method 978 may use any source of video information from a gaming application, such as a gameplay recording, a reconstructed rendering of a gameplay session based on game state data, or a real-time stream of gameplay. For example, obtaining video information may include obtaining video information in real time as the video information is generated by a processor of a client device (e.g., during a real-time streaming of gameplay). In some examples, obtaining video information includes accessing a gameplay recording generated after the fact by a processor of a client device, such as from an archived gameplay recording and / or game state data posted on a social media platform.
[0090] The method 978 includes evaluating at least one of the plurality of frames of video information to identify a virtual object, texture, model, or animation. After identifying the virtual object, texture, model, or animation in the frame, the method includes determining at 930 the presence of at least one event associated with the detected element.
[0091] In some embodiments, determining the presence of at least one event in the video information comprises comparing the detected object, texture, model, or animation to one or more events of an application module. As described herein, the application module can be predetermined or can be generated by the ML system. In some embodiments, the application module includes key events, popular events, rare events, any other type of event, or a combination thereof.
[0092] Although some embodiments of the system and method for identifying and / or marking events only evaluate video information, some embodiments evaluate other forms of information or data to supplement the video information. In some embodiments, the gameplay obtained further includes audio information. The audio information can provide additional data about events in the game environment, which may not be visible on the video information. In some embodiments, audio cues such as dialogue, music, or sound effects can indicate the presence, proximity, or direction of objects or events in the game environment. In some examples, the player avatar can dodge attacks made by a boss character, thereby preventing visual identification of the boss character or attack, while the audio cues indicate the occurrence of an off-screen attack. In some embodiments, the audio information includes recorded player or chat comments from the video information and the audio information, thereby allowing identification of discussions or comments about the game environment.
[0093] In some embodiments, the video information includes user input information. According to the present disclosure, user input should be understood to include any signal or input by any input mechanism that provides instructions to the client device to interact with and / or affect the game application. The user input information can provide additional context for the events detected in the evaluation frame of the video information. For example, the user input can indicate that the user is trying to enter a super attack command in a fighting game, which is expected and defensively counterattacked, generating examples of combined key events, popular events, and rare events.
[0094] In some embodiments, at least one event is the completion of an achievement or trophy. For example, the completion of an achievement or trophy can be communicated to a server computer via network communications and / or recorded at the shell level or operating system level of a client device. The recommendation engine can detect the completion of an achievement or trophy as at least one event in the user's gameplay.
[0095] The identified video information and / or events can be associated with tags or tag categories in the application module and / or recommendation engine. Method 978 further includes querying the tag table at 932 and identifying tags associated with the identified events at 934. For example, in a first game application, an identified event related to healing a cooperative teammate in an MMORPG can be associated with a "cooperation" tag or a "team player" tag. In another game application, providing an assist to a teammate in a sports game application can be associated with the same tag, although the actual event is different. Aggregation of multiple iterations of a tag within a user profile can increase the impact of the tag on the user profile.
[0096] Method 978 includes recording the identified tag to the user profile at 936. In some examples, the tag is recorded in the user profile independently of the game application being played. In some examples, multiple tags are recorded for a single identified event. Aggregation of multiple iterations of a tag within a user profile can increase the impact of the tag on the user profile.
[0097] In some embodiments, method 978 further includes accessing a list of unplayed games at 952. In some embodiments, accessing the list of unplayed games includes comparing the game history of the user profile with the list of available games. For example, the user profile can be associated with a video game platform, such as a video game distribution platform, a video game multiplayer platform, a video game social platform, or another online video game platform that allows users to communicate with the video game platform to access available game applications or parts of game applications. In a specific example, the video game distribution platform includes a game application library that can be downloaded to a client device, and the downloaded game application can be executed on the client device. In another example, the video game distribution platform is a cloud-based video game platform that allows client devices to access and interact with game applications stored and executed on a remote server. In some embodiments, the list of unplayed games includes game applications that can be downloaded to a client device and / or can be used for cloud-based access and interaction.
[0098] The unplayed game list includes at least one game application that exists in the available game list and does not exist in the game history of the user profile. In some embodiments, the unplayed game list includes at least one game application that the user profile that exists in the game history has not visited or played within a predetermined time period. In one example, the unplayed game list can include any game application that is not in the game history or that the user profile has not visited or played in 3 years in the available game list. In such examples, method 978 allows recommendation to play old games that the user may like to play again, although the user has played the game before. In some embodiments, the unplayed game list includes at least one game application that the user profile that exists in the game history has played for a total time less than a predetermined duration. For example, the unplayed game list can include any game application that is not in the game history or that the user profile has not visited or played for more than 30 minutes in the available game list. In such an example, method 978 allows recommendation to play a game application that matches the user profile that the user can have enough game time to enjoy, although the game application exists in the game history in the smallest sense.
[0099] Method 978 further includes comparing one or more game attribute tags of multiple unplayed games with a tag list of a user profile at 954. The unplayed game list includes multiple unplayed games. In some embodiments, at least some of the unplayed games in the multiple unplayed games have game attribute tags associated therewith, which describe or reflect gameplay, type, art style, game mode, theme or other game attributes. In some examples, at least some game attribute tags can be predetermined by the operator, developer or publisher of the video game platform. In other examples, at least some game attribute tags can be community generated. In a specific example, a game application in which a threshold percentage of users complete 100% of the achievements or trophies (associated with the "completionist" tag recorded to the user profile) adds a "completionist" tag to the game attribute tag of the game application. The game attribute tag indicates that the game application is particularly interested in users who like to complete 100% achievements or trophies. In another specific example, a game application in which a threshold number of users complete a minimum number of competitive online PvP matches (associated with the "PvP" tag recorded to the user profile) adds a "PvP" tag to the game attribute tag of the game application. The game attribute tag indicates that the game application is particularly interesting to users who like active PvP communities. Method 978 includes comparing one or more tags of the game not played to the tag list of the user profile to determine a degree of match between the one or more tags of the game not played and the tag list of the user profile.
[0100] In some embodiments, the game attribute tags are further weighted. For example, fighting game type game applications are mainly focused on or rely on competitive multiplayer games. This is in stark contrast to action / adventure type game applications, which are mainly carried out in single-player campaigns but provide competitive PvP gameplay. Although both game applications can have a "PvP" game attribute tag associated with them, fighting game type game applications can have a higher weighted "PvP" tag than action / adventure game type game applications to more accurately reflect the relative part of the user experience focused on PvP in each game application.
[0101] In some embodiments, method 978 further includes ranking at least a portion of a plurality of unplayed games based at least in part on a list of tags at 956. In some embodiments, ranking at least a portion of a plurality of unplayed games includes calculating a percentage match of a list of tags with a game attribute tag of each unplayed game in a plurality of unplayed games. For example, a tag list of a user profile including all game attribute tags of an unplayed game application may be a 100% match. In another example, a tag list of a user profile including all game attribute tags of an unplayed game application and no tags that are not present in the game attribute tags may be a 100% match. In yet another example, a tag list of a user profile including all game attribute tags of an unplayed game application and equal weights of each tag may be a 100% match. In such an example, a tag list of a user profile including game attribute tags of an unplayed game application with different weights may produce a match less than 100%.
[0102] In some embodiments, ranking at least a portion of the plurality of unplayed games includes clustering the unplayed games into a hierarchy from which the user can select the unplayed games. For example, a first hierarchy may include unplayed game applications that have a 75% or higher match between the tag list of the user profile and the game attribute tags of the unplayed game applications, and a second hierarchy may include unplayed game applications that have a 50% match and a 75% match between the tag list of the user profile and the game attribute tags of the unplayed game applications. The first hierarchy indicates that the commonality between the tag list of the user profile and the game attribute tags of the game applications is high, while the second hierarchy indicates that the commonality between the tag list of the user profile and the game attribute tags of the game applications is low.
[0103] In another example, the first tier may include unplayed game applications that have a 75% or higher match between the tag list of the user profile and the game attribute tags of the unplayed game applications, and the second tier may include unplayed game applications that have a 75% or higher match between the tag list of the user profile and the game attribute tags of the unplayed game applications, but at least one tag or tag category between the tag list and the game attribute does not match. For example, the user profile may have a tag list including "PvP", "Fast-paced", "Fantasy", "Teammate", and "Melee", while the game attribute tags include "PvP", "Fast-paced", "Sci-Fi", "Teammate", and "Melee". The first tier indicates that the commonality between the tag list of the user profile and the game attribute tags of the game application is high, while the second tier provides users with different types of games to try while indicating that the commonality between the tag list of the user profile and the game attribute tags of the game application is high.
[0104] A user may not always want his or her next gaming experience to be exactly the same as the previous gaming experience, and different hierarchies can allow users to quickly visualize options. The method 978 includes presenting recommended games to the user at 958 based at least in part on a plurality of ranked unplayed games. In some embodiments, presenting recommended games includes presenting a graphical user interface (GUI) to the user, which includes a representation of an unplayed game application. In some examples, the GUI includes a ranking indicator. The ranking indicator can convey to the user the percentage match between the tag list of the user profile and the game attribute tags of the unplayed game application. The ranking indicator can convey the level of matching, such as "A", "B", "C", etc. The ranking indicator can include a description of the relationship between the tag list of the user profile and the game attribute tags of the unplayed game application, such as "very much matching your preferences" or "similar to your preferences, but with science fiction".
[0105] In some embodiments, presenting a recommended game to a user based at least in part on a plurality of ranked unplayed games includes providing a link to a cloud-based copy of a game application to allow the user to quickly try or experience the game without waiting for the game application to be downloaded to the client device. In some embodiments, presenting a recommended game to a user based at least in part on a plurality of ranked unplayed games includes automatically downloading at least a portion of the recommended game to the client device to allow the user to quickly try or experience the game without initializing the download and waiting for the game application to be downloaded to the client device. In some examples, the game application can execute a portion of the game, such as a tutorial, without having to download the game application in its entirety. Method 978 may include downloading a portion of the game application that allows the user to automatically experience the game application. In some embodiments, presenting a recommended game to a user based at least in part on a plurality of ranked unplayed games includes downloading at least a portion of the highest-ranked matches between a tag list and a plurality of game application game attribute tags.
[0106] In at least some embodiments, systems and methods according to the present disclosure may provide users with more relevant recommendations based not only on gaming applications that the user has tried or played, but also based on the user's choices, experiences, preferences, and selections during their interaction with the gaming application.
[0107] Industrial Applicability
[0108] The present disclosure generally relates to systems and methods for recommending video games to users. More specifically, the present disclosure relates to providing users with more complete recommendations for new gameplay experiences based at least in part on the user's gameplay preferences and style measured during gameplay of one or more gaming applications. In some embodiments, selections made by the user during gameplay are detected and / or measured so as to populate a user profile with experience attributes in addition to or in lieu of a conventional list of games played by the user.
[0109] For example, the recommendation engine accesses multiple tags associated with a user profile. Multiple tags represent multiple choices and experiences that occur during the use of a user account to play one or more video games. For example, tags can be associated with the game application itself, where the user profile includes tags related to the type, publisher, developer, platform, or release date of the game application. In other examples, tags are associated with one or more gameplay modes selected by the user account (on behalf of the user) when playing the game application. In a specific example, tags are associated with certain multiplayer game modes of the game application, indicating the user's preference for the game mode. In another example, tags are associated with certain decisions made during gameplay, such as narrative decisions in the game application that may change the user experience or the ending of the game application story.
[0110] By aggregating the tags in the user profile, multiple tags can inform the recommendation engine of the user's gameplay preferences based on a single game. For example, a traditional recommendation system associates a game application or other product with one or more tags (such as a type) describing the game application. However, a game application is an interactive form of media, which allows users to enjoy and participate in game applications in various ways more freely than other forms or media. In an example, a user can choose to play only or mainly play a multiplayer mode of the game, without playing a single-player mode or "campaign" mode of the game application. In another example, after trying once or not frequently trying a multiplayer mode and not returning to the multiplayer mode, a user can choose to play only or mainly play a single-player mode or "campaign" mode of the game application, while avoiding or "probing" the multiplayer mode. In a traditional recommendation system, a game sharing feature with each part of a game application that the user does not like or the user does not spend a lot of time participating in may be presented to the user.
[0111] In some embodiments, a recommendation engine according to the present disclosure detects, collects, records, aggregates, and combines events and behaviors of a user during gameplay of one or more game applications to provide a more complete presentation of the user's preferences and gameplay in a user profile. Although examples and embodiments involving user profiles including tags from a single game and tags from multiple games will be described herein, it should be understood that systems and methods according to the present disclosure can provide improved recommendations to users based on the user playing a portion of a single game, completing multiple games, or any number or type of gameplay in between.
[0112] In some embodiments, the recommendation engine includes a fixed set of tags representing multiple gameplay categories across various game applications. For example, tags associated with competitive multiplayer games (e.g., "Player vs. Player" or "PvP") can be associated with multiple game applications that provide PvP multiplayer game modes. In other examples, tags associated with unlocking at least a threshold percentage or all achievements or trophies associated with a game application (e.g., "Completionist") can be associated with all game applications that provide achievements or trophies on a video game platform. In some embodiments, the recommendation engine includes a dynamic set of tags based at least in part on community participation and / or behavior, as will be described in more detail herein.
[0113] In some embodiments, the video game platform hosted on one or more server computers includes a recommendation engine. In some embodiments, the recommendation engine resides locally on the user's local computing device (such as a general computing device for playing game applications, or a special computing device such as a video game console). In some embodiments, the recommendation engine is hosted and executed independently of the server computer providing the video game platform or independently of the local computing device executing the game application. For example, the local computing device and the server computer of the video game platform communicate data via a network, and the recommendation engine further communicates data with the local computing device and the server computer of the video game platform via a network. The recommendation engine can receive data from the local computing device and / or server computer of the video game platform to receive information from a user profile and / or create a user profile.
[0114] In some embodiments, the user profile is part of the recommendation engine. For example, the recommendation engine can detect, receive, acquire, aggregate, and combine information related to the user's gameplay to create a user profile for the user that is stored in the recommendation engine. In other embodiments, the recommendation engine obtains information from a user profile stored locally on a local computing device used to execute the game application. In other embodiments, the recommendation engine obtains information from a user profile stored on one or more server computers remote from the local computing device.
[0115] In some embodiments, a fixed set of tags is determined by the operator of the video game platform. For example, a user profile may be associated with a specific video game platform from which a game application is purchased, rented, downloaded, or played in single-player or multiplayer mode. The operator of the video game platform may determine tags to provide a unified set of tags that are identifiable and interoperable between game applications on the video game platform.
[0116] The operator of the video game platform can associate or assign tags in the fixed tag set to one or more events, modes or other aspects of the game application. The operator of the video game platform usually approves the distribution and / or enjoyment of the game application on the video game platform. In some embodiments, the operator of the video game platform associates or assigns tags to events, modes or other aspects of the game application during the review and approval process. In other embodiments, the publisher or developer of the game application associates or assigns tags in the fixed tag set provided by the operator of the video game platform. In this process, the publisher or developer can select the aspects of the game application that are considered to be the most important for the user experience and the game application engagement to be associated with the tag.
[0117] In at least some embodiments, one or more tags can be automatically associated and / or assigned based on event detection. For example, tags in a fixed tag set can be related to a round victory or a victory over a battle boss character. Although a video game platform can provide achievements, achievements previously associated with a game application may not be able to track or identify a victory over a single round or a victory over a battle boss character. Event detection by object detection, animation detection, or optical character recognition (OCR) can allow detection and recording of events and unassigned tags when the game is released. In addition, event detection can allow similar events across multiple game applications to be identified using similar tags, to provide consistent tracking and aggregation of user preferences and experiences across multiple game applications. In at least some embodiments, event detection is performed at least in part by a machine learning (ML) model.
[0118] At least some tags may be community created. For example, many video game communities capture, share and participate in screen capture and / or recording of gameplay on various social media platforms. In certain embodiments, the recommendation engine can obtain comparative videos from social media platforms and identify popular events in the community of the game application or similar game applications in the comparative video. The recommendation engine can create additional tags or associate one or more existing tags in the fixed tag set with the events identified in the comparative video from social media. In at least one example, the events in the game application can be unassociated with the tags from the developer, publisher or operator of the video game platform, but can show importance in the community. The recommendation engine can identify such events and associate tags with these events, thereby allowing the game with similar popular or viral events in the recommended gameplay.
[0119] In some embodiments, a system for presenting electronic game video information to a user includes a client device and a server computer communicating via a data network. The system includes a client device and a server computer communicating via a data network. In some embodiments, the client device is a computing device having a processor and a hardware storage device communicating with the processor. In some embodiments, the hardware storage device is any non-transient computer-readable medium on which instructions can be stored. The hardware storage device can be any type of solid-state memory; volatile memory, such as static random access memory (SRAM) or dynamic random access memory; or non-volatile memory, such as a read-only memory (ROM) including a programmable ROM (PROM), an erasable PROM (ERPOM) or an EEPROM; magnetic storage media, such as tape; a storage device based on a plate, such as a hard drive; optical media, such as a compact disk (CD), a digital video disk (DVD), a Blu-ray disk or other optical media; removable media such as a USB drive; non-removable media such as an internal SATA or non-volatile memory fast (NVMe) type NAND flash memory or any other non-transient storage medium. In some embodiments, the hardware storage device is local to the computing device and / or integrated with the client device. In some embodiments, the hardware storage device is accessed by the client device through a network connection.
[0120] The processor may execute a game application stored on a hardware storage device to present video information at least in part in response to a user input to a client device. In some embodiments, the client device 102 includes a display device for displaying video information to a user currently playing a game. For example, the client device may be a dedicated game console (e.g., NINTENDO SWITCH) with an integrated display or a general-purpose computer (e.g., a laptop computer) with an integrated display. In some embodiments, the client device communicates with the display device to display video information to a user currently playing a game. For example, the client device may be a game console (e.g., MICROSOFT XBOX), which outputs video information to a connected display device (e.g., a television) to display to a user currently playing a game.
[0121] In some embodiments, the video information or a portion of the video information is also transmitted to the server computer via a data network. In some embodiments, the server computer is located at a location away from the client device 102, and the data network is or includes the World Wide Web. For example, the client device can be connected to the data network via the home Internet connection of the game user, and the server computer can be located in a data center. In some embodiments, the server computer is located locally at the client device, and the video information is transmitted via a local area network or a direct data connection. For example, a competitive electronic game tournament (e.g., an e-sports competition) can have a local data network to which all client devices for the competition are connected. A server computer connected to a local data network can communicate with the client devices for the competition.
[0122] In some embodiments, the server computer receives video information from the client device via a data network. The server computer 104 includes a processor and a hardware storage device in data communication with the processor. The hardware storage device has instructions stored thereon that, when executed by the processor, cause the server computer to perform any of the methods described herein. For example, the server computer can detect events in the video information to classify different events and / or objects based on identified textures, models, animations, or other criteria.
[0123] In at least one embodiment, the server computer includes or communicates with an ML model that detects and / or reports events in video information or related to user gameplay to identify and tag the events. In some embodiments, the server computer has stored thereon (e.g., in a hardware storage device) an ML model that accesses and / or communicates with ML model data. In some examples, the ML model data is stored locally to the server computer. In some examples, the ML model data is stored remotely from the server computer and accessed by the server computer via a data network. For example, the ML model data can be aggregated and / or refined from multiple ML models executed by multiple server computers. The ML model data can be updated based on the output of the ML model, with the latest ML model data being available to the ML model running on the server computer when needed.
[0124] In some embodiments, the recommendation engine is in data communication with a network to communicate with a client device, a server computer, and / or ML model data. As described herein, the recommendation engine can be stored on and / or executed on a server computer, a client device, another remote computer, or a combination thereof.
[0125] As illustrated in the preceding discussion, the present disclosure utilizes various terms to describe the features and advantages of ML models. Additional details are now provided regarding the meaning of such terms. For example, as used herein, an "ML model" refers to a computer algorithm or model (e.g., a classification model, a regression model, a language model, an object detection model) that can be adjusted (e.g., trained) based on training inputs to approximate an unknown function. For example, an ML model can refer to a neural network or other ML algorithm or architecture that learns and approximates complex functions and generates outputs based on multiple inputs provided to the ML model.
[0126] In some embodiments, the ML system, model, or neural network described herein is an artificial neural network. In some embodiments, the ML system, model, or neural network described herein is a convolutional neural network. In some embodiments, the ML system, model, or neural network described herein is a recurrent neural network. In at least one embodiment, the ML system, model, or neural network described herein is a Bayesian classifier. As used herein, "ML system" may refer to one or more ML models that collaboratively generate one or more outputs based on corresponding inputs. For example, an ML system may refer to any system architecture with multiple discrete machine learning components that consider different kinds of information or inputs.
[0127] As used herein, an "instance" refers to an input object that can be provided as an input to an ML system for generating an output (such as an event within video information). For example, an instance may refer to any virtual object provided in a user interface (UI) of video information. For example, a UI may present a notification to a user in response to certain events. When a UI notification is present, the ML system may execute one or more machine vision techniques to evaluate the video information of the associated event. The ML system may "learn" through iteration when a visual event is associated with a UI notification. For example, the value of a UI element indicating the health of a player avatar may increase in response to the player avatar interacting with a health pack in the game environment.
[0128] In some embodiments, the ML system may create an application module of expected or relevant events in the video information. In a specific example, if a UI element indicates that the user currently playing the game has eliminated an opponent, other aspects of the video information may be detected and / or identified to associate the opponent elimination with the identified animation. In another example, each time a player avatar performs an assist, the ML system may identify to whom the player avatar passed the ball to achieve a goal (such as in a sports game). In addition, the ML system may create or refine an application module to include common queries or associated tag categories for events. In some examples, all key events may be associated with a game timestamp, and opponent elimination specifically further includes a tag indicating the weapon that the player avatar was equipped with at the time. In some examples, a player elimination key event may include a tag associated with the name of the opponent who eliminated the player and / or the weapon used to eliminate the player. Tags may allow the ML system and / or recommendation engine to determine a preferred game style within a game application. For example, a role-playing game with a variety of avatar categories or skill options may interest different users for different reasons. A user profile may record or aggregate tags indicating a preferred play style not captured in gaming history or achievements, such as a healer in a massively multiplayer online RPG (role playing game) or a mage in a competitive multiplayer online battle arena.
[0129] The instances provided to the ML system may also include other digital objects, including text, identified objects, or other types of data that can be parsed and / or analyzed using one or more algorithms. In one or more embodiments described herein, an instance is a "training instance," which refers to an instance from a set of training instances used in training the ML system. Additionally, an "input instance" may refer to any instance used to implement a machine learning system to achieve its intended purpose. As used herein, a "training data set" may refer to a set of training instances. In some embodiments, a training data set includes multiple frames of video information.
[0130] In some embodiments, the systems and methods described herein obtain a training data set and identify one or more tags for instances of the training data set to detect events based on comparison of the labeled events with application modules. In some embodiments, the application modules are predetermined, such as by a developer or publisher of a gaming application. In some embodiments, the application modules are developed and refined by the ML system through iterations of processing video information.
[0131] In some embodiments, a frame of video information includes an object (e.g., a tree) located in a game environment along with a player avatar, which in this case is a car. Other objects in the frame include a user interface that may be independent of the three-dimensional game environment. Machine vision may identify the position, size, and shape of the tree object relative to the player avatar to determine the relative position of the object and avatar in the game environment. By evaluating the relative position of the object and avatar in a frame or a series of frames (adjacent frames or non-adjacent keyframes at native frame rate), the machine vision and / or ML system may identify a collision between the car and the tree. The collision may be identified as a critical event and noted in social media metrics.
[0132] In some embodiments, the video information provided by the client device running the game application is associated with the game state data. The game state data includes any information that can allow the second electronic device to rebuild a given game state. For example, the game state data of the game instance running on the client device can be provided to the second electronic device, and the second electronic device can present a copy of the first game instance based on the game state data. In some embodiments, the game state data includes virtual object or avatar position, movement, player character statistics or features, player character directory, player character state, ability cooling state, non-player character state, or any other information about the game state.
[0133] Because the video information can be associated with the game state data, object identifications (IDs) can be associated with objects detected in the video information, allowing for greater reliability in object detection. Additionally, the game state data can include object IDs, which can be compared to detected objects to refine the machine vision ML system and improve the system's object detection.
[0134] In some embodiments, machine vision and / or object detection can measure the relative motion of edges to determine the position of virtual objects. For example, a detected object that does not change position within a frame across multiple frames of video information as the avatar moves and / or the user's perspective moves relative to the game environment can be an element of the UI. In other examples, a detected object that increases in size differently than other objects in the game environment may be moving relative to the game environment. In some embodiments, a collision-critical event can be identified by a change in the UI that depicts a rapid and / or sudden decrease in the value of a speedometer. For example, a rapid change in the UI reflecting the speed of a car avatar changing from 150 kilometers per hour (kph) to 0 kph in 1.0 second can be identified as a collision.
[0135] As used herein, a virtual object may include any object or element rendered or presented by a client device during the running of a game application. For example, a virtual object may be an element of a UI. In some examples, a virtual object may be a player avatar. In some examples, a virtual object may be a wall, floor, or other geometric shape of a game environment, such as a tree object. In some examples, a virtual object may be an interactive or movable object within a game environment, such as a door, a box, or a power source.
[0136] In some embodiments, machine vision and / or ML models can identify objects in a game environment without explicit training to identify the objects. For example, a machine vision system including ML can learn to identify tree objects within a game environment, even if a specific model of the tree object has not been explicitly taught to the machine vision system. In at least one example, the system and method according to the present disclosure can be transplanted between video information from various game applications, where different models for common objects (such as tree objects) are used. By training the ML model, machine vision is able to recognize and detect tree objects in the video information. In some examples, elements of the game environment are generated programmatically. A series of programmatically generated tree objects may include common elements, but are different models from each other, as presented in the video information. Therefore, the explicitly provided model will not be applicable to programmatically generated tree objects.
[0137] In some embodiments, the machine vision system calls an application module associated with a gaming application as a source of video information. The artistic styles between gaming applications may vary greatly. Even an ML model trained to detect tree objects based on video information from multiple gaming applications may fail when encountering a new artistic style. For example, although FORNITE and CALL OF DUTY are both competitive first-person shooter games, the appearance of objects in each game is different. Specifically, tree objects and other elements of the gaming environment appear different between the two gaming applications.
[0138] The system and method according to the present disclosure can access an application module associated with a game application as a source of video information. The application module can be generated by an ML model based on a game engine, and can include predetermined or user-defined events, or a combination of both.
[0139] As described herein, the ML model data can be stored remotely to a client device and / or a server computer and accessed on demand by the server computer based on video information or other information provided by the client device. In at least one embodiment, the ML model data is part of an application module that includes information specific to a gaming application for machine vision and / or event identification and classification.
[0140] In some embodiments, social media metrics (e.g., "likes," shares, comments, views, saves, or other social media metrics) of the comparison videos obtained from the social media platform may be reported to the ML model and / or ML model data to further refine the ML model based on other users' reactions to the event and / or associated tags. For example, a clip posted to social media shows that in a multiplayer online battle arena (MOBA) game, eliminations performed at very low resource levels may inspire greater social engagement than a single elimination performed at high resource levels. Thus, the ML model can be refined and trained over time to identify and / or highlight events associated with high levels of social engagement on social media.
[0141] The ML model may allow for identification of objects and / or events having tags associated therewith. Object detection may include any method or technique described herein for identifying virtual objects in video information. In some embodiments, the method includes determining the presence of key events, popular events, rare events, or any other type of events based on the presence of objects, textures, models, or animations. In some embodiments, determining the presence of an event includes evaluating changes in virtual objects, textures, models, or animations between frames in a plurality of frames. In some embodiments, the comparison frames are adjacent frames in the native frame rate of the rendered gaming environment. For example, when the client device renders the gaming environment at 60 frames per second, the video information may include 60 frames per second. The comparison frames may be adjacent frames in the native 60 frames per second, with the difference between the frames being approximately 16.67 milliseconds. In some embodiments, the comparison frames are key frames or other non-adjacent frames in the original frame rate. For example, when the client device renders the gaming environment at 60 frames per second, the video information may include 60 frames per second, but the selected comparison frames are 0.25 seconds or approximately 15 frames apart from each other.
[0142] Changes to a virtual object between a first frame and a second frame may be calculated based on changes relative to a game environment or based on changes in expected relevance. Some changes to a virtual object relative to a game environment may include the appearance or disappearance of a virtual object in the game environment. Comparison of frames may include detecting specific animations of an avatar model or other model. Comparison of frames may include detecting changes in the texture of a skinned model, which may be associated with events such as taking damage or acquiring new equipment in a game.
[0143] In some embodiments, a method for identifying an event in video information of a video game executed at a server computer or client device. In at least one example, the client device presents video information rendered at a remote computer to a user, such as during a cloud-based game. In some embodiments, the method can be performed on any video information source using a game application, such as a reconstruction rendering of a gameplay record, a gameplay session based on game state data, or a real-time stream from the gameplay. For example, obtaining video information can include obtaining video information in real time when the video information is generated by a processor of the client device (e.g., during the real-time streaming of the gameplay). In some examples, obtaining video information includes accessing a gameplay record generated afterwards by a processor of the client device, such as a game state data published on a social media platform from an archived gameplay record and / or.
[0144] The method includes evaluating at least one of a plurality of frames of video information to identify a virtual object, texture, model, or animation. After identifying the virtual object, texture, model, or animation in the frame, the method includes determining the presence of at least one event associated with the detected element.
[0145] In some embodiments, determining the presence of at least one event in the video information comprises comparing the detected object, texture, model, or animation to one or more events of an application module. As described herein, the application module can be predetermined or can be generated by the ML system. In some embodiments, the application module includes key events, popular events, rare events, any other type of event, or a combination thereof.
[0146] In at least one embodiment, a key event is an event that progresses a gameplay session toward a resolution or a decisive outcome. In some embodiments, key events may be predetermined in an application module specifically for the game application being played. Key events for an American football game application may include a touchdown, a field goal, a fumble, a fumble comeback, an interception, a volley, a fumble, a kickoff, a halftime break, or the end of a full game. Key events for a first-person shooter (FPS) game application may include an opponent elimination, a player elimination, a health pickup, a shield pickup, a reload, multiple eliminations, a round win, a teammate elimination, a flag pickup, or a point grab. Key events for a MOBA game application may include an opponent elimination, a player elimination, a health pickup, a shield pickup, an ability use, a cooldown expiration, multiple eliminations, a round win, a teammate elimination, a player versus environment (PvE) elimination; or a player avatar rebirth (because rebirth may be delayed by elimination). An application module may include information about key events that may be used to detect and identify commonly referenced events during a game session for later review.
[0147] In some embodiments, the application module includes additional event identifiers based on popular events. For example, some game applications develop specific popular event sets, through which spectators and players can understand the skills, strategies or viewing of the game, and these events may not be regarded as key events in the game process. In at least one example, popular events do not need to push the game to a specific result, but maintain unique interest among viewers of the game application. For example, in a baseball game application, the batter's progress from home plate to first base promotes the direction of the solution. In some embodiments, according to the machine vision and / or ML system disclosed herein, the batter can detect and identify the difference between hitting a single, walking or being hit by a pitch.
[0148] Popular events may be independent of key events. In some embodiments, breaking the board in a hockey game application has no effect on the outcome of the game, but can arouse unique interest for players and spectators. In addition to key events, popular events can also be identified. In some embodiments, machine vision and / or ML systems can identify fly balls as key events, while identifying fly balls caught by outfielders jumping over the home run fence as hot events with unique interest. Popular events can be a combination of key events in sequence or proximity. In some embodiments, super attacks in fighting games are key events, and defensive counterattacks are key events, but specifically, super attacks when players defend and counterattack are identified as popular events. In some embodiments, events that occur within a specific amount of time (temporal proximity) of another event (such as a series of opponent eliminations) are identified as popular events.
[0149] In some embodiments, the application module includes defects in the game, such as known vulnerabilities, which are allowed in certain areas of competitive electronic games. For example, a collision vulnerability between a player's avatar and an object in the game environment can be exploited to implement a traversal technique in the game engine that is not otherwise possible. In some communities of speedrunning electronic games, the use of defects is allowed or encouraged, even though this is not the intended operation of the game engine. Such defect events can be considered popular events because they are not necessary to complete the game, but for a specific audience group, they are a unique and interesting use or interaction of the game environment.
[0150] In certain embodiments, the texture, model, animation or key event sequence or other occurrences in the video information describing the game environment may not exist or cannot be identified in an existing application module or event list. Such occurrences can be identified as rare events. In certain embodiments, rare events include some loopholes or defects that are not expected in the game environment. In certain embodiments, rare events are included in secrets or hidden features that are not commonly experienced in the game. For example, a hidden role or stage in a game application may need to meet carefully designed conditions before the player can activate the role. Therefore, a limited number of players may experience rare events. The experience of rare events can be associated with a specific type of player who is interested in exploring the details of the game environment or game application, and tags associated with rare events can help provide relevant information in the user profile.
[0151] In some embodiments, the application module includes a probability table that allows detection of rare events in video information. For example, a drop table for a role-playing game can control the probability that the game engine provides a specific item to a player avatar in a game environment. If the drop rate of an item is 5.0%, a single detection of the item in the video information is not common by design, but it is not abnormal. However, if the method or system described herein detects that an item has 5 drops in 20 opportunities (0.000000147% chance), then the sequence can indicate a rare event of interest. In another example, it may be impossible to run the same gameplay multiple times in a football simulation game application and obtain the same result. Although it may not be rare or impossible to select the same gameplay multiple times in a row, executing the same gameplay but obtaining the same result (such as a weak side sweep running to the sideline tactic 11 times in a row, each time producing 7 yards), may indicate that a rare event of interest has occurred. The application module may include a threshold to determine when a series of possible events become rare enough to be designated as a rare event. In some embodiments, a probability curve may be calculated based on a drop table or other probability table, and a threshold may be set as a standard deviation away from the most likely outcome. In another embodiment, a threshold may be set manually so that a detected rare event or sequence of events is reported when an occurrence exceeds a manually set threshold.
[0152] Although some embodiments of the system and method for identifying and / or marking events only evaluate video information, some embodiments evaluate other forms of information or data to supplement the video information. In some embodiments, the game play obtained further includes audio information. The audio information can provide additional data about events in the game environment, which may not be visible on the video information. In some embodiments, audio prompts such as dialogue, music, or sound effects can indicate the presence, proximity, or direction of objects or events in the game environment. In some examples, the player avatar can dodge attacks made by a boss character, preventing visual identification of the boss character or attack, while the audio prompt indicates the occurrence of an off-screen attack. In some embodiments, the audio information includes recorded player or chat comments from the video information and the audio information, thereby allowing identification of discussions or comments about the game environment.
[0153] In some embodiments, the video information includes user input information. According to the present disclosure, user input should be understood to include any signal or input by any input mechanism that provides instructions to the client device to interact with and / or affect the game application. The user input information can provide additional context for the events detected in the evaluation frame of the video information. For example, the user input can indicate that the user is trying to enter a super attack command in a fighting game, which is expected and defensively counterattacked, generating examples of combined key events, popular events, and rare events.
[0154] The identified video information and events can be associated with tags or tag categories in the application module and / or recommendation engine. The method further includes querying the tag table and identifying tags associated with the identified events. For example, in a first game application, an identified event related to healing a cooperative teammate in an MMORPG can be associated with a "cooperative tag" or a "team player" tag. In another game application, providing an assist to a teammate in a sports game application can be associated with the same tag, although the actual event is different. Aggregation of multiple iterations of a tag within a user profile can increase the impact of the tag on the user profile.
[0155] The method includes recording the identified tag to a user profile. In some examples, the tag is recorded in the user profile independently of the game application being played. In some examples, multiple tags are recorded for a single identified event. Aggregation of multiple iterations of a tag within a user profile can increase the impact of the tag on the user profile.
[0156] In other examples, the recommendation engine detects network communications between a client device and a game server computer, where the network communications are indicative of user decisions within a gaming application. Figure 4It is an embodiment of the system, wherein the client device communicates data with the server computer via a network. In some examples, the server computer provides information of at least some parts of the game application executed by the processor to the client device from the hardware storage device. For example, the processor can receive network communications about the game state of an online multiplayer match of the game application from the server computer. The recommendation engine detects game state communications between the client device and the server computer to identify events or patterns within the game application executed by the processor of the client device. In at least one example, the recommendation engine detects a match request from the client device to the server computer to initiate an online competitive PVP match in the game application. In at least another example, the recommendation engine detects a support request from the game application to allow another user to assist the user (or client device) in a single-player campaign mode of the game application.
[0157] In some embodiments, the recommendation engine detects network communications related to achievement or trophy completion between the client device and the server computer. For example, most achievement or trophy completions are stored in the server computer (via the processor on the hardware storage device) to allow the user to access his or her achievement list (and progress toward achievement completion) from multiple networked devices. Therefore, when an achievement or trophy is completed at the client device executing the game application, the network communications related to the achievement or trophy are transmitted to the server computer. The network communications can notify the recommendation engine of the achievement and / or trophy, for which the recommendation engine can query the tag table and record one or more tags to the user profile.
[0158] In some embodiments, the network communications between the client device and the server computer further include game statistics, such as total game time, time played multiplayer games, total number of matches played, total number of eliminations, total number of cures, in-game ranking, PVP ranking, etc. For example, a competitive online gaming application may allow cross-platform gaming using different user accounts associated with a single gaming profile that varies for the gaming application. In at least one example, a first user account associated with a video game console platform and a second user account associated with a personal computer platform are both associated with a gaming profile (e.g., linked to a gaming profile) that shares cumulative gaming statistics between the two user accounts used to play the gaming application. In some examples, the recommendation engine 419 detects network communications associated with the cumulative gaming statistics of the gaming profile, thereby allowing the recommendation engine to identify and record tags associated with cross-platform gaming.
[0159] In some embodiments, the user profile includes a game history and multiple game records associated therewith. The game record includes one or more events and / or game statistics of each game. For example, an event may include an event (such as a key event) identified based on object detection and / or event detection described herein or based on an identified achievement or trophy completed when playing a game using a user profile. Game statistics reflect the cumulative operation or time spent by the user when playing a game application using a user profile, and may include game statistics tracked by the game application, or statistics (such as total time) measured by the user profile, or statistics (such as total match times, eliminations, wins, losses, treatments, completed levels, completed game clearances, etc.) measured by an ML system or recommendation engine.
[0160] In some embodiments, the recommendation engine accesses or obtains one or more game records in the user profile to determine tags associated with game events and / or game statistics. For example, the recommendation engine can query the tag table for any tags associated with the first event of the first game record. When the associated tags are identified, the recommendation engine then records the associated tags in the tag list. Similarly, the recommendation engine can query the tag table for any tags associated with the game statistics of the first game record. When the associated tags are identified, the recommendation engine then records the associated tags in the tag list. The recommendation engine can repeat this process for each game record.
[0161] In some embodiments, the tag list is stored in the user profile, which can reduce and / or eliminate the need for redundant queries and records of tags. The recommendation engine can record tags in the tag list together with the number or weight of corresponding tags. In some embodiments, the relative number or weight of tags allows the recommendation engine to evaluate the user's preferences and experience during gameplay to customize the recommendation for new unplayed games. It should be understood that although the recommendation herein is described as for unplayed games, the recommendation engine can also recommend games that have been played before that exceed the unplayed time period or the user "touch and go" in the game history and only play a short time game. In other words, the recommendation engine can recommend a new unplayed game to the user profile, or a functionally "unplayed" game, because the user has not played this game in a sufficiently long time period (e.g., 1 year, 3 years, 5 years, on the current generation console, etc.), or has not fully played this game.
[0162] In some embodiments, the weight is based at least in part on the number of times a particular tag has been recorded to a tag list based on unique events, achievements, game statistics, etc. For example, a "completionist" tag may be recorded when a user profile is associated with completing 100% of achievements or trophies in a game application. For each game record in the game history that reflects all achievements or trophies completed, the recommendation engine may assign an instance of the "completionist" tag. In another example, the recommendation engine may record an instance of the "player vs. player" tag each time a competitive match request network communication is detected and / or each time a competitive PvP round is completed.
[0163] In some embodiments, the weights are relative weights between tags. In some examples, the weights are based at least in part on the duration of playing the game application (or game record) associated with the instance of the tag. For example, the weight of the "caster" tag may reflect that the user profile has played a caster-class character for 140 hours in any game application, compared to only 7 hours of playing a melee-class character in any game application.
[0164] In other examples, the weight is based at least in part on the estimated or calculated time to earn the tag. For example, a "completionist" tag may be assigned a greater weight because the "completionist" tag is associated with completing all achievements or trophies in the game, which inherently includes completing or experiencing many events associated with each of the other tags. In the previous example, the weight of the "caster" tag 646 is based on the number of hours played as a character in that category. In some embodiments, a weight of 100 may be assigned to each instance of the "completionist" tag recorded to the tag list, based on an estimated 100 hours required to achieve each instance of the "completionist" tag.
[0165] In some embodiments, a method for recommending unplayed games to a user includes accessing an unplayed game list. In some embodiments, accessing the unplayed game list includes comparing the game history of the user profile with the available game list. For example, the user profile can be associated with a video game platform, such as a video game distribution platform, a video game multiplayer platform, a video game social platform, or another online video game platform that allows users to communicate with the video game platform to access available game applications or parts of game applications. In a specific example, the video game distribution platform includes a game application library that can be downloaded to a client device, and the downloaded game application can be executed on the client device. In another example, the video game distribution platform is a cloud-based video game platform that allows client devices to access and interact with game applications stored and executed on a remote server. In some embodiments, the unplayed game list includes game applications that can be downloaded to a client device and / or can be used for cloud-based access and interaction.
[0166] The unplayed game list includes at least one game application that exists in the available game list and does not exist in the game history of the user profile. In some embodiments, the unplayed game list includes at least one game application that the user profile that exists in the game history has not visited or played within a predetermined time period. In one example, the unplayed game list can include any game application that is not in the game history or that the user profile has not visited or played in 3 years in the available game list. In such examples, the method allows recommendation to play old games that the user may like to play again, although the user has played the game before. In some embodiments, the unplayed game list includes at least one game application that the user profile that exists in the game history has played for a total time less than a predetermined duration. For example, the unplayed game list can include any game application that is not in the game history or that the user profile has not visited or played for more than 30 minutes in the available game list. In such an example, the method allows recommendation to play a game application that matches the user profile that the user can have enough game time to enjoy, although the game application exists in the game history in a minimal sense.
[0167] The method further includes comparing one or more game attribute tags of a plurality of unplayed games with a tag list of a user profile. The unplayed game list includes a plurality of unplayed games. In some embodiments, at least some of the unplayed games in the plurality of unplayed games have game attribute tags associated therewith, which describe or reflect gameplay, type, art style, game mode, theme or other game attributes. In some examples, at least some game attribute tags may be predetermined by an operator, developer or publisher of a video game platform. In other examples, at least some game attribute tags may be community generated. In a specific example, a game application in which a threshold percentage of users complete 100% of achievements or trophies (associated with a "completionist" tag recorded to a user profile) adds a "completionist" tag to the game attribute tag of the game application. The game attribute tag indicates that the game application is particularly interested in users who like to complete 100% achievements or trophies. In another specific example, a game application in which a threshold number of users complete a minimum number of competitive online PvP matches (associated with a "PvP" tag recorded to a user profile) adds a "PvP" tag to the game attribute tag of the game application. The game attribute tag indicates that the game application is particularly interesting to users who like active PvP communities. The method includes comparing one or more tags of the game not played to a tag list of a user profile to determine a degree of match between the one or more tags of the game not played and the tag list of the user profile.
[0168] In some embodiments, the game attribute tags are further weighted, similar to the weights. For example, a fighting game type game application is primarily focused on or relies on competitive multiplayer games. This is in stark contrast to an action / adventure type game application, which is primarily conducted in a single-player campaign but provides competitive PvP gameplay. Although both game applications may have a "PvP" game attribute tag associated with them, a fighting game type game application may have a higher-weighted "PvP" tag than an action / adventure game type game application to more accurately reflect the relative portion of the user experience that focuses on PvP in each game application.
[0169] In some embodiments, the method further includes ranking at least a portion of a plurality of unplayed games based at least in part on a list of tags. In some embodiments, ranking at least a portion of a plurality of unplayed games includes calculating a percentage match of a list of tags with a game attribute tag of each unplayed game in a plurality of unplayed games. For example, a tag list of a user profile including all game attribute tags of an unplayed game application can be a 100% match. In another example, a tag list of a user profile including all game attribute tags of an unplayed game application and no tags that are not present in the game attribute tags can be a 100% match. In yet another example, a tag list of a user profile including all game attribute tags of an unplayed game application and equal weights of each tag can be a 100% match. In such an example, a tag list of a user profile including game attribute tags of an unplayed game application with different weights can produce a match of less than 100%.
[0170] In some embodiments, ranking at least a portion of the plurality of unplayed games includes clustering the unplayed games into a hierarchy from which the user can select the unplayed games. For example, a first hierarchy may include unplayed game applications that have a 75% or higher match between the tag list of the user profile and the game attribute tags of the unplayed game applications, and a second hierarchy may include unplayed game applications that have a 50% match and a 75% match between the tag list of the user profile and the game attribute tags of the unplayed game applications. The first hierarchy indicates that the commonality between the tag list of the user profile and the game attribute tags of the game applications is high, while the second hierarchy indicates that the commonality between the tag list of the user profile and the game attribute tags of the game applications is low.
[0171] In another example, the first tier may include unplayed game applications that have a 75% or higher match between the tag list of the user profile and the game attribute tags of the unplayed game applications, and the second tier may include unplayed game applications that have a 75% or higher match between the tag list of the user profile and the game attribute tags of the unplayed game applications, but at least one tag or tag category between the tag list and the game attribute does not match. For example, the user profile may have a tag list including "PvP", "Fast-paced", "Fantasy", "Teammate", and "Melee", while the game attribute tags include "PvP", "Fast-paced", "Sci-Fi", "Teammate", and "Melee". The first tier indicates that the commonality between the tag list of the user profile and the game attribute tags of the game application is high, while the second tier provides users with different types of games to try while indicating that the commonality between the tag list of the user profile and the game attribute tags of the game application is high.
[0172] A user may not always want his or her next gaming experience to be exactly the same as the previous gaming experience, and different hierarchies can allow users to quickly visualize options. The method includes presenting recommended games to the user based at least in part on a plurality of ranked unplayed games. In some embodiments, presenting recommended games includes presenting a graphical user interface (GUI) to the user, which includes a representation of an unplayed game application. In some examples, the GUI includes a ranking indicator. The ranking indicator can convey to the user the percentage match between the tag list of the user profile and the game attribute tags of the unplayed game application. The ranking indicator can convey the level of matching, such as "A", "B", "C", etc. The ranking indicator can include a description of the relationship between the tag list of the user profile and the game attribute tags of the unplayed game application, such as "very much matches your preferences" or "similar to your preferences, but with science fiction".
[0173] In some embodiments, presenting a recommended game to a user based at least in part on a plurality of ranked unplayed games includes providing a link to a cloud-based copy of a game application to allow a user to quickly try or experience the game without waiting for the game application to be downloaded to a client device. In some embodiments, presenting a recommended game to a user based at least in part on a plurality of ranked unplayed games includes automatically downloading at least a portion of the recommended game to a client device to allow a user to quickly try or experience the game without initializing the download and waiting for the game application to be downloaded to the client device. In some examples, the game application can execute a portion of the game, such as a tutorial, without having to download the game application in its entirety. The method may include downloading a portion of the game application required to allow the user to automatically experience the game application. In some embodiments, presenting a recommended game to a user based at least in part on a plurality of ranked unplayed games includes downloading at least a portion of the highest ranked matches between a tag list and a plurality of game application game attribute tags.
[0174] In some embodiments, the client device displays a GUI based on a recommended game template with multiple fields to the user. The client device receives populated information from the recommendation engine to display recommended game applications to the user. For example, the recommended game template may include the highest ranked recommended game application within a plurality of ranked unplayed games. In other examples, the recommended game template may include a plurality of highest ranked recommended game applications. In yet another example, the recommended game template may further include the highest ranked recommended game application and at least one unplayed game application that matches above a minimum recommendation threshold percentage but has at least one game attribute tag that is not shared with the tag list of the user profile. For example, the recommended game template may include the highest ranked matches in a plurality of different types based at least in part on a plurality of ranked unplayed games.
[0175] In some embodiments, the recommended game template includes a game title and game art. The recommended game template presents one or more options for launching or preparing to launch the recommended game, such as a local launch input (if the client device has downloaded the recommended game application to a local hardware storage device), a cloud launch input (if the recommended game application can be played based on the cloud), or a download input (to initialize the download of the recommended game application to the client device).
[0176] To help users select recommended game applications, in some embodiments, the recommended game template includes a quantitative relationship indicator and / or a qualitative relationship indicator. The quantitative relationship indicator can convey the quantitative relationship or match between the tag list of the user profile and the game attribute tags of the recommended game. For example, the quantitative relationship indicator can be a digital representation of the percentage match between the tag list of the user profile and the game attribute tags of the recommended game. The qualitative relationship indicator can convey the qualitative relationship or match between the tag list of the user profile and the game attribute tags of the recommended game. For example, the qualitative relationship indicator can describe to the user how the recommended game matches or does not match the tag list of the user profile. In at least one example, the qualitative relationship indicator can indicate that the recommended game is "the highest match with the tag list of the user profile within the sports game type" or a similar qualitative description.
[0177] In some embodiments, a recommendation engine (whether executed on a client device, a server computer, or other computing device in data communication with the client device and / or the server computer) can continuously or periodically update a tag list of a user profile and a plurality of ranked unplayed games. A method of recommending unplayed games to a user includes, in some embodiments, identifying events in video information from a gaming application, populating a tag list of a user profile with the identified events, and using the tag list for the ranked unplayed games for presentation to the user.
[0178] In some embodiments, the method may use any source of video information from the gaming application, such as a gameplay recording, a reconstructed rendering of a gameplay session based on game state data, or a real-time stream of the gameplay. For example, obtaining the video information may include obtaining the video information in real time as the video information is generated by a processor of the client device (e.g., during a real-time streaming of the gameplay). In some examples, obtaining the video information includes accessing a gameplay recording generated after the fact by a processor of the client device, such as from an archived gameplay recording and / or game state data posted on a social media platform.
[0179] The method includes evaluating at least one of a plurality of frames of video information to identify a virtual object, texture, model, or animation. After identifying the virtual object, texture, model, or animation in the frame, the method includes determining the presence of at least one event associated with the detected element.
[0180] In some embodiments, determining the presence of at least one event in the video information comprises comparing the detected object, texture, model, or animation to one or more events of an application module. As described herein, the application module can be predetermined or can be generated by the ML system. In some embodiments, the application module includes key events, popular events, rare events, any other type of event, or a combination thereof.
[0181] Although some embodiments of the system and method for identifying and / or marking events only evaluate video information, some embodiments evaluate other forms of information or data to supplement the video information. In some embodiments, the game play obtained further includes audio information. The audio information can provide additional data about events in the game environment, which may not be visible on the video information. In some embodiments, audio prompts such as dialogue, music, or sound effects can indicate the presence, proximity, or direction of objects or events in the game environment. In some examples, the player avatar can dodge attacks made by the boss character, thereby preventing visual identification of the boss character or attack, and the audio prompt indicates the occurrence of an off-screen attack. In some embodiments, the audio information includes recorded player or chat comments from the video information and the audio information, thereby allowing identification of discussions or comments about the game environment.
[0182] In some embodiments, the video information includes user input information. According to the present disclosure, user input should be understood to include any signal or input by any input mechanism that provides instructions to the client device to interact with and / or affect the game application. The user input information can provide additional context for the events detected in the evaluation frame of the video information. For example, the user input can indicate that the user is trying to enter a super attack command in a fighting game, which is expected and defensively counterattacked, generating examples of combined key events, popular events, and rare events.
[0183] In some embodiments, at least one event is the completion of an achievement or trophy. For example, the completion of an achievement or trophy can be communicated to a server computer via network communications and / or recorded at the shell level or operating system level of a client device. The recommendation engine can detect the completion of an achievement or trophy as at least one event in the user's gameplay.
[0184] The identified video information and / or events can be associated with tags or tag categories in the application module and / or recommendation engine. The method further includes querying the tag table and identifying tags associated with the identified events. For example, in a first game application, an identified event related to healing a cooperative teammate in an MMORPG can be associated with a "cooperation" tag or a "team player" tag. In another game application, providing an assist to a teammate in a sports game application can be associated with the same tag, although the actual event is different. Aggregation of multiple iterations of a tag within a user profile can increase the impact of the tag on the user profile.
[0185] The method includes recording the identified tag to a user profile. In some examples, the tag is recorded in the user profile independently of the game application being played. In some examples, multiple tags are recorded for a single identified event. Aggregation of multiple iterations of a tag within a user profile can increase the impact of the tag on the user profile.
[0186] In some embodiments, the method further includes accessing a list of unplayed games. In some embodiments, accessing the list of unplayed games includes comparing the game history of the user profile with the list of available games. For example, the user profile can be associated with a video game platform, such as a video game distribution platform, a video game multiplayer platform, a video game social platform, or another online video game platform that allows users to communicate with the video game platform to access available game applications or parts of game applications. In a specific example, the video game distribution platform includes a game application library that can be downloaded to a client device, and the downloaded game application can be executed on the client device. In another example, the video game distribution platform is a cloud-based video game platform that allows client devices to access and interact with game applications stored and executed on a remote server. In some embodiments, the unplayed game list includes game applications that can be downloaded to a client device and / or can be used for cloud-based access and interaction.
[0187] The unplayed game list includes at least one game application that exists in the available game list and does not exist in the game history of the user profile. In some embodiments, the unplayed game list includes at least one game application that the user profile that exists in the game history has not visited or played within a predetermined time period. In one example, the unplayed game list can include any game application that is not in the game history or that the user profile has not visited or played in 3 years in the available game list. In such examples, the method allows recommendation to play old games that the user may like to play again, although the user has played the game before. In some embodiments, the unplayed game list includes at least one game application that the user profile that exists in the game history has played for a total time less than a predetermined duration. For example, the unplayed game list can include any game application that is not in the game history or that the user profile has not visited or played for more than 30 minutes in the available game list. In such an example, the method allows recommendation to play a game application that matches the user profile that the user can have enough game time to enjoy, although the game application exists in the game history in a minimal sense.
[0188] The method further includes comparing one or more game attribute tags of a plurality of unplayed games with a tag list of a user profile. The unplayed game list includes a plurality of unplayed games. In some embodiments, at least some of the unplayed games in the plurality of unplayed games have game attribute tags associated therewith, which describe or reflect gameplay, type, art style, game mode, theme or other game attributes. In some examples, at least some game attribute tags may be predetermined by an operator, developer or publisher of a video game platform. In other examples, at least some game attribute tags may be community generated. In a specific example, a game application in which a threshold percentage of users complete 100% of achievements or trophies (associated with a "completionist" tag recorded to a user profile) adds a "completionist" tag to the game attribute tag of the game application. The game attribute tag indicates that the game application is particularly interested in users who like to complete 100% achievements or trophies. In another specific example, a game application in which a threshold number of users complete a minimum number of competitive online PvP matches (associated with a "PvP" tag recorded to a user profile) adds a "PvP" tag to the game attribute tag of the game application. The game attribute tag indicates that the game application is particularly interesting to users who like active PvP communities. The method includes comparing one or more tags of the game not played to a tag list of a user profile to determine a degree of match between the one or more tags of the game not played and the tag list of the user profile.
[0189] In some embodiments, the game attribute tags are further weighted. For example, a fighting game type game application is primarily focused on or relies on competitive multiplayer games. This is in stark contrast to an action / adventure type game application, which is primarily conducted in a single-player campaign but provides competitive PvP gameplay. Although both game applications may have a "PvP" game attribute tag associated with them, a fighting game type game application may have a higher weighted "PvP" tag than an action / adventure game type game application to more accurately reflect the relative portion of the user experience that focuses on PvP in each game application.
[0190] In some embodiments, the method further includes ranking at least a portion of a plurality of unplayed games based at least in part on a list of tags. In some embodiments, ranking at least a portion of a plurality of unplayed games includes calculating a percentage match of a list of tags with a game attribute tag of each unplayed game in a plurality of unplayed games. For example, a tag list of a user profile including all game attribute tags of an unplayed game application can be a 100% match. In another example, a tag list of a user profile including all game attribute tags of an unplayed game application and no tags that are not present in the game attribute tags can be a 100% match. In yet another example, a tag list of a user profile including all game attribute tags of an unplayed game application and equal weights of each tag can be a 100% match. In such an example, a tag list of a user profile including game attribute tags of an unplayed game application with different weights can produce a match of less than 100%.
[0191] In some embodiments, ranking at least a portion of the plurality of unplayed games includes clustering the unplayed games into a hierarchy from which the user can select the unplayed games. For example, a first hierarchy may include unplayed game applications that have a 75% or higher match between the tag list of the user profile and the game attribute tags of the unplayed game applications, and a second hierarchy may include unplayed game applications that have a 50% match and a 75% match between the tag list of the user profile and the game attribute tags of the unplayed game applications. The first hierarchy indicates that the commonality between the tag list of the user profile and the game attribute tags of the game applications is high, while the second hierarchy indicates that the commonality between the tag list of the user profile and the game attribute tags of the game applications is low.
[0192] In another example, the first tier may include unplayed game applications that have a 75% or higher match between the tag list of the user profile and the game attribute tags of the unplayed game applications, and the second tier may include unplayed game applications that have a 75% or higher match between the tag list of the user profile and the game attribute tags of the unplayed game applications, but at least one tag or tag category between the tag list and the game attribute does not match. For example, the user profile may have a tag list including "PvP", "Fast-paced", "Fantasy", "Teammate", and "Melee", while the game attribute tags include "PvP", "Fast-paced", "Sci-Fi", "Teammate", and "Melee". The first tier indicates that the commonality between the tag list of the user profile and the game attribute tags of the game application is high, while the second tier provides users with different types of games to try while indicating that the commonality between the tag list of the user profile and the game attribute tags of the game application is high.
[0193] A user may not always want his or her next gaming experience to be exactly the same as the previous gaming experience, and different hierarchies can allow users to quickly visualize options. The method includes presenting recommended games to the user based at least in part on a plurality of ranked unplayed games. In some embodiments, presenting recommended games includes presenting a graphical user interface (GUI) to the user, which includes a representation of an unplayed game application. In some examples, the GUI includes a ranking indicator. The ranking indicator can convey to the user the percentage match between the tag list of the user profile and the game attribute tags of the unplayed game application. The ranking indicator can convey the level of matching, such as "A", "B", "C", etc. The ranking indicator can include a description of the relationship between the tag list of the user profile and the game attribute tags of the unplayed game application, such as "very much matches your preferences" or "similar to your preferences, but with science fiction".
[0194] In some embodiments, presenting a recommended game to a user based at least in part on a plurality of ranked unplayed games includes providing a link to a cloud-based copy of a game application to allow a user to quickly try or experience the game without waiting for the game application to be downloaded to a client device. In some embodiments, presenting a recommended game to a user based at least in part on a plurality of ranked unplayed games includes automatically downloading at least a portion of the recommended game to a client device to allow a user to quickly try or experience the game without initializing the download and waiting for the game application to be downloaded to the client device. In some examples, the game application can execute a portion of the game, such as a tutorial, without having to download the game application in its entirety. The method may include downloading a portion of the game application required to allow the user to automatically experience the game application. In some embodiments, presenting a recommended game to a user based at least in part on a plurality of ranked unplayed games includes downloading at least a portion of the highest ranked matches between a tag list and a plurality of game application game attribute tags.
[0195] In at least some embodiments, systems and methods according to the present disclosure may provide users with more relevant recommendations based not only on gaming applications that the user has tried or played, but also based on the user's choices, experiences, preferences, and selections during their interaction with the gaming application.
[0196] The present disclosure relates to systems and methods for recommending video games to users according to at least the examples provided in the following sections:
[0197] [A1] In some embodiments, a method for recommending unplayed game applications to a user includes: obtaining a game history associated with a user profile, wherein the game history includes at least one game record of a game application that has been played with the user profile; and evaluating the game history to obtain a plurality of game events associated with the game application of the game history. The method further includes: accessing a tag table associated with the plurality of game events associated with the game application; aggregating a plurality of tags in a tag list in the user profile based at least in part on the tag table and the plurality of game events; and presenting a recommendation for unplayed game applications to the user based at least in part on the plurality of tags.
[0198] [A2] In some embodiments, multiple tags of [A1] are stored in the user profile.
[0199] [A3] In some embodiments, presenting a recommendation for the unplayed game application to the user in [A1] or [A2] includes automatically downloading at least a portion of the unplayed game application.
[0200] [A4] In some embodiments, presenting a recommendation for an unplayed game application to the user in any of [A1] to [A3] includes presenting a GUI to the user, wherein the GUI includes a cloud launch input configured to launch the unplayed game application at a server computer.
[0201] [A5] In some embodiments, evaluating the game history in any of [A1] to [A4] to obtain multiple game events associated with the game application of the game history includes accessing multiple game achievements associated with the game application and completed by the user profile.
[0202] [A6] In some embodiments, aggregating multiple tags in any one of [A1] to [A5] further includes weighting the first tag in the tag list.
[0203] [A7] In some embodiments, weighting the first label in [A6] includes determining some instances of the first label.
[0204] [A8] In some embodiments, weighting the first tag in [A6] includes obtaining the total game time associated with the first tag.
[0205] [A9] In some embodiments, weighting the first tag in [A6] includes obtaining an estimated time to complete an instance of the first tag.
[0206] [B1] In some embodiments, a method for recommending unplayed game applications to a user includes: obtaining a game history associated with a user profile, wherein the game history includes at least one game record of a game application that has been played with the user profile; and evaluating the game history to obtain a plurality of game events associated with the game application of the game history. The method further includes: accessing a tag table associated with the plurality of game events associated with the game application; and aggregating a plurality of tags in a tag list in the user profile based at least in part on the tag table and the plurality of game events. The method further includes: identifying a gameplay event during user gameplay; obtaining a new tag associated with the gameplay event; and adding the new tag to the plurality of tags in the user profile. The method includes: presenting a recommendation for unplayed game applications to the user based at least in part on the plurality of tags.
[0207] [B2] In some embodiments, identifying the gameplay event in [B1] includes identifying a multiplayer network request.
[0208] [B3] In some embodiments, identifying the gameplay event in [B1] includes identifying a change in game statistics of the user's gameplay in the game application.
[0209] [B4] In some embodiments, identifying the gameplay event in [B1] includes identifying a change in a user interface in the video information.
[0210] [B5] In some embodiments, obtaining the new label in any of [B1] to [B4] includes inputting the gameplay event into an ML model.
[0211] [B6] In some embodiments, obtaining the new tag in any of [B1] to [B4] includes identifying the relevant gameplay event in the tag table.
[0212] [B7] In some embodiments, in any one of [B1] to [B6], the unplayed game application does not exist in the game history.
[0213] [C1] In some embodiments, a method for recommending unplayed games to a user includes: accessing a list of unplayed games; comparing one or more game attribute tags of a plurality of unplayed games with a tag list of a user profile; ranking at least a portion of the plurality of unplayed games based at least in part on the tag list; and presenting recommended games to the user based at least in part on the ranked plurality of unplayed games.
[0214] [C2] In some embodiments, accessing the list of unplayed games in [C1] includes comparing the game history to the list of available games.
[0215] [C3] In some embodiments, comparing one or more game attribute tags of multiple unplayed games with a tag list of a user profile in [C1] or [C2] includes comparing weights of the one or more game attribute tags with weights of the tag list.
[0216] [C4] In some embodiments, any of [C1] to [C3] wherein ranking at least a portion of the plurality of unplayed games based at least in part on the tag list includes creating a plurality of tiers based on the ranked plurality of unplayed games.
[0217] The articles "one", "an" and "the" are intended to indicate that there are one or more of the elements in the preceding description. The terms "including", "comprising" and "having" are intended to be inclusive and indicate that there may be additional elements in addition to the listed elements. Additionally, it will be understood that the reference to "one embodiment" or "one embodiment" of the present disclosure is not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the features. For example, any element described in relation to an embodiment of this invention may be combined with any element of any other embodiment described herein. The numerals, percentages, ratios or other values set forth herein are intended to include the value, as well as other values of the values set forth "about" or "approximately", as will be appreciated by those of ordinary skill in the art as encompassed by the embodiments of the present disclosure. Therefore, the values set forth should be interpreted broadly enough to cover values that are at least close enough to the values set forth to perform the desired function or achieve the desired result. The values set forth include at least the changes that will be expected in a suitable processing or production process, and may include values within 5%, 1%, 0.1% or 0.01% of the values set forth.
[0218] In view of this disclosure, those of ordinary skill in the art will recognize that equivalent constructions do not depart from the scope of this disclosure, and that various changes, substitutions, and modifications may be made to the embodiments disclosed herein without departing from the scope of this disclosure. Equivalent constructions including functional "means plus function" clauses are intended to cover structures described herein as performing that function, including both structural equivalents that operate in the same manner and equivalent structures that provide the same function. It is the express intention of the applicant not to invoke means plus function or other functional claims in any claim unless the term 'means for' appears together with the associated function. Every addition, deletion, and modification to the embodiments within the meaning and scope of the claims will be accepted by the claims.
[0219] It should be understood that any direction or reference frame in the foregoing description is only a relative direction or movement. For example, any reference to "front" and "back" or "top" and "bottom" or "left" and "right" merely describes the relative position or movement of the relevant elements.
[0220] The present disclosure may be embodied in other specific forms without departing from its characteristics. The described embodiments are considered to be illustrative rather than restrictive. Thus, the scope of the present invention is indicated by the appended claims rather than the foregoing description. Changes within the meaning and scope of the equivalent schemes of the claims should be covered by the scope of the claims.
Claims
1. A method for recommending an unplayed game application to a user, the method comprising: obtaining a gaming history associated with a user profile, wherein the gaming history includes at least one gaming record of a gaming application played with the user profile; evaluating the game history to obtain a plurality of game events associated with a game application of the game history; accessing a tag table associated with the plurality of game events associated with the game application; aggregating a plurality of tags in a tag list in the user profile based at least in part on the tag table and the plurality of game events; as well as Recommendations for unplayed game applications are presented to the user based at least in part on the plurality of tags.
2. The method according to claim 1, characterized in that The plurality of tags are stored in the user profile.
3. The method according to claim 1 or 2, characterized in that Presenting the user with a recommendation for an unplayed game application includes automatically downloading at least a portion of the unplayed game application.
4. A method according to any one of the preceding claims, characterised in that Presenting a recommendation for an unplayed game application to the user includes presenting a graphical user interface (GUI) to the user, wherein the GUI includes a cloud launch input configured to launch the unplayed game application at a server computer.
5. The method according to any one of the preceding claims, characterized in that Evaluating the gaming history to obtain a plurality of gaming events associated with a gaming application of the gaming history includes accessing a plurality of gaming achievements associated with the gaming application and completed by the user profile.
6. A method according to any one of the preceding claims, characterised in that Aggregating the plurality of tags further includes weighting a first tag of the tag list.
7. The method according to claim 6, characterized in that Weighting the first label includes determining a number of instances of the first label.
8. The method according to claim 6 or 7, characterized in that Weighting the first tag includes obtaining a total game time associated with the first tag.
9. The method according to any one of claims 6 to 8, characterized in that Weighting the first tag includes obtaining an estimated time to complete an instance of the first tag.
10. A method for recommending an unplayed game application to a user, the method comprising: obtaining a gaming history associated with a user profile, wherein the gaming history includes at least one gaming record of a gaming application played with the user profile; evaluating the gaming history to obtain a plurality of gaming events associated with the at least one gaming record of the gaming history; accessing a tag table associated with the plurality of game events associated with the game application; aggregating a plurality of tags in the user profile based at least in part on the tag table and the plurality of game events; Identify gameplay events during a user's gameplay; Get a new tag associated with the gameplay event; adding the new tag to the plurality of tags in the user profile; as well as Recommendations for unplayed game applications are presented to the user based at least in part on the plurality of tags.
11. The method according to claim 10, characterized in that Identifying the gameplay event includes identifying a multiplayer game network request.
12. The method according to claim 10, characterized in that Identifying the gameplay event includes identifying a change in a gaming statistic of the user's gameplay in the gaming application.
13. A method for recommending unplayed games to a user, the method comprising: Access the unplayed games list; comparing one or more game attribute tags of the plurality of unplayed games to a list of tags for a user profile; ranking at least a portion of the plurality of unplayed games based at least in part on the list of tags; as well as Recommended games are presented to the user based at least in part on the ranked plurality of unplayed games.
14. The method according to claim 13, characterized in that Accessing the unplayed games list includes comparing the game history to the list of available games.
15. The method according to claim 13, characterized in that Comparing the one or more game attribute tags of the plurality of unplayed games to the tag list of the user profile includes comparing weights of the one or more game attribute tags to weights of the tag list.
