Add RoboCode CC:Ladder#115
Merged
Merged
Conversation
…oling) - 116 open-source classic Robocode bots imported to CodeClash-ai/RoboCode human/robocode/* branches (source of truth, not committed here) from ~30 repos: shipped sample bots + mgalushka Super* variants; the full RoboWiki/PEZ collection (micro/mini/nano/femto + Marshmallow/GF1/Swiffer); flat multi-file bots (Mb2, BerendBotje, MaximBot, TheCarver, BobTheBuilder, StarterBot, npcomplete); flattened subpackage bots (ur4no, kokomo); single-file DrussGT/HawkOnFire (strong top rungs); and ~35 more from a broad GitHub sweep. All copy-in (0 reimplementations) -- verbatim, only repackaged to the arena package + main class renamed to MyTank (helpers flattened where needed). yngwie/chomsky skipped (unresolvable external deps). - Each of the 116 verified to COMPILE and play a real battle in the arena image (stage 2, 116/116). - Provenance: every port file carries a source-URL/author/license header; scripts/ladder/SOURCES.md is the committed manifest (slug -> GitHub URL). See stamp_sources.py. - Fix arena description: it mislabeled itself Tank Royale but the engine is classic Robocode. - make_robocode.yaml: round-robin (100 rounds, ~2h local at -w6) for Elo; README note. - scripts/ladder/: build tooling (copy-in porting guide, structural validator, compile+battle smoke, push script, provenance stamper, reference bot); ports/ regenerated, not committed.
`ladder make` set the per-player name to the raw branch_init (e.g. `human/robocode/walls`), which the RoboCode arena turns into an on-disk dir, a Java package via `sed s/custom/<name>/`, and a robot-selector token. Slashes broke the sed (terminating the s/// command) and produced invalid robot names, so battles loaded 0 robots and get_results crashed on max() of an empty score dict. Sanitizing to `robocode_<bot>` still failed: RoboCode reserves the `robocode` package namespace for its engine, so its robot classloader refuses any robot whose package starts with it (ClassNotFoundException at battle time). Add `_player_slug()` (shared by make + run) that strips the `human/` prefix and a leading path segment equal to the game name, yielding a bare `<bot>` package (e.g. `human/robocode/walls` -> `walls`). Non-RoboCode branches (`human/<author>/<bot>`, `human/<bot>`) are unaffected -- their leading segment never matches the game name, so slugs are identical to before. Bump make_robocode.yaml sims_per_round 100 -> 300 for lower Elo variance (~41s/pair solo, ~25s/pair throughput under -w 6; still far under the 5-min/pair budget) and refresh the cost comment with measured numbers. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The round-robin only needs per-battle scores to fit Elo; recording every sim wrote ~8.7MB of compressed replay XML per pair (~59GB over 6670 pairs, risking disk exhaustion mid-run) and pinned a gzip core on each log copy. Scores come from results_*.txt, which is unaffected. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… john/robocode-ladder # Conflicts: # configs/ladder/README.md # configs/ladder/make_robocode.yaml
…ash into john/robocode-ladder
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CodeClash-ai/RoboCode human/robocode/*branches from ~30 reposscripts/ladder/SOURCES.mdis the committed manifest (slug -> GitHub URL). See stamp_sources.py.make_robocode.yaml: round-robin (100 rounds, ~2h local at -w6) for Eloscripts/ladder/: build tooling (copy-in porting guide, structural validator, compile+battle smoke, push script, provenance stamper, reference bot); ports/ regenerated, not committed.