Polestar
Polestar is a free, open-source leveling guide addon for WoW: Forever: an in-game arrow and leveling routes that make sense for every race 1 to 60, plus class quests.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Interactive Replay Viewer & Match Lobby for CTF Multi-Agent AI Arena (KDA Matrix, Slow-Mo Playback, Multi-Agent Analytics)
翻訳待ち
Loading the full README. The saved excerpt is shown below.
Turn-by-turn replays of AI agents playing capture the flag. Pick a match in the lobby, scrub to any turn, follow any unit, and see where each game was won. The interface is available in English and Chinese and works on phones.Read the full README ↗▶ Live site / 在线观看:https://casper015.github.io/ctf-replay-viewer/
Turn-by-turn replays of AI agents playing capture the flag. Pick a match in the lobby, scrub to any turn, follow any unit, and see where each game was won. The interface is available in English and Chinese and works on phones.
match.html?m=g2&t=378).Everything is static HTML, CSS and JavaScript. There is nothing to install or build.
git clone https://github.com/Casper015/ctf-replay-viewer.git
cd ctf-replay-viewer
python3 tools/serve.py # then open http://localhost:8000
Double-clicking
site/index.htmlwon't work: browsers block JavaScript modules onfile://pages. Always use a local server.
A match needs two files: the replay (what happened each turn) and the metadata (the title and description shown in the lobby, in both languages). tools/add_match.py creates both for you.
1. Get the replay JSON. Use the arena engine's recorder, or any tool that writes the replay format. If you have the private ctf-stress-pack, tools/build_replays.py can re-simulate scheduled games.
2. Add it.
# One match. The key becomes the URL: match.html?m=g4_spring_final
python3 tools/add_match.py add path/to/replay.json --key g4_spring_final --id sz04-m012345
# A whole competition at once: every .json in the folder becomes a match (key = file name)
python3 tools/add_match.py add path/to/spring_cup/
The script:
site/data/matches/<key>.jsoncontent/matches/<key>.json, with a title and description drafted in both languages from the replay's facts (who won, the score, comebacks, the deciding turn)site/data/catalog.json, so the match is in the lobby right away3. Check the text. Open content/matches/<key>.json and improve the drafted text if you like. See Writing match text. To check facts such as scores and turn numbers:
python3 tools/build_catalog.py --report # prints scores and lead changes for every match
python3 tools/build_catalog.py # run again after editing content/matches/*.json
4. Preview. Run python3 tools/serve.py and open http://localhost:8000/match.html?m=<key>.
5. Run the checks. These are the same checks CI runs before deploying:
python3 tools/build_catalog.py --check
node tools/check.mjs
6. Commit and open a pull request with these three paths:
content/matches/<key>.json
site/data/matches/<key>.json
site/data/catalog.json
CI runs the checks on the pull request. When it's merged to main, the site redeploys automatically.
If you'd rather write the title yourself before adding the match:
python3 tools/add_match.py draft path/to/replay.json --key g4_spring_final -o my_match.json
# edit my_match.json (same fields as tools/templates/match.json)
python3 tools/add_match.py add path/to/replay.json --meta my_match.json
Any text field left as "auto" or empty is drafted for you.
| Command | What it does |
|---|---|
python3 tools/add_match.py list | List matches in lobby order (* = featured) |
python3 tools/add_match.py add replay.json --featured | Show this match in the lobby hero (unfeatures the current one) |
python3 tools/add_match.py add replay.json --order 15 | Put it at a specific place in the list (low numbers first) |
python3 tools/add_match.py add replay.json --key g2 --force | Replace an existing match |
python3 tools/add_match.py add replay.json --dry-run | Preview what would be added, write nothing |
python3 tools/add_match.py remove g4_spring_final | Delete a match |
Each content/matches/<key>.json has tag, title and desc, each with zh and en:
{
"key": "g4_duel",
"id": "sz04-m016157",
"order": 70,
"featured": false,
"tag": { "zh": "末回合绝杀", "en": "Last-turn winner" },
"title": { "zh": "Player5 第 400 回合交旗,18:17 绝杀 GPT-6.1 Sol",
"en": "Player5 beats GPT-6.1 Sol 18–17 with a capture on the final turn" },
"desc": { "zh": "两强包揽全场 47 球中的 35 球……", "en": "The top two shared 35 of the game's 47 captures…" }
}
This is the beginning of the README. Read the rest at the original. Read the full README ↗