Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

프로젝트 조직

소개

Godot는 프로젝트 구조나 파일시스템 사용에 있어 제한을 두지 않기 때문에 엔진을 배울 때, 파일을 조직하는 것은 도전적인 것처럼 보일 수 있습니다. 이 튜토리얼에서는 좋은 출발점이 될만한 워크플로를 제안합니다. 그리고 Godot로 버전 제어를 사용하는 것도 다룰 것입니다.

조직

Godot는 본질적으로 씬 기반이고, 파일시스템을 메타데이터나 애셋 데이터베이스가 아닌, 있는 그대로 사용합니다.

다른 엔진과 달리, 많은 리소스가 씬 자체에 내장되어 있기에, 파일시스템에 있는 파일의 양은 상당히 적습니다.

그것을 고려해보면, 가장 일반적인 접근법은 애셋들을 씬과 가능한 밀접하게 묶어내는 것입니다; 프로젝트가 커지다 보면, 프로젝트를 더 유지할 수 있게 만듭니다.

예를 들어, 보통은 하나의 폴더에 기초 애셋을 넣습니다. 스프라이트 이미지나, 3D 모델 메시, 머티리얼, 그리고 음악 등이죠. 그런 다음 별도의 폴더를 사용하여 이들을 사용하는 빌드 레벨을 저장할 수 있습니다.

/project.godot
/docs/.gdignore  # See "Ignoring specific folders" below
/docs/learning.html
/models/town/house/house.dae
/models/town/house/window.png
/models/town/house/door.png
/characters/player/cubio.dae
/characters/player/cubio.png
/characters/enemies/goblin/goblin.dae
/characters/enemies/goblin/goblin.png
/characters/npcs/suzanne/suzanne.dae
/characters/npcs/suzanne/suzanne.png
/levels/riverdale/riverdale.scn

스타일 가이드

프로젝트 간의 일관성을 위해 아래의 가이드라인을 지켜주세요:

  • 프로젝트를 Windows에서 내보낼 때 이름이 잘리는 문제를 피하기 위해 C# 스크립트를 제외한 폴더와 파일 이름에는 snake_case 를 사용해주세요. 예외적으로 C# 스크립트는 PascalCase로 작성된 클래스와 동일한 파일 이름을 가져야 하므로 PascalCase로 작성되어야 합니다.

  • 노드 이름으로 PascalCase를 사용하여, 내장된 노드의 문자 명명 규칙과 일치하세요.

  • 일반적인 경우, 서드 파티 리소스는 편집기 플러그인이 아니더라도 최상위의 addons/ 폴더에 저장하세요. 이렇게 하면 서드 파티 파일을 찾아내는 것이 쉬워집니다. 몇 가지 예외로 서드 파티 캐릭터 애셋 같은 경우가 있는데, 이 경우는 캐릭터 씬과 스크립트가 위치한 폴더에 저장하는 것이 더 직관적입니다.

가져오기

3.0 버전 이전의 Godot에서는 프로젝트 밖에서 파일을 접근하는 것으로 가져오기를 실행했습니다. 이것이 큰 규모의 프로젝트에는 유용하지만, 대부분의 개발자들에게는 조직의 번거로움을 초래했습니다.

Because of this, assets are now transparently imported from within the project folder. See 가져오기 과정 for more details on how importing works in Godot.

특정 폴더를 무시하기

Godot가 특정 폴더의 파일을 가져오는 것을 막으려면 .gdignore라는 이름의 빈 파일을 폴더에 생성하면 됩니다(위와 같이 이름 앞에 .이 들어가야 합니다). 이렇게 하면 프로젝트를 빠르게 가져올 수 있습니다.

참고

To create a file whose name starts with a dot on Windows, place a dot at both the beginning and end of the filename (.gdignore.). Windows will automatically remove the trailing dot when you confirm the name.

또는 Notepad++와 같은 텍스트 편집기를 사용하거나 명령 프롬프트에서 다음 명령을 사용할 수 있습니다: type nul > .gdignore

폴더가 무시된 상태라면 load() 혹은 preload() 메서드를 사용해서 리소스를 로딩하는 것이 불가능하며, 파일시스템 독에서 표시되지 않습니다. 불필요한 데이터를 줄이는데 유용합니다.

.gdignore 파일은 .gitignore 처럼 패턴을 지원하지 않고 그냥 내용이 무시되므로 파일의 내용은 비워 두는게 좋습니다.

대소문자 구분

Windows와 최근 macOS 버전들은 Linux 배포판들과 반대로 대소문자 구분이 없는 파일시스템을 기본적으로 사용합니다. Godot의 PCK 파일시스템은 대소문자를 구분하므로 프로젝트를 내보낸 후 문제가 발생할 수 있는데, 프로젝트의 모든 파일 snake_case (와 소문자들)를 사용해 이런 문제를 예방하는 것을 권장합니다.

참고

C# 스타일 가이드라인처럼 스타일 가이드라인에 예외가 있다면 이 규칙을 깨도 됩니다. 하지만 실수하지 않도록 일관성을 유지하세요.

Windows 10의 경우, 대소문자 구분과 관련된 실수를 방지하기 위해 프로젝트 폴더가 대소문자를 구분하도록 만들 수도 있습니다. Linux용 Windows 하위 시스템 기능을 활성화 한 후, PowerShell 창에 다음 명령을 입력하세요:

# To enable case-sensitivity:
fsutil file setcasesensitiveinfo <path to project folder> enable

# To disable case-sensitivity:
fsutil file setcasesensitiveinfo <path to project folder> disable

Linux용 Windows 하위 시스템을 활성화하지 않았다면, Powershell에서 아래의 명령을 관리자 권한으로 실행 한 후 재부팅 알림이 나올 때 재부팅하는 방법도 있습니다:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux