Context aware AI non-player characters for video game interactions

By introducing situational awareness logic into electronic games, changing the behavior of NPCs and making them interact with player characters in a situational manner, solving the problem of lack of situational awareness of existing NPC behaviors and improving the game experience and attractiveness.

CN120019844APending Publication Date: 2025-05-20SONY INTERACTIVE ENTERTAINMENT LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411627893.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-11-17
Filing Date
2024-11-14
Publication Date
2025-05-20

AI Technical Summary

Technical Problem

The lack of contextual awareness of non-player characters (NPCs) behavior in existing video games, which makes their behavior unrelated to the purpose the player is trying to achieve, may distract the player and reduce the appeal of the game.

Method used

By introducing situational awareness logic into the game, NPCs can identify scene interaction data based on game state data, and generate situational awareness logic through filtering settings, transform the behavior of NPCs, and enable them to interact with player characters in a situational manner.

Benefits of technology

It realizes dynamic behavior adjustment of NPC, allowing it to interact with player characters in a situation-related manner, improves the gaming experience, and enhances the player's sense of participation and game appeal.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120019844A_ABST
    Figure CN120019844A_ABST
Patent Text Reader

Abstract

A method for generating a contextually aware non-player character in a video game includes executing the video game to enable game play using a player character controlled by a player. The game proceeding generates game state data. Scene interaction data may be identified from the game state data during execution of the video game. The scene interaction data may be filtered based on a filtering setting, the filtering configured to identify target interaction data that is processed to generate context aware logic. The context aware logic may be applied to a non-player character (NPC) associated with a current scene in which the game is performed. The contextual awareness logic transforms behavior of the NPC to contextual interaction with the player character during progress of the game by the player. A method for generating a non-player character for a video game is also described.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Video games typically include both player characters and non-player characters. A player character is a character in a video game controlled by a player of the video game. A non-player character (NPC) is a character in a video game controlled by game logic. NPCs typically perform pre-planned actions, which are executed without considering the goals the user controlling the player character is trying to achieve in the video game scenario. For example, an NPC can walk around in a predefined pattern in the video game scenario. In the case of a game scenario taking place in a tavern, the NPC might enter the tavern, walk up to the bar, order a drink, drink the drink, and then leave the tavern without interacting with the player character located at the bar. Alternatively, the NPC might briefly interact with the player character at the bar by making a simple greeting, e.g., "Hello" or "Good evening". In either scenario, the pre-planned actions of the NPC are a series of actions that are not specific to the user. Thus, the NPC essentially acts as a general "extra" in the game scenario. Therefore, since the pre-planned actions of the NPC do not take into account the user's context, the behavior of the NPC is not relevant to what the user is trying to achieve in the game. Thus, the presence of NPCs in the game may distract the user or may reduce the attractiveness of the game for the user to play the game.

[0002] In addition, in some video games, the pre-planned actions are varied by randomly selecting one (or more) actions to be performed by the NPC using a random seed generator. For example, the actions to be performed by the NPC can be randomly selected from a set of actions. However, the number of actions included in the set is typically relatively small. Thus, even though the pre-planned actions of the NPC will vary based on the random selection, if the user plays the video game regularly, the user will eventually experience the NPC performing repetitive actions because the number of possible actions for the NPC to perform is relatively small. Since the user experiences the NPC performing repetitive actions (e.g., hearing the NPC say the same piece of dialogue over and over again), the user's level of interest in playing the game may decrease over time.

[0003] It is in this context that the embodiments arise. Summary of the Invention

[0004] In an example implementation, a method for generating a context-aware non-player character in a video game is provided. The method includes executing a video game to effectuate game play using a player character controlled by a player, wherein the game play generates game state data. The method further includes identifying scene interaction data from the game state data during execution of the video game. The method also includes filtering the scene interaction data based on a filtering setting, wherein the filtering is configured to identify target interaction data processed to generate context-aware logic. Further still, the method includes applying the context-aware logic to a non-player character (NPC) associated with a current scene of the game play, wherein the context-aware logic transforms the behavior of the NPC to contextually interact with the player character during the player's game play.

[0005] In one implementation, the context-aware logic is compiled and configured to execute with the interaction logic of the NPC, and the behavior of the NPC is transformed for a period of time during which the context-aware logic is continuously applied. In one implementation, the game play mode defines when to apply the context-aware logic.

[0006] In one implementation, the behavior of the NPC is transformed to contextually interact with the player character by having the NPC communicate verbally with the player character. In another implementation, the behavior of the NPC is transformed to contextually interact with the player character by having the NPC perform an action related to the player character. In another implementation, the behavior of the NPC is transformed to contextually interact with the player character by having the NPC provide assistance to the player character.

[0007] In one implementation, the method further includes applying an activity setting that defines whether a lower degree of context-aware logic or a higher degree of context-aware logic is to be applied to the NPC. In this implementation, applying a lower degree of context-aware logic to the NPC reduces the degree of contextually interacting with the player character by the NPC during the player's game play, while applying a higher degree of context-aware logic to the NPC increases the degree of contextually interacting with the player character by the NPC during the player's game play. In one implementation, during execution of the video game, the target interaction data is continuously generated for the current scene of the game play, and the processing of the target interaction data includes executing a context interaction model that analyzes the classified features of the target interaction data to generate a descriptive interaction context for the current scene.

[0008] In one embodiment, the method further includes processing a generative artificial intelligence (AI) model that uses inputs of a descriptive interaction context regarding the current scenario, game training data from a video game, and user profile data, wherein the generative AI model is configured to generate situation-aware logic. In one embodiment, the video game is an online game with one or more viewers or a non-online game. In one embodiment, the target interaction data includes comments from one or more viewers, and the behavior of the NPC is changed by causing the NPC to convey the feelings of one or more viewers to the player character. In one embodiment, the method further includes applying a mode setting that regulates the amount and type of the feelings of one or more viewers conveyed by the NPC to the player character.

[0009] In another exemplary embodiment, a method for generating a non-player character for a video game is provided. The method includes executing a video game, wherein the video game includes a non-player character (NPC). The NPC is configured to interact in the scenario of the video game without the control of a real player of the video game. The method further includes processing game state data to identify the game-playing situation of the player character of the video game during the execution of the video game and applying situation-aware logic to the NPC. The situation-aware logic applied to the NPC is configured to transform the behavior of the NPC into a situation interaction with the player character.

[0010] In one embodiment, the behavior of the NPC in situation interaction with the player character is represented by causing the NPC to generate comments about the actions that occur during the execution of the video game to the player character. In another embodiment, the behavior of the NPC in situation interaction with the player character is represented by causing the NPC to generate comments about the chatter observed from one or more viewers regarding the actions that occur during the execution of the video game.

[0011] In one embodiment, when the player character is within the aura space of the NPC in the scenario of the video game, the application of the situation-aware logic to the NPC occurs for a period of time. In this embodiment, the behavior of the NPC is transformed to interact with the player character during the period of time when the situation-aware logic is applied.

[0012] In yet another exemplary embodiment, a non-transitory computer-readable medium is provided that includes program instructions for generating non-player characters for a video game. Execution of the program instructions by one or more processors of a computer system causes the one or more processors to perform the following operations: execute a video game that includes non-player characters (NPCs), where the NPCs are configured to interact in a scene of the video game without control by a real player of the video game; process game state data to identify the context of gameplay of a player character of the video game during execution of the video game; and apply context-aware logic to the NPCs, where the context-aware logic is configured to transform the behavior of the NPCs to interact contextually with the player character.

