파일 시스템(File system)

소개

파일 시스템은 애셋을 저장하고 접근하는 방법을 관리합니다. 잘 설계된 파일 시스템은 여러 개발자가 협업하며 같은 소스 파일과 애셋을 편집할 수 있습니다. Godot는 모든 애셋을 파일 시스템에 파일의 형태로 저장합니다.

구현

파일 시스템은 리소스를 디스크에 저장합니다. 스크립트에서 씬이나 PNG 이미지까지 어떤 것이든, 엔진에게는 리소스 입니다. 리소스가 디스크 내 다른 리소스의 참조를 속성으로 갖고 있다면, 그 리소스로 가는 경로 또한 포함됩니다. 리소스가 내장 하위 리소스를 갖는다면, 그 리소스는 모든 묶인 하위 리소스들과 함께 단일 파일로 저장됩니다. 예를 들어, 폰트 리소스는 종종 폰트 텍스처와 묶여집니다.

Godot 파일 시스템은 메타데이터 파일 사용을 피합니다. 기존 애셋 관리자와 버전 관리 시스템(VCS)은 우리가 구현할 수 있는 것보다 훨씬 더 뛰어나기 때문에, Godot는 SVN, Git, Mercurial, Perforce 등과 작업하도록 최선을 다합니다.

파일 시스템 내용물 예시:

/project.godot
/enemy/enemy.tscn
/enemy/enemy.gd
/enemy/enemysprite.png
/player/player.gd

project.godot

The project.godot file is the project description file, and it is always found at the root of the project. In fact, its location defines where the root is. This is the first file that Godot looks for when opening a project.

This file contains the project configuration in plain text, using the win.ini format. Even an empty project.godot can function as a basic definition of a blank project.

경로 구분 기호

Godot only supports / as a path delimiter. This is done for portability reasons. All operating systems support this, even Windows, so a path such as C:\project\project.godot needs to be typed as C:/project/project.godot.

리소스 경로(Resource path)

리소스를 접근할 때, 호스트 OS 파일 시스템 레이아웃을 사용하는 것은 성가시고 휴대성이 떨어질 수 있습니다. 이 문제를 해결하기 위해, res:// 라는 특수 경로가 만들어졌습니다.

The path res:// will always point at the project root (where project.godot is located, so res://project.godot is always valid).

파일 시스템은 편집기에서 프로젝트를 지역으로 실행 중일 때만 읽고 씁니다. 내보내질 때나 아니면 다른 기기에서 실행 중일 때 (휴대전화나 콘솔, 혹은 DVD로 실행), 파일 시스템은 읽기만 하고 더 이상 쓰기가 용납되지 않습니다.

사용자 경로(User path)

Writing to disk is still needed for tasks such as saving game state or downloading content packs. To this end, the engine ensures that there is a special path user:// that is always writable. This path resolves differently depending on the OS the project is running on. Local path resolution is further explained in Data paths.

호스트 파일 시스템(Host file system)

또는 호스트 파일 시스템 경로도 사용될 수 있습니다, 하지만 이것이 모든 플랫폼에서 작동된다는 보장은 없으니 출시된 제품에 이 경로를 쓰는 것을 추천하지는 않습니다. 하지만, 호스트 파일 시스템 경로는 Godot에서 개발 도구를 만들 때 유용할 수 있습니다.

단점

이 간단한 파일 시스템 설계에는 몇 가지 단점이 있습니다. 첫 번째 문제는 애셋의 이동으로 (프로젝트 내에서 이름을 바꾸거나 한 경로를 다른 곳으로 옮기는 등) 이 애셋에 관해 존재하는 참조를 깨버릴 것입니다. 이 참조는 새 애셋 위치를 향하도록 다시 정의해야만 합니다.

이를 피하기 위해, Godot에서, 파일 시스템 독 내에서, 위치를 바꾸거나 이름을 바꾸거나 삭제하는 등의 모든 작업을 해야만 합니다. Godot 밖에서 애셋을 움직이지 마세요, 그렇지 않으면 종속 여부를 수동으로 설정해야만 합니다 (Godot는 이를 감지하고 당신이 고치는 것을 어쨌든 도울 것이지만, 왜 어려운 길로 가시나요?).

The second is that, under Windows and macOS, file and path names are case insensitive. If a developer working in a case insensitive host file system saves an asset as myfile.PNG, but then references it as myfile.png, it will work fine on their platform, but not on other platforms, such as Linux, Android, etc. This may also apply to exported binaries, which use a compressed package to store all files.

Godot로 작업할 때 팀이 명명 규칙을 분명하게 정의하는 것을 추천합니다. 간단한 바보 같은 규칙으로는 파일과 경로 이름을 소문자로만 허락하는 것이 있습니다.