chore: init unity-commander-gameboard feature branch scaffolding
Adds placeholder structure for all Phase 0-6 modules. See issues #167-#174 for full implementation details.
This commit is contained in:
1 parent
55fdc2ec4a
commit
52cbefaccf
18 files changed
+61
No files matched your search
@@ -0,0 +1 @@
|
||||
# Phase 2: Dual-Brain AI Decision Engine
|
||||
@@ -0,0 +1,5 @@
|
||||
# Phase 6 - decision_logger.py
|
||||
# Logs per-decision: game_id, turn, phase, player_id, personality,
|
||||
# brain_used, prompt, raw_response, parsed_action, fallback_used
|
||||
# Configurable via LOG_AI_DECISIONS env var
|
||||
# See issue #173
|
||||
@@ -0,0 +1,15 @@
|
||||
# Phase 2 - game_orchestrator.py *** CORE PRIORITY ***
|
||||
# GameAIOrchestrator: select_brain(), assign_personalities(), get_action()
|
||||
# Brains: DeepSeek-R1-14B (complex) + GPT-OSS-20B (tactical)
|
||||
# ChromaDB RAG for per-player card knowledge
|
||||
# See issue #169
|
||||
|
||||
PERSONALITY_POOL = [
|
||||
"aggressive -- attack early and often, prioritize players with lowest life totals",
|
||||
"control -- counter key spells, hold mana open, only act when clearly advantageous",
|
||||
"combo -- develop mana and card advantage quietly, avoid conflict until ready to win",
|
||||
"political -- make deals, attack whoever is ahead, never fully commit to one target",
|
||||
"pillowfort -- build defensive pieces, let others fight, win slowly through attrition",
|
||||
"stompy -- play the biggest threats as fast as possible, ignore table politics",
|
||||
"tempo -- disrupt opponents early, trade efficiently, stay ahead on board",
|
||||
]
|
||||
@@ -0,0 +1 @@
|
||||
# Phase 0: Card image cache and data enrichment
|
||||
@@ -0,0 +1,3 @@
|
||||
# Phase 0 - card_data_enricher.py
|
||||
# Injects art_url and art_url_back into CardDTO before broadcasting to Unity
|
||||
# See issue #167
|
||||
@@ -0,0 +1,3 @@
|
||||
# Phase 0 - image_cache.py
|
||||
# SQLite-backed lookup: card name/scryfall_id -> local file path
|
||||
# See issue #167
|
||||
@@ -0,0 +1 @@
|
||||
# Phase 1: Forge subprocess bridge
|
||||
@@ -0,0 +1,3 @@
|
||||
# Phase 6 - game_result_logger.py
|
||||
# Captures winner, turn count, elimination order on Forge game end
|
||||
# See issue #173
|
||||
@@ -0,0 +1,3 @@
|
||||
# Phase 1 - game_state_parser.py
|
||||
# Converts Forge stdout text -> canonical GameStateDTO JSON
|
||||
# See issue #168
|
||||
@@ -0,0 +1,4 @@
|
||||
# Phase 1 - subprocess_manager.py
|
||||
# ForgeGameSession + ForgeSubprocessManager
|
||||
# Drives interactive Commander games via Forge stdin/stdout pipe
|
||||
# See issue #168
|
||||
@@ -0,0 +1 @@
|
||||
# Phase 6: ML Training Integration
|
||||
@@ -0,0 +1,4 @@
|
||||
# Phase 6 - training_data_builder.py
|
||||
# Converts decision_log + game_result -> (state, action, reward) tuples
|
||||
# Feeds existing PPO pipeline
|
||||
# See issue #173
|
||||
@@ -0,0 +1,2 @@
|
||||
# Runtime data directory
|
||||
# card_image_index.db, decision_logs/, game_results.jsonl, training_sets/
|
||||
@@ -0,0 +1,3 @@
|
||||
# Phase 0 - build_image_index.py
|
||||
# Builds SQLite card_image_index.db: name/scryfall_id -> file path
|
||||
# See issue #167
|
||||
@@ -0,0 +1,4 @@
|
||||
# Phase 0 - download_card_images.py
|
||||
# Bulk download card images from Scryfall default_cards export
|
||||
# Stores at static/card-images/{scryfall_id}_{front|back}.jpg
|
||||
# See issue #167
|
||||
@@ -0,0 +1,4 @@
|
||||
# Phase 6 - run_self_play.py
|
||||
# Headless self-play runner: all 4 players AI-driven, no Unity needed
|
||||
# Usage: python scripts/run_self_play.py --num-games 500 --deck-pool-path data/decks/
|
||||
# See issue #173
|
||||
@@ -0,0 +1,2 @@
|
||||
# Phase 0: Card images downloaded here by scripts/download_card_images.py
|
||||
# ~1.5-2GB at normal size
|
||||
@@ -0,0 +1,2 @@
|
||||
# Phase 4: Unity TCGEngine project lives here
|
||||
# See issue #171
|
||||
Reference in new issue
Block a user