Godot 엔진에서는 게임을 구성하는 주요 개념으로 **노드(Node)**와 **씬(Scene)**을 사용합니다. 각각의 씬은 **노드 트리(Tree)**로 구성되며, 게임의 기본 구조를 설계하는 핵심적인 역할을 합니다. 이번 글에서는 노드와 씬의 개념을 자세히 알아보고, 간단한 씬을 만들어 보겠습니다.
노드(Node)란?
노드는 Godot에서 게임을 구성하는 기본 단위입니다. 노드는 하나의 기능을 담당하며, 다양한 유형이 있어 게임 개발에 필수적인 기능을 제공합니다.
노드의 특징
- 이름: 고유한 이름을 가질 수 있습니다.
- 편집 가능한 속성: 노드의 속성을 인스펙터(Inspector) 창에서 수정 가능합니다.
- 콜백 지원: 매 프레임마다 업데이트되는 콜백 함수를 제공합니다.
- 확장 가능: 새로운 속성과 기능을 추가해 확장할 수 있습니다.
- 계층 구조: 다른 노드의 자식으로 추가하여 트리를 형성합니다.
예제: 플레이어 캐릭터 노드 트리
CharacterBody2D
: 캐릭터의 움직임을 처리.Sprite2D
: 캐릭터의 이미지를 표시.Camera2D
: 캐릭터를 따라다니는 카메라.CollisionShape2D
: 충돌 감지를 위한 노드.
씬(Scene)이란?
씬은 노드들의 계층 구조(Tree)입니다. 씬은 하나의 루트 노드를 포함하며, 그 아래에 다양한 자식 노드들이 추가됩니다. 씬은 게임 내 특정 장면(Scene)이나 오브젝트(Object)를 정의합니다.
씬의 특징
- 루트 노드: 씬은 반드시 하나의 루트 노드를 가집니다.
- 저장 및 로드 가능: 씬을 파일로 저장해 나중에 로드하거나 수정 가능합니다.
- 인스턴스화 가능: 저장된 씬은 게임 내에서 여러 번 재사용 가능합니다.
예를 들어, 플레이어 캐릭터, 적, 환경 요소 등을 각각 별도의 씬으로 만들어 관리할 수 있습니다.
첫 번째 씬 만들기
이제 Godot에서 간단한 씬을 만들어 보겠습니다.
1. 새 프로젝트 생성
Godot 에디터를 열고 새 프로젝트를 생성합니다. 프로젝트를 열면 빈 에디터 화면이 나타납니다.
2. 루트 노드 추가
좌측의 씬(Scene) 탭에서 “Add Child Node” 버튼을 클릭합니다. 팝업 창이 나타나면 Label
노드를 검색해 선택합니다.
3. 노드 속성 수정
- 우측 인스펙터(Inspector) 창에서
Label
노드의 Text 속성을 “Hello World”로 변경합니다. - 텍스트가 뷰포트에 실시간으로 나타납니다.
4. 노드 위치 조정
- 상단 **이동 도구(Move Tool)**를 선택하고,
Label
노드를 드래그하여 화면 중앙에 배치합니다.
5. 씬 저장
- 상단 저장(Save) 버튼을 눌러 씬을 저장합니다. 파일 이름은
label.tscn
으로 설정합니다.
6. 씬 실행
- 상단의 Play Scene(F6) 버튼을 클릭하여 씬을 실행합니다.
- 새 창이 열리며 “Hello World” 텍스트가 표시됩니다.
메인 씬 설정
프로젝트 실행 시, 특정 씬을 메인 씬으로 설정할 수 있습니다.
- 상단 Play(Project) 버튼을 클릭합니다.
- 팝업 창에서 저장한 씬 파일(
label.tscn
)을 선택합니다. - 이후 프로젝트 실행 시 지정된 씬이 기본으로 실행됩니다.
결론
Godot 엔진의 노드와 씬은 복잡한 게임 구조를 단순하게 설계할 수 있도록 돕는 강력한 도구입니다. 이번 튜토리얼을 통해 간단한 씬을 만들어보았으니, 이제 다양한 노드와 씬을 조합해 더 복잡한 게임을 제작해 보세요!