Ein Gehirn prüfen, packen und veröffentlichen
oa-tool brain pack und check, ein Match ohne Oberfläche und ein Trace, die Prüfung der Bibliothek und das Sitzprotokoll, die oabrain-Art des Katalogs und wie man das Paket Core Prime anbietet.
Dieses Kapitel fasst docs/brains/oabrain-standard.md, docs/brains/authoring.md und docs/playing-with-brains.md zusammen. Diese Dokumente sind der maßgebliche Text.
Packen und prüfen
Ein Gehirn wird mit oa-tool brain pack und oa-tool brain check gepackt und geprüft. oa-tool pack und oa-tool check sind die Befehle für eine .oamap oder eine .oamod. Die Hilfe der Anleitung listet die drei Gehirn-Befehle:
oa-tool brain pack FOLDER [--out FILE] [--force]
Pack a brain folder as a .oabrain.
oa-tool brain check FILE --game-dir DIR [--mod FOLDER] [--level LEVEL] [--side N] [--json]
Load a brain against a game and report how it started.
oa-tool brain net MODEL.onnx --calibrate DATA [--out FILE] [--weights int8|int16] [--max-difference X] [--force] [--json]
Convert an ONNX model to a .oann.
Packe von außerhalb des Ordners. check lädt eine .oabrain, oder einen Ordner, der oben oabrain.yaml enthält, gegen ein Spiel. Es setzt das Gehirn auf einer flachen Ersatzkarte ein und führt in diesem Match keinen Tick aus. Eine Phase, die nicht lief, sagt not run. Diese beiden Befehle sind der Lauf der Anleitung für Steady Commander, und der Bericht, der folgte:
build/oa-tool brain pack brains/examples/steady-commander --out /tmp/brain-scratch/steady-commander.oabrain
build/oa-tool brain check /tmp/brain-scratch/steady-commander.oabrain --game-dir "$OA_GAME_DIR"
brain: steady-commander 1.0 level easy
game: totala
mod: none
load: ok, 0 instructions
fits: ok, 0 instructions
start: ok, 15 instructions
lua: 1231655 bytes
networks: 0 bytes
result: ok
Die Prüfung endet mit Code 0. result: ok ist dieser Lauf. fits: ok heißt, dass fits des Skripts true zurückgibt. --json druckt ein Objekt. --mod nennt einen Mod-Ordner. --level wählt eine Stufenkennung, und die erste Stufe, wenn es weggelassen wird.
Was pack ablehnt
Ohne weitere Angabe schreibt pack die Kennung, einen Bindestrich und die Version, endend auf .oabrain. --force ersetzt eine Datei, die schon da ist. --game-dir bei brain pack ist ein Aufruffehler. brain check nimmt --game-dir. Pack lehnt ein ungültiges Manifest ab, eine Datei außerhalb des Layouts, Lua, das kein Quelltext ist, ein Netz, dessen Bytes nicht der Digest sind, den das Manifest nennt, und ein Icon, das kein quadratisches PNG innerhalb der Grenzen ist. Lua wird übersetzt und nicht ausgeführt. Eine .oann-Datei wird gehasht und nicht interpretiert.
Ein Match ohne Oberfläche
--brain-match spielt zwei Computersitze. Jeder Sitz ist eine installierte Gehirn-Kennung, ein Ordner oder builtin. Es braucht --headless-check, --match-ticks und --brain-map. Das Match der Anleitung von Steady Commander gegen Classic ist:
open-annihilation --skip-intro --mute --headless-check --game-dir "$OA_GAME_DIR" \
--user-folder /tmp/brain-user --data-dir /tmp/brain-scratch/data \
--brain-match brains/examples/steady-commander,brains/classic \
--brain-levels medium,medium \
--brain-map "Painted Desert" --seed 4242 --match-ticks 1800 \
--brain-record /tmp/brain-scratch/record.txt
Es endet mit Code 0. Jede Zeile beginnt mit brain match. winner none und reason time bedeuten, dass beide Sitze noch Einheiten hatten, als die Tickzahl aufgebraucht war. In diesem Match gegen Classic ist die Bauzahl von Steady Commander 6. status playing heißt, das Gehirn wurde noch aufgerufen. Derselbe Ordner gegen den eingebauten Spieler, dessen Bauzahl für Steady Commander 7 ist, ist der Lauf, dessen Trace die eigenen Befehle des Skripts zeigt:
open-annihilation --skip-intro --mute --headless-check --game-dir "$OA_GAME_DIR" \
--user-folder /tmp/brain-user --data-dir /tmp/brain-scratch/data \
--brain-match brains/examples/steady-commander,builtin \
--brain-levels medium,hard \
--brain-map "Painted Desert" --seed 4242 --match-ticks 2400 \
--brain-trace /tmp/brain-scratch/trace-play.txt \
--brain-record /tmp/brain-scratch/record-play.txt
Ein Trace
--brain-trace und --brain-record hängen an einem Match. Beide brauchen --headless-check und --match-ticks. Der Trace des Matches gegen den eingebauten Spieler beginnt:
brain log 1
tick 0 seat 0 brain
call fits
tick 0 seat 0 brain
call start
Ein Timer ist eine Zeile call timer. Der Bericht für Sitz 1 ist log seat 0. own-draw ist brain.random. Steady Commander ruft brain.record nie auf, darum hat seine Aufzeichnungsdatei keine Probenzeile.
MIT DIESEM MOD PRÜFEN, und das Protokoll
MIT DIESEM MOD PRÜFEN ist eine Schaltfläche an einem installierten Gehirn in der Bibliothek, die gezeigt wird, wenn ein Urteil gesetzt ist. Sie lädt diese Kopie und führt fits aus. Sie setzt das Gehirn nicht ein. Sie ist aus während eines Spiels und während die Prüfung läuft.
Die App schreibt das Sitzprotokoll nach logs/brains/seat- und den Spielerindex plus eins, im Datenordner des Kontos. Die Datei beginnt für jedes dort eingesetzte Gehirn neu. Die erste Zeile ist der Name aus dem Manifest, die Version, die Kennung, die Stufe, der Sitz und der Seed des Matches. Eine gedruckte Zeile wird als der Tick und der Text angehängt. Die Datei stoppt bei 1 MiB.
Die oabrain-Art des Katalogs
Auf Core Prime ist die Katalogart oabrain. Das Paket wird nach Brains/ und der Kennung installiert. Ein Spiel, das eine Katalogart nicht kennt, überspringt diesen Eintrag, darum listet ein älteres Spiel das Paket nicht. Der Bereich KI-Erweiterungen auf dieser Seite bleibt als Demnächst markiert, bis der Katalog die Art ausliefert.
Core Prime anbieten
Die Inhaltsbibliothek von Core Prime wird vom Rechner eines Betreuers veröffentlicht: der Katalog ist mit einem Schlüssel signiert, der ihn nie verlässt. Damit ein Gehirn gelistet wird:
- Eröffne ein Issue im Repository von Open Annihilation mit der .oabrain (oder einem Link darauf), seinem Autor und seiner Lizenz.
- Ein Betreuer lässt die Prüfungen gegen den Spielordner laufen und nimmt es in die Paketakten der Bibliothek auf.
- Die nächste Veröffentlichung lädt die Datei unter ihrem Hash hoch, signiert den neuen Katalog und erhöht seine Sequenz.
- Minuten später ist es in der Bibliothek jedes Spielers und, sobald diese Seite die Art listet, auf dieser Seite.
Ein Kartenpaket, ein Mod oder ein Mutator wird genauso angeboten. Siehe Auf Core Prime veröffentlichen.