UNPKG

major-ai-skills

Version:

Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.

122 lines (91 loc) 6.77 kB
--- title: "Godot Engine 4.x Game Development AI Skill Guide (Gemini)" description: "Comprehensive operational skill specification for Google Gemini to visually diagnose, automate, script, and troubleshoot Godot 4.x SceneTree hierarchies, 2D TileMaps, AnimationTree state machines, and Visual Profiler metrics." category: "Open Source Game Engine & Interactive Applications" tags: ["godot", "godot4", "visual-profiler", "animationtree", "tilemap-editor", "gemini"] --- # Godot Engine 4.x Game Development AI Skill Guide (Gemini) ## Overview & Engine Architecture Godot 4.x provides intuitive 2D and 3D visual authoring with real-time editing, TileMap layers, AnimationTree state machines, and in-engine visual profiling. Gemini acts as an AI Technical Game Designer and Performance Auditor, specializing in **multimodal SceneTree hierarchy inspection**, **2D TileSet / Terrain autotile diagnostics**, **AnimationTree blending state machine evaluation**, and **Visual Profiler frame budget optimization**. ### Visual Analytics & Node Hierarchy Stack ``` ┌─────────────────────────────────────────────────────────────┐ Godot Visual Development Stack 2D / 3D Scene Viewport & Level Design ├── 2D Canvas Viewport (TileMapLayers, YSort, CanvasModulate)│ ├── 3D Viewport (Environment, VoxelGI, SDFGI, Occlusion) └── Control UI Viewport (Theme Editor, Anchors, Containers)│ Animation & Profiler Diagnostics ├── AnimationTree (StateMachine Transitions, BlendSpace2D) ├── Visual Profiler (CPU Frame Time, Physics Steps, DrawCalls│ └── Remote SceneTree Inspector (Live Runtime Node States) └─────────────────────────────────────────────────────────────┘ ``` --- ## Operational Capabilities & Agent Directives 1. **Multimodal SceneTree & Hierarchy Inspection**: Analyze screenshots of Godot SceneTree hierarchies to identify anti-patterns (e.g. deep spatial nesting, missing collision shapes, improper Control container sizing). 2. **AnimationTree State Machine Diagnostics**: Evaluate AnimationTree node graphs, diagnosing transition conditions, missing travel calls in GDScript, and blend weight interpolation issues. 3. **2D TileMap & Physics Layer Validation**: Troubleshoot TileMapLayer terrain autotiling rules, collision polygon alignment, and Y-sort ordering for top-down games. 4. **Visual Profiler Frame Budget Optimization**: Interpret frame time breakdown graphs to identify draw call surges, physics step overruns ($>16.6\text{ms}$), and memory allocation leaks. --- ## Production GDScript 2.0: AnimationTree State Machine Coordinator Save this script as `res://scripts/animation/character_animator.gd` to smoothly blend movement and attack animations via `AnimationTree`: ```gdscript # ============================================================================== # Godot 4.x GDScript: AnimationTree State Machine Coordinator # Blends Idle, Walk, Run, and Attack animations based on CharacterBody3D velocity. # ============================================================================== class_name CharacterAnimator extends Node @export var character: CharacterBody3D @export var anim_tree: AnimationTree var state_machine: AnimationNodeStateMachinePlayback func _ready() -> void: if not anim_tree: push_error("AnimationTree reference missing on CharacterAnimator.") return anim_tree.active = true state_machine = anim_tree.get("parameters/playback") func _process(_delta: float) -> void: if not character or not state_machine: return var horizontal_velocity: Vector2 = Vector2(character.velocity.x, character.velocity.z) var speed: float = horizontal_velocity.length() # 1. Update BlendSpace2D coordinates for Locomotion anim_tree.set("parameters/Locomotion/blend_position", speed) # 2. Trigger Jump / Fall States if not character.is_on_floor(): if character.velocity.y > 0.0: state_machine.travel("Jump") else: state_machine.travel("Fall") else: state_machine.travel("Locomotion") func trigger_attack() -> void: if state_machine: state_machine.travel("Attack_Slash") ``` --- ## Technical Troubleshooting Matrix | Issue & Visual Signature | Root Cause Analysis | Diagnostic & Resolution Pathway | | :--- | :--- | :--- | | **TileMap Shows Black Gaps / Glitches Between Tiles** | Sub-pixel texture filtering bleeding into adjacent tiles in the texture atlas. | 1. In Project Settings $\rightarrow$ Rendering $\rightarrow$ Textures, set **Default Texture Filter** to `Nearest`.<br>2. In TileSet editor, add 1-pixel padding/margin around atlas tiles. | | **AnimationTree State Machine Refuses to Transition** | Transition rule in state machine set to `AtEnd` while current animation is set to loop infinitely. | 1. In AnimationPlayer, uncheck the **Loop** toggle on transition-dependent animations.<br>2. Or set transition mode to **Immediate** / **Sync**. | | **Visual Profiler Shows Huge Spike in `Draw Calls` (>1000)** | Individual 3D mesh instances drawn without GPU instancing or material sharing. | 1. Replace repetitive static meshes with `MultiMeshInstance3D`.<br>2. Ensure all meshes share the exact same material resource rather than duplicate unique materials. | | **Control Nodes Jump Offscreen on Window Resize** | UI Control node anchors configured with absolute pixel offsets rather than relative ratio presets. | In Inspector $\rightarrow$ Layout, select **Full Rect** or **Center** anchor presets and place inside `MarginContainer` / `VBoxContainer`. | --- ## Command Line Syntax & Server Control ```bash # Launch Godot Editor Directly into Specific Scene godot --editor --path "C:\Projects\MyGame" "res://scenes/levels/level_01.tscn" # Print Engine Video Driver & Adapter Information godot --headless --print-fps --verbose ``` ### Key Configuration Locations - **Project Configuration**: `project.godot` - **TileSet Resources**: `*.tres` --- ## Agent Operational Directive > **MANDATORY**: For 2D pixel art projects, always set `texture_filter` to `Nearest` in Project Settings to prevent sub-pixel tile bleeding. Use `MultiMeshInstance3D` when placing more than 50 repeated 3D objects.