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.
58 lines
1.2 KiB
INI
58 lines
1.2 KiB
INI
[preset.0]
|
|
|
|
name="Linux Training"
|
|
platform="Linux"
|
|
runnable=true
|
|
dedicated_server=false
|
|
custom_features="training"
|
|
export_filter="all_resources"
|
|
include_filter=""
|
|
exclude_filter=""
|
|
export_path="../training/build/CosmicClash.x86_64"
|
|
encryption_include_filters=""
|
|
encryption_exclude_filters=""
|
|
encrypt_pck=false
|
|
encrypt_directory=false
|
|
script_encryption_key=""
|
|
|
|
[preset.0.options]
|
|
|
|
custom_template/debug=""
|
|
custom_template/release=""
|
|
debug/export_console_script=1
|
|
binary_format/embed_pck=true
|
|
texture_format/bptc=true
|
|
texture_format/s3tc=true
|
|
texture_format/etc=false
|
|
texture_format/etc2=false
|
|
binary_format/architecture="x86_64"
|
|
|
|
[preset.1]
|
|
|
|
name="Linux Dedicated Server"
|
|
platform="Linux"
|
|
runnable=true
|
|
dedicated_server=true
|
|
custom_features="dedicated_server"
|
|
export_filter="all_resources"
|
|
include_filter=""
|
|
exclude_filter=""
|
|
export_path="../server/build/CosmicClashServer.x86_64"
|
|
encryption_include_filters=""
|
|
encryption_exclude_filters=""
|
|
encrypt_pck=false
|
|
encrypt_directory=false
|
|
script_encryption_key=""
|
|
|
|
[preset.1.options]
|
|
|
|
custom_template/debug=""
|
|
custom_template/release=""
|
|
debug/export_console_script=1
|
|
binary_format/embed_pck=true
|
|
texture_format/bptc=false
|
|
texture_format/s3tc=false
|
|
texture_format/etc=false
|
|
texture_format/etc2=false
|
|
binary_format/architecture="x86_64"
|