skills/godot/SKILL.md
Godot Engine 게임 개발. 프로젝트 생성, GDScript 코딩, 2D/3D 게임 제작, 노드 시스템, Scene 구조, 물리/애니메이션/UI 구현 지원. Godot 프로젝트 작업 시 사용.
npx skillsauth add kjaylee/misskim-skills godotInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
godot) for hands-on Godot engine execution: Scene/Node architecture, GDScript coding, export/debug workflows.game-design when you need to define the game concept, loops, and system design before implementation.game-dev-rust-godot when you need full pipeline governance across assets/tests/shipping, not only engine-specific guidance.Godot 4.x 게임 엔진 개발을 위한 종합 가이드. 프로젝트 생성부터 빌드, GDScript 코딩, Scene/Node 시스템, 2D/3D 게임 제작까지 전 과정을 지원합니다.
# MiniPC에서 실행 (Godot 4.6 설치됨)
cd $HOME/
godot4 --headless --path . --create-project "MyGame"
# 또는 맥 스튜디오에서 원격 실행
# (nodes.run 또는 ssh 사용)
MyGame/
├── project.godot # 프로젝트 설정
├── scenes/ # 씬 파일 (.tscn)
│ ├── main.tscn
│ ├── player.tscn
│ └── enemy.tscn
├── scripts/ # GDScript 파일
│ ├── player.gd
│ └── enemy.gd
├── assets/ # 에셋 (텍스처, 사운드 등)
│ ├── sprites/
│ ├── sounds/
│ └── fonts/
└── export_presets.cfg # 빌드 설정
_ready(), _process(delta) 함수 작성extends Node2D
# 씬 트리 진입 시 1회 호출
func _ready():
print("Ready!")
# 매 프레임 호출 (delta = 프레임 시간)
func _process(delta):
position.x += 100 * delta # 초당 100픽셀 이동
# 물리 프레임마다 호출 (고정 간격)
func _physics_process(delta):
move_and_slide()
# 타입 추론
var speed := 200.0 # float
var health := 100 # int
var player_name := "Hero" # String
# 명시적 타입
var velocity: Vector2 = Vector2.ZERO
var sprite: Sprite2D
# @export로 에디터 노출
@export var max_speed: float = 300.0
@export_range(0, 100) var hp: int = 100
# 신호 정의
signal health_changed(new_health)
signal player_died
# 신호 발생
func take_damage(amount):
health -= amount
health_changed.emit(health)
if health <= 0:
player_died.emit()
# 다른 스크립트에서 연결
func _ready():
$Player.health_changed.connect(_on_player_health_changed)
func _on_player_health_changed(new_health):
print("Health: ", new_health)
# 자식 노드 가져오기
var sprite = $Sprite2D
var label = get_node("Label")
# 부모/형제 접근
var parent = get_parent()
var sibling = get_parent().get_node("OtherNode")
# 씬 전역 접근 (Autoload)
GlobalScript.some_function()
extends CharacterBody2D
@export var speed = 300.0
func _physics_process(delta):
var input_dir = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
velocity = input_dir * speed
move_and_slide()
@onready var anim = $AnimatedSprite2D
func _process(delta):
if velocity.length() > 0:
anim.play("walk")
else:
anim.play("idle")
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
if body.is_in_group("player"):
print("Player entered!")
queue_free() # 자신 제거
@onready var tilemap = $TileMap
func _ready():
# 타일 좌표 (0, 0)에 타일 ID 1 배치
tilemap.set_cell(0, Vector2i(0, 0), 1)
extends CharacterBody3D
@export var speed = 5.0
@export var jump_velocity = 4.5
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
func _physics_process(delta):
# 중력
if not is_on_floor():
velocity.y -= gravity * delta
# 점프
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
velocity.y = jump_velocity
# 이동
var input_dir = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
velocity.x = direction.x * speed
velocity.z = direction.z * speed
move_and_slide()
extends Camera3D
@export var sensitivity = 0.003
func _ready():
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
func _input(event):
if event is InputEventMouseMotion:
rotation.y -= event.relative.x * sensitivity
rotation.x -= event.relative.y * sensitivity
rotation.x = clamp(rotation.x, -PI/2, PI/2)
# 다음 씬으로 이동
get_tree().change_scene_to_file("res://scenes/level2.tscn")
# 씬 인스턴스 생성
var enemy_scene = preload("res://scenes/enemy.tscn")
var enemy = enemy_scene.instantiate()
add_child(enemy)
# 타이머 노드 사용
@onready var timer = $Timer
func _ready():
timer.timeout.connect(_on_timer_timeout)
timer.start(2.0) # 2초 후 신호 발생
func _on_timer_timeout():
print("Timer finished!")
func fade_out():
var tween = create_tween()
tween.tween_property($Sprite2D, "modulate:a", 0.0, 1.0) # 1초간 투명화
extends Control
@onready var label = $Label
func update_score(score):
label.text = "Score: %d" % score
cd $HOME/
godot4 --headless --path MyGame --export-release "Web" output/index.html
[export]
name="Web"
platform="Web"
runnable=true
export_path="export/web/index.html"
# East Sea Games 로고 사용
cp $HOME/godot-demo/boot_splash.png MyGame/
references/gdscript-cheatsheet.md: GDScript 문법 치트시트references/nodes-reference.md: 자주 쓰는 노드 목록references/best-practices.md: Godot 베스트 프랙티스references/2d-patterns.md: 2D 게임 공통 패턴references/3d-patterns.md: 3D 게임 공통 패턴Version: 1.0.0
Author: Miss Kim
Date: 2026-02-05
testing
게임 아이디어를 검토해 와우 팩터 5개를 추가하고, 스펙→TC→구현→QA→런칭까지 한 번에 밀어붙이는 일일 게임 런칭 써클. 기존 자동 게임 파이프라인을 대체/승격할 때 사용.
data-ai
Advanced YouTube analysis, transcripts, and metadata extraction.
development
Modern web design engineering skills including design tokens, advanced UI/UX methodologies, accessibility, and game-specific UI patterns. Use for building commercial-grade, performant, and accessible web interfaces.
development
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".