<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://ifwiki.ru/index.php?action=history&amp;feed=atom&amp;title=GameInfo</id>
	<title>GameInfo - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://ifwiki.ru/index.php?action=history&amp;feed=atom&amp;title=GameInfo"/>
	<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=GameInfo&amp;action=history"/>
	<updated>2026-06-01T12:36:54Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://ifwiki.ru/index.php?title=GameInfo&amp;diff=32334&amp;oldid=prev</id>
		<title>Vvollo в 19:24, 12 октября 2021</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=GameInfo&amp;diff=32334&amp;oldid=prev"/>
		<updated>2021-10-12T19:24:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 19:24, 12 октября 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;GameInfo может использоваться в двух значениях: как общее название формата хранения библиографических метаданных в играх на [[платформе]] [[TADS]] (см. &quot;[[#Общее описание|Общее описание]]&quot;) и как название специального модуля из набора стандартных библиотек [[TADS]] для автоматической генерации файла с такими метаданными (см. &quot;[[#Модуль автоматической генерации GameInfo|Модуль автоматической генерации GameInfo]]&quot;).&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;GameInfo может использоваться в двух значениях: как общее название формата хранения библиографических метаданных в играх на [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Платформа|&lt;/ins&gt;платформе]] [[TADS]] (см. &quot;[[#Общее описание|Общее описание]]&quot;) и как название специального модуля из набора стандартных библиотек [[TADS]] для автоматической генерации файла с такими метаданными (см. &quot;[[#Модуль автоматической генерации GameInfo|Модуль автоматической генерации GameInfo]]&quot;).&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Общее описание ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Общее описание ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Vvollo</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=GameInfo&amp;diff=24158&amp;oldid=prev</id>
		<title>Nikita: /* Модуль автоматической генерации GameInfo */</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=GameInfo&amp;diff=24158&amp;oldid=prev"/>
		<updated>2019-03-03T13:14:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Модуль автоматической генерации GameInfo&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 13:14, 3 марта 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 21:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 21:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{product info&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{product info&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|название = &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|название = &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|тип = &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|тип = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Библиотеки TADS&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|разработчик = [[Разработчик::Робертс, Майкл|Майкл Робертс]]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|разработчик = [[Разработчик::Робертс, Майкл|Майкл Робертс]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|язык = &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|язык = &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nikita</name></author>
	</entry>
	<entry>
		<id>https://ifwiki.ru/index.php?title=GameInfo&amp;diff=24157&amp;oldid=prev</id>
		<title>Nikita: Новая страница: «GameInfo может использоваться в двух значениях: как общее название формата хранения библиог…»</title>
		<link rel="alternate" type="text/html" href="https://ifwiki.ru/index.php?title=GameInfo&amp;diff=24157&amp;oldid=prev"/>
		<updated>2019-03-03T13:12:34Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «GameInfo может использоваться в двух значениях: как общее название формата хранения библиог…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;GameInfo может использоваться в двух значениях: как общее название формата хранения библиографических метаданных в играх на [[платформе]] [[TADS]] (см. &amp;quot;[[#Общее описание|Общее описание]]&amp;quot;) и как название специального модуля из набора стандартных библиотек [[TADS]] для автоматической генерации файла с такими метаданными (см. &amp;quot;[[#Модуль автоматической генерации GameInfo|Модуль автоматической генерации GameInfo]]&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Общее описание ==&lt;br /&gt;
[[Платформа]] [[TADS]] имеет механизм, позволяющий включать прямо в скомпилированный файл игры библиографические метаданные, такие как название, имя автора, дата релиза и прочие. Вся эта система напоминает карточки для картотеки, а форма записи данных называется форматом GameInfo. Наличие данных в формате GameInfo позволяет обрабатывать большие количества игр в автоматизированном режиме, формируя каталоги и реализуя быстрый поиск по ним, и всё это без необходимости специально запускать каждую игру. Кроме того, присутствие в игре GameInfo позволяет отображать удобные описания в интерфейсе [[Интерпретатор|интерпретатора]], если он поддерживает такую функциональность.&lt;br /&gt;
&lt;br /&gt;
Технически система хранения метаданных в игре [[TADS]] представляет собой текстовый файл с названием gameinfo.txt, в котором в специальном формате записаны все данные, а сам этот файл добавлен в качестве ресурса в основной файл игры с расширением [[.gam]] для [[TADS|TADS 2]] или [[.t3]]/[[.t3x]] для [[TADS|TADS 3]]. Общий формат gameinfo.txt выглядит следующим образом:&lt;br /&gt;
&lt;br /&gt;
{{начало цитаты}}&lt;br /&gt;
	Name: Value&lt;br /&gt;
	Name: Value&lt;br /&gt;
	...&lt;br /&gt;
{{конец цитаты}}&lt;br /&gt;
&lt;br /&gt;
То есть на каждой строке отдельно записывается пара из названия и значения свойства, разделённые знаком двоеточия.&lt;br /&gt;
&lt;br /&gt;
Существует общепринятый набор свойств, которые ожидаются от GameInfo, но при необходимости разработчик игры может расширить их список, записав необходимую ему пару из названия и значения дополнительного свойства.&lt;br /&gt;
&lt;br /&gt;
Файл gameinfo.txt может создаваться вручную, но это может оказаться неудобно из-за необходимости постоянно контролировать актуальность его содержимого. По этой причине [[TADS]] имеет средства его автоматизированной генерации.&lt;br /&gt;
&lt;br /&gt;
== Модуль автоматической генерации GameInfo ==&lt;br /&gt;
{{product info&lt;br /&gt;
|название = &lt;br /&gt;
|тип = &lt;br /&gt;
|разработчик = [[Разработчик::Робертс, Майкл|Майкл Робертс]]&lt;br /&gt;
|язык = &lt;br /&gt;
|система = [[TADS]]&lt;br /&gt;
|онлайн = &lt;br /&gt;
|написано на = [[TADS]]&lt;br /&gt;
|язык разработки = &lt;br /&gt;
|читаемый формат = &lt;br /&gt;
|создаваемый формат = [[.txt|Текстовые файлы (*.txt)]]&lt;br /&gt;
|первый выпуск = &lt;br /&gt;
|последняя версия = &lt;br /&gt;
|дата последней версии = &lt;br /&gt;
|состояние = &lt;br /&gt;
|лицензия = &lt;br /&gt;
|сайт = [http://tads.org/ tads.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Для облегчения процесса создания файла gameinfo.txt и привязки его содержимого к динамически изменяющимся данным проекта, например, к дате компиляции игры, платформа [[TADS]] в стандартном комплекте поставки имеет специальную дополнительную библиотеку gameinfo.t. Разработчику игры остаётся только реализовать в коде игры необходимую структуру данных, в которую записать интересующие названия и значения свойств для формата GameInfo, а файл gameinfo.txt будет создаваться уже автоматически при каждой компиляции проекта. При использовании для разработки среды [[TADS Workbench]], можно настроить и автоматическое добавление генерируемого файла gameinfo.txt в ресурсы игры, в противном случае автоматизировать эту операцию можно через вызов консольных компиляторов ресурсов в скриптах сборки проекта (для [[TADS|TADS 2]] компилятор ресурсов обычно называется tadsrsc, а для [[TADS|TADS 3]] - t3res).&lt;br /&gt;
&lt;br /&gt;
Для игр на [[TADS|TADS 2]] в коде проекта необходимо создать функцию getGameInfo(), которая должна возвращать список, где каждый нечётный элемент будет являться названием свойства, а каждый чётный - его значением. То есть линеаризация двумерного массива - свойство с названием из элемента списка 2n - 1 имеет значение из элемента списка 2n, где n - натуральное число.&lt;br /&gt;
&lt;br /&gt;
Наглядный пример автоматической генерации gameinfo.txt при помощи модуля gameinfo.t для TADS 2 можно посмотреть в примере использования библиотеки [[Metadata]].&lt;br /&gt;
&lt;br /&gt;
Для игр на [[TADS|TADS 3]] в коде проекта необходимо создать объект класса GameID, внутри которого и будет храниться информация, использующаяся для генерации gameinfo.txt. Названия свойств такого объекта соответствуют названиям свойств по формату GameInfo, а значения свойств объекта значениям свойств описания.&lt;br /&gt;
&lt;br /&gt;
== Версии модуля ==&lt;br /&gt;
Для [[TADS|TADS 2 и TADS 3]] существуют отдельные версии модуля GameInfo, распространяющиеся в общем комплекте стандартных библиотек соответствующей платформы.&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://www.tads.org/howto/gameinfo.htm Описание стандарта GameInfo для хранения библиографических метаданных TADS-игр]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Глоссарий]]&lt;/div&gt;</summary>
		<author><name>Nikita</name></author>
	</entry>
</feed>