Baekalfen / Baekalfen/PyBoy

Use API to create a benchmark suite

Open
#63 2 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
5.2k
Forks
539
Avg merge
1d 10h
Merged PRs (30d)
5

Description

To better optimize performance, we will need a reference workload, which is accurate. [With the API](https://docs.pyboy.dk), it will be easy to make a frame-accurate benchmark.

A test could load up a game (see [game-specific wrapper](https://github.com/Baekalfen/PyBoy/wiki/Example-Super-Mario-Land)) and interact with the game using button presses, and waiting for monsters, points, etc. and take action.

Each workload could run for a minute of simulated game time or more. But should be deterministic, even if frame-timing changes slightly. Manipulating the RNG might be needed.

Contributor guide

Open the contributing guide

Research direction

Start with the PyBoy API documentation and the game-specific wrapper example for Super Mario Land. Define a workload that loads a game, performs button presses and waits for in-game events, and runs for at least a minute of simulated time. It is done when the benchmark is frame-accurate and deterministic despite small frame-timing changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
performance, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.