mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-10 16:04:04 +00:00
06881f05ca
6.1: "Linux Dedicated Server" preset (dedicated_server=true, custom_features="dedicated_server") mirroring the existing training preset, plus run/main_scene.dedicated_server so the server binary reaches its own entry point with no flag. Builds: an 85MB Linux x86_64 binary, gitignored like the training one. 6.3: scripts/server_config.gd declares every server flag once - name, type, default, section, help - and one parser turns that into parsing, type checking, range validation, config-file backing and --help. The flags had grown to ~30 across server_boot.gd and networked_match.gd, each parsed inline with begins_with, none documented, and an unrecognised flag was SILENTLY IGNORED: --max-clientss=8 ran a server on the default cap and said nothing. Unknown flags, missing values, wrong types, duplicates and out-of-range values are now hard errors, reported all at once. Precedence is command line > config file > default. server_boot.gd parses strictly because it owns the whole command line; networked_match.gd reads the same declaration leniently because it is one consumer of an argv the smoke harnesses also fill with --role= and --drive-seconds=. Nothing is lost - every server flag is declared, so the strict pass already caught any typo before the match scene re-reads its own. 13 unit tests covering the precedence order, the typo rejection that motivated this, --no-<bool> not double-listing in --help, and --help documenting every flag asserted against the declaration rather than a hand-kept list. Verified end to end: --help prints, a typo'd flag refuses to start, and the plain/replay-log/late-joiner smoke scenarios still pass.
27 lines
1.0 KiB
Plaintext
27 lines
1.0 KiB
Plaintext
.DS_Store
|
|
|
|
# RL training: checkpoints and logs ARE committed (training results must
|
|
# survive any single machine); only the env and scratch files are not.
|
|
training/.venv/
|
|
training/smoke_run.log
|
|
training/__pycache__/
|
|
|
|
# Intermediate PPO checkpoints: only final.zip is ever committed (see
|
|
# run_training.sh) — --resume only ever points at final.zip, and a single
|
|
# experiment's intermediate checkpoints were 2401 files / ~500MB, of which
|
|
# final.zip was ~0.2MB. This is the training-results-survive-any-machine
|
|
# property from ~2500x less data, not a relaxation of it.
|
|
training/checkpoints/*/ppo_*_steps.zip
|
|
|
|
# Exported training binary: a regenerable build artifact (rebuilt by
|
|
# export_linux.sh / run_training.sh), not a training result.
|
|
training/build/
|
|
|
|
# Exported dedicated server binary (task 6.1): same reasoning — an 85MB
|
|
# regenerable artifact, rebuilt by `godot --headless --path Game
|
|
# --export-release "Linux Dedicated Server"`.
|
|
server/build/
|
|
|
|
# Texture generator scripts: throwaway env, not the scripts themselves.
|
|
tools/textures/.venv/
|