Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Souborový systém

Úvod

Souborový systém řídí způsob ukládání jednotlivých položek a přístup k nim. Dobře navržený souborový systém také umožňuje upravovat stejné zdrojové soubory a zdroje při vzájemné spolupráci více vývojářů. Godot ukládá všechny zdroje jako soubory ve svém souborovém systému.

Implementace

Souborový systém ukládá zdroje na disk. Cokoli, od skriptu po scénu nebo obrázek PNG, je pro engine zdrojem. Pokud zdroj obsahuje vlastnosti, které odkazují na jiné zdroje na disku, jsou zahrnuty i cesty k těmto zdrojům. Pokud má zdroj zabudované dílčí zdroje, je uložen v jediném souboru spolu se všemi dílčími zdroji. Například zdroj písma je často poskytován společně s texturami písma.

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 Subversion, Git, Mercurial, etc.

Příklad obsahu souborového systému:

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

project.godot

Soubor project.godot je soubor s popisem projektu a nachází se vždy v kořenovém adresáři projektu. Ve skutečnosti jeho umístění určuje, kde se kořenový adresář nachází. Je to ten první soubor, který Godot hledá při otevírání projektu.

Tento soubor obsahuje konfiguraci projektu v prostém textu ve formátu win.ini. I prázdný soubor project.godot může fungovat jako základní definice prázdného projektu.

Oddělovač cesty

Godot podporuje jako oddělovač cest pouze /. Děje se tak z důvodu přenositelnosti. Všechny operační systémy to podporují, dokonce i Windows, takže cesta jako C:\project\project.godot musí být zadána jako C:/project/project.godot.

Cesta ke zdroji

Při přístupu k zdrojům může být použití souborového systému hostitelského operačního systému těžkopádné a nepřenosné. K vyřešení tohoto problému byla vytvořena speciální cesta res://.

Cesta res:// bude vždy ukazovat na kořen projektu (kde se nachází project.godot, takže res://project.godot platí vždy).

Tento souborový systém je určen pouze pro čtení a zápis při lokálním spuštění projektu z editoru. Při exportu nebo při spuštění na jiných zařízeních (např. telefonech nebo konzolích nebo při spuštění z DVD) se systém souborů povoluje pouze čtení a zápis již nebude možný.

Uživatelská cesta

Zápis na disk je ovšem nutný pro úlohy, jako je ukládání stavu hry nebo stahování balíčků obsahu. Pro tento účel engine poskytuje speciální cestu user://, která je zapisovatelná vždy. Tato cesta se řeší různě v závislosti na operačním systému, na kterém projekt běží. Ošetření místní cesty je blíže vysvětleno v Cesty k souborům v projektech Godot.

Souborový systém hostitele

Alternativně lze použít také cesty hostitelského souborového systému, ale to se u vydaného produktu nedoporučuje, protože není zaručeno, že tyto cesty budou fungovat na všech platformách. Použití cest k hostitelskému souborovému systému však může být užitečné při psaní vývojových nástrojů v Godotu.

Nevýhody

There are some drawbacks to this file system design. The first issue is that moving assets around (renaming them or moving them from one path to another inside the project) will break existing references to these assets. These references will have to be re-defined to point at the new asset location.

Chcete-li se tomuto vyhnout, provádějte všechny operace přesouvání, mazání a přejmenovávání v systému Godot v doku FileSystem. Nikdy nepřesouvejte zdroje vně Godot, jinak budete muset závislosti opravovat ručně (Godot to stejně zjistí a pomůže vám je opravit, ale proč se s tím trápit?).

Druhým důvodem je, že v systémech Windows a macOS se u názvů souborů a cest nerozlišují velká a malá písmena. Pokud vývojář pracující v hostitelském souborovém systému, který nerozlišuje velká a malá písmena, uloží aktivum jako myfile.PNG, ale pak na něj odkáže jako myfile.png, bude to fungovat dobře na jeho platformě, ale ne na jiných platformách, jako je Linux, Android atd. To se může týkat i exportovaných binárních souborů, které používají komprimovaný balíček pro uložení všech souborů.

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