GameAgent Plugin
The GameAgent plugin extends the base GameAgent class with game-specific functionality.
Plugin Package Structure
Creating a GameAgent Subclass
Required Components
One or more frame handler functions
Frame handler setup functions (optional)
Frame handler registrations in constructor
Frame handler setup registrations in constructor
Optional AnalyticsClient instance
Registering Components
Frame Handler Registration
class MyGameAgent(GameAgent):
def __init__(self, **kwargs):
super().init(**kwargs)
self.frame_handlers["MY_FRAME_HANDLER"] = self.my_frame_handler
def my_frame_handler(self, game_frame):
passFrame Handler Setup Registration
class MyGameAgent(GameAgent):
def __init__(self, **kwargs):
super().init(**kwargs)
self.frame_handler_setups["MY_FRAME_HANDLER"] = self.my_frame_handler_setup
def my_frame_handler_setup(self):
passHelper Modules
Create files in
files/helpersAdd desired functions and classes
Import in GameAgent subclass using relative imports
In files/helpers/utils.py:
def hello_world():
print("Hello World!")In your GameAgent subclass:
from .helpers.utils import hello_worldMachine Learning Models
Adding Models
Copy models to
files/ml_modelsUse
.modelextension (recommended for Git LFS support)
Loading Models
Load in constructor for all frame handlers:
class MyGameAgent(GameAgent):
def __init__(self, **kwargs):
super().init(**kwargs)
self.machine_learning_models["MY_MODEL"] = self.load_machine_learning_model(
os.path.join(os.path.dirname(__file__), "ml_models/my_model.model")
)Load in setup function for specific handler:
class MyGameAgent(GameAgent):
def __init__(self, **kwargs):
super().init(**kwargs)
self.frame_handlers["MY_FRAME_HANDLER"] = self.my_frame_handler
self.frame_handler_setups["MY_FRAME_HANDLER"] = self.my_frame_handler_setup
def my_frame_handler_setup(self):
self.machine_learning_models["MY_MODEL"] = self.load_machine_learning_model(
os.path.join(os.path.dirname(__file__), "ml_models/my_model.model")
)
def my_frame_handler(self, game_frame):
passLast updated
