GameInfo

Материал из IFВики
Версия от 21:24, 12 октября 2021; Vvollo (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

GameInfo может использоваться в двух значениях: как общее название формата хранения библиографических метаданных в играх на платформе TADS (см. "Общее описание") и как название специального модуля из набора стандартных библиотек TADS для автоматической генерации файла с такими метаданными (см. "Модуль автоматической генерации GameInfo").

Общее описание

Платформа TADS имеет механизм, позволяющий включать прямо в скомпилированный файл игры библиографические метаданные, такие как название, имя автора, дата релиза и прочие. Вся эта система напоминает карточки для картотеки, а форма записи данных называется форматом GameInfo. Наличие данных в формате GameInfo позволяет обрабатывать большие количества игр в автоматизированном режиме, формируя каталоги и реализуя быстрый поиск по ним, и всё это без необходимости специально запускать каждую игру. Кроме того, присутствие в игре GameInfo позволяет отображать удобные описания в интерфейсе интерпретатора, если он поддерживает такую функциональность.

Технически система хранения метаданных в игре TADS представляет собой текстовый файл с названием gameinfo.txt, в котором в специальном формате записаны все данные, а сам этот файл добавлен в качестве ресурса в основной файл игры с расширением .gam для TADS 2 или .t3/.t3x для TADS 3. Общий формат gameinfo.txt выглядит следующим образом:


Name: Value Name: Value ...

То есть на каждой строке отдельно записывается пара из названия и значения свойства, разделённые знаком двоеточия.

Существует общепринятый набор свойств, которые ожидаются от GameInfo, но при необходимости разработчик игры может расширить их список, записав необходимую ему пару из названия и значения дополнительного свойства.

Файл gameinfo.txt может создаваться вручную, но это может оказаться неудобно из-за необходимости постоянно контролировать актуальность его содержимого. По этой причине TADS имеет средства его автоматизированной генерации.

Модуль автоматической генерации GameInfo

GameInfo
Тип Библиотеки TADS
Разработчик(и) Майкл Робертс
Языки интерфейса
Операционные системы TADS
Написано на TADS
Язык разработки
Читаемые форматы файлов
Создаваемые форматы файлов Текстовые файлы (*.txt)
Дата первого выпуска
Последняя версия
Дата последней версии
Состояние
Лицензия
Сайт tads.org


Для облегчения процесса создания файла gameinfo.txt и привязки его содержимого к динамически изменяющимся данным проекта, например, к дате компиляции игры, платформа TADS в стандартном комплекте поставки имеет специальную дополнительную библиотеку gameinfo.t. Разработчику игры остаётся только реализовать в коде игры необходимую структуру данных, в которую записать интересующие названия и значения свойств для формата GameInfo, а файл gameinfo.txt будет создаваться уже автоматически при каждой компиляции проекта. При использовании для разработки среды TADS Workbench, можно настроить и автоматическое добавление генерируемого файла gameinfo.txt в ресурсы игры, в противном случае автоматизировать эту операцию можно через вызов консольных компиляторов ресурсов в скриптах сборки проекта (для TADS 2 компилятор ресурсов обычно называется tadsrsc, а для TADS 3 - t3res).

Для игр на TADS 2 в коде проекта необходимо создать функцию getGameInfo(), которая должна возвращать список, где каждый нечётный элемент будет являться названием свойства, а каждый чётный - его значением. То есть линеаризация двумерного массива - свойство с названием из элемента списка 2n - 1 имеет значение из элемента списка 2n, где n - натуральное число.

Наглядный пример автоматической генерации gameinfo.txt при помощи модуля gameinfo.t для TADS 2 можно посмотреть в примере использования библиотеки Metadata.

Для игр на TADS 3 в коде проекта необходимо создать объект класса GameID, внутри которого и будет храниться информация, использующаяся для генерации gameinfo.txt. Названия свойств такого объекта соответствуют названиям свойств по формату GameInfo, а значения свойств объекта значениям свойств описания.

Версии модуля

Для TADS 2 и TADS 3 существуют отдельные версии модуля GameInfo, распространяющиеся в общем комплекте стандартных библиотек соответствующей платформы.

Ссылки