๐ฎ Game Development Release - Godot Engine Support
This release adds comprehensive support for Godot game engine projects with industry-leading signal flow analysis and complete GDScript language support.
๐ฎ Added
C3.10: Signal Flow Analysis for Godot Projects โญ NEW
-
Complete Signal Flow Analysis System: Analyze event-driven architectures in Godot game projects
- Signal declaration extraction (
signalkeyword detection) - Connection mapping (
.connect()calls with targets and methods) - Emission tracking (
.emit()andemit_signal()calls) - Real-world results: 208 signals, 634 connections, 298 emissions detected in Cosmic Idler test project
- Signal density metrics (0.78 signals/file)
- Event chain detection (signals triggering other signals)
- Output:
signal_flow.json(374KB),signal_flow.mmd(Mermaid diagram),signal_reference.md(34KB)
- Signal declaration extraction (
-
Signal Pattern Detection: Three major patterns identified with confidence scoring
- EventBus Pattern (0.90 confidence): Centralized signal hub in autoload
- Observer Pattern (0.85 confidence): Multi-observer signals (3+ listeners, theme_changed: 21 connections)
- Event Chains (0.80 confidence): Cascading signal propagation
-
Signal-Based How-To Guides (C3.10.1): AI-generated usage guides
- Step-by-step guides (Connect โ Emit โ Handle)
- Real code examples from project
- Common usage locations with file references
- Parameter documentation
- Output:
signal_how_to_guides.md(10 guides generated for Cosmic Idler)
Complete Godot Game Engine Support
-
Comprehensive Godot File Type Support: Full analysis of Godot 4.x projects
- GDScript (.gd): 265 files analyzed in test project (59.8% of codebase)
- Scene files (.tscn): 118 scene files (26.6%)
- Resource files (.tres): 38 resource files (8.6%)
- Shader files (.gdshader, .gdshaderinc): 9 shader files (2.0%)
- C# integration: Phantom Camera addon (13 files, 2.9%)
-
GDScript Language Support: Complete GDScript parsing with regex-based extraction
- Dependency extraction:
preload(),load(),extendspatterns - Test framework detection: GUT, gdUnit4, WAT
- Test file patterns:
test_*.gd,*_test.gd - Signal syntax:
signal,.connect(),.emit() - Export decorators:
@export,@onready - Test decorators:
@test(gdUnit4) - 377 dependencies extracted with 0 syntax errors
- Dependency extraction:
-
Game Engine Framework Detection: Improved detection for Unity, Unreal, Godot
- Godot markers:
project.godot,.godotdirectory,.tscn,.tres,.gdfiles - Unity markers:
Assembly-CSharp.csproj,UnityEngine.dll,ProjectSettings/ProjectVersion.txt - Unreal markers:
.uproject,Source/,Config/DefaultEngine.ini - Fixed false positive Unity detection (was using generic "Assets" keyword)
- Priority-based detection (game engines detected before web frameworks)
- Godot markers:
-
GDScript Test Extraction: Extract usage examples from Godot test files
- 396 test cases extracted from 20 GUT test files in Cosmic Idler test project
- Patterns: instantiation (
preload().new(),load().new()), assertions (assert_eq,assert_true), signals - GUT framework:
extends GutTest,func test_*(),add_child_autofree() - Test categories: instantiation, assertions, signal connections, setup/teardown
- Real code examples from production test files
- 22 high-quality test examples extracted
๐ Fixed
Godot-Specific Bug Fixes
-
GDScript Dependency Extraction (commit 3e6c448): Fixed 265+ "Syntax error in *.gd" warnings
- GDScript files were incorrectly routed to Python AST parser
- Created dedicated
_extract_gdscript_imports()with regex patterns - Now correctly parses
preload(),load(),extendspatterns - Result: 377 dependencies extracted with 0 warnings
-
Framework Detection False Positive (commit 50b28fe): Fixed Unity detection on Godot projects
- Was detecting "Unity" due to generic "Assets" keyword in comments
- Changed Unity markers to specific files:
Assembly-CSharp.csproj,UnityEngine.dll,Library/ - Now correctly detects Godot via
project.godot,.godotdirectory
-
Circular Dependencies (commit 50b28fe): Fixed self-referential cycles
- 3 self-loop warnings (files depending on themselves)
- Added
target != file_pathcheck in dependency graph builder - Result: 0 circular dependencies detected
-
GDScript Test Discovery (commit 50b28fe): Fixed 0 test files found in Godot projects
- Added GDScript test patterns:
test_*.gd,*_test.gd - Added GDScript to LANGUAGE_MAP
- Result: 32 test files discovered (20 GUT files with 396 tests)
- Added GDScript test patterns:
-
GDScript Test Extraction (commit c826690): Fixed "Language GDScript not supported" warning
- Added GDScript regex patterns to PATTERNS dictionary
- Patterns: instantiation (
preload().new()), assertions (assert_eq), signals (.connect()) - Result: 22 test examples extracted successfully
-
Config Extractor Array Handling (commit fca0951): Fixed JSON/YAML array parsing
- Error:
'list' object has no attribute 'items'on root-level arrays - Added isinstance checks for dict/list/primitive at root
- Result: No JSON array errors, save.json parsed correctly
- Error:
-
Progress Indicators (commit eec37f5): Fixed missing progress for small batches
- Progress only shown every 5 batches, invisible for small jobs
- Modified condition to always show for batches < 10
- Result: "Progress: 1/2 batches completed" now visible
๐งช Tests
- GDScript Test Extraction Test: Added comprehensive test case for GDScript GUT/gdUnit4 framework
- Tests player instantiation with
preload()andload() - Tests signal connections and emissions
- Tests gdUnit4
@testannotation syntax - Tests game state management patterns
- 4 test functions with 60+ lines of GDScript code
- Validates extraction of instantiations, assertions, and signal patterns
- Tests player instantiation with
๐ Quality Metrics (Cosmic Idler Test Project)
- SKILL.md Quality: 9/10 rating (31KB, 1,030 lines)
- File Coverage: 98% (443/452 files analyzed)
- Signal Analysis: 208 signals, 634 connections, 298 emissions
- Test Coverage: 32 test files discovered, 22 examples extracted
- Dependency Graph: 377 dependencies, 0 circular cycles
- Language Breakdown: GDScript 59.8%, Scenes 26.6%, Resources 8.6%, Shaders 2.0%
๐ Files Changed
- 1 new file:
signal_flow_analyzer.py(489 lines) - 15 modified files: Core analyzers, test extractors, dependency analyzers
- +1,574 additions, -157 deletions
๐ฏ Use Cases
This release is perfect for:
- ๐ฎ Godot game developers wanting to understand signal architectures
- ๐ Teams documenting Godot projects for AI assistants (Claude, ChatGPT, Gemini)
- ๐ Code reviewers analyzing event-driven patterns in games
- ๐ Game development educators creating learning materials
- ๐ค AI agents needing deep understanding of Godot codebases
๐ Thanks
Special thanks to the Godot community and Cosmic Idler project for providing an excellent test case for validating all features!
Full Changelog: v2.8.0...v2.9.0