Hasty Briefsbeta

Bilingual

Using Aspect-Oriented Programming to Record DRL Agents' Data

3 days ago
  • #aspect-oriented-programming
  • #automated-testing
  • #game-development
  • Playtesting is crucial for game development to find bugs, evaluate UX, balance the game, and assess fun.
  • PEAK is a game engine with integrated deep reinforcement learning (DRL) agents for automated testing of 2D platformers.
  • The workflow involves designing a level, training DRL agents with specific playstyles, and collecting data to identify balance issues.
  • The project focuses on data collection, aggregation, and visualization, using the Observer Pattern and Aspect-Oriented Programming (AOP).
  • Aspect-Oriented Programming (AOP) is used to separate data collection (aspects) from core game code, with pointcuts specifying join points.
  • Decorators in Python are initially used to track data, but they require editing core game files.
  • Config files (YAML) are introduced to inject recorder methods into game methods via reflection, avoiding code changes.
  • A simple Streamlit dashboard is created for data visualization, though current insights are limited.
  • Future work includes defining useful metrics (e.g., completion rate, mean completion time) and thresholds via config files, with challenges in measurement.