파일 시스템(File system)

소개

A file system manages how assets are stored and how they are accessed. A well-designed file system also allows multiple developers to edit the same source files and assets while collaborating. Godot stores all assets as files in its file system.

구현

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

The Godot file system avoids using metadata files. Existing asset managers and VCSs are better than anything we can implement, so Godot tries its best to play along with SVN, Git, Mercurial, Perforce, etc.

Example of file system contents:

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

project.godot

project.godot 파일은 프로젝트 설명 파일이고, 항상 프로젝트의 루트에서 찾으실 수 있습니다. 사실 파일 위치가 루트의 위치를 정의합니다. 이 파일은 프로젝트를 열 때 Godot가 제일 먼저 찾는 파일입니다.

이 파일은 프로젝트 설정을 win.ini 형식을 사용해, 일반 텍스트로 갖습니다. 심지어 비어있는 project.godot도 비어있는 프로젝트의 기본 정의 기능을 할 수 있습니다.

경로 구분 기호

Godot는 오직 /만을 경로 구분 기호로 지원합니다. 그 이유는 이식 능력 입니다. 윈도우를 포함한 모든 운영체제가 이 기호를 지원하기 때문에, c:\project\project.godot같은 경로는 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.

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

Alternatively host file system paths can also be used, but this is not recommended for a released product as these paths are not guaranteed to work on all platforms. However, using host file system paths can be useful when writing development tools in Godot.

단점

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

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

두 번째로 윈도우와 macOS에서는 파일과 경로 이름을 대소문자를 구별하지 않는 것입니다. 대소문자를 구분하지 않는 호스트 파일 시스템이 에셋을 "myfile.PNG"라고 저장하지만, "myfile.png" 로 참조됩니다, 그 플랫폼 내에서는 작동이 잘 될 것입니다, 하지만 리눅스, 안드로이드 등의 플랫폼에서는 작동하지 않습니다. 이는 압축된 패키지로 모든 파일을 저장하는 내보낸 바이너리에도 적용될 수 있습니다.

It is recommended that your team clearly define a naming convention for files when working with Godot. One simple fool-proof convention is to only allow lowercase file and path names.