본 내용은 Godot 엔진 튜토리얼의 문서를 참조하여 정리하는 글이다. 아는게 없어서 의역 수준으로 가져옴.
Godot에서 게임은 Node들로 구성되는 Tree이다. 이 Nodes tree들은 그룹으로 묶여서 Scene들 안에 포함된다. 또한, Node들은 Signal들을 이용해서 연결하여 상호작용을 할 수 있다.
Node, Tree, Signal, Scene 4가지가 기본이되는 컨셉이다.
Scenes
Godot에서 씬은 영화의 씬 개념보다 더 유연하고 넓은 개념이다. 재사용이 가능하고, 캐릭터, 무기, 인터페이스의 메뉴등이 될 수도 있으며 일반적인 개념의 씬처럼 하나의 게임 레벨이 될 수도 있다. 유니티라면 prefab과 같은 것들도 scene이 담당한다는 얘기.
Scene을 prefab처럼 사용한다는건 예를들면, 캐릭터 Scene을 하나 만들고, 레벨에서 사용하기 위해 다른 레벨 Scene에 드래그 앤 드롭해서 사용할 수 있다는 얘기다. 이 경우, 캐릭터 Scene은 레벨 Scene의 child 형태로 구성된다.

Nodes
Scene은 하나 이상의 node들로 구성된다. node는 Godot으로 만드는 게임에서 가장 작은 빌딩 블록이다. node는 다양한 게임요소들로 만들어진다.

위 이미지를 보면, 캐릭터 노드에 카메라, 스프라이트, 콜리젼 박스가 트리형태로 구성되는걸 볼 수 있다. 캐릭터는 KinematicBody2D, 스프라이트는 Sprite, 카메라는 Camera2D, 콜리젼 박스는 CollisionShape2D로 구성되어 있다.
트리구조내에서 node와 Scene은 구별이 되지 않는다.
Scene Tree
게임의 scene들은 scene tree에 모두 표시된다. scene은 node들의 tree이기도 하므로, scene tree는 node tree이기도 하다. 앞에서 트리구조내에서 node와 scene이 구별되지 않는다는 얘기가 이런 것이다.

Signals
Event가 발생하면 Node들은 signal을 보낸다. 이를 이용해서 복잡한 코드작업 없이, node간 커뮤니케이션이 가능하다. event driven 프로그래밍을 생각하면 될텐데, 버튼이 눌렸을 때 게임이 실행되는등의 동작도 가능하고, 게임에서 오브젝트간 충돌시 이벤트처리, 캐릭터가 특정 영역에 들어설 때등 여러가지 처리가 가능하다. 또한, 새로운 시그널을 정의해서 만드는 것도 가능하다.