Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Godot의 주요 개념 개요

모든 게임 엔진은 어플리케이션을 구축하는 데 사용하는 추상화 개념을 중심으로 동작합니다. Godot에서는 게임이 **노드(nodes)**의 **트리(tree)**로 구성되며, 이러한 노드들을 **씬(scenes)**으로 그룹화합니다. 그런 다음 이러한 노드들을 **시그널(signals)**을 사용하여 서로 통신할 수 있도록 연결할 수 있습니다.

엔진의 작동 방식에 대해 감을 잡기 위해 이 네 가지 개념을 간략히 살펴보겠습니다. 이 시리즈에서는 이러한 개념들을 실제로 활용할 수 있을 것입니다.

Godot에서는 게임을 재사용 가능한 씬(scene)으로 구성합니다. 씬(scene)은 캐릭터, 무기, 사용자 인터페이스의 메뉴, 하나의 집, 전체 레벨 또는 상상할 수 있는 모든 것이 될 수 있습니다. Godot의 씬(scene)은 유연하며, 다른 일부 게임 엔진에서의 프리팹(prefab)과 씬(scene)의 역할을 모두 수행합니다.

../../_images/key_concepts_main_menu.webp

또한 씬(scene)을 중첩할 수도 있습니다. 예를 들어 캐릭터를 레벨에 배치하고, 씬(scene)을 해당 캐릭터의 자식(child)으로 끌어다 놓을 수 있습니다.

../../_images/key_concepts_scene_example.webp

노드

씬(scene)은 하나 이상의 **노드**(nodes)로 구성됩니다. 노드는 게임의 가장 작은 구성 요소로, 이를 트리(tree)로 배열합니다. 다음은 캐릭터의 노드 예시입니다.

../../_images/key_concepts_character_nodes.webp

It is made of a CharacterBody2D node named "Player", a Camera2D, a Sprite2D, and a CollisionShape2D.

참고

The node names end with "2D" because this is a 2D scene. Their 3D counterparts have names that end with "3D". Be aware that "Spatial" Nodes are now called "Node3D" starting with Godot 4.

노드와 씬이 에디터에서 동일하게 보인다는 점에 주목하세요. 노드 트리를 씬으로 저장하면, 에디터에서는 내부 구조가 숨겨진 단일 노드(single node)로 표시됩니다.

Godot은 결합하고 확장하여 보다 강력한 노드를 구축할 수 있는 광범위한 기본 노드 유형 라이브러리를 제공합니다. 2D, 3D 또는 사용자 인터페이스를 사용하면 대부분의 작업을 이 노드에서 수행할 수 있습니다.

../../_images/key_concepts_node_menu.webp

씬 트리

게임의 모든 씬은 씬 트리(scene tree)에서 함께 구성됩니다. 씬은 노드 트리로 구성되기 때문에, 씬 트리도 노드 트리의 형태를 가지게 됩니다. 그러나 캐릭터, 무기, 문 또는 사용자 인터페이스와 같은 요소를 나타낼 수 있는 씬으로 게임을 생각하는 것이 더 쉬울 것입니다.

../../_images/key_concepts_scene_tree.webp

시그널

노드(Nodes)는 어떤 이벤트가 발생할 때 신호(signals)를 발생시킵니다. 이 기능을 통해 노드 간에 코드에서 직접 연결하지 않고도 통신할 수 있습니다. 이는 씬을 구성하는 방식에 대한 유연성을 제공합니다.

../../_images/key_concepts_signals.webp

참고

Signals는 observer 패턴의 Godot 버전입니다. 더 많은 정보는 여기에서 볼 수 있습니다: http://gameprogrammingpatterns.com/observer.html

예를 들어, 버튼은 눌릴 때 시그널을 발생시킵니다. 이 시그널에 연결하여 게임을 시작하거나 메뉴 열기와 같은 코드를 실행할 수 있습니다.

내장된 다른 시그널들은 두 객체가 충돌했을 때, 캐릭터나 몬스터가 특정 영역에 들어왔을 때 등 다양한 상황을 알려줄 수 있습니다. 또한 게임에 맞게 사용자 정의 시그널을 정의할 수도 있습니다.

요약

노드, 씬, 씬 트리, 그리고 시그널은 Godot에서 항상 다루게 되는 네 가지 핵심 개념입니다.

노드는 게임의 가장 작은 구성 요소입니다. 이러한 노드들을 결합하여 씬을 만들고, 이를 결합하고 중첩하여 씬 트리를 구성합니다. 그런 다음 신호를 사용하여 노드를 다른 노드나 씬 트리의 다른 가지에서 발생하는 이벤트에 반응하도록 할 수 있습니다.

이 간략한 설명 이후에 여러분이 궁금증을 가질 수도 있습니다. 이 시리즈를 통해 많은 질문에 대한 답을 얻게 될 것이니 조금만 참고 계시기 바랍니다.