Use API to create a benchmark suite
- 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
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