Документация/Статьи/Обзор файловой системы

From NeoAxis Engine Wiki

Jump to: navigation, search
Перейти на уровень выше
FileSystem.jpg

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" в редакторе ресурсов.