- 본 내용은 godot 공식 문서를 공부하면서 정리한 것입니다.
GOTDOT 엔진은 다양한 Node 들을 사용해 게임을 만들 수 있다.
Node 란?
Godot 엔진 공식 사이트를 가보면, 게임을 만들기 위한 '재료' 라고 소개하고 있다.
Gotdot 엔진이 주방이라면 Node 는 요리 재료다!
이미지 보여주는 노드, 소리를 재생하는 노드, 3D 모델을 보여주는 노드 등 아주 다양하게 있다.
Node 의 특징
- 이름이 있다.
- 편집할 수 있는 속성을 가지고 있다.
- 각 프레임을 처리하기 위한 콜백을 받을 수 있다.
- 더 많은 기능을 가질 수 있도록 확장 할 수 있다.
- 다른 노드의 자식으로 추가 될 수 있다.
마지막 특징으로 인해 노드들은 Tree 구조를 가지게 된다.
노드들을 잘 묶으면 복잡한 기능을 구현 할 수 있다!
Scene ?
Scene 은 트리 구조로 조직된 노드 그룹으로 구성된다.
Scene 의 특징
- 항상 하나의 루트 노드를 가진다.
- 디스크에 저장하고 다시 불러 올 수 있다.
- Instance (인스턴스) 가 될 수 있다.
- 씬은 Packed Scenes 라 불리는 방식으로 저장되고,
.tscn
파일 확장자로 저장된다.
Godot 에서 게임을 실행한 다는 것은 씬을 실행하는 것이다.
한 프로젝트는 여러 씬으로 이루어지고, 게임을 시작하면 그 중 하나의 씬만 메인씬으로 선택된다.
Godot 의 편집기와 씬
기본적으로 Godot 의 편집기는 씬 편집기 이다.
편집기는
- 씬을 편집하는 것
- 씬을 구성하는 노드들
이라는 개념으로 있다.
Instance 하기
Scene 의 특징 중 하나가 Instance 하기인데, Instance 하기란 무엇일까?
씬 하나를 저장하면, Node 들 처럼 다른 씬에 붙일 수 (?) 있는데, 이를 다른 씬으로 Instance 한다고 한다.
위 그림에서는 씬 B 가 씬 A 에 인턴스로 추가 된 것이다.
Instance 하는 것은 많은 양의 객체 사본을 만들때 유용하다.
Instance 해서 무엇을?
- Scene 을 하위 객체로 나누어서 관리하기 쉽게 한다.
- 한번에 여러 노드 인스턴스를 관리하고 편집할 수 있는 도구이다.
- 복잡한 게임 흐름, 심지어 UI 도 묶고 조직할 수 있게 해준다. (Godot 에서는 UI 도 노드다!)
Godot 의 디자인 언어
그리고 Godot에서 말하는 씬을 인스턴스하는 것의 가장 강력한 점은 인스턴스가 디자인 언어 로 작동한다는 점이라고 한다.
(이게 무슨 소리일까)
Godot 은 이런 컨셉으로 설계되었다고 한다...
Godot 으로 게임을 만들때는 MVC 같은 일반적인 디자인 패턴을 버리고,
씬을 더 자연스럽게 바라보기를 권장한다! (오!)
Godot 에서 추천하는 게임 제작 과정
- 게임에서 보이는 요소를 상상하는 것으로 시작하자. (프로그래머의 관점이 아닌 요소)
- 게임에서 시각화 할 수 있는 부분을 쭉 적어보고, 각 구성 요소 간 소유권을 나타내기 위한 화살표를 추가해 본다.
- 다이어그램에서 각 요소로 이뤄진 씬을 만들자.
- 인스턴스를 사용해서 소유권 관계를 만들자
위와 같이 씬을 기반으로 설계하면 게임의 논리 자체에 집중하게 되어, 개발을 더 빠르고 직관적으로 만든다고
Godot 은 말하고 있다.
예를 들어 슈팅게임은 다음과 같은 다이어그램을 가진다.
더 복잡한 오픈월드 게임은 다음과 같이 된다.
'게임 > Godot 엔진' 카테고리의 다른 글
Godot 노드들 (0) | 2021.11.07 |
---|---|
Godot 편집기 Tip (0) | 2021.11.07 |
Gotdot - Tutorial 게임 만들기 (1) (0) | 2021.03.03 |
Godot - Physics (0) | 2021.03.03 |
Godot - Scripting (0) | 2021.02.06 |