mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-16 22:42:01 +00:00
feat(*): Promote curric-s6-unmask as the shipped "easy" bot
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
[node name="Match" type="Node3D"]
|
[node name="Match" type="Node3D"]
|
||||||
script = ExtResource("1_m")
|
script = ExtResource("1_m")
|
||||||
bot_model_path = "res://bots/run05.json"
|
bot_model_path = "res://bots/promoted/easy.json"
|
||||||
|
|
||||||
[node name="Arena" parent="." instance=ExtResource("2_m")]
|
[node name="Arena" parent="." instance=ExtResource("2_m")]
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
[node name="Spectate" type="Node3D"]
|
[node name="Spectate" type="Node3D"]
|
||||||
script = ExtResource("1_s")
|
script = ExtResource("1_s")
|
||||||
bot_a_model_path = "res://bots/run05.json"
|
bot_a_model_path = "res://bots/promoted/easy.json"
|
||||||
bot_b_model_path = "res://bots/run05.json"
|
bot_b_model_path = "res://bots/promoted/easy.json"
|
||||||
|
|
||||||
[node name="Arena" parent="." instance=ExtResource("2_s")]
|
[node name="Arena" parent="." instance=ExtResource("2_s")]
|
||||||
|
|
||||||
|
|||||||
+25
@@ -142,6 +142,31 @@ mode (`bot_model_path`, `bot_reaction_ticks`, `bot_action_noise` in
|
|||||||
reactions, easier.
|
reactions, easier.
|
||||||
- **action_noise**: adds execution error, easier.
|
- **action_noise**: adds execution error, easier.
|
||||||
|
|
||||||
|
### Promoted bots (`Game/bots/promoted/`)
|
||||||
|
|
||||||
|
`Game/bots/*.json` is a flat, ever-growing dump of every experiment/curriculum
|
||||||
|
export — useful for `evaluate.py` and for A/B-ing arbitrary past checkpoints
|
||||||
|
against each other in the in-game Spectate dropdown (`main_menu.gd` lists
|
||||||
|
`Game/bots/` non-recursively, so anything one directory deeper is invisible
|
||||||
|
to it), but none of those filenames (`run07.json`, `curric-s3-no_draws.json`,
|
||||||
|
...) are meant to be *the* shipped bot — they get superseded constantly and
|
||||||
|
the automated curriculum pipeline (`run_training.sh`) only ever writes new
|
||||||
|
flat files there, never touching subdirectories.
|
||||||
|
|
||||||
|
`Game/bots/promoted/<tier>.json` is the small, curated, hand-maintained set
|
||||||
|
actually referenced by the shipped game — currently just `easy.json`
|
||||||
|
(promoted 2026-07-24 from `curric-s6-unmask`, the strongest checkpoint at the
|
||||||
|
time). `match.tscn`/`spectate.tscn` point their `bot_model_path` exports here
|
||||||
|
directly, so a promoted file is never touched by training scripts, never
|
||||||
|
overwritten by a same-named future export, and never disturbed by pruning old
|
||||||
|
experiment files from the flat dump.
|
||||||
|
|
||||||
|
To promote a new bot into a tier: copy the chosen `Game/bots/<experiment>.json`
|
||||||
|
to `Game/bots/promoted/<tier>.json` (overwriting the old one), and note the
|
||||||
|
source experiment + date in this section. Do this for `medium.json`/
|
||||||
|
`hard.json` as later curriculum stages clear the bar against `easy.json` in
|
||||||
|
`evaluate.py`.
|
||||||
|
|
||||||
## Curriculum training
|
## Curriculum training
|
||||||
|
|
||||||
Training from scratch with self-play alone hands the network every skill
|
Training from scratch with self-play alone hands the network every skill
|
||||||
|
|||||||
Reference in New Issue
Block a user