From 43afae8f63d4eb8885a02d43a598e9fd8bbf4b31 Mon Sep 17 00:00:00 2001 From: Skilly Date: Sun, 6 Sep 2026 17:15:06 +0200 Subject: [PATCH] Update README.md --- README.md | 78 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 43 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 441a8f7..1694b9e 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,8 @@ -# Archipelago World Tester -_Disclaimer: AI was used in this project_ +# Archipelago World Generation Tester +_Disclaimer: AI was used in this repository_ -This project checks whether [community Archipelago worlds](https://docs.google.com/spreadsheets/d/1iuzDTOAvdoNe8Ne8i461qGNucg5OuEoF-Ikqs8aUQZw/edit?gid=58422002#gid=58422002) can generate a seed. -It reads the community worlds spreadsheet, downloads each world's newest `.apworld` file, and runs Archipelago's generator against it in a Docker container. To see the results of this live in action, see [worlds.archipelago.skillysue.nl](https://worlds.archipelago.skillysue.nl) - -Each world is tested five ways: - -- by itself -- with two players of the same game -- with 2–5 of Archipelago's built-in worlds -- by itself with its options randomized -- with other worlds and its options randomized - -Each test is repeated with different seeds. The results are combined into one of six stability values: - -| Value | Meaning | -| --- | --- | -| Stable | Every attempt succeeded | -| Minor issues | Solo and multiworld tests worked, but a randomized test failed | -| Flaky | Some attempts succeeded and others failed | -| Solo only | Works by itself, but fails with other worlds | -| Broken | Could not generate at all | -| Unknown | No usable result, for example because the `.apworld` was missing or a ROM was required | - -A successful test means the world loaded, generated a seed, and computed the spoiler log at the configured level. With the default `playthrough` level, this also checks that the seed is completable. - +This repository contains a python packages that can check whether community Archipelago worlds can generate a valid seed without bringing down the multi-game world. +It uses the [community worlds spreadsheet](https://docs.google.com/spreadsheets/d/1iuzDTOAvdoNe8Ne8i461qGNucg5OuEoF-Ikqs8aUQZw/edit?gid=58422002#gid=58422002) to download each world's newest `.apworld` file, and runs Archipelago's generator against it in a Docker container. To see the results of this live in action, see [worlds.archipelago.skillysue.nl](https://worlds.archipelago.skillysue.nl) ## Contents - [Requirements](#requirements) @@ -33,6 +11,7 @@ A successful test means the world loaded, generated a seed, and computed the spo - [Install the package](#install-the-package) - [Configuration](#configuration) - [GitHub](#github) +- [Testing overview](#testing-overview) - [Test worlds](#test-worlds) - [Test all worlds](#test-all-worlds) - [Test a local `.apworld`](#test-a-local-apworld) @@ -112,25 +91,52 @@ The tester checks and downloads hundreds of apworlds from GitHub repositories. I GITHUB_TOKEN=ghp_ ``` +## Testing overview + +Each world is tested five ways: + +- by itself +- with two players of the same game +- with 2–5 of Archipelago's built-in worlds +- by itself with its options randomized +- with other worlds and its options randomized + +Each test is repeated with different seeds. The results are combined into one of six stability values: + +| Value | Meaning | +| --- | --- | +| Stable | Every attempt succeeded | +| Minor issues | Solo and multiworld tests worked, but a randomized test failed | +| Flaky | Some attempts succeeded and others failed | +| Solo only | Works by itself, but fails with other worlds | +| Broken | Could not generate at all | +| Unknown | No usable result, for example because the `.apworld` was missing or a ROM was required | + +A successful test means the world loaded, generated a seed, and computed the spoiler log at the configured level. With the default `playthrough` level, this also checks that the seed is completable. + + ## Test worlds The `TestRun` class can be used to test one or more worlds: ```python from apworld_tester import TestRun -TestRun("Baba Is You").run() +test = TestRun("Baba Is You") +test.run() ``` To test multiple worlds, supply the names as a list: ```python -TestRun(["Baba Is You", "Anodyne"]).run() +test = TestRun(["Baba Is You", "Anodyne"]) +test.run() ``` To test all worlds that have already been downloaded, add `cached=True`: ```python -TestRun(cached=True).run() +test = TestRun(cached=True) +test.run() ``` The first run clones Archipelago and builds the Docker image, which can take several minutes. @@ -141,7 +147,8 @@ The real benefit of the tester is to parse the community worlds spreadsheet and ```python from apworld_tester import UpdateRun -UpdateRun().run() +updater = UpdateRun() +updater.run() ``` ## Test a local `.apworld` @@ -153,15 +160,16 @@ In case you want to test a world for which you have an apworld locally, you can └── my_game.apworld ``` -Then run: +Then run the following: ```python from apworld_tester import TestRun -TestRun( - "My Game", - root_directory="/home/you/my-apworlds", -).run() +test = TestRun( + game="My Game", + root_directory="~/my-apworlds", +) +test.run() ``` ## Related Projects