[0013] In one embodiment, the behavior of an NPC to interact contextually with a player character is represented by causing the NPC to generate comments to the player character about actions that occur during execution of the video game. In another embodiment, the behavior of an NPC to interact contextually with a player character is represented by causing the NPC to generate comments about chatter observed from one or more spectators regarding actions that occur during execution of the video game.

[0014] In one embodiment, the application of context-aware logic to an NPC occurs for a period of time when a player character is within the aura space of the NPC in a scene of the video game. In this embodiment, the behavior of the NPC is transformed to interact contextually with the player character for the period of time during which the context-aware logic is applied.

[0015] Other aspects and advantages of the present disclosure will become apparent from the following detailed description taken in conjunction with the drawings that illustrate, by way of example, the principles of the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1 is a simplified schematic diagram showing a video game that includes multiple non-player characters.

[0017] Figure 2 is a simplified schematic diagram showing a video game in accordance with one embodiment in which the behavior of a non-player character (NPC) is changed by applying context-aware logic to the NPC.

[0018] Figure 3 is a simplified schematic diagram showing additional details of a context-aware NPC logic generator in accordance with one embodiment.

[0019] Figure 4 is a simplified schematic diagram showing additional details of the filtering of scene interaction data in accordance with one embodiment.

[0020] Figure 5Is a simplified schematic diagram showing the degree to which context - aware logic to be applied to an NPC is adjusted using an activity setting according to one embodiment.

[0021] Figure 6A Is a simplified schematic diagram showing the mode switching that occurs when a player character moving within a game space encounters an NPC according to one embodiment.

[0022] Figure 6B Summarizes Figure 6A The diagram of the mode switching shown for NPC1, NPC2, and NPC3.

[0023] Figure 7 Shows the components of an example apparatus that can be used to implement aspects of various embodiments of the present disclosure. Detailed Description

[0024] In the following description, numerous specific details are set forth to provide a thorough understanding of example embodiments. However, it will be apparent to those skilled in the art that example embodiments may be practiced without some of these specific details. In other instances, if process operations and implementation details are already well - known, they are not described in detail.

[0025] Embodiments of the present invention provide methods for generating non - player characters in a video game. In one embodiment, game logic can be modified using one or more machine - learning systems. Some machine - learning systems learn the context of game activities that occur in a particular game and can be used to identify the types of activities that occur in the game and determine the context of the game activities of the player character in the scene. In some embodiments, non - player characters (NPCs) are introduced into the game scene using context - aware logic that enables the NPCs to be dynamically programmed to understand the context of the game environment and the context of the game environment relative to the player character. By providing the NPCs with intelligence that can be modified during the game, the NPCs can react to the game scene in real - time and provide timely and useful information to the player character, including, for example, feedback on activities occurring in the game, guidance on how to play the game, and comments on the development of the game. In addition, the way in which the NPCs interact with the player character can be set such that it appears that the NPCs are actively interacting with the player character rather than just performing random or pre - planned actions. This can be achieved by making the NPCs appear to look into the eyes of the player character during the interaction and, where appropriate, by making the NPCs make relevant movements during the interaction (e.g., pointing to relevant objects or in relevant directions).

[0026] In some embodiments, the degree to which an NPC interacts with a player character can be set such that, depending on the game context or the user's profile, the NPC interacts more or less with the player character. If the user's profile indicates that the user does not like to interact extensively with NPCs so as to avoid distraction from playing the game, the NPC can be programmed to interact less with the user's player character. Over time, machine learning can be used to learn the types of game activities that the player likes to interact more or less with NPCs for. In some embodiments, a large language model can be used in combination with generative artificial intelligence (AI) processing to provide the NPC with the language ability to communicate with the player character, e.g., to have a two-way conversation about the activities taking place in the game. Various embodiments are described herein that provide methods for transforming the behavior of an NPC such that the NPC can engage in contextual interactions with a player character (and thus with the player), rather than having the NPC be limited to performing random and / or pre-planned actions.

[0027] Figure 1 is a simplified schematic diagram showing a video game including a plurality of non-player characters (NPCs). As Figure 1 shown, the video game 100 includes a plurality of NPCs 102a through 102n. The number of NPCs included in the video game 100 can be varied to meet the requirements of a particular game. By way of example, the video game can include 2 NPCs, 10 NPCs, 100 NPCs, etc. Each NPC 102 has an appearance graphic, physical characteristics, bindings, animation files, and physical properties, and these components are used to render the NPCs in the video game. As is known to those skilled in the art, a player character also has an appearance graphic, physical effects, bindings, animation files, and physical properties for rendering the player character in the video game. The game engine (the underlying software framework of the video game) provides the core functionality required to process graphics, physical effects, audio, and input handling. The game logic includes game-specific code responsible for defining the rules of game play, character behavior, game objectives, and event handling. The game engine and the game logic interact to create the video game. This interaction between the game engine and the game logic typically follows a loop. The game engine runs the main game loop, in which the game engine handles core tasks such as rendering frames, updating the physical effects simulation, processing input, and triggering game events. During each iteration of the loop, the game logic is executed to update the game state based on player input and the rules of the game.

[0028] Each NPC 102 includes NPC interaction logic 104, which includes code that defines the pre-planned behavior of each NPC. As Figure 1As shown, NPC 102a includes corresponding NPC interaction logic 104a, and NPC 102n includes corresponding NPC interaction logic 104n. The pre-planned behavior of NPC 102 can include various different actions. For example, moving around in the scene of a video game according to a predetermined pattern, or saying a scripted conversation when approached by a player character. These simple and repetitive actions are not specific to the user, that is, the player controlling the player character, because the NPC interaction logic 104 does not know the user's situation in the game. Moreover, these actions are performed without considering the presence of the user in the game scene. Therefore, the pre-planned behavior of each NPC 102 has nothing to do with what the user is trying to achieve in the game scene (e.g., completing a task, getting a score, defeating a boss, etc.).

[0029] Figure 2 is a simplified schematic diagram of a video game showing, according to one embodiment, where the behavior of an NPC is changed by applying context-aware logic to the NPC. As Figure 2 shown, the video game 100 includes an NPC 102, which is equipped with NPC interaction logic 104. As described herein, the NPC interaction logic 104 includes code that defines the pre-planned behavior of the NPC 102. During the execution of the video game 100, game state data is continuously generated and this game state data is continuously communicated to the context-aware NPC logic generator 106. As is known to those skilled in the art, the game state data provides a meta-data stream that describes everything that is happening in the game. For example, the meta-data can include what the user has done in the game, which buttons have been pressed, how the buttons have been pressed, and what achievements the user has achieved (e.g., whether the user has won or lost, etc.). As is known to those skilled in the art, the game state data includes all the game-related data that the game engine (in combination with the game logic) needs to recreate the user's gameplay of the game. The game state data can also include other data that is not directly related to the gameplay of the game, such as data from the user's camera when the user is playing the game, audio data generated when the user is playing the game (e.g., two-way chat with one or more other players), and data generated when an audience is watching the user play the game (e.g., audience comments made in the audience chat section of the game).

