Skip to content

Justin dev#20

Merged
justinmadison merged 10 commits intomainfrom
JustinDev
Nov 19, 2025
Merged

Justin dev#20
justinmadison merged 10 commits intomainfrom
JustinDev

Conversation

@justinmadison
Copy link
Member

Description

Brief description of what this PR does.

Closes #(issue number)

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Performance improvement
  • Code refactoring
  • Tests
  • Build/CI changes

Changes Made

  • List key changes
  • One per line
  • Be specific

Testing

  • Tests pass locally (pytest tests/)
  • Added new tests for new features
  • Tested manually (describe below)
  • No regressions in existing functionality

Manual Testing:
Describe how you tested this change manually.

Performance Impact

  • No performance impact
  • Improves performance
  • May impact performance (explain below)

Documentation

  • Updated relevant documentation
  • Added code comments for complex logic
  • Updated CHANGELOG (if applicable)
  • Added/updated docstrings

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

Screenshots (if applicable)

Add screenshots to help reviewers understand your changes.

Additional Notes

Any additional information reviewers should know.

justinmadison and others added 10 commits November 17, 2025 11:26
Connected all three benchmark scenes to the tool execution system:

**Foraging Scene** (scenes/foraging.tscn, scripts/foraging.gd):
- Added IPCClient node for tool execution
- Connected IPCClient → ToolRegistry → Agent pipeline
- Tools: move_to, collect, query_world
- Tracks: resources collected, damage taken, distance, efficiency

**Crafting Chain Scene** (scenes/crafting_chain.tscn, scripts/crafting_chain.gd):
- Added IPCClient node for tool execution
- Connected tool execution system to agent
- Tools: move_to, collect, craft, query_inventory, query_recipes
- Tracks: items crafted, recipe efficiency, resource waste, time

**Team Capture Scene** (scenes/team_capture.tscn, scripts/team_capture.gd):
- Added IPCClient node for tool execution
- Connected all 6 agents (3 blue, 3 red) to tool registry
- Tools: move_to, capture_point, send_message, query_team, query_objectives
- Tracks: objectives captured, team coordination, contributions, scores

All benchmark scenes are now ready for LLM-driven agent testing.
Each scene has comprehensive game logic and metrics tracking.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Created reusable agent visual system:
- agent_visual.tscn: Visual scene with capsule body, sphere head, direction indicator, floating label
- agent_visual.gd: Script for controlling appearance, team colors, and highlighting
- agent_helper.gd: Helper script for attaching visuals to Agent nodes

Updated all benchmark scenes to automatically create agent visuals:
- Foraging: Green agent ("Forager")
- Crafting Chain: Orange/gold agent ("Crafter")
- Team Capture: Blue team (3 agents) and Red team (3 agents) with team-colored visuals

Agents are now visible in 3D scenes with:
- Team-colored capsule bodies
- Floating name labels
- Direction indicators
- Highlighting support for future interactions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Created organized directory structure for game assets:
- assets/models/ - 3D models (characters, resources, stations, hazards, environment)
- assets/textures/ - Image files (materials, UI)
- assets/audio/ - Sound files (SFX, music)

Added comprehensive documentation:
- docs/getting_3d_assets.md - Complete guide for obtaining 3D models
  * Recommended sources (Kenney, Quaternius, Poly Pizza)
  * Step-by-step import instructions
  * File format explanations
  * License information
  * Quick reference for each item type

- assets/README.md - Asset directory documentation
  * Naming conventions
  * Import guidelines
  * Asset checklist
  * License tracking

Updated .gitignore to clarify that assets/models/ (game 3D models)
should be tracked, while ML model files (*.gguf, etc.) are ignored.

Ready for adding visual meshes to replace placeholder objects!

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…ization

- Updated berry.tscn to use apple.glb model instead of procedural sphere
- Added colormap.png texture next to apple.glb (industry standard)
- Created apple_material.tres as fallback material with texture reference
- Updated apple.glb.import settings to use external textures
- Enhanced assets/README.md with texture organization best practices:
  * Model-specific textures kept adjacent to GLB files
  * Shared textures in textures/materials/
  * Follows industry standard for self-contained assets

This completes the visual asset integration for the foraging benchmark scene.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…ooting guide

Problem: apple.glb was importing as empty Node3D without mesh data

Solution:
- Replaced GLB instance with procedural SphereMesh in berry.tscn
- Applied apple_material.tres (with colormap texture) directly to mesh
- Sphere mesh provides visible, textured berry for gameplay
- Updated apple_material.tres to reference correct colormap path

Added comprehensive troubleshooting guide:
- docs/troubleshooting_3d_models.md explains GLB import issues
- Documents how to verify GLB files before importing
- Provides Kenney asset workflow (recommended source)
- Explains procedural mesh fallback approach

The berry scene now displays correctly with the apple texture applied
to a sphere mesh. This works perfectly for prototyping and gameplay.
Users can upgrade to proper 3D models from Kenney when ready.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…tructure

Root Cause: Kenney's GLB files contain hardcoded relative paths to textures
(e.g., "../Textures/colormap.png"). Moving GLB files breaks these references.

Solution:
- Created assets/kenney_food_kit/ with original Models/ and Textures/ structure
- All Kenney GLB files must stay in Models/ folder to find colormap.png
- Updated berry.tscn to reference res://assets/kenney_food_kit/Models/apple.glb
- Added comprehensive documentation in assets/kenney_food_kit/README.md

Key Learning:
- Kenney uses single texture atlas (colormap.png) for entire kit
- GLB files have baked-in relative paths that cannot be changed
- Must preserve vendor folder structure for Kenney assets
- Import settings: embedded_image_handling=2 for external textures

Documentation Updates:
- Updated assets/README.md with Kenney-specific warnings
- Added directory structure showing kenney_food_kit/ folder
- Created kenney_food_kit/README.md explaining texture path requirements
- Added test scenes for validation

This fix ensures Kenney assets work correctly and provides clear guidance
for adding more Kenney models in the future.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Added full Kenney Food Kit to assets/models/kenney_food_kit/ with correct
folder structure that preserves hardcoded texture paths in GLB files.

Structure:
- assets/models/kenney_food_kit/Models/ (all GLB files)
- assets/models/kenney_food_kit/Models/Textures/colormap.png (shared texture)
- assets/models/kenney_food_kit/Previews/ (preview images)

Key Changes:
- Moved kenney_food_kit under assets/models/ for better organization
- All 200+ food models now available (fruits, vegetables, meats, kitchenware)
- Updated berry.tscn to use res://assets/models/kenney_food_kit/Models/apple.glb
- Cleaned up temporary/duplicate asset files
- Created comprehensive README.md in kenney_food_kit folder
- Updated assets/README.md with Kenney structure warnings

Models Include:
- Fruits: apple, banana, orange, lemon, grapes, strawberry, etc.
- Vegetables: carrot, corn, mushroom, tomato, onion, etc.
- Prepared foods: burger, pizza, sushi, donuts, cake, etc.
- Kitchenware: plates, bowls, pans, utensils, etc.

Berry Resource Status: ✅ Working correctly with apple model and texture

Documentation:
- assets/models/kenney_food_kit/README.md explains usage and structure
- assets/README.md updated with structure diagram and warnings
- All models CC0 licensed from kenney.nl

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Renamed all berry references to apple for consistency with the actual
3D model being used (Kenney apple.glb).

Changes:
- Renamed scenes/resources/berry.tscn → apple.tscn
- Renamed scripts/resources/berry.gd → apple.gd
- Updated resource_type from "berry" to "apple" in script
- Updated all node names (Berry → Apple) in scene file
- Updated all SubResource IDs (SphereShape_berry → SphereShape_apple)
- Updated foraging.tscn to reference apple.tscn and use Apple node names
- Updated documentation references:
  * assets/models/kenney_food_kit/README.md
  * docs/troubleshooting_3d_models.md (also updated status to reflect
    that we're now using the actual Kenney GLB model, not a placeholder)

The apple resource now accurately reflects what it represents - a collectible
apple using the Kenney Food Kit apple.glb model.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@justinmadison justinmadison merged commit 21e7b50 into main Nov 19, 2025
0 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant