Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 8 additions & 2 deletions .claude/project-context.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,11 @@ c:\Projects\Agent Arena\
- ✅ IPC system implemented (Godot ↔ Python via HTTP/FastAPI)
- ✅ Benchmark scenes created (foraging, crafting_chain, team_capture)
- ✅ Tool execution system connected (Agent → ToolRegistry → IPC → Python)
- ✅ Benchmark scenes integrated with tool execution system

### Active Work Items
- 🔄 **Andrew**: LLM backend integration with agent decision-making
- 🔄 **Justin** (Issue #15): Build out benchmark scenes with game content
- **Justin** (Issue #15): Build out benchmark scenes with game content - **COMPLETE**
- ✅ **Justin** (Issue #16): Connect tool execution system in Godot - **COMPLETE**

## Development Commands
Expand Down Expand Up @@ -251,7 +252,12 @@ else:
- Python environment needs initial setup (venv + pip install)

## Recent Issues
- Issue #15: Build out benchmark scenes with game content (assigned to Justin) - In Progress
- Issue #15: Build out benchmark scenes with game content (assigned to Justin) - ✅ **COMPLETE**
- Connected all three benchmark scenes to tool execution system
- Foraging scene: Resource collection with hazard avoidance
- Crafting chain scene: Multi-step crafting recipes
- Team capture scene: Multi-agent team competition
- All scenes ready for LLM-driven agents
- Issue #16: Connect tool execution system in Godot (assigned to Justin) - ✅ **COMPLETE**
- See: `TESTING_TOOL_EXECUTION.md`, `TOOL_TESTING_FIXED.md` for details
- Test scenes: `scenes/tests/` (use `test_tool_execution_simple.tscn` for quick verification)
Expand Down
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,13 @@ promptPad.md
logs/
replays/

# Model files
# ML Model files (LLM weights, not game assets)
*.gguf
*.bin
*.safetensors
*.pt
*.pth
models/
# Note: assets/models/ (game 3D models) are tracked, this ignores ML models in other locations

# Configs (keep templates, ignore local overrides)
configs/local/
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ repos:
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
args: ['--maxkb=1000']
args: ['--maxkb=5000'] # Allow larger 3D model files
- id: check-merge-conflict

- repo: https://github.com/psf/black
Expand Down
141 changes: 141 additions & 0 deletions assets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# Assets Directory

Organized storage for all game assets (3D models, textures, audio).

## Directory Structure

```
assets/
├── models/ # 3D models (.glb, .gltf, .obj)
│ ├── kenney_food_kit/ # Kenney Food Kit (keep original structure!)
│ │ ├── Models/ # GLB files with hardcoded texture paths
│ │ │ ├── apple.glb
│ │ │ └── apple-half.glb
│ │ └── Textures/ # Shared texture atlas
│ │ └── colormap.png
│ ├── characters/ # Agent/character models
│ ├── resources/ # Collectible resources (berries, wood, stone, ore)
│ ├── stations/ # Crafting stations (anvil, furnace, workbench)
│ ├── hazards/ # Dangerous objects (fire, pits)
│ └── environment/ # Terrain and environment props
├── textures/ # Image files (.png, .jpg)
│ ├── materials/ # Shared/generic material textures
│ └── ui/ # UI graphics
└── audio/ # Sound files (.wav, .ogg)
├── sfx/ # Sound effects
└── music/ # Background music
```

**Note**: Model textures are kept next to their GLB files (industry standard).
Only shared/generic textures go in `textures/materials/`.


## Adding New Assets

### 3D Models

1. **Download** your model (from Kenney, Quaternius, etc.)
2. **Place** the `.glb` file in the appropriate subfolder:
- `models/resources/` for berries, wood, stone, ore
- `models/stations/` for anvil, furnace, workbench
- `models/hazards/` for fire, pits
3. **Godot auto-imports** the file
4. **Drag & drop** into your scene

Example:
```
Download: berry.glb
Place in: assets/models/resources/berry.glb
Godot path: res://assets/models/resources/berry.glb
```

### Textures

**For model-specific textures:**
- Keep them next to the GLB file (e.g., `apple.glb` + `colormap.png` in same folder)
- This is standard practice and Godot handles it automatically

**For shared textures:**
- Place in `textures/materials/` for generic materials (grass, dirt, etc.)
- Place in `textures/ui/` for UI graphics

### Audio

Place `.wav` or `.ogg` files in `audio/sfx/` or `audio/music/`

## Naming Conventions

- Use **lowercase** with underscores: `iron_ore.glb`, not `IronOre.glb`
- Be **descriptive**: `workbench_wooden.glb` vs `wb1.glb`
- Version numbers if needed: `berry_v2.glb`

## Recommended Sources

- **Kenney.nl** - Free, CC0, high quality ⭐ **Currently using Food Kit**
- **Quaternius** - Low-poly, CC0
- **Poly Pizza** - Community assets, CC0

See `docs/getting_3d_assets.md` for detailed guide.

## ⚠️ Important: Kenney Asset Structure

**Kenney's GLB files have hardcoded paths to textures!** You MUST keep the original folder structure:

```
assets/models/kenney_food_kit/
├── Models/ # GLB files go here
└── Textures/ # colormap.png goes here
```

**Do NOT** move GLB files out of the Models folder or they will appear white/untextured.

See `assets/models/kenney_food_kit/README.md` for complete details.

## Current Assets

### Resources
- [ ] berry.glb (TODO: Download from Kenney Food Kit)
- [ ] wood.glb (TODO: Download from Kenney Nature Kit)
- [ ] stone.glb (TODO: Download from Kenney Nature Kit)
- [ ] iron_ore.glb (TODO: Download from Poly Pizza)
- [ ] coal.glb (TODO: Download from Quaternius)

### Stations
- [ ] anvil.glb (TODO: Download from Poly Pizza)
- [ ] furnace.glb (TODO: Download from Quaternius)
- [ ] workbench.glb (TODO: Download from Kenney Furniture Kit)

### Hazards
- [ ] fire.glb (TODO: Download from Kenney)
- [ ] pit.glb (Can use simple cylinder mesh)

### Characters
- Currently using procedural capsule meshes (see `scenes/agent_visual.tscn`)
- [ ] Optional: humanoid.glb for future enhancement

## File Size Guidelines

- Keep models **< 1MB** each for performance
- Use **low-poly** meshes (< 5000 triangles)
- Compress textures when possible

## Godot Import Settings

When importing GLB files:
- Materials: ✓ Use default material
- Meshes: ✓ Generate LODs (optional)
- Physics: □ Don't auto-generate (we do this manually)

## License Tracking

All assets in this directory should be:
- **CC0 (Public Domain)** - No attribution required
- **CC-BY** - Attribution required (note source in this file)
- **Licensed for use** - Check license file

### Attribution
(Add here if using CC-BY assets)

---

**Quick Start**: Download Kenney Nature Kit and Food Kit, extract GLB files here, and you're ready to go!
Empty file added assets/audio/.gitkeep
Empty file.
Binary file added assets/colormap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file added assets/models/.gitkeep
Empty file.
11 changes: 11 additions & 0 deletions assets/models/UltimateFantasy/License.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
------------------------------------------------------
Ultimate Platformer Pack by @Quaternius
Consider supporting me on Patreon, even $1 helps me a lot!

https://www.patreon.com/quaternius
-------------------------------------------------------

License:
CC0 1.0 Universal (CC0 1.0)
Public Domain Dedication
https://creativecommons.org/publicdomain/zero/1.0/
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/models/UltimateFantasy/PNG/Barrel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/models/UltimateFantasy/PNG/Crate.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/models/UltimateFantasy/PNG/Logs.png
Binary file added assets/models/UltimateFantasy/PNG/Mine.png
Binary file added assets/models/UltimateFantasy/PNG/Rock.png
Binary file added assets/models/UltimateFantasy/PNG/Rock_Group.png
Binary file added assets/models/UltimateFantasy/Preview.jpg
Loading
Loading