game-analytics
Purpose
This skill analyzes game data metrics to track player behavior and optimize performance, processing logs, sessions, and metrics from games.
When to Use
Use this skill for processing in-game data during development, such as identifying player drop-off in levels, optimizing resource usage, or debugging performance bottlenecks in real-time multiplayer games.
Key Capabilities
- Parse JSON-formatted game logs to extract metrics like session duration and player actions (e.g., via
claw game-analytics parse --input logs.json). - Generate reports for behavior tracking, such as heatmaps of player movement using API endpoint
GET /api/analytics/reports/heatmap?gameId=123. - Perform optimization queries, like querying for high-latency events with SQL-like filters (e.g., config in YAML:
metrics: [latency > 500ms]). - Integrate with ML models for predictive analytics, e.g., predict churn based on play patterns using embedded functions like
claw game-analytics predict --model churn.json.
Usage Patterns
Always initialize with authentication via environment variable $GAME_ANALYTICS_API_KEY. For CLI, run commands in a project directory with game data files. In code, import as a module and call functions directly. Use asynchronous patterns for large datasets to avoid blocking. For example, chain commands: first parse data, then analyze. Handle outputs as JSON streams for piping to other tools.
Common Commands/API
- CLI Command:
claw game-analytics analyze --file data.json --metric player-session --output report.csv(parses file, filters by metric, saves to CSV; requires $GAME_ANALYTICS_API_KEY). - API Endpoint:
POST /api/analytics/trackwith body{ "event": "player_login", "data": { "sessionId": "abc123", "timestamp": "2023-10-01T12:00:00Z" } }(sends tracking data; authenticate with Bearer token from $GAME_ANALYTICS_API_KEY). - Code Snippet (Python):
import claw api_key = os.environ.get('GAME_ANALYTICS_API_KEY') response = claw.analytics.track(event='level_complete', data={'level': 5}, api_key=api_key) print(response.json()) - Config Format: YAML file for custom metrics, e.g.,
Load withmetrics: - name: session_length threshold: 300 # seconds filters: - player_type: 'new'claw game-analytics load-config config.yaml.
Integration Notes
Integrate by setting $GAME_ANALYTICS_API_KEY in your environment before running commands. For web apps, use OAuth via claw game-analytics auth --provider google to get a token. In Node.js projects, require the module and handle promises:
const claw = require('claw');
claw.analytics.setKey(process.env.GAME_ANALYTICS_API_KEY);
claw.analytics.analyze({ file: 'data.json' }).then(data => console.log(data));
Ensure data formats match (e.g., JSON inputs only). For cluster integration, link with 'game-dev' tools by prefixing commands, like claw game-dev game-analytics analyze.
Error Handling
Check for errors by inspecting exit codes in CLI (e.g., code 401 means auth failure; retry with claw game-analytics retry --command analyze). In API calls, catch HTTP errors: if status 403, log "Invalid API key" and prompt for $GAME_ANALYTICS_API_KEY reset. Use try-except in code snippets:
try:
result = claw.analytics.analyze(file='data.json')
except claw.AnalyticsError as e:
if e.code == 'AUTH_FAILED':
print("Set GAME_ANALYTICS_API_KEY and retry")
Always validate inputs before processing to avoid parsing errors (e.g., ensure JSON is well-formed).
Concrete Usage Examples
- To track player behavior in a mobile game: First, export logs to JSON, then run
claw game-analytics analyze --file player_logs.json --metric drop-offto identify levels with high quit rates. Use the output to adjust game design, e.g., via API:POST /api/analytics/optimizewith { "suggestions": true }. - For performance optimization in a multiplayer server: Load config with
claw game-analytics load-config perf.yaml, then executeclaw game-analytics query --metric latency --filter 'server=prod'to get reports. Integrate into a CI/CD pipeline to automate checks, using code:claw.analytics.query({ metric: 'latency' }).then(results => { if (results.avg > 100) console.log('Optimize server'); });
Graph Relationships
- Related to: game-dev cluster (parent), player-tracking skill (dependency), data-metrics skill (sibling).
- Connects with: game-logging for input data, performance-optimization for action outputs.