Документация/Статьи/Обзор файловой системы
From NeoAxis Engine Wiki
| Language: | Status: | Approved |
Contents |
Обзор
Файловая система представляет собой компонент движка, для унифицированной работы с ресурсами (файлами) проекта. Включает в себя единую структуризацию ресурсов и общие правила доступа к ресурсам.
Все ресурсы проекта находятся в папке Data.
Файловая система позволяет хранить ресурсы в архивах. Например, в zip файлах. Работа с ресурсам в архивах не отличается от работы с обычными файлами.
Пути к ресурсам указываются относительно папки Data. Например: "Sounds\Beep.ogg".
Папка Data
Папка Data хранит в себе все ресурсы проекта.
Желательно не изменять файлы в данной папке, в течении работы приложения.
Папка имеет следующую структуру:
- Data
- _Tests - файлы для тестирования движка. Смотрите в редакторе ресурсов. Вы можете найти интересные физические модели в папке "Data\_Tests\Physics".
- Caches - различные предрасчитанные данные движка. Например, кеш шейдеров.
- Cursors - курсоры мыши.
- Definitions - настройки движка.
- Effects - примеры систем частиц.
- Fonts - шрифты.
- Gui - файлы и текстуры пользовательского интерфейса.
- Languages - локализации проекта.
- Maps - карты редактора карт.
- Materials - шейдеры, базовые материалы и постэффекты.
- Models - различные модели.
- Sounds - звуки проекта.
- Types - игровые объекты.
- Utils - утилитные файлы для работы редакторов.
Типы ресурсов не привязаны к соответствующим папкам. Вы можете размешать файлы в любых папках, независимо от типа. Но желательно придерживаться данной структуры. Также вы можете пойти другим путем, создавая файлы проекта только в одной специальной папке. Например, в "Data\MyProject".
UserSettings (пользовательские и временные файлы)
Вы можете видеть папку UserSettings в "Game\Bin". Данная папка предназначена для хранения пользовательских настроек и временных файлов. Папка включает в себя файлы для общих настроек движка, сохранения игры, логи и созданные скриншоты. Подразумевается, что законченный проект будет изменять файлы только в этой папке.
Переопределение в системную папку "Users"
Как известно, система Windows запрещает изменять файлы в папке Program Files. Пользовательские файлы нужно хранить в папке "C:\Users" системы (для Windows XP в "C:\Documents and Settings"). Вы можете переопределить запись пользовательских данных из папки UserSettings в папку "C:\Users" системы.
Для этого нужно добавить файл Data\Definitions\Deployment.config со следующим содержимым:
userDirectory = YourGameDirectoryПосле этого ваше приложение будет записывать файлы в папку:
- для Windows Vista/7 в папку "C:\Users\%username%\AppData\Local\YourGameDirectory".
- для Windows XP в папку "C:\Document and Settings\%username%\Application Data\YourGameDirectory".
- для Mac OS X в папку "/Users/%username%/Library/Application Support/YourGameDirectory".
Deployment Tool автоматически создает файл Deployment.config.
Доступ к UserSettings из кода
Для того, чтобы обратиться к UserSettings из кода, нужно добавить префикс к пути. Пример: "user:Logs\Game.log".
Поддержка архивов
Файловая система позволяет хранить ресурсы в архивах. Например, в zip файлах. Работа с ресурсам в архивах не отличается от работы с обычными файлами.
В данный момент поддерживаются только zip архивы.
Существует возможность добавлять свои типы архивов. Например, для возможности шифрования ресурсов.
Как пример, вы можете посмотреть папку "Data\_Tests\ZipArchive" в редакторе ресурсов.
