Importing agent personalization data for possessing non-player characters in the game
The personalization agent service uses machine learning to create customizable agents and NPCs within games, addressing the integration of AI in gaming by adapting to user preferences and maintaining game integrity.
Patent Information
- Application Number
- JP2024557987
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-06-30
- Filing Date
- 2023-04-19
- Publication Date
- 2025-06-24
AI Technical Summary
The gaming industry faces challenges in incorporating advanced AI systems due to the need for custom domain knowledge, making it difficult for game development studios to integrate AI effectively.
A personalization agent service that utilizes machine learning models to create customizable agents within games, allowing users to import and evolve these agents across different games, and an API to customize non-player characters (NPCs) based on user preferences.
Enables a personalized gameplay experience by adapting agents to user play styles and preferences, enhancing interaction and immersion without requiring game-specific development, and allowing NPCs to reflect user-specific traits while adhering to game constraints.
Smart Images

Figure 2025519003000001_ABST
Abstract
Description
Background Art
[0001] The gaming industry occupies a large part of the technology industry sector. In a future where technology anticipates an increasingly connected world, games are a central element of that connected future. Artificial intelligence has always been a major factor throughout the gaming industry, but as AI development continues to advance, it becomes more difficult for the gaming industry to incorporate that advancement into games. For example, since most advanced AI systems require a lot of custom domain knowledge, it is difficult for game development studios to incubate AI.
Summary of the Invention
Means for Solving the Problems
[0002] Overview Aspects disclosed herein are provided in view of these and other general considerations. Additionally, although relatively specific issues may be discussed, it should be understood that the examples are not to be limited to solving the specific issues made apparent in the background or elsewhere of this disclosure.
[0003] Aspects of the present disclosure relate to a personalization agent service that generates and evolves customized agents that can be instantiated within a game to play with a user. A machine learning model is trained to control the interaction of the agent during gameplay with the game environment and the user. As the user continues to play with the agent, one or more machine learning models complement the user's preferred play style, incorporate the user's preferred strategies, and develop a gameplay style for the agent that is generally customized for interaction with the user. Agent-personalization data generated during gameplay is stored by the service, thereby enabling the user to import the agent into different games, thereby creating a constant gameplay companion with whom the user can play across a variety of different games without the need for those different games to include technologies capable of developing AI-controlled agents.
[0004] In a further aspect, an application programming interface is provided by the personalization agent service. Using the API, a game can import agent-personalization data to customize non-player characters (NPCs) within the game, thereby enabling the customization of the NPCs within the game according to the user's preferences. The imported agent-personalization data can be modified to conform to the constraints of the game or the NPC, thereby enabling the customization of the NPC without breaking the role of the NPC within the game or the game's story.
[0005] This summary is provided to introduce, in simplified form, a series of concepts that will be further described in the following detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Additional aspects, features, and / or advantages of the examples will be described in part in the following description, become apparent in part from the description, or may be learned by practice of the disclosure.
[0006] Brief Description of the Drawings Non-limiting and non-exhaustive examples are described with respect to the following drawings.
Brief Description of the Drawings
[0007]
Figure 1A
Figure 1B
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8A
Figure 8B
DETAILED DESCRIPTION
[0008] Detailed Description This forms a part of the specification and describes various aspects of the present disclosure in more detail below with reference to the accompanying drawings that illustrate specific example embodiments. However, the various aspects of the present disclosure can be implemented in many different ways and should not be construed as limited to the embodiments described herein. Rather, these embodiments are provided so that the present disclosure will be thorough and complete, and will fully convey the scope of the embodiments to those skilled in the art. The embodiments to be practiced may be in the form of a method, system, or apparatus. Thus, the embodiments can take the form of a hardware implementation, an entirely software implementation, or an implementation combining software and hardware aspects. Accordingly, the following detailed description should not be taken in a limiting sense.
[0009] Aspects of the present disclosure provide systems and methods that utilize machine learning techniques to provide a personalization agent or bot that can be used within a game or other type of environment. Among several examples, in particular, the aspects disclosed herein use a reinforcement learning agent that can be trained by computer vision without relying on deep game hooks, the agent can understand text by writing and speech, has a defined knowledge system, and is operable to write its own code, training the agent using a model (e.g., a base model, a language model, a computer vision model, a speech model, a video model, an audio model, a multimodal machine learning model, etc.), providing an agent that interprets state information using computer vision and audio cues, providing an agent that receives user commands based on computer vision and audio cues, and providing a system in which user feedback is used to improve future interactions with the agent across various games and applications.
[0010] In an example, a generative multimodal machine learning model process processes user input and generates a multimodal output. For example, a conversational agent according to the aspects described herein can receive user input and thereby use a generative multimodal machine learning model to process the user input to generate a multimodal output. The multimodal output can include, among several examples, natural language output and / or program output in particular. The multimodal output can be processed and used to affect the state of the relevant application. For example, at least a part of the multimodal output may be executed, or it can be used to call an application programming interface (API) of the application. The generative multimodal machine learning model (generally also referred to herein as the multimodal machine learning model) used according to the aspects described herein can be a generative transformer model in some examples. In some examples, explicit and / or implicit feedback can be processed to improve the performance of the multimodal machine learning model.
[0011] In an example, the user input and / or the model output are multimodal, and as used herein, multimodal can include one or more content types. Examples of content include, but are not limited to, among several examples, speech or written language (which may also be referred to herein as "natural language output"), code (which may also be referred to herein as "program output"), images, videos, audio, gestures, visual features, intonation, contour features, poses, styles, fonts, and / or transitions. Thus, compared to a machine learning model that processes natural language input and generates natural language output, aspects of the present disclosure can process an input having any of a wide variety of content types and generate an output.
[0012] By doing so, the systems and methods disclosed herein support a personalization agent that learns about who the user (also synonymously referred to herein as the "player") is, how the user speaks, what the user's strategy is, and how the user plays. The personalization agent maintains a "memory" of past interactions with the user and can function as a constant companion to the user when engaging in different experiences, such as when the user plays different games, plays in different game modes, etc. For that purpose, the aspects disclosed herein are operable to store meta-classifications related to personal data about the user (e.g., sentiment analysis, intent analysis, etc.) conditional on the user having given permission.
[0013] In yet another aspect, a system is provided that can access a personalization agent using an application programming interface (API). Such an API enables a game studio to create a group of non-player characters (NPCs) that are optionally "possessed" by the player's personalization agent. As used herein, an NPC "possessed" by a player's personalization agent means that the NPC takes on the characteristics of the personalization agent. The aforementioned characteristics can include how the agent communicates with the player (e.g., preferred communication style, how the agent addresses the player), how the agent interacts with the player (e.g., adopting a play style that matches the player's preferred strategy based on the player's past experiences in the game), the agent's personality characteristics, the agent's play style characteristics, and the like. The game can provide the personalization agent with specific permissions to access game state, knowledge systems, and other game information via the game API. The game can also, based on the game design, restrict the personalization agent from performing certain tasks or downscale the "strength" of the agent.
[0014] FIG. 1 shows an overview of an example of a system 100 for generating and using a user - personalization agent in a game system. As shown in FIG. 1, user device 102 interacts with a cloud service 104 that hosts an instantiation of a game service 106 (or other types of applications) and an agent 108 that can interact with the game. The game device can be a console game system, a mobile device, a smartphone, a personal computer, or any other type of device capable of locally executing a game or accessing a game hosted on a server. In one example, a game related to game service 106 can be directly hosted by cloud service 104. In an alternative example, the user device may host and execute the game locally, in which case game service 106 can serve as an interface to facilitate communication between one or more instantiated agents 108 and the game. A personalization - agent library 107 can store and execute components for one or more agents related to the user of user device 102. The components of personalization - agent library 107 can be used to control the instantiated agent 108.
[0015] In the example, one or more agents from the personalization agent library 107 interact with the game via the instantiated agent 108 based on text communications, voice commands, and / or player actions received from the user device 102. That is, the system 100 supports interaction with the agent as if the agent were another human player, or as a player normally interacts with an NPC within a conventional game. By doing so, one or more agents hosted by the agent library 108 can operate to interact with various games that the user plays without requiring changes to the game. That is, the system 100 can operate to cooperate with the game without requiring the game to be specially developed to support the agent (e.g., the agent does not require API access, and the game does not need to be developed with specific code to interact with the agent). By doing so, the system 100 provides an extensible solution that enables the user to play with customized agents across a wide variety of different games. That is, the game state is a game by the game service 106 that communicates between one or more instantiated agents 108 using voice and visual interactions and / or a public API. By doing so, the instantiated agent 108 can interact with the game in the same way as the user (e.g., by interpreting video, audio, and / or tactile feedback from the game) and / or in the same way as an NPC within the game (e.g., via a public API). Similarly, one or more agents can interact with a user playing a game using the game device 102 in the same way as another player or an NPC that interacts with the user. That is, one or more agents can receive visual, text, or voice input from the user playing the game by the game service 106 and / or game information (e.g., the current game state, the inventory of the NPC, the abilities of the NPC, etc.) by a public API.In this way, system 100 enables a user playing a game on user device 102 to interact with one or more agents such that the user can interact with any other player on the NPC. However, the instantiated agent 108 can be personalized to suit the user based on past interactions with the user that occurred in both the current game and other games. To facilitate this type of user interaction, one or more instantiated agents 108 can employ computer vision, speech recognition, or other known techniques when processing the interaction with the user in order to interpret commands received from the user and / or generate response actions based on the user's actions.
[0016] For example, consider a user who plays a first-person shooting game with a personalized agent. The user might say "Cover the right side." A speech recognition model, which could be one of models 118, can be utilized to interpret the voice received from the user in a manner that can be understood by the agent. In response, agent 108 can take a position on the user's right side or perform an action to cover the user's right side in response to the user's voice command. As yet another example, consider an action role-playing game where two objectives must be defended simultaneously. An agent playing with the user can use computer vision to analyze the current view of the game and determine that there are two objectives (e.g., identify two objectives on a map, interpret a display quest log indicating that two objectives must be defended, etc.). Similarly, computer vision can be used to identify the user's player character and determine that the player character is headed towards a first objective. Based on feedback from the computer vision model, the agent can command its proxy character to move towards and defend the second objective.
[0017] From these examples, those skilled in the art will understand that by adopting speech recognition, computer vision techniques, etc., one or more agents from the agent library can interact with the user in the same way as other users do during cooperative gameplay. By doing so, the instantiated agent 108 may not have API access or program access to the game to interact with the user, so one or more agents from the agent library can be generated separately from a specific game. Alternatively, in the case where the instantiated agent "depends on" or for an instantiated agent 108 such as an NPC in the game, it may have API access or program access to the game. In such a situation, the agent can interact with the game state and the user based on the API access. Since the system 100 provides a solution that can implement agents separately from individual games, one or more agents in the agent library can be personalized to interact with a specific user. This personalization can be maintained across various games. That is, the agent can learn details about the user over time, such as the user's strengths and weaknesses, play style, communication pattern, preferred strategies, etc., and can appropriately respond to the user across various games.
[0018] Agent personalization is generated by the feedback collection engine 110 and can be updated over time. The feedback collection engine 110 receives feedback from the user and / or the instantiated agent 108 that occurs within the game. The feedback collected can include the user's play style, the user's communication, the user's interaction with the game, the user's interaction with other players, the user's interaction with other agents, the results of actions performed by the instantiated agent 108 within the game, information related to the interaction between the actions of the players and the instantiated agent 108 within the game, or any type of information generated by the user device 102 when the user plays the game. To comply with considerations regarding the user's privacy, the information can only be collected by the feedback collection engine 110 when permission is obtained from the user. The user can choose to participate or not participate in the collection at any time. The data collected can be implicit data, such as data based on the user's normal interaction with the game, or explicit data, such as specific commands provided by the user to the system. An example of a specific command could be for the user to instruct the agent to be called by a specific character name. The data collected by the feedback collection engine 110 can be provided to the prompt generator 112.
[0019] The prompt generator 112 can generate a prompt for use in personalizing one or more agents in the agent library 108 using the data collected by the feedback collection engine 110. That is, the prompt generator 112 interprets the collected feedback data to generate instructions that one or more agents can execute to perform actions by the agents. The prompt generator is operable to generate new prompts or instructions based on the collected feedback or to modify existing prompts based on newly collected feedback. For example, if a user first plays a game as a frontline attacker, the prompt generator 112 can generate instructions to implement an agent 108 instantiated with a supportive playstyle such as a ranged attacker or a support character. If the user shifts their playstyle to one of the ranged damage dealers, the prompt generator 112 can identify that change by the feedback data and adjust the agent instantiated to adapt to the player's new style (e.g., switch to a frontline attacker to remove confrontation or adversarial situations from the player's character). The instructions generated by the prompt generator are provided to the cloud service 104 to be stored by the cloud service 104 as part of the agent library 108, whereby meta-classifications related to a particular user (e.g., sentiment analysis, intent analysis, etc.) are stored. By doing so, instructions generated based on the user's playstyle or preferences in a first game can be incorporated by the agent not only in the first game but also in other games the user plays. That is, using the instructions generated by the prompt generator 112, regardless of whether the user is playing the same game or different games, the cloud service 104 can instantiate agents, across a variety of different games that have already been personalized for a particular user based on the user's past interactions with the instantiated agents 108.While the embodiments described herein describe a separate prompt generator 112 generating commands to control the instantiated agent 108, in alternative embodiments, the commands may be generated directly by one or more machine learning models employed by the agent library 107 or may be generated directly by combinations of various different components disclosed herein.
[0020] However, in some scenarios, there can be problems encountered during the training process of various machine learning models that can be utilized to generate a personalization agent. For example, the training session may fail due to data errors or processing errors. In yet another example, the training process may fail due to user errors. For example, a user starting a new game may initially play the game incorrectly. The user's incorrect actions or experiences may train the agent to play in a way that negatively impacts the gameplay. Therefore, system 100 may include a process for rolling back or resetting one or more machine learning models (or any of the other components disclosed herein) to correct errors that may occur during the training of one or more machine learning models or other errors that may generally occur when a personalization agent is developed. For example, system 100 can maintain snapshots of various machine learning models (or other components) that save the state of the components at the time of the snapshot on a regular basis. Thereby, system 100 can roll back all components, a subset of components, or a specific component in response to detecting a training error in the future. As the personalization agent evolves over time, multiple different snapshots representing its state can be stored as a store, thereby providing system 100 (or the user) with the option to determine a state suitable for rollback when an error is encountered.
[0021] The Personalization Agent Library 107 may also include a fine-tuning engine 114 and one or more models 116. The fine-tuning engine 114 and the models 116 are operable to interact with user actions by the user device 102, the instantiated agent 108, and the game training model 124 to process feedback data received from various sources. For use with the examples disclosed herein, any number of different models can be employed individually or in combination. For example, a base model, a language model, a computer vision model, a speech model, a video model, and / or an audio model may be employed by the system 100. As used herein, a base model is a model trained based on a wide range of data adaptable to a wide range of tasks (e.g., a model capable of processing various different tasks or styles).
[0022] One or more models 116 can process video, audio, and / or text data received from the user or generated by the game during gameplay to interpret the user's commands and / or derive the user's intent based on the user's communication or actions within the game. The output from one or more models 116 is provided to the fine-tuning model 114, and the fine-tuning model 114 can use its output to modify the prompt generated by the prompt generator 112 to further personalize the commands generated for the user based on the agent's past interactions with the user. The Personalization Agent Library 107 may also include a game data (heritage) 122 component operable to store information about various different games. The game data (heritage) 122 component stores information about games, game heritages, story elements, available capabilities, and / or items, etc., that can be utilized by the agent (e.g., model 118, fine-tuning engine 114, prompt generator 112, etc.) to generate instructions for controlling the instantiated agent 108 according to the theme, story, requirements, etc. of the game.
[0023] The various components described herein can be utilized to interpret the current game state based on data received from the game (e.g., visual data, audio data, tactile feedback data, data that the game exposes via an API, etc.). Further, the components disclosed herein are operable to generate instructions for controlling the actions of a personalization agent within the game based on the current game state. For example, the components disclosed herein can be operable to generate instructions for controlling the interaction of a personalization agent with the game in a manner similar to how a human interacts with the game (e.g., by providing certain controller instructions, keyboard instructions, or any other type of interface having supported game play controls). Alternatively or in addition, the various components may generate code that controls how a personalization agent interacts within the game. For example, the code may be executed by the personalization agent, and such execution causes the personalization agent to perform specific actions within the game.
[0024] The personalization agent library 107 can also include an agent memory component 120. The agent memory component can be used to store personalization data generated by the various other components described herein, as well as play styles, techniques, and interactions that the agent has learned through past interactions with the user. The agent memory 120 can provide additional input to the prompt generator 112 that can be used to determine the actions of an instantiated agent during game play.
[0025] So far, the described components of system 100 have focused on the creation of a personalization agent, the continuous evolution of the personalization agent through continuous interaction with the user, and the instantiation of the personalization agent in the user's game session. Personalization of the agent for a particular user provides many in-game advantages, but the instantiated agent also makes demands and an understanding of how to interact with the game and how to play the game. In one aspect, the components of the personalization agent library 107 are operable to learn and refine the agent's gameplay based on the session with the user. However, when a user plays a new game, the time required for the agent to learn the mechanics of the gameplay to be a useful companion may not be achievable with just the user's gameplay. To address this issue, system 100 also includes a gameplay training service 124 that includes a game library 126 and a gameplay machine learning model 128. In various aspects, the game library includes any number of games supported by the cloud service 104 and / or the user device 102. The gameplay training service 124 is operable to execute sessions of various games stored within the game library 126 and to instantiate an agent within the executed game. The gameplay machine learning model 128 is operable to receive as input data from the executed game and the actions of the agent taken within the game, and in response, generate control signals that direct the gameplay of the agent within the game. Through the use of reinforcement learning, the gameplay machine learning model is operable to deepen the understanding of the gameplay mechanics for both a particular game and game genre. By doing so, the gameplay training service 124 provides a mechanism by which an agent can be trained to play a particular game or a particular type of game without the need for user interaction.The Personalization Agent Library 107 is operable to receive (or interact with) a trained model that can be stored as part of the agent memory from the Gameplay Training Service 124 and control the agent 108 instantiated using those models along with other personalization components. Thereby, the user experience of interacting with the agent within the game is significantly improved because the user does not need to spend time training the agent in a specific mechanism of the game. Additionally, by importing or interacting with the trained gameplay machine learning model 128 provided by the Gameplay Training Service 124, the Personalization Agent Library 107 can employ the trained instantiated agent 108 to play with the user when the user first launches a new game.
[0026] Those skilled in the art will understand that the System 100 provides a Personalization Agent or Artificial Intelligence operable to learn the player's uniqueness, learn the player's communication style or tendencies, learn the strategies adopted and used by the player in various different games and scenarios, learn the gameplay mechanisms of specific games and game genres, etc. Further, one or more agents generated by the System 100 can be stored as part of a cloud service that enables the system to maintain a "memory" of the user's past interactions, thereby enabling the system to generate an agent that functions as a consistent user companion across various games without the game needing to be specially designed to support such an agent.
[0027] Figure 1B shows an overview of an example of a system 150 for generating and utilizing responses of a personalization agent in a game system. As shown in system 150, two players, player 1 152 and player 2 154, are interacting with one or more agents 156. Although two players are shown, those skilled in the art will understand that any number of players can participate in a game session using system 150. A helper service 158 is provided to assist in personalizing the interaction of one or more agents 158 with an individual player or simultaneously with multiple players. As discussed in Figure 1A, one or more models 166 can be used to generate or modify a prompt 168. The prompt 168 is provided to the helper service 158, which applies several engines (e.g., agent persona engine 160, user goal or intent engine 162, and game lore or constraint engine 164) to modify the prompt and provide a more personalized interaction with an individual player or group of players.
[0028] For example, the Agent Persona Engine 160 can modify or adjust a prompt (or an action determined by the prompt) according to the personalization information related to the agent. For example, the user can adopt an agent with a preferred personality. The Agent Persona Engine 160 can modify the prompt or the response generated by the prompt according to the personality of the agent. The User Intention or Goal Engine can modify a prompt (or an action determined by the prompt) based on the user's current goal or the intention behind the user's action or request. The user's goal or intention may change over time, may be based on a specified user goal, or may be determined based on the user's action. The Game Lore or Constraint Engine 164 can modify or adjust a prompt (or an action determined by the prompt) according to the characteristics of the game. For example, an agent may be "possessed" by a non-player character in the game (as discussed in more detail below). The Game Lore or Constraint Engine 164 can modify the prompt based on the personality or limitations of the NPC. The various engines of the helper service can be adopted individually or in combination when modifying or adjusting the prompt. Thereafter, the adjusted prompt is provided to one or more related agents 156 for execution.
[0029] Figure 2 shows an example of a method 200 for generating a personalization agent. For example, method 200 may be employed by system 100. The flow starts with an operation 202 of instantiating a game session or receiving an instruction that a game session is being instantiated. As described above, the game session may be hosted by the system executing method 200 or by a user device such as a game console. When a game is instantiated or an instruction that a game session has been established is received, the flow proceeds to an operation 204 of instantiating an agent as part of the game session. In one example, the agent can be instantiated in response to receiving a request to add an agent to the game session. For example, a request to instantiate an agent within a multiplayer game or an agent controlling an NPC or AI companion within a single-player game may be received. Instantiating the agent may include identifying an agent related to the user playing the game from an agent library. As described above, aspects of the present disclosure enable the generation of agents playable across various games. Therefore, the agent instantiated in operation 204 can be instantiated using various components stored as part of a personalization agent library. For example, the agent can be instantiated using a machine learning model trained to perform game-specific mechanisms and actions, personalization characteristics learned over time through interactions with play, game data, or lore stored for a particular game or genre, and the agent is instantiated or trained based on a game genre similar to the game in which the agent is instantiated. As discussed previously, the selected agent can be personalized to the user playing the game based on past interactions with the user in the same or a different game as the one started in operation 202.Alternatively, rather than dynamically instantiating an agent using various components stored within an agent library, a specific agent can be selected in operation 204. That is, the agent library can include specific “builds” for various types of agents that are designed by a user or derived by a specific gameplay with the user. These agents are saved and can be instantiated by the user in a future game session of the same game in which they were first created or in a different game. When an agent is instantiated in operation 204, the agent participates in the game session with the user.
[0030] In operation 206, the current game state is interpreted by voice and visual data and / or by API access granted to the agent by the game. As previously described, certain aspects of the present disclosure enable the generation of agents that can interact with a game without requiring API access or program access to the game. Thus, the instantiated agent interacts with the game in the same way as the user does, i.e., by voice and visual data related to the game. Alternatively, for example, if the agent relies on an NPC to interact with the game, API access to the game can be granted to the agent. In operation 206, various speech recognition, computer vision, object detection, OCR processes, etc. can be employed to process the game state in order to interpret the communication received from the player (e.g., spoken commands, text-based commands) and the current display view (e.g., using computer vision) or the API for the game state. The current game state is used in operation 208 to generate agent actions. For example, agent actions can be executed based on spoken commands received from the user. Alternatively, agent commands can be generated based on the current view. For example, when an enemy appears on the screen, the enemy can be identified using computer vision and / or object detection, and in operation 208, the agent can generate a command to attack the enemy. Although not shown, operations 206 and 208 can be continuously executed while the game session is active.
[0031] The flow proceeds to operation 210 of receiving user feedback. The user feedback received can be explicit. For example, the user may issue a specific command to the agent to perform an action or to change the action currently being performed. Alternatively or in addition, the user feedback may be implicit. Implicit user feedback can be feedback data generated based on the user's interaction with the game. For example, the user may not explicitly provide a command to the agent and instead can adjust their actions or play style based on the current game state and / or in response to the actions performed by the agent. In an example, the user feedback can be continuously collected during the game session. The collected feedback can be related to the concurrent game state or agent actions.
[0032] When user feedback is collected, the flow proceeds to operation 212 of generating a prompt for one or more agents based on the user feedback. In the example, the generated prompt is an instruction to execute an agent action in response to the state of the game or a specific user interaction. The prompt can be generated using one or more machine learning models that receive user feedback, and / or actions performed by one or more agents, and / or existing prompts, and / or state data. The output of the machine learning model can be used to generate one or more prompts. In the example, the machine learning model can be trained using information related to the user so that the output from the machine learning model is personalized for the user. Alternatively or in addition, the machine learning model can be trained with respect to a specific game or application, with respect to a specific group of users (e.g., an e-sports team), etc. Multiple machine learning models can be employed in operation 212 to generate the prompt. In yet other examples, in addition to or instead of using a machine learning model in operation 212, other processes such as a rule-based process may be employed. Further, in operation 212, a new prompt may be generated or an existing prompt may be modified.
[0033] When one or more prompts are generated in operation 212, the flow proceeds to operation 214 where one or more prompts are stored for future use by one or more agents. For example, one or more prompts can be stored in an agent library. By storing the prompts generated in 212 using the agent library, the agents can utilize the prompts to interact with the user across various games, thereby providing a personalized agent that the user can play across various games.
[0034] The aspects of the present disclosure described so far have related to importing a personalization agent for playing with a user. However, game developers can utilize agent data to control non-player characters (NPCs) within a game. By doing so, the NPCs can act according to the user's preferred play style while continuing to maintain the nature of the NPCs based on the requirements of the story or the NPCs' in-game capabilities, and can adopt techniques to assist users with accessibility requirements. For example, an agent system such as the system described in FIG. 1 can provide an agent library that enables the game to access agent data and import characteristics, and associate the imported characteristics with one or more NPCs within the game. In this sense, an NPC can be "possessed" by the player's personalization agent.
[0035] FIG. 3 shows an exemplary system 300 for importing agent personalization data to affect the control of NPCs within a game. As shown in FIG. 3, a personalization agent service 302 communicates with a game 304 (or game service) via a network 303. In the example, the network 303 can be a local area network, a wide area network, a cellular data network, the Internet, or any other type of network. In an alternative aspect, the personalization agent service 302 and the game 304 can be hosted by the same service (e.g., on the same cloud network). The system 300 provides a mechanism that enables game developers to personalize NPCs for individual users without having to spend time and resources developing the game's own personalization service. For example, the game 304 can request agent personalization data from the personalization agent service 302 via an API made available by the personalization agent service 302 and the game 304.
[0036] As shown in FIG. 3, the personalization agent service 302 may include a personalization agent API 306, a personalization selector 308, and a personalization agent data store 310. The game 304 may include a personalization request component 312, a game constraint analyzer 314, an NPC profile 316, and a game API 318. When starting a game session, for example, when a user creates a new game or when a user encounters a new NPC within the game, the game 304 can provide the user with settings that enable the user to personalize one or more of the NPCs within the game based on one or more agents created by the user's interactions with one or more agents within other games or within previous game sessions. When the user selects the option to personalize an NPC within the game, a request for personalization data is generated by the personalization request component and can be transmitted to the personalization agent service 302 via the network 303. In various aspects, the request generated by the personalization request component 312 can include requests for details about the game, details about the NPC (the NPC's capabilities, role, relationship with the player character, etc.), and / or specific personalization data (the agent's personality traits, the agent's play style, the strategies generally employed by the agent, etc.).
[0037] The Personalization Agent API 306 is operable to receive requests from one or more games, such as game 304, or Personalization Agent data. In one aspect, the Personalization Agent API 306 is operable to receive a request for a particular agent. In such a scenario, the Personalization Agent API 306 is operable to instantiate the agent requested as part of a game session. However, in other aspects, the request received from game 304 may not be for an agent, but rather may be for Personalization data from one or more agents stored by the Personalization Agent Service 302. In such a scenario, game 304 may request Personalization data for personalizing NPCs within the game according to the user's preferences. For example, the game may include one or more NPC companions that accompany the player character as part of the game story. In such an example, the game may not permit the creation of agents by the player, but may permit the personalization of NPCs within the game according to the user's preferences, play style, etc. Thus, the NPCs within one or more games may be "possessed" by one or more Personalization user agents. That is, the NPCs within the game carry certain characteristics of the Personalization agent (e.g., how the agent interacts with the user, the agent's play style, the agent's role, etc.) while maintaining some of the characteristics of the NPC within the game (e.g., the NPC's story role, the NPC's abilities, etc.).
[0038] When receiving a request for agent characteristics, the Personalization Agent API 306 parses the request to determine the parameters of the request. For example, the request may be related to specific personalization characteristics (such as play style, communication behavior, personality characteristics, etc.). Alternatively or in addition, the request may include information related to games, NPC capabilities, game genres, etc. The request parameters can be provided to the Personalization Selector 308. The Personalization Selector 308 analyzes the request parameters and identifies the requested agent characteristics based on the request parameters. For example, the Personalization Selector can identify requests for specific characteristics from the request parameters. In addition, the Personalization Selector 306 can infer characteristics based on the request parameters. For example, information about the game, such as the type of game or game genre, can be used to identify agent characteristics related to the game or NPC. For example, if the game is a role-playing game, the Personalization Selector 306 can identify agent characteristics related to or useful for role-playing games. Similarly, if the game is a first-person shooting game, the Personalization Selector 306 can identify agent characteristics related to first-person shooting games. Similarly, the characteristics of the NPC "possessed" by the agent can be used to infer related agent characteristics. For example, if the NPC is a healer, the Personalization Selector can identify agent characteristics related to the healer class. Once the related agent characteristics are identified, the agent data related to the related agent characteristics is retrieved from the Personalization Agent Data Store 310. In the example, the Personalization Agent Data Store 306 can store any type of personalization information (such as prompts, machine learning models, personality characteristics of the agent, etc.) previously generated for the agent.The obtained personalization information can be disclosed to the game 304 via the Personalization Agent API 306.
[0039] Upon receiving the personalization information, the game 304 analyzed the received personalization information using the game constraint analyzer 314. In certain scenarios, applying the agent personalization information to the NPCs in the game without modification may lead to scenarios where the game breaks down. For example, applying the agent personalization information without modification may make the NPCs too strong or too weak, and may change the personality of the NPCs in a way that adversely affects their role in the story. Therefore, the game constraint analyzer 314 analyzes the agent personalization information and modifies the agent personalization data according to the constraints of the game and / or the NPCs. Thereafter, the modified agent personalization data can be stored in the NPC profile 316 for the NPCs that rely on it. Thereafter, the actions performed by the NPCs in the game can be directed by the modified agent personalization data stored in the NPC profile. Therefore, the NPCs in the game are relied on by the characteristics of the personalization agent, whereby the interaction between the user and the NPCs during the game play can be customized. The game 304 may further include a game API 318 that enables the relied-on API to interact with the user and the game. For example, the actions of the relied-on NPCs can be generated based on other personalization data received from the personalization machine learning model or the personalization agent service. The game API 318 enables the personalization machine learning model and / or the personalization data to receive game state data, user interaction data, user actions performed in the game, etc., and to control the interaction of the NPCs in the game.
[0040] Figure 4 shows an example of method 400, access to and incorporated agent data for use by an NPC within a game. The flow begins with operation 402 of accessing existing agent data related to a user playing the game. In one example, the agent data can be accessed via an API exposed by the agent system. For example, the game can access personalization user data and / or personalization user agents stored within an agent library. In the foregoing example, the access can be permitted only if the user's permission is obtained. When the game receives the user's permission and user identifier, the game can access the personalization user data and / or personalization user agents by means of an API call that includes the user identifier.
[0041] Upon accessing and / or importing the agent data, the flow proceeds to operation 404 of associating one or more NPCs with the accessed data. For example, the game can include several NPCs that interact with the player character. Those NPCs can be incorporated as part of the player character's party, for example, as members of the player's party in a role-playing game. Generally, NPCs are developed to have a certain personality based on the role of the NPC, the relationship with the player character, and / or story-driven characteristics. However, the foregoing NPCs are of a general nature, that is, developed with content directed towards the overall player base rather than in a way specific to an individual player. This is a limitation based on the lack of access that game developers have to individual users. However, aspects of the present disclosure do not lack access to user data. Therefore, the disclosed aspects can be utilized by game developers to modify a general NPC by associating the accessed agent data with the general NPC in operation 404 to personalize that general NPC to suit an individual player.
[0042] As discussed, the personalization agent is developed across several different games based on the user's play style and user interaction with one or more agents. Therefore, some of the agent's actions may not correspond to specific NPCs. This can be due to NPC limitations such as the available skill set of the NPC or other considerations such as story requirements. Therefore, in operation 406, the imported agent data can be modified according to the NPC limitations set by the game. For example, if an NPC is set to assume a specific role (e.g., a healer, tank, or damage dealer in a role-playing game), the imported agent data can be modified to remove actions or characteristics that are not suitable for that NPC's role. Other considerations can be used to determine how to modify the imported data. For example, as discussed, the agent data is personalized for the user. However, if an NPC is first introduced as a stranger to the player character, immersiveness will be compromised if the NPC incorporates knowledge specific to the user. Therefore, some of the personalization data from the imported agent can be removed or modified based on story requirements. In a further example, the modifications made in operation 406 can change as the player progresses through the game. For example, as the amount of time the NPC and player character spend together increases, more of the personalization information from the agent can be incorporated into the NPC's behavior. By doing so, the natural progression of the relationship between the NPC and the player character can be mimicked. Any modifications are added and the flow proceeds to step 408, where the NPC is operated according to the modified agent characteristics. This improves the generic NPC to operate according to, for example, a play style suitable for the user, thereby providing an improved player experience.
[0043] By allowing access to the player's history, the game can be further adjusted to provide information tailored to that user when the user starts a new game. That is, instead of providing a general tutorial that is common in many games today, a game that can access the player's history and skills, which can adjust the tutorial for an individual user based on that user's knowledge (e.g., omitting parts of the tutorial that the user is proficient in based on the user's history, focusing on new information for the user within the tutorial, etc.). That is, the tutorial can be customized based on the user experience from other games, and this function was not previously available in individual games because individual games could not access the user's history and experience obtained from other games as described above.
[0044] Figure 5 shows an exemplary method 500 for providing agent personalization data to a claimant. For example, method 500 may be performed by a personalization agent service in response to a request from a game to personalize an NPC character within the game. The flow begins with operation 502 of receiving a request from the game for agent personalization data. In one aspect, this request may be for a specific agent. In another example, this request may be for personalization data from one or more agents. This request may include parameters that identify desired characteristics or personalization information, parameters that describe the game and / or NPC, etc.
[0045] In operation 504, the request is analyzed to determine agent personalization characteristics related to the request. For example, the request parameters can be parsed to identify specific agent characteristics required by the game. Additionally or alternatively, game information or NPC information included in the request or related to the game making the request can be analyzed to determine agent personalization characteristics related to the game or NPC as discussed above. Once the requested personalization characteristics are determined, the relevant agent personalization data is identified. The relevant agent personalization data is retrieved from the agent personalization data store in operation 506. For example, in operation 506, data stored within the personalization agent library 107 including agent memory, prompts, machine learning models that the agent utilizes to interact with the game and / or the user, relevant game data or lore, etc. can be retrieved. In one example, rather than retrieving the data in operation 506, a reference can be generated that enables the game to retrieve or communicate with the personalization component via an API exposed by, for example, an agent personalization service. In operation 508, the retrieved agent personalization data or reference to the agent personalization data is provided to the requesting game.
[0046] FIG. 6 shows an exemplary method 600 for importing agent personalization data for possession of an NPC in a game. For example, method 600 may be executed by a game. The flow begins with receiving a request to personalize an NPC character in the game. For example, the game can provide the user with an option to customize an NPC in the game using one or more personalization agent characteristics related to the user. Otherwise, the game can utilize a default NPC profile for the NPC in the game. The request to personalize the NPC can be received when the user starts a new game or when encountering a new NPC during gameplay. Further, the game can provide the user with an option to select specific agent characteristics to import, such as the agent's personality, the agent's gameplay style, how the agent communicates or interacts with the user, etc. In operation 604, a request for agent personalization data is generated and transmitted, for example, to a personalization agent service that can control or store the user's personalization agent. In one example, this request can be for specific agent personalization characteristics. Alternatively or in addition, this request can include information about the NPC possessed by the game and / or the agent. The game and / or NPC information can be used by the personalization agent service to select relevant agent characteristics.
[0047] In response to sending the request, agent personalization data is received in operation 606. In one aspect, the agent personalization data can be received and stored within the game's file. Alternatively, instead of receiving the agent personalization data, a reference or instruction for accessing the agent personalization data can be received. The game can use the reference or instruction to receive the agent personalization data on demand, or the game can provide the game's state information to an agent personalization component of a personalization agent service such as one or more machine learning models used to control the agent, and can receive instructions or data in response to providing data during gameplay.
[0048] After receiving agent personalization data, the received data is analyzed in operation 608. In the example, the received agent personalization data is analyzed against the constraints of the game and / or NPC. As discussed above, importing the agent personalization information into the NPC in the game without modifying it may lead to scenarios where the game breaks down. For example, applying the agent personalization information without modification may make the NPC too strong or too weak, and may change the character of the NPC in a way that adversely affects the role of the NPC in the story. Therefore, the agent personalization data is analyzed against the constraints of the NPC (such as the abilities available to the NPC, the power level of the NPC, the personality constraints on the NPC's role in the story, the role of the NPC in the party, level or power limitations, etc. of the game). Based on the analysis performed in operation 608, the agent personalization data is modified in operation 610. For example, the agent personalization data can be modified according to the game or NPC limitations. The modification may include setting limitations on the abilities or power levels provided by the agent personalization data, modifying or removing certain agent personality techniques that conflict with the defined role of the NPC, etc.
[0049] The flow continues with an operation 612 to update the in-game NPC profiles using the modified agent personalization data. For example, the NPC game files can be updated to include the modified agent personalization data. Thereby, the game data used to control the NPC (e.g., to control the in-game actions of the NPC, to control the NPC's dialog responses, to control the role of the NPC during gameplay, etc.) is modified. By doing so, the NPC is "possessed" by the user's agent. Therefore, the NPC is customized to interact with the user according to the user's preferences, to adopt a play style that highlights the user's preferred play style, to adopt a game play strategy preferred by the user, etc. In operation 614, the possessed NPC is instantiated in the game to interact with the user. In one example, the instantiated NPC, although modified according to the game and NPC constraints as discussed above, can be controlled according to the components of the personalization agent library discussed herein. Alternatively, the NPC may be controlled according to the updated game file that includes the modified agent personalization data.
[0050] Although the specific examples described herein relate to using agents in a game environment, those skilled in the art will understand that the foregoing techniques can be applied to generate and use agents in other types of environments such as a corporate environment. For example, to assist a user in performing tasks within a corporate environment or to generate a personalization agent using any other type of application.
[0051] FIG. 7 is a block diagram showing the physical components (e.g., hardware) of a computing device 700 in which aspects of the present disclosure may be practiced. The components of the computing device described below may be suitable for the computing device described above. In a basic configuration, the computing device 700 may include at least one processing unit 702 and a system memory 704. Depending on the configuration and type of the computing device, the system memory 704 may include, but is not limited to, a volatile storage area (e.g., random access memory), a non-volatile storage area (e.g., read-only memory), flash memory, or any combination of such memories. The system memory 704 may include an operating system 705 and one or more program tools 706 suitable for executing the various aspects disclosed herein. The operating system 705 may be suitable for controlling the operation of the computing device 700, for example. Further, aspects of the present disclosure may be practiced with a graphics library, other operating systems, or any other application programs, and are not limited to a particular application or system. This basic configuration is shown in FIG. 7 by the components within the dashed line 708. The computing device 700 may have additional features or functionality. For example, the computing device 700 may also include additional (removable and / or non-removable) data storage devices such as, for example, magnetic disks, optical disks, or tapes. Such additional storage areas are shown in FIG. 7 by the removable storage device 709 and the non-removable storage device 710.
[0052] As described above, several program tools and data files may be stored within system memory 704. While being executed on at least one processing unit 702, program tool 706 (e.g., application 720) can execute a process including aspects described herein, but not limited thereto. Application 720 includes the personalization agent generator 730, NPC customization instructions 732, various APIs 734, and instructions for executing various processes disclosed herein. Other program tools that may be used in accordance with aspects of the present disclosure may include, but are not limited to, email and contact applications, document processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided application programs, etc.
[0053] Aspects of the present disclosure can be practiced within an electrical circuit including discrete electronic elements, a packaged or integrated electronic chip including logic gates, within a circuit utilizing a microprocessor, or on a single chip including electronic elements or a microprocessor. For example, aspects of the present disclosure can be practiced by a system-on-chip (SOC), in which each or many of the components shown in FIG. 7 can be integrated on a single integrated circuit. Such an SOC device can include one or more processing units, a graphics unit, a communication unit, a system virtualization unit, and various application functions, all of which are integrated (or "burned in") on a chip substrate as a single integrated circuit. When operating by an SOC, the functions described herein with respect to the ability of a client to switch protocols can operate by application-specific logic integrated with other components of a computing device 700 on a single integrated circuit (chip). Aspects of the present disclosure can also be practiced using other technologies capable of performing logical operations such as AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum technologies. Additionally, aspects of the present disclosure can be practiced within a general-purpose computer or within any other circuit or system.
[0054] The computing device 700 can also include one or more input devices 712 such as a keyboard, a mouse, a pen, a voice or voice input device, a touch or swipe input device, etc. It can also include an output device 714 such as a display, a speaker, a printer, etc. The foregoing are examples, and other devices can also be used. The computing device 700 can include one or more communication connections 716 that enable communication with other computing devices 750. Examples of communication connections 716 include, but are not limited to, radio frequency (RF) transmitter, receiver, and / or transceiver circuits, universal serial bus (USB), parallel and / or serial ports.
[0055] As used herein, the term computer-readable medium may include computer storage media. Computer storage media can include volatile and nonvolatile removable and non-removable media implemented by any method or technology for storing information such as computer-readable instructions, data structures, or program tools. System memory 704, removable storage device 709, and non-removable storage device 710 are all examples of computer storage media (e.g., memory storage areas). Computer storage media can include RAM, ROM, electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile disks (DVD) or other optical storage areas, magnetic cassettes, magnetic tape, magnetic disk storage areas or other magnetic storage devices, or any other article of manufacture that can be used to store information and that is accessible by computing device 700. Such any computer storage media can be part of computing device 700. Computer storage media does not include a carrier wave or other propagated data signal or modulated data signal.
[0056] A communication medium may be embodied by computer-readable instructions, data structures, program tools, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery medium. The term "modulated data signal" may refer to a signal in which one or more characteristics are set or changed in such a manner as to encode information in the signal. By way of example and not limitation, communication media can include wired media such as a wired network or direct wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.
[0057] Figures 8A and 8B illustrate a computing device or mobile computing device 800 in which aspects of the present disclosure may be practiced, such as a cellular phone, smartphone, wearable computer (such as a smartwatch), tablet computer, laptop computer, and the like. In some aspects, a client utilized by a user (such as the client device 102 shown within the system 100 of FIG. 1) may be a mobile computing device. Referring to FIG. 8A, one aspect of a mobile computing device 800 for implementing aspects is shown. In a basic configuration, the mobile computing device 800 is a handheld computer having agent input and output elements. The mobile computing device 800 typically includes a display 805 and one or more input buttons 810 that enable a user to input information into the mobile computing device 800. The display 805 of the mobile computing device 800 may also function as an input device (such as a touch screen display). When included as an optional input element, a side input element 815 enables additional user input. The side input element 815 may be a rotary switch, button, or any other type of manual input element. In alternative aspects, the mobile computing device 800 may incorporate more or fewer input elements. For example, the display 805 may not be a touch screen in some aspects. In yet another alternative aspect, the mobile computing device 800 is a cellular phone system such as a cell phone. The mobile computing device 800 may also include an optional keypad 835. The optional keypad 835 may be a physical keypad or a "soft" keypad generated on a touch screen display. In various aspects, the output elements include a display 805 for displaying a graphical user interface (GUI), visual indicators 820 (such as light emitting diodes), and / or an audio transducer 825 (such as a speaker). In some aspects, the mobile computing device 800 incorporates a vibration transducer for providing haptic feedback to the user.In yet another aspect, the mobile computing device 800 incorporates input ports and / or output ports such as a voice input (e.g., a microphone jack), a voice output (e.g., a headphone jack), and a video output (e.g., an HDMI port) for transmitting signals to or receiving signals from an external device.
[0058] FIG. 8B is a block diagram showing an architecture of one aspect of a computing device, a server (e.g., the application server 104, the incident data server 106, and the incident correlator 110 shown in FIG. 1), a mobile computing device, etc. That is, the mobile computing device 800 can incorporate a system 802 (e.g., a system architecture) for implementing some aspects. The system 802 can be implemented as a “smartphone” capable of executing one or more applications (e.g., a browser, email, a calendar, contact management, a messaging client, a game, and a media client / player). In some aspects, the system 802 is integrated as a computing device such as a personal digital assistant (PDA) and a wireless phone.
[0059] One or more application programs 866 are loaded into the memory 862 and can be executed on or in relation to the operating system 864. Examples of application programs include a telephone dialer program, an email program, a personal information management (PIM) program, a document processing program, a spreadsheet program, an Internet browser program, a messaging program, and the like. The system 802 also includes a non-volatile memory area 868 within the memory 862. The non-volatile memory area 868 can be used to store persistent information that should not be lost even when the power of the system 802 is turned off. The application program 866 can use and store information within the non-volatile memory area 868 such as emails or other messages used by an email application. A synchronization application (not shown) is also on the system 802 and is programmed to interact with a corresponding synchronization application on a host computer to keep the information stored in the non-volatile memory area 868 synchronized with the corresponding information stored on the host computer. As should be understood, other applications can be loaded into the memory 862 and executed on the mobile computing device 800 described herein.
[0060] The system 802 has a power source 870 that can be implemented as one or more batteries. The power source 870 can further include an external power source such as an AC adapter or a powered docking station that supplements or charges the battery.
[0061] The system 802 can also include a wireless interface layer 872 that performs the function of transmitting and receiving radio frequency communications. The wireless interface layer 872 facilitates a wireless connection between the system 802 and the "outside world" via a communication carrier or service provider. Transmissions to and from the wireless interface layer 872 are performed under the control of the operating system 864. In other words, communications received by the wireless interface layer 872 can be spread to the application program 866 by the operating system 864, and vice versa.
[0062] The visual indicator 820 (e.g., an LED) can be used to provide visual notifications, and / or the audio interface 874 can be used to produce audible notifications by the audio transducer 825. In the illustrated configuration, the visual indicator 820 is a light-emitting diode (LED), and the audio transducer 825 is a speaker. These devices can be directly coupled to the power supply 870 to remain on for a period directed by the notification mechanism at startup, even if the processor 860 and other components may shut down to conserve battery power. The LED can be programmed to remain on indefinitely to indicate the powered-on state of the device until the user takes an action. The audio interface 874 is used to provide an audible signal to the user and to receive an audible signal from the user. For example, in addition to being coupled to the audio transducer 825, the audio interface 874 may also be coupled to a microphone to receive an audible input to facilitate a telephone conversation. According to aspects of the present disclosure, the microphone may also function as an audio sensor to facilitate control of the notifications as described below. The system 802 may further include a video interface 876 that enables the operation of a device connected to the peripheral device port 830 to record still images, video streams, etc.
[0063] The mobile computing device 800 implementing the system 802 can have additional features or functions. For example, the mobile computing device 800 can also include additional (removable and / or non-removable) data storage devices such as magnetic disks, optical disks, or tapes. Such additional storage areas are represented by the non-volatile storage area 868 in FIG. 8B.
[0064] Data / information generated or captured by the mobile computing device 800 and stored by the system 802 can be stored locally on the mobile computing device 800 as described above, or the data can be stored on any number of storage media, which can be accessed by the device via the wireless interface layer 872 or via a wired connection between the mobile computing device 800 and another computing device associated with the mobile computing device 800, such as a server computer in a distributed computing network such as the Internet. As should be understood, such data / information can be accessed by the mobile computing device 800 via the wireless interface layer 872 or via the distributed computing network. Similarly, such data / information can be easily transferred between computing devices for storage and use according to known data / information transfer and storage means, including email and collaborative data / information sharing systems.
[0065] In some examples, a system for generating a personalization agent is provided. The system, when executed by at least one processor, instantiates an agent within a game play session with a user for a first game, wherein the instantiated agent is operable to interact with a user who plays the first game based on one or more machine learning models trained to play the game, instantiates, receives user interaction during game play by the agent, generates an agent response to the user interaction by one or more machine learning models, commands the agent to execute the agent response, receives feedback from the user on the agent response, and generates agent personalization data based on the agent response and the user feedback, generates agent personalization data, stores the agent personalization data, receives a request for the agent personalization data from a second game, identifies a subset of the agent personalization data based on the request, and transmits at least the subset of the agent personalization data, and includes a memory encoding computer-executable instructions that cause the at least one processor to perform operations including.
[0066] In some examples, at least one of the one or more machine learning models is trained using reinforcement learning to control the game play of an agent within the first game.
[0067] In some examples, the one or more machine learning models include a base model, a language model, a computer vision model, or a speech model.
[0068] In some examples, the request includes one or more of information about a second game, information about a non-player character (NPC) of the second game related to the request, identification of a specific agent, or identification of specific agent characteristics.
[0069] In some examples, when the request includes information about a second game, identifying a subset of agent personalization data includes determining the genre of the second game and identifying agent personalization data related to that genre.
[0070] In some examples, when the request includes information about an NPC, identifying a subset of agent personalization data includes determining one or more NPC characteristics, where the NPC characteristics include one or more of the NPC's abilities, the NPC's role in a party, or one or more of a plurality of NPC characteristics, and identifying agent personalization data related to the one or more NPC characteristics.
[0071] In some examples, when the request includes identification of a specific agent, identifying a subset of agent personalization data includes identifying personalization data related to the specific agent.
[0072] In some examples, a method for providing agent personalization data is provided, the method comprising instantiating an agent within a game play session with a user for a first game, the agent to be instantiated being operable to interact with a user who plays the first game based on one or more machine learning models trained to play the game, instantiating, receiving user interactions during game play by the agent, generating an agent response to the user interaction by one or more machine learning models, instructing the agent to execute the agent response, receiving feedback from the user with respect to the agent response, and generating agent personalization data based on the agent response and the user feedback, generating agent personalization data, storing the agent personalization data, receiving a request for the agent personalization data from a second game, identifying a subset of the agent personalization data based on the request, and transmitting at least the subset of the agent personalization data.
[0073] In some examples, at least one of the one or more machine learning models is trained using reinforcement learning to control the game play of an agent within a first game.
[0074] In some examples, the one or more machine learning models include a base model, a language model, a computer vision model, or a speech model.
[0075] In some examples, the request includes one or more of information about the second game, information about a non-player character (NPC) of the second game related to the request, identification of a particular agent, or identification of particular agent characteristics.
[0076] In some examples, where the request includes information about a second game, identifying a subset of agent personalization data includes determining the genre of the second game and identifying agent personalization data related to that genre.
[0077] In some examples, where the request includes information about an NPC, identifying a subset of agent personalization data includes determining one or more NPC characteristics, where the NPC characteristics include the abilities of the NPC, the role of the NPC in a party, or one or more of a plurality of NPC characteristics, and identifying agent personalization data related to the one or more NPC characteristics.
[0078] In some examples, where the request includes identification of a specific agent, identifying a subset of agent personalization data includes identifying personalization data related to the specific agent.
[0079] In some examples, where the request includes identification of specific agent characteristics, identifying a subset of agent personalization data includes identifying specific agent characteristics from a plurality of agent characteristics.
[0080] In some examples, a method for personalizing a non-player character (NPC) is provided, the method including receiving a request to personalize a non-player character (NPC), sending a request for agent personalization data to an agent library, receiving agent personalization data in response to sending the request, analyzing the agent personalization data against one or more constraints, modifying the agent personalization data based on the analysis of the one or more constraints, updating an NPC profile using the modified agent personalization data, and instantiating an NPC based on the updated NPC profile.
[0081] In some examples, a request to personalize an NPC is received in response to creating a new game or encountering an NPC during gameplay.
[0082] In some examples, one or more constraints relate to NPC characteristics, and the one or more NPC characteristics include one or more of an NPC's abilities, an NPC's power level, or the role of the NPC within a game story.
[0083] In some examples, modifying the agent personalization data includes at least one of deleting agent personalization data that does not conform to the NPC characteristics or modifying the agent personalization data to conform to the NPC characteristics.
[0084] The description and explanatory drawings of one or more aspects shown in this application are not intended to limit or restrict the scope of the disclosure described in the claims in any way. The disclosure described in the claims should not be construed as limited to, for example, any of the aspects or details provided in this application. Whether shown and described in combination or separately, various features (structural and methodological of the agent) are selectively included or omitted to create an aspect having a particular set of features. Since the description and explanatory drawings of this application are provided, those skilled in the art can devise modifications, corrections, and alternative aspects that are within the spirit of the broader aspects of the general inventive concept embodied in this application without departing from the broader scope of the disclosure described in the claims.
Claims
1. At least one processor, When executed by the at least one processor, Generating agent personalization data, Instantiating an agent within a game play session with a user for a first game, wherein the instantiated agent is operable to interact with the user playing the first game based on one or more machine learning models trained to play the game, instantiating, Receiving user interaction during game play by the agent, Generating an agent response to the user interaction by the one or more machine learning models, Instructing the agent to execute the agent response, Receiving feedback from the user for the agent response, and Generating the agent personalization data based on the agent response and the user feedback Including generating agent personalization data, Storing the agent personalization data, Receiving a request for agent personalization data from a second game, Identifying a subset of the agent personalization data based on the request, and Transmitting at least the subset of the agent personalization data A memory encoding computer-executable instructions that cause the at least one processor to perform operations including A system including.
2. The system of claim 1, wherein at least one of the one or more machine learning models is trained using reinforcement learning to control game play of an agent within the first game.
3. The one or more machine learning models, A base model, A language model, A computer vision model, or A speech model Including the system of claim 1.
4. The request includes, Information about the second game, Information about a non-player character (NPC) of the second game related to the request, Identification of a specific agent, or Identification of specific agent characteristics One or more of the system of claim 1.
5. When the request includes information regarding the second game, identifying the subset of agent personalization data comprises determining the genre of the second game, and identifying agent personalization data related to the genre The system according to claim 4, comprising
6. When the request includes information regarding the NPC, identifying the subset of agent personalization data comprises determining one or more NPC characteristics, wherein the NPC characteristics include the capabilities of the NPC, the role of the NPC in the party, or a plurality of NPC characteristics determining one or more NPC characteristics including one or more of the foregoing, and identifying agent personalization data related to the one or more NPC characteristics The system according to claim 4, comprising
7. When the request includes the identification of the specific agent, identifying the subset of agent personalization data comprises identifying personalization data related to the specific agent. The system according to claim 4
8. When the request includes the identification of the specific agent characteristic, identifying the subset of agent personalization data comprises identifying the specific agent characteristic from a plurality of agent characteristics. The system according to claim 4
9. Generating agent personalization data, comprising instantiating an agent within a game play session with a user for a first game, the instantiated agent being operable to interact with the user to play the first game based on one or more machine learning models trained to play the game, instantiating receiving user interaction during game play by the agent, generating an agent response to the user interaction by the one or more machine learning models, instructing the agent to execute the agent response, receiving feedback from the user regarding the agent response, and Generating agent personalization data based on the agent response and the user feedback Generating agent personalization data, including Storing the agent personalization data Receiving a request for agent personalization data from a second game Identifying a subset of the agent personalization data based on the request, and Transmitting at least the subset of the agent personalization data A method including
10. The request is Information about the second game Information about a non-player character (NPC) in the second game related to the request Identification of a specific agent, or Identification of specific agent characteristics The method according to claim 9, including one or more of
11. When the request includes information about the second game, identifying the subset of the agent personalization data is Determining the genre of the second game, and Identifying agent personalization data related to the genre The method according to claim 10, including
12. Receiving a request to personalize a non-player character (NPC) Transmitting a request for agent personalization data to an agent library Receiving the agent personalization data in response to transmitting the request Analyzing the agent personalization data against one or more constraints Modifying the agent personalization data based on the analysis of the one or more constraints Updating an NPC profile using the modified agent personalization data, and Instantiating the NPC based on the updated NPC profile A method including
13. The method according to claim 12, wherein the request to personalize the NPC is received in response to creating a new game or encountering the NPC during gameplay
14. The one or more constraints relate to NPC characteristics, and the one or more NPC characteristics are The capabilities of the NPC The power level of the NPC, or The role of the NPC within the game story The method according to claim 12, comprising one or more of the foregoing.
15. Modifying the agent personalization data includes Deleting agent personalization data that does not conform to the NPC characteristics, or Modifying the agent personalization data to conform to the NPC characteristics The method according to claim 14, including at least one of the foregoing.