godot-development
Godot Engine integration skill for GDScript/C# development, scene composition, node management, and editor automation. Enables LLMs to interact with Godot Editor through MCP servers for asset manipulation, script generation, and automated workflows.
DeepseekModel
官方收录技能
质量 优秀 · 90
v1.0.0
获取
https://deepseekmodel.com/api/download.php?id=a5c-ai-babysitter-library-specializations-game-development-skills-godot-development-skill-md&format=skill
下载 .skill
标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用
.skill 文件中 system_prompt 字段的实际内容。
name godot-development description Godot Engine integration skill for GDScript/C# development, scene composition, node management, and editor automation. Enables LLMs to interact with Godot Editor through MCP servers for asset manipulation, script generation, and automated workflows. allowed-tools Read, Grep, Write, Bash, Edit, Glob, WebFetch graph {"domains":["domain:gaming"],"specializations":["specialization:game-development"],"skillAreas":["skill-area:game-engines","skill-area:gameplay-programming"],"roles":["role:game-developer"]} Godot Development Skill Comprehensive Godot Engine development integration for AI-assisted game creation, editor automation, and project management. Overview This skill provides capabilities for interacting with Godot projects, including GDScript and C# development, scene manipulation, node management, and export automation. It leverages the Godot MCP ecosystem for direct editor integration when available. Capabilities Project Management Create and configure Godot projects Manage project settings (project.godot) Configure export presets Set up autoloads and singletons GDScript Development Generate scripts extending Node, Node2D, Node3D, etc. Create custom Resources for data-driven design Implement signals and signal connections Write tool scripts for editor functionality Generate unit tests using GUT or gdUnit4 C# Development (Godot Mono) Generate C# scripts with proper Godot bindings Create custom Resources in C# Implement partial classes for node scripts Interface with .NET libraries Scene Composition Create and modify scenes programmatically Instantiate and configure nodes Set up node hierarchies and ownership Configure scene inheritance Resource System Create custom Resource types Generate data resources Manage resource paths and loading Configure resource imports Export System Configure export presets for multiple platforms Create export scripts for automation Set up CI/CD export pipelines Manage platform-specific configurations Prerequisites Godot Installation Godot 4.0 or higher recommended Godot Editor installed with required export templates MCP Server (Recommended) For direct Godot Editor integration: { "mcpServers" : { "godot" : { "command" : "npx" , "args" : [ "-y" , "godot-mcp" ] , "env" : { "GODOT_PROJECT_PATH" : "/path/to/godot/project" } } } } Alternative MCP servers: Godot-MCP (ee0pdt) - Comprehensive editor integration godot-mcp (Coding-Solo) - Project launch and debugging GDAI MCP Server - Script fixing with screenshots Usage Patterns Creating a Character Controller (GDScript) extends CharacterBody2D class_name PlayerController ## Movement speed in pixels per second @export var move_speed: float = 200.0 ## Jump velocity @export var jump_velocity: float = -400.0 ## Gravity from project settings var gravity: float = ProjectSettings.get_setting("physics/2d/default_gravity") ## Emitted when the player takes damage signal damage_taken(amount: int) ## Emitted when the player dies signal died var _is_alive: bool = true func _physics_process(delta: float) -> void: if not _is_alive: return _apply_gravity(delta) _handle_jump() _handle_movement() move_and_slide() func _apply_gravity(delta: float) -> void: if not is_on_floor(): velocity.y += gravity * delta func _handle_jump() -> void: if Input.is_action_just_pressed("jump") and is_on_floor(): velocity.y = jump_velocity func _handle_movement() -> void: var direction := Input.get_axis("move_left", "move_right") if direction: velocity.x = direction * move_speed else: velocity.x = move_toward(velocity.x, 0, move_speed) func take_damage(amount: int) -> void: damage_taken.emit(amount) func die() -> void: _is_alive = false died.emit() Creating a Custom Resource (GDScript) @tool extends Resource class_name EnemyData ## Display name of the enemy @export var enemy_name: String = "Enemy" ## Enemy icon for UI @export var icon: Texture2D ## Maximum health points @export var max_health: int = 100 ## Movement speed @export var move_speed: float = 100.0 @export_group("Combat") ## Damage dealt per attack @export var attack_damage: int = 10 ## Range of attack in pixels @export var attack_range: float = 50.0 ## Cooldown between attacks @export var attack_cooldown: float = 1.0 @export_group("Rewards") ## Experience points awarded on death @export var exp_reward: int = 50 ## Items that can drop @export var loot_table: Array[PackedScene] ## Get damage per second potential func get_dps() -> float: return attack_damage / attack_cooldown State Machine Pattern (GDScript) extends Node class_name StateMachine ## Emitted when state changes signal state_changed(old_state: State, new_state: State) @export var initial_state: State var current_state: State var states: Dictionary = {} func _ready() -> void: for child in get_children(): if child is State: states[child.name.to_lower()] = child child.state_machine = self if initial_state: current_state = initial_state current_state.enter() func _process(delta: float) -> void: if current_state: current_state.update(delta) func _physics_process(delta: float) -> void: if current_state: current_state.physics_update(delta) func _unhandled_input(event: InputEvent) -> void: if current_state: current_state.handle_input(event) func transition_to(state_name: String) -> void: var new_state: State = states.get(state_name.to_lower()) if new_state == null: push_warning("State '%s' not found" % state_name) return if current_state: current_state.exit() var old_state := current_state current_state = new_state current_state.enter() state_changed.emit(old_state, new_state) Creating a C# Script (Godot Mono) using Godot; using System; public partial class PlayerController : CharacterBody2D { [ Export ] public float MoveSpeed { get ; set ; } = 200.0f ; [ Export ] public float JumpVelocity { get ; set ; } = -400.0f ; [ Signal ] public delegate void DamageTakenEventHandler ( int amount ) ; [ Signal ] public delegate void DiedEventHandler () ; private float _gravity = ProjectSettings.GetSetting( "physics/2d/default_gravity" ).AsSingle(); private bool _isAlive = true ; public override void _PhysicsProcess( double delta) { if (!_isAlive) return ; Vector2 velocity = Velocity; // Apply gravity if (!IsOnFloor()) { velocity.Y += _gravity * ( float )delta; } // Handle jump if (Input.IsActionJustPressed( "jump" ) && IsOnFloor()) { velocity.Y = JumpVelocity; } // Handle movement float direction = Input.GetAxis( "move_left" , "move_right" ); velocity.X = direction != 0 ? direction * MoveSpeed : Mathf.MoveToward(velocity.X, 0 , MoveSpeed); Velocity = velocity; MoveAndSlide(); } public void TakeDamage ( int amount ) { EmitSignal(SignalName.DamageTaken, amount); } public void Die () { _isAlive = false ; EmitSignal(SignalName.Died); } } Integration with Babysitter SDK Task Definition Example const godotScriptTask = defineTask ({ name : 'godot-script-generation' , description : 'Generate Godot script' , inputs : { language : { type : 'string' , required : true }, // gdscript, csharp baseClass : { type : 'string' , required : true }, className : { type : 'string' , required : true }, features : { type : 'array' , required : true }, outputPath : { type : 'string' , required : true } }, outputs : { scriptPath : { type : 'string' }, success : { type : 'boolean' } }, async run ( inputs, taskCtx ) { return { kind : 'skill' , title : `Generate Godot script: ${inputs.className} ` , skill : { name : 'godot-development' , context : { operation : 'generate_script' , language : inputs. language , baseClass : inputs. baseClass , className : inputs. className , features : inputs. features , outputPath : inputs. outputPath } }, io : { inputJsonPath : `tasks/ ${taskCtx.effectId} /input.json` , outputJsonPath : `tasks/ ${taskCtx.effectId} /result.json` } }; } }); MCP Server Integration Available MCP Tools (via godot-mcp) Tool Description godot_create_node Create node in scene godot_modify_node Modify node properties godot_create_script Generate and attach script godot_run_project Launch project in editor godot_run_scene Run specific scene godot_export Export for target platform godot_get_scene_tree Query scene structure godot_read_errors Get editor error output godot_screenshot Capture viewport screenshot Configuration { "mcpServers" : { "godot" : { "command" : "python" , "args" : [ "-m" , "godot_mcp" ] , "env" : { "GODOT_PROJECT_PATH" : "/path/to/godot/project" , "GODOT_EXECUTABLE" : "/path/to/godot" } } } } Best Practices Use Static Typing : Always use type hints for better performance and autocompletion Signals Over Direct Calls : Use signals for loose coupling between nodes Resource Preloading : Use preload() for frequently used resources Scene Inheritance : Use inherited scenes for variants Autoloads : Use sparingly, prefer dependency injection @tool Scripts : Mark scripts that need to run in editor Platform Considerations Platform Key Considerations PC/Mac/Linux Full feature support Mobile Touch input, reduced shaders, export templates Web No threading, WASM limitations Console Requires third-party publishing partners References Godot Documentation Godot-MCP (ee0pdt) godot-mcp (Coding-Solo) GDAI MCP Server GDScript Style Guide Godot Best Practices
Agent 识别该技能的关键词,点击任意一个即可复制。
该技能未提供触发词。
下载的 .skill 包内含以下字段。
| 字段 | 说明 |
|---|---|
| format | 格式标识(skill/v1) |
| skill_id | 技能唯一 ID |
| name | 技能名称 |
| version | 版本号 |
| description | 技能描述 |
| category | 所属分类(数组) |
| trigger_words | 触发词列表 |
| tags | 标签列表 |
| source | 来源标识 |
| source_url | 来源链接(本页地址) |
| exported_at | 导出时间(每次下载生成) |
| system_prompt | 系统提示词正文 |
| model_config | 模型参数:provider / model / temperature / max_tokens / top_p |
| examples | 示例 |
| install_guide | 各平台导入说明(Coze / Dify / Claude / 自定义框架) |