[0030] The situation-aware NPC logic generator 106 processes game state data to identify the context of the gameplay of the player character of the video game 100 during the execution of the video game. In one embodiment, the situation-aware NPC logic generator 106 has logic regarding the video game 100 that enables the situation-aware NPC logic generator to use the game state data to identify what is happening in the game. In particular, for any given moment during the execution of the video game 100, the game state data provides a snapshot of the gameplay at that moment, and the situation-aware NPC logic generator 106 can identify the context of the gameplay from the snapshot. For example, if the game state data provides a snapshot of the game scene that includes clouds, birds, a path, a dog, and a player with a shield, then the logic regarding the video game 100 in the situation-aware NPC logic generator 106 can determine that the context of the gameplay involves a dog chasing the player character in level 5 of the game, and that the player character is likely to be bitten by the dog soon. Once the context of the gameplay has been identified, the situation-aware NPC logic generator 106 can generate appropriate logic to transform the behavior of the NPC 102 into a situation interaction with the player character. For example, the behavior of the NPC 102 can be transformed into a situation interaction with the player character by having the NPC communicate verbally with the player character, having the NPC perform an action related to the player character, or having the NPC provide assistance to the player character.

[0031] In one embodiment, the behavior of the NPC 102 is transformed into a situation interaction with the player character by having the NPC provide comments to the player character about the actions that occur during the execution of the game. For example, in the case of a game scene where a dog is chasing the player character, the NPC 102 can provide assistance to the player character by giving an instruction to the player character, e.g., telling the player character that if she raises her shield and moves towards the dog, the dog will back off. Alternatively, the NPC 102 can provide assistance to the player character by performing an action (e.g., interacting with the dog to give the player character time to get away from the dog).

[0032] In one embodiment, the behavior of NPC 102 is transformed into a contextual interaction with the player character by having the NPC provide comments to the player character about actions that occur during the execution of the game based on data that is not directly related to playing the game. In one example, if the game state data generated during the execution of the game includes data from the user's camera that indicates that the user's room is messy, NPC 102 can make a comment to the player character encouraging her to clean the room and / or make her bed. In another example, if the game state data generated during the execution of the game includes data from the spectator chat portion of the game, NPC 102 can make a comment to the player character that reflects the sentiment of the chatter observed by one or more spectators during the execution of the game. For example, if the chatter indicates that the spectators think the user is unaware that there are monsters hidden in the mountains, NPC 102 can tell the player character to watch out for monsters before the player character travels into the mountains.

[0033] In a scenario where the context-aware NPC logic generator 106 generates context-aware logic that involves verbal communication (e.g., conversation) with the player character, the context-aware NPC logic generator communicates with a large language model (LLM) 108, which is a type of artificial intelligence (AI) algorithm that can generate human-like text or speech. As is known to those skilled in the art, an LLM is trained on a large amount of data, which is typically in the form of text or speech, and can use this data to understand, summarize, generate, and predict new content. By communicating with the LLM 108 during the execution of the video game 100, the context-aware NPC logic generator 106 can dynamically generate the context-aware logic required for NPC 102 to engage in verbal communication with the player character. For example, in a game scenario that takes place in a tavern, NPC 102 can approach the player character at the bar and engage in a conversation with the player character.

[0034] The context-aware logic generated by the context-aware NPC logic generator 106 is continuously transmitted to the context-aware NPC logic 110 during the execution of the video game 100. In one embodiment, the context-aware logic received by the context-aware NPC logic 110 is code (e.g., a script) that defines how the behavior of NPC 102 will be transformed into a contextual interaction with the player character. As described above with reference to Figure 1 what was described, the NPC interaction logic 104 includes code that defines the pre-planned behavior of each NPC 102. Therefore, in order to transform the behavior of NPC 102 into a contextual interaction with the player character, the NPC interaction logic 104 must be modified to include new context-aware code that defines the transformed behavior of the NPC. For this purpose, the context-aware NPC logic 110 also includes instructions for modifying the NPC interaction logic 104 to include the new context-aware code.

[0035] In one embodiment, the context-aware logic is compiled and configured to execute with the NPC's interaction logic. In one embodiment, the context-aware NPC logic 110 first identifies the code in the NPC interaction logic 104 to be replaced, i.e., the code that defines the pre-planned behavior of the NPC. In this embodiment, the context-aware logic 110 then inserts a jump instruction into the code in the NPC interaction logic 104 that will cause the new context-aware code (from the context-aware NPC logic generator 106) to be executed instead of the code to be replaced. In another embodiment, the context-aware NPC logic 110 causes the code in the NPC interaction logic 104 to be recompiled with the new context-aware code instead of the code to be replaced. In this example, when the code in the NPC interaction logic is executed, the code that is executed includes the new context-aware code instead of the code to be replaced (the code that defines the pre-planned behavior of the NPC).

[0036] As the context-aware code is added to the NPC interaction logic 104 by the context-aware NPC logic 110, the NPC interaction logic 104 is transformed into the NPC interaction logic 104', as Figure 2 shown. The execution of the context-aware code in the NPC interaction logic 104' transforms the behavior of the NPC 102 into a context interaction with the player character during the user's game play. By way of example and as described in more detail herein, the behavior of the NPC 102 can be transformed into a context interaction with the player character by causing the NPC to engage in verbal communication with the player character, causing the NPC to perform actions related to the player character, or causing the NPC to provide assistance to the player character. Additionally, during the user's game play, the context-aware code in the NPC interaction logic 104' is continuously modified based on the context-aware logic dynamically generated by the context-aware NPC logic generator 106, which continuously receives and processes the status data generated during the game play. By continuously modifying the context-aware code in the NPC logic 104', the actions of the NPC 102 can be dynamically adjusted as needed so that the behavior of the NPC remains in context interaction with the player character during the user's game play. For example, in an example where the game scene takes place in a tavern and the NPC 102 approaches the player character at the bar and starts a conversation, the actions of the NPC can be dynamically adjusted so that the NPC remains in context interaction with the player character during the conversation, e.g., the NPC maintains appropriate eye contact with the player character, the NPC maintains a suitable distance from the player character, and the NPC responds appropriately to the player character when the player character speaks to the NPC.

[0037] Figure 3 is a simplified schematic diagram showing additional details of a context-aware NPC logic generator according to one embodiment. AsFigure 3 As shown, the context-aware NPC logic generator 106 receives game state data generated during the execution of the video game 100 in operation 112. In one implementation, the game state data is received via a suitable application programming interface (API) and stored in a memory for use. As is known to those skilled in the art, the game state data provides a meta-data stream that describes everything that is happening in the game. For example, the meta-data can describe actions that occur in the game, game scenarios, tracking history, and state variables available to the game engine (in conjunction with game logic) to reproduce the game and analyze interactions, actions, progress, etc.

[0038] In operation 114, during the execution of the video game 100, scene interaction data is continuously identified from the game state data. Generally, scene interaction data can be identified by continuously parsing the game state data to identify what activities are occurring in the game scene at a given moment, and then applying rules to determine whether such activities constitute significant events that should be identified as scene interaction data. In one implementation, snapshots of the game state data are taken periodically (e.g., every 3 seconds, every 5 seconds, every 10 seconds, etc.), and the snapshots of the game state data are processed by the game engine (in conjunction with game logic) to determine what activities are occurring in the game scene at the time of the snapshot. For example, activities occurring in the game scene can be determined to be that a player character is walking along a river, a player character has received 50 points for completing a task, a player character is driving a car, or a player character has failed to defeat a boss for the third consecutive time. Then, a set of rules is applied to the activities occurring in the game scene to determine whether the activities constitute significant events. In one implementation, activities occurring in the game scene are considered significant events if the activities involve a player character that is actively controlled by a user, and each significant event is identified as scene interaction data. On the other hand, if the activities in the game scene do not involve a player character that is actively controlled by a user, e.g., a player character is passively watching other game activities occur, the activities are not considered significant events and are not identified as scene interaction data. In other implementations, the scene interaction data is not limited to significant events occurring in the game scene. For example, in these other implementations, the scene interaction data can include speech data, game progress data, audience comments, and camera views, as described in more detail below with reference to Figure 4 is described in more detail.

[0039] In operation 116, the scene interaction data is filtered based on the filtering settings. In one embodiment, the filtering settings are configured to identify target interaction data that is processed to generate the context awareness logic, as will be described in more detail below. Generally speaking, the filtering operation analyzes the scene interaction data and excludes any data in the scene interaction data that is irrelevant to the problem of identifying where an NPC should go in the game scene to have a context interaction with the player character. For example, in a game scene where the player character is playing a fetch game with a dog, the game scene will typically include other elements such as birds, trees, clouds, etc., which are irrelevant to identifying where an NPC should go in the game scene. Therefore, the filtering operation will exclude these other elements from the scene interaction data. The data that is not excluded from the scene interaction data by the filtering operation includes data that is relevant to the problem of identifying where an NPC should go in the game scene, and this data is identified as the target interaction data.

[0040] The target interaction data generated in operation 116 by filtering the game state data is fed into the context interaction model 118. The context interaction model 118 is trained in many previous games to build a model that understands scene interactions and scene contexts. The context interaction model 118 processes the classified features of the target interaction data to generate a descriptive interaction context for the current game scene. For example, if the context interaction model 118 receives target interaction data that indicates that the current game scene involves a player character driving a car on a winding road in level 3 of a racing game, the context interaction model 118 will process the classified features of the target interaction data and determine the possible outcome of this game scene. If based on the training of the model on many previous games, the processing of the classified features determines that the player character may slide into a wall when attempting an upcoming hairpin turn, then the context interaction model 118 will generate a descriptive interaction context indicating that the player character's car is about to slide into a wall when attempting a hairpin turn in level 3 of the game. The descriptive interaction context generated by the context interaction model 118 is output to the generative artificial intelligence (AI) model 120. In one embodiment, the context interaction model 118 outputs the descriptive interaction context in the form of a text sentence, which is optimized to include as much descriptive information about the context interaction as possible.

[0041] The generative artificial intelligence (AI) model 120 is a model designed to generate situation - aware logic for controlling NPCs. The generative AI model 120 understands the video game 100 from the game training data used to build the model and has access to the user's profile data. The generative AI model 120 also understands the context of what is happening in the game by receiving, as input, the descriptive interaction context for the current game scene generated by the situational interaction model 118. The generative AI model processes inputs regarding the descriptive interaction context for the current game scene, the game training data from the game, and the user profile data, and generates situation - aware logic that can be applied to the NPCs. For example, in an example where the player character is driving a car on a winding road, the descriptive interaction context for the current game scene is that the player character's car is about to slide into a wall while attempting a hairpin turn in level 3 of the game. The user's profile data indicates that the user is a fairly skilled player and is willing to receive in - game assistance from the game. Also, the generative AI model 120 has been trained using game training data that includes many previous games of racing games played by the user and other data. The generative AI model 120 processes these inputs and generates appropriate situation - aware logic to control the NPCs so that the NPCs provide assistance to the player character. Specifically, in this example, the generative AI model 120 produces situation - aware logic that requires the NPC to give the following instructions to the player character: double - click the trigger R2 and pull both joysticks backward before entering the upcoming hairpin turn within the next 3 seconds. These instructions are formulated by the generative AI model 120 to help the player character avoid sliding into the wall when making the hairpin turn. For example, the NPC can be an NPC that acts as a pit stop manager for the player character and wears a headset to provide audio instructions to the player character. To further assist the user, the NPC can be displayed on the user's screen, for example, in a pop - up window or split - screen view, and the NPC can face the user or the player character when giving the instructions. In another example, the NPC can appear on the display panel of the car or as a heads - up display in the car and speak directly to the player character driving the car while giving the instructions.

[0042] Continuing to refer Figure 3 , the situation - aware logic generated by the generative AI model 120 of the situation - aware NPC logic generator 106 is output to the situation - aware logic 110 (also as Figure 2 shown). The situation - aware logic generated by the generative AI model 120 can be output to the situation - aware NPC logic 110 in the form of code, instructions, or a combination of code and instructions. As referred to above Figure 2As described, the context-aware NPC logic 110 modifies the code in the NPC interaction logic 104 according to the context-aware logic from the context-aware NPC logic generator 106. This transforms the NPC interaction logic 104 into the NPC interaction logic 104', and the execution of the context-aware code in the NPC interaction logic 104' transforms the behavior of the NPC 102 into context interaction with the player character during the user's gameplay. In an example where the player character is driving a car on a winding road, the behavior of the NPC repair station manager changes from performing random, pre-planned actions in the repair station area to providing timely assistance to help the player character avoid hitting a wall during a hairpin turn. As Figure 3 indicated by the circular arrow in, the game state data generated during the execution of the video game 100 is continuously processed to dynamically generate context-aware logic to transform the behavior of the NPC 102 during the user's gameplay, as described in detail above with reference to Figure 2 . This enables the dynamic adjustment of the behavior of the NPC 102 as needed, such that the behavior of the NPC remains in context interaction with the player character during the user's gameplay.

[0043] In one embodiment, the gameplay mode defines when the context-aware logic is applied to the NPC 102. In this embodiment, the gameplay mode can be set by the user (e.g., via a suitable graphical user interface (GUI)) or by the game system. For example, the user can select a gameplay mode that requires the context-aware logic to be applied to the NPC 102 when the user is playing a difficult part of the game, so that the NPC can provide assistance to the user's player character. In this example, the behavior of the NPC 102 is transformed for the duration of the period during which the context-aware logic is continuously applied (i.e., the difficult part of the game). Once the user completes the difficult part of the game, the context-aware logic is no longer applied to the NPC 102. In another embodiment, the game system can identify that the user can benefit from assistance in an upcoming part of the game and automatically select a gameplay mode that requires the context-aware logic to be applied to the NPC 102 during this part of the game.

[0044] Figure 4 is a simplified schematic diagram showing additional details of the filtering of the scene interaction data according to one embodiment. As Figure 4 shown, in the operation 116 where the scene interaction data is filtered (also as Figure 2In the example shown, the scene interaction data to be filtered includes action data 122, speech data 124, game progress data 124, (optional) audience comments 126, and (optional) camera views 130. The action data 122 includes action data generated during the game by the user. The speech data 124 may include speech data from the user (e.g., the user talking to other players during the scene) and speech data generated by the game (e.g., an NPC talking to another NPC or an NPC talking to a player character). The game progress data 128 includes data from the game that reflects the progress the user has made in the game, e.g., defeating the boss three times in a row and currently being in level 4. The audience comments 128 (which may optionally be included in the scene interaction data to be filtered) include audience comments made during or about the game scene, e.g., audience comments made in the audience chat section of the game. The camera views 130 (which may optionally be included in the scene interaction data to be filtered) may include data from the user's camera generated while the user is playing the game. The data from the user's camera may include camera views showing items of interest to the user in the background, e.g., a poster of a basketball player or a pop music star, a collection of books in a bookshelf, a tennis racket, etc.

[0045] In operation 132, features are extracted from the scene interaction data, and the features may include all or some of the following: action data 122, speech data 124, game progress data 126, audience comments 128, and camera views 130. In one embodiment, the features are extracted by a feature extractor that includes code for determining which data is particularly relevant to the game scene. Specifically, the feature extractor extracts the data determined to be particularly relevant to the game scene and eliminates the data determined to be less relevant to the game scene. Then, the feature extractor divides the extracted data into smaller data groups by identifying features that describe the data in each group. In operation 134, the features extracted in operation 132 are labeled for a machine learning model, e.g., a filtering model 136, by a feature classifier. Specifically, each feature classifier adds an appropriate label to each extracted feature, and the appropriate label is considered useful for training the filtering model 136. The classified features (i.e., the extracted scene interaction data that has been labeled with the labels) are fed into the filtering model 136.

[0046] In addition to the labeled scene interaction data, the filtering model 136 also receives a filtering mode setting 138 as input. The filtering mode setting can be set by the user or by the game system. In one implementation, the filtering mode setting is set by the user via any suitable graphical user interface (e.g., a slider). Based on the input received from the filtering mode setting 138, the filtering model 136 will filter the labeled scene interaction data with a relatively high level of filtering, a medium level of filtering, or no filtering at all. In one implementation, a relatively high level of filtering will remove scene interaction data that does not focus on the main interactions occurring in the game scene. For example, if the main interaction in the game scene involves a player character kicking a football, only the scene interaction data regarding the player character kicking the football is saved. A medium level of filtering will remove scene interaction data that involves interactions that are distant from the main interaction in the game scene, but save scene interaction data that is close to the main interaction occurring in the game scene. In the football example, the saved scene interaction data will include not only the scene interaction data regarding the player character kicking the football, but also the scene interaction data regarding other player characters and NPCs that are close to the player character kicking the football. In the case where no filtering is performed at all, the scene interaction data is left as is. In one implementation, the filtering model 136 is a machine learning model that learns over time which scene interaction data is more important and which scene interaction data is less important. The scene interaction data that passes through the filtering model 136 is identified as target interaction data. Among all the interaction data associated with the game scene, the target interaction data is the interaction data associated with the game scene that will be used to influence the behavior of the NPCs. In addition to the action data generated during the user's gameplay, the target interaction data can also include, for example, voice (e.g., audio data), chatter (e.g., audience comments), the user's success or failure levels in the game, and the user's need for help in the game.

[0047] In one implementation where the NPC conveys the feelings from the audience to the player character, a mode setting (e.g., the filtering mode setting) is applied to regulate the amount and type of the feelings from the audience conveyed to the NPC. In a game environment where the feelings from the audience are mainly respectful because the feelings provide positive comments or constructive criticism, the mode setting can be set to allow such feelings to be conveyed to the player character. On the other hand, in a game environment where the feelings from the audience are disrespectful because the feelings include a relatively large number of negative comments from so-called trolls, the mode setting can be set to block or otherwise prevent such feelings from being conveyed to the player character.

[0048] Figure 5 is a simplified schematic diagram showing the degree to which the situational awareness logic to be applied to the NPC is adjusted using the activity setting. AsFigure 5 As shown, video game 100 communicates with activity settings 140, which define the extent to which context-aware logic is to be applied to NPCs. In one embodiment, activity settings 140 include a low activity setting 140a and a high activity setting 140b. The low activity setting 140a causes a lower extent of context-aware logic to be applied to NPCs, which reduces the extent of context interaction between the NPCs and the player character during the user's gameplay. The high activity setting 140b causes a higher extent of context-aware logic to be applied to NPCs, which increases the extent of context interaction by the NPCs during the user's gameplay. In one embodiment, video game 100 transmits an instruction to activity settings 140 to select either the low activity setting 140a or the high activity setting 140b. The instruction can be generated based on input from the user or can be generated by video game 100, as will be described in more detail below. Activity settings 140 conveys the selected activity setting to the context-aware NPC logic 110 such that the selected activity setting can be incorporated into the context-aware code added to the NPC interaction logic 104 to transform the NPC interaction logic into the NPC interaction logic 104', as described in more detail with reference to Figure 2 and Figure 3 more detailedly described.

[0049] To illustrate how the low activity setting 140a and the high activity setting 140b differ in a game scenario, consider an example of a game scenario that takes place in a tavern and in which NPC 102 approaches the player character at the bar and starts a conversation. If the low activity setting 140a is selected, NPC 102 will typically approach the player character relatively slowly, maintain an appropriate distance from the player character, and speak to the player character occasionally. On the other hand, if the high activity setting 140b is selected, NPC 102 will typically approach the player character relatively quickly, take a position physically close to the player character, and speak to the player character frequently. In some game scenarios, video game 100 will automatically select the activity setting based on the nature of the game scenario. For example, if the player character is about to take an important shot in a target shooting game, video game 100 can automatically select the low activity setting 140a so that NPC 102 does not distract the player character during the shot. Alternatively, if the high activity setting 140b is selected and NPC 102 repeatedly approaches the player character in the game scenario to such an extent that the player character tells NPC 102 "go away" or "leave me alone" frustratedly, video game 100 can respond to the player character's frustration by automatically changing the activity setting to the low activity setting 140a so that NPC stops bothering the player character.

[0050] Figure 6Ais a simplified schematic diagram showing a mode switch that occurs when a player character moving within a game space encounters an NPC. As Figure 6A shown, player character 200 and three NPCs (including NPC1, NPC2, and NPC3) are located within the game space of a video game (e.g., video game 100 shown and described herein). Player character 200 moves around within the game space along a path that includes seven (7) segments (legs) (including segments A through G). When player character 200 approaches NPC1 along segment A, NPC1 remains stationary but, as Figure 6A visible, is surrounded by an aura space 201. The aura space 201 surrounding NPC1 defines a region in which, for use case awareness logic, NPC1 switches from an off mode to an on mode. In one embodiment, the size of the aura space 201 changes with the interaction that occurs as NPC1 is approached. Additionally, as the interaction that occurs as NPC1 is approached changes over time, the size of the aura space 201 can be dynamically adjusted. Along segment B, player character 200 is within the region defined by the aura space 201. Thus, when player character 200 travels within the aura space 201, NPC1 switches from an off mode to an on mode. As Figure 6A visible, player character 200 then leaves the aura space 201 and proceeds along segment C towards NPC3. Once player character 200 is outside the aura space 201, NPC1 switches back from an on mode to an off mode.

[0051] When player character 200 approaches NPC3 along segment C, NPC 3, surrounded by an aura space 203, remains stationary. Along segment D, player character 200 is within the region defined by the aura space 203, and thus NPC3 switches from an off mode to an on mode. Once player character 200 has moved along segment E outside the aura space 203, NPC3 switches back from an on mode to an off mode. NPC2, surrounded by an aura space 202, approaches player character 200 as player character 200 travels along segment E. As Figure 6A visible, the aura space 202 moves with NPC2 as NPC2 approaches player character 200. Along segment F, player character 200 is within the region defined by the aura space 202 (as indicated by the dashed circle shown in Figure 6A ), and thus NPC2 switches from an off mode to an on mode. Once player character 200 has moved along segment G outside the aura space 202, NPC2 switches back from an on mode to an off mode.

[0052] Figure 6B is a diagram summarizing Figure 6A the mode switches for NPC1, NPC2, and NPC3 shown in Figure 6BAs shown, during segment B of the path followed by player character 200, NPC1 is in the on mode. For the other segments (segment A and segments C through G), NPC1 is in the off mode. NPC2 is in the on mode during segment F, and in the off mode for the other segments (segments A through E and segment G). NPC3 is in the on mode for segment D, and in the off mode for the other segments (segments A through C and segments E through G). In the off mode, the behavior of each of NPC1, NPC2, and NPC3 is controlled by code (e.g., NPC interaction logic 104 (see, e.g., Figures 1 to 3 )) that defines random, pre-planned behavior for each NPC. In the on mode, the behavior of each of NPC1, NPC2, and NPC3 is controlled by code (e.g., NPC interaction logic 104' (e.g., see, Figure 2 and Figure 3 )) that has been modified to include situational awareness logic that changes the behavior of the NPC to interact situationally with the player character. For example, when NPC2 is in the on mode during segment F as shown in Figure 6A , NPC2 can approach player character 200 and give the player character advice about the game, give the player character tips about the game (e.g., tips about upcoming game play), deliver a personalized message to the player character, or give the player character a compliment (e.g., a compliment about a recent game action well-executed by the player character).

[0053] Thus, to summarize the mode switch, when the player character approaches or is within the aura space of an NPC in the game scene, the situational awareness logic applies to the NPC for a period of time. When the player character approaches or is within the corresponding aura space of another NPC in the game scene, the situational awareness logic applies to the other NPCs in the game scene. The behavior of the NPCs is transformed to interact situationally with the player character for the period of time that the situational awareness logic applies to the NPCs.

[0054] Figure 7 illustrates components of an exemplary device 600 that can be used to implement aspects of various embodiments of the present disclosure. In particular, Figure 7The block diagram shows an apparatus 600, which may be incorporated into or may be a personal computer, video game console, personal digital assistant, server, or other digital device suitable for practicing embodiments of the present disclosure. The apparatus 600 includes a central processing unit (CPU) 602 for running software applications and optionally an operating system. The CPU 602 may be composed of one or more homogeneous or heterogeneous processing cores. For example, the CPU 602 is one or more general-purpose microprocessors having one or more processing cores. Other embodiments may be implemented using one or more CPUs having a microprocessor architecture that is particularly adapted for highly parallel and computationally intensive applications, such as processing operations including: interpreting queries, identifying contextually relevant resources, and immediately implementing and rendering contextually relevant resources in a video game. The apparatus 600 may be local to a player conducting a game segment or a user interacting in a virtual reality space (e.g., a game console), or remote from the player or user (e.g., a backend server processor), or may be one of many servers virtualized in a game cloud system for remotely streaming game play to a client or in a cloud system implementing a virtual reality space.

[0055] A memory 604 stores applications and data for use by the CPU 602. A storage device 606 provides non-volatile storage for applications and data and other computer-readable media, and may include fixed disk drives, removable disk drives, flash memory devices, and CD-ROM, DVD-ROM, Blu-ray, HD-DVD, or other optical storage devices, as well as signal transmission and storage media. A user input device 608 conveys user input from one or more users to the apparatus 600, examples of which may include a keyboard, mouse, joystick, touchpad, touchscreen, still or video recorder / camera, a tracking device for recognizing gestures, and / or a microphone. A network interface 614 allows the apparatus 600 to communicate with other computer systems via an electronic communication network and may include wired or wireless communication on a local area network and wide area networks such as the Internet. An audio processor 612 is adapted to generate analog or digital audio output from instructions and / or data provided by the CPU 602, the memory 604, and / or the storage device 606. Components of the apparatus 600 (including the CPU 602, the memory 604, the data storage device 606, the user input device 608, the network interface 610, and the audio processor 612) are connected via one or more data buses 622.

[0056] The graphics subsystem 620 is also connected to the data bus 622 and components of the apparatus 600. The graphics subsystem 620 includes a graphics processing unit (GPU) 616 and a graphics memory 618. The graphics memory 618 includes a display memory (e.g., a frame buffer) for storing pixel data for each pixel of an output image. The graphics memory 618 may be integrated in the same apparatus as the GPU 608, connected to the GPU 616 as a separate apparatus, and / or implemented within the memory 604. Pixel data may be provided directly from the CPU 602 to the graphics memory 618. Alternatively, the CPU 602 provides data and / or instructions defining a desired output image to the GPU 616, and the GPU 616 generates pixel data for one or more output images based on the data and / or instructions. The data and / or instructions defining the desired output image may be stored in the memory 604 and / or the graphics memory 618. In one embodiment, the GPU 616 includes 3D rendering capabilities for generating pixel data for an output image from instructions and data defining the geometry, lighting, shading, textures, motion, and / or camera parameters of a scene. The GPU 616 may also include one or more programmable execution units capable of executing shader programs.

[0057] The graphics subsystem 620 periodically outputs pixel data of an image from the graphics memory 618 for display on the display device 610. The display device 610 may be any device capable of displaying visual information in response to a signal from the apparatus 600, including CRT, LCD, plasma, and OLED displays. The apparatus 600 may provide, for example, an analog or digital signal to the display device 610.

[0058] It should be noted that access services delivered over a wide geographical area, such as providing access to virtual reality spaces and games of the current embodiments, typically use cloud computing. Cloud computing is a computing paradigm in which dynamically scalable and usually virtualized resources are provided as a service over the Internet. Users do not need to be experts in the technical infrastructure in the "cloud" that supports them. Cloud computing can be classified into different services such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Cloud computing services typically provide common applications (such as video games) accessible online from a web browser, while the software and data are stored on servers in the cloud. Based on the way the Internet is depicted in a computer network diagram, the term cloud is used as a metaphor for the Internet and is an abstraction of its underlying complex infrastructure.

[0059] In some embodiments, a game server may be used to perform operations of a duration information platform for video game players. Most video games played over the Internet operate via a connection to a game server. Typically, a game uses a dedicated server application that collects data from players and distributes the data to other players. In other embodiments, a video game may be executed by a distributed game engine. In these embodiments, the distributed game engine may be executed on multiple processing entities (PEs) such that each PE executes a functional fragment of the given game engine on which the video game runs. The game engine simply treats each processing entity as a computing node. The game engine generally performs a series of operations with diverse functions to execute the video game application as well as additional services for the user experience. For example, the game engine implements game logic, performs game calculations, physical effects, geometric transformations, rendering, lighting, shadow, audio, and additional in-game or game-related services. The additional services may include, for example, messaging, social utilities, audio communication, gameplay replay functionality, help functionality, etc. Although the game engine may sometimes be executed on an operating system virtualized by a hypervisor of a specific server, in other embodiments, the game engine itself is distributed among multiple processing entities, each of which may reside on a different server unit in a data center.

[0060] According to this embodiment, depending on the needs of each game engine fragment, the corresponding processing entity for performing operations may be a server unit, a virtual machine, or a container. For example, if a game engine fragment is responsible for camera transformation, a virtual machine associated with a graphics processing unit (GPU) may be provided to this specific game engine fragment because it will perform a large number of relatively simple mathematical operations (e.g., matrix transformation). A processing entity associated with one or more higher-power central processing units (CPUs) may be provided to other game engine fragments that require fewer but more complex operations.

[0061] By distributing the game engine, the game engine is equipped with elastic computing properties that are not constrained by the capabilities of physical server units. Instead, more or fewer computing nodes are provided to the game engine as needed to meet the requirements of the video game. From the perspective of the video game and the video game player, the game engine distributed across multiple computing nodes is no different from a non-distributed game engine executed on a single processing entity because the game engine manager or supervisor distributes the workload and seamlessly integrates the results to provide the video game output components to the end user.

[0062] A user accesses a remote service using a client device, which includes at least a CPU, a display, and I / O. The client device can be a PC, a mobile phone, a netbook, a PDA, etc. In one embodiment, the network identification executed on the game server identifies the type of device used by the client and adjusts the communication method employed. In other cases, the client device uses a standard communication method such as HTML to access an application on the game server via the Internet. It should be understood that a given video game, game application, or virtual reality space can be developed for a specific platform and a specific associated controller device. However, when such a game or virtual reality space is made available via a game cloud system or a cloud system implementing a virtual reality space, the user can access the video game or virtual reality space using a different controller device. For example, a game or virtual reality space may have been developed for a game console and its associated controller, while the user can access the cloud-based version of the game or virtual reality space using a keyboard and mouse from a personal computer. In this case, the input parameter configuration can define the mapping of the input generated from the user's available controller devices (in this case, the keyboard and mouse) to the input acceptable for executing the video game or interacting in the virtual space.

[0063] In another example, the user can access a cloud game system or a cloud system implementing a virtual reality space via a tablet computing device, a touchscreen smartphone, or other touchscreen-driven devices. In this case, the client device and the controller device are integrated together in the same device, where the input is provided in the form of detected touchscreen input / gestures. For such a device, the input parameter configuration can define specific touchscreen inputs corresponding to the game inputs of the video game or virtual reality space. For example, during the running of a video game, buttons, a direction pad, or other types of input elements can be displayed or superimposed to indicate the locations on the touchscreen where the user can touch to generate game inputs. Gestures such as swiping in a specific direction or specific touch movements can also be detected as game inputs or inputs for interacting in the virtual space. In one embodiment, for example, before starting the game play of a video game, a tutorial can be provided to the user indicating how to provide input via the touchscreen for game play so that the user can get used to operating the controls on the touchscreen.

[0064] In some embodiments, the client device serves as a connection point for the controller device. That is, the controller device communicates with the client device via a wireless or wired connection to transmit inputs from the controller device to the client device. The client device may process these inputs in turn and then transmit the input data to the cloud gaming server via the network (e.g., accessed via a local networking device such as a router). However, in other embodiments, the controller itself may be a networked device, having the ability to directly communicate inputs to the game cloud server via the network without first communicating such inputs through the client device. For example, the controller may be connected to a local networking device (such as the aforementioned router) to send data to and receive data from the cloud gaming server. Thus, while the client device may still be required to receive the video output from the cloud-based video game and render it on a local display, input latency can be reduced by allowing the controller to directly send inputs to the game cloud server via the network, thereby bypassing the client device.

[0065] In one embodiment, the networked controller and the client device may be configured to send certain types of inputs directly from the controller to the cloud gaming server and other types of inputs via the client device. For example, inputs whose detection does not rely on any additional hardware or processing outside of the controller itself may be sent directly from the controller to the cloud gaming server via the network, thereby bypassing the client device. Such inputs may include button inputs, joystick inputs, embedded motion detection inputs (e.g., accelerometer, magnetometer, gyroscope), etc. However, inputs that utilize additional hardware or that require processing by the client device may be sent by the client device to the cloud gaming server. These may include captured video or audio from the gaming environment, which may be processed by the client device before being sent to the cloud gaming server. Additionally, inputs from the controller's motion detection hardware may be processed by the client device in conjunction with the captured video to detect the position and motion of the controller, which are then communicated by the client device to the cloud gaming server. It should be understood that the controller device according to various embodiments may also receive data (e.g., feedback data) from the client device or directly from the cloud gaming server.

[0066] In one embodiment, various technical examples can be implemented using a virtual environment via a head-mounted display (HMD). The HMD may also be referred to as a virtual reality (VR) headset. As used herein, the term "virtual reality" (VR) generally refers to a user's interaction with a virtual space / environment, which involves viewing the virtual space in a manner that responds in real time to the movement of the HMD (controlled by the user) through the HMD (or VR headset) to provide the user with a sense of being in the virtual space or the metaverse. For example, when the user faces a given direction, the user can see a three-dimensional (3D) view of the virtual space, and when the user turns to one side and thus turns the HMD accordingly, the view of this side in the virtual space is rendered on the HMD. The HMD can be worn in a manner similar to glasses, goggles, or a helmet and is configured to display video games or other metaverse content to the user. The HMD can provide the user with a highly immersive experience because it provides a display mechanism very close to the user's eyes. Thus, the HMD can provide a display area that occupies most or even the entire field of view of each of the user's eyes and can also provide viewing with three-dimensional depth and perspective.

[0067] In one embodiment, the HMD can include a gaze tracking camera configured to capture images of the user's eyes while the user is interacting with the VR scene. The gaze information captured by the gaze tracking camera can include information related to the user's gaze direction and specific virtual objects and content items in the VR scene that the user is focused on or interested in interacting with. Thus, based on the user's gaze direction, the system can detect specific virtual objects and content items that may be the user's potential focus, where the user is interested in interacting and engaging with, for example, game characters, game objects, game props, etc.

[0068] In some embodiments, the HMD can include an outward-facing camera configured to capture images of the user's real-world space, such as the user's body movements and any real-world objects that may be located in the real-world space. In some embodiments, the images captured by the outward-facing camera can be analyzed to determine the position / orientation of the real-world object relative to the HMD. Using the HMD, the known position / orientation of the real-world object, and inertial sensor data from the object, the user's gestures and movements can be continuously monitored and tracked during the user's interaction with the VR scene. For example, when interacting with a scene in a game, the user can make various gestures, such as pointing and walking towards a specific content item in the scene. In one embodiment, the gestures can be tracked and processed by the system to generate predictions of interactions with specific content items in the game scene. In some embodiments, machine learning can be used to facilitate or assist in such predictions.

[0069] During HMD use, various single-handed and two-handed controllers can be used. In some embodiments, the controller itself can be tracked by tracking lights included in the controller or by tracking shapes, sensors, and inertial data associated with the controller. Using these different types of controllers or even just gestures made and captured by one or more cameras, one can dock, control, manipulate, interact with, and participate in the virtual reality environment or metaverse rendered on the HMD. In some cases, the HMD can be wirelessly connected to a cloud computing and gaming system via a network. In one embodiment, the cloud computing and gaming system maintains and executes the video game that the user is playing. In some embodiments, the cloud computing and gaming system is configured to receive input from the HMD and interface objects via the network. The cloud computing and gaming system is configured to process the input to affect the game state of the video game being executed. Outputs from the video game being executed (such as video data, audio data, and haptic feedback data) are transmitted to the HMD and interface objects. In other implementations, the HMD can communicate wirelessly with the cloud computing and gaming system via an alternative mechanism or channel such as a cellular network.

[0070] Additionally, although implementations in this disclosure may be described with reference to a head-mounted display, it should be understood that in other implementations, a non-head-mounted display may be substituted, including but not limited to a portable device screen (e.g., a tablet computer, smartphone, laptop computer, etc.) or any other type of display that can be configured to render video and / or provide an interactive scene or virtual environment according to this implementation. It should be understood that the various features disclosed herein can be combined or assembled into specific implementations. Thus, the examples provided are merely some possible examples and are not limited to the various implementations that can define more implementations by combining various elements. In some examples, some implementations may include fewer elements without departing from the spirit of the disclosed or equivalent implementations.

[0071] Embodiments of the present disclosure can be practiced with a variety of computer system configurations, including handheld devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, etc. Embodiments of the present disclosure can also be practiced in a distributed computing environment where tasks are performed by remote processing devices linked via a wired or wireless network.

[0072] Although method operations may be described in a specific order, it should be understood that other housekeeping operations may be performed between the operations, or the operations may be adjusted so that they occur at slightly different times, or may be distributed in a system that permits processing operations to occur at various intervals associated with the processing, so long as the processing of the telemetry and game state data is performed in the desired manner.

[0073] One or more embodiments may also be manufactured as computer-readable code on a computer-readable medium. A computer-readable medium is any data storage device that can store data that can then be read by a computer system. Examples of computer-readable media include hard disk drives, network attached storage (NAS), read-only memory, random access memory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes, and other optical and non-optical data storage devices. The computer-readable medium may include computer-readable tangible media distributed on network-coupled computer systems such that the computer-readable code is stored and executed in a distributed fashion.

[0074] In one embodiment, the video game is executed locally on a game console, personal computer, or on a server. In some cases, the video game is executed by one or more servers in a data center. When the video game is executed, some instances of the video game may be simulations of the video game. For example, the video game may be executed by an environment or server that generates a simulation of the video game. In some embodiments, the simulation is an instance of the video game. In other embodiments, the simulation may be generated by an emulator. In either case, if the video game is represented as a simulation, the simulation can be executed to render interactive content that can be streamed, executed, and / or controlled interactively by user input.

[0075] Accordingly, the disclosure of the example embodiments is intended to illustrate rather than limit the scope of the disclosure, as set forth in the appended claims. Although the example embodiments of the disclosure have been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope and equivalents of the appended claims. In the appended claims, elements and / or steps do not imply any particular order of operation unless explicitly stated in the claim or implicitly required by the disclosure.

Claims

1. A method for generating a context-aware non-player character in a video game, the method comprising: executing a video game to effectuate game play using a player character controlled by a player, wherein the game play generates game state data; during execution of the video game, identifying scene interaction data from the game state data; filtering the context interaction data based on a filter setting, the filter being configured to identify target interaction data that is processed to generate context-aware logic; as well as The context-aware logic is applied to a non-player character (NPC) associated with a current scene of game play, the context-aware logic transforming behavior of the NPC into contextual interactions with the player character during the game play of the player.

2. The method of claim 1, wherein the context-aware logic is compiled and configured to execute together with the interaction logic of the NPC, and wherein the behavior of the NPC is transformed to persist for a period of time to which the context-aware logic is applied.

3. The method of claim 2, wherein a game play mode defines when the context-aware logic is applied.

4. The method of claim 1, wherein the behavior of the NPC is transformed into a situational interaction with the player character by causing the NPC to communicate verbally with the player character.

5. The method of claim 1, wherein the behavior of the NPC is transformed into contextual interaction with the player character by causing the NPC to perform actions related to the player character.

6. The method of claim 1, wherein the behavior of the NPC is transformed into contextual interaction with the player character by having the NPC provide assistance to the player character.

7. The method according to claim 1, further comprising: applying an activity setting, the activity setting defining whether a lower degree of context awareness logic or a higher degree of context awareness logic is to be applied to the NPC, Wherein applying a lower degree of situational awareness logic to the NPC will reduce the degree of situational interaction between the NPC and the player character during the player's game play, while applying a higher degree of situational awareness logic to the NPC will increase the degree of situational interaction between the NPC and the player character during the player's game play.

8. A method according to claim 1, wherein during the execution of the video game, the target interaction data is continuously generated for a current scene of the game, and the processing of the target interaction data includes executing a contextual interaction model, which analyzes the classified features of the target interaction data to generate a descriptive interaction context for the current scene.

9. The method according to claim 8, further comprising: processing a generative artificial intelligence (AI) model that uses input of the descriptive interaction context regarding the current scene, game training data from the video game, and user profile data, Wherein the generative AI model is configured to generate the context-aware logic.

10. The method of claim 1, wherein the video game is an online game with one or more spectators, or a non-online game.

11. The method according to claim 10, wherein the target interaction data includes comments from one or more audience members, and the behavior of the NPC is changed by causing the NPC to convey the feelings of the one or more audience members to the player character.

12. The method according to claim 11, further comprising: Mode settings are applied that adjust the amount and type of the sentiments of the one or more spectators that the NPC conveys to the player character.

13. A method for generating a non-player character for a video game, the method comprising: executing the video game, the video game including the non-player character (NPC), wherein the NPC is configured to interact within a scene of the video game without control by a real-life player of the video game; processing game state data to identify a context of game play of a player character of the video game during execution of the video game; as well as Contextual awareness logic is applied to the NPC, the contextual awareness logic being configured to transform the NPC's behavior into contextual interactions with the player character.

14. The method of claim 13, wherein the behavior of the NPC contextually interacting with the player character is represented by causing the NPC to generate commentary to the player character regarding actions occurring during execution of the video game.

15. The method of claim 13, wherein the behavior of the NPC in contextually interacting with the player character is represented by causing the NPC to generate commentary regarding small talk observed from one or more viewers regarding actions occurring during execution of the video game.

16. A method according to claim 13, wherein when the player character is within the aura space of the NPC in the scene of the video game, the application of the situational awareness logic to the NPC occurs for a period of time, and wherein the behavior of the NPC is transformed to interact situationally with the player character, continuing to apply the situational awareness logic for the period of time.

17. A non-transitory computer-readable medium containing program instructions for generating a non-player character for a video game, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to: executing the video game, the video game including the non-player character (NPC), wherein the NPC is configured to interact within a scene of the video game without control by a real-life player of the video game; processing game state data to identify a context of game play of a player character of the video game during execution of the video game; as well as Contextual awareness logic is applied to the NPC, the contextual awareness logic being configured to transform the NPC's behavior into contextual interactions with the player character.

18. The non-transitory computer-readable medium of claim 17, wherein the behavior of the NPC contextually interacting with the player character is represented by causing the NPC to generate commentary to the player character regarding actions occurring during execution of the video game.

19. The non-transitory computer-readable medium of claim 17, wherein the behavior of the NPC in contextually interacting with the player character is represented by causing the NPC to generate commentary regarding small talk observed from one or more spectators, the small talk relating to actions occurring during execution of the video game.

20. The non-transitory computer-readable medium of claim 17, wherein the application of the contextual awareness logic to the NPC occurs for a period of time while the player character is within the aura space of the NPC in the scene of the video game, and wherein the behavior of the NPC is transformed to contextually interact with the player character for the period of time during which the contextual awareness logic is applied.