Dialog: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
 
(не показано 15 промежуточных версий этого же участника)
Строка 9:
|язык разработки = Dialog
|читаемый формат = [[.dg|Исходный код на языке Dialog (*.dg)]], [[.aastory|*.aastory]]
|создаваемый формат = [[.z5|*.z5]], [[.z8|*.z8]], [[.zblorb|*.zblorb]], [[HTML|Веб-страницы (*.html)]], [[.js|*.js]], [[.aastory|*.aastory]], [[.d64|*.d64]], [[.dsk|*.dsk]]
|первый выпуск = 2018
|последняя версия = 1a1с/0103, library 1.12.03
|дата последней версии = 11.09.2026
|сайт = [https://github.com/Dialog-IF Dialog-IF], [https://linusakesson.net/dialog/index.php оригинальная версия платформы на сайте автораеё платформыавтора]
}}
 
Dialog — платформа для создания интерактивной литературы и текстовых игр. Её автор, [[Åkesson, Linus|Linus Åkesson]], признался, что на язык сильно повлияли [https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%BB%D0%BE%D0%B3_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F) Пролог] и [https://en.wikipedia.org/wiki/Inform#Inform_7 Inform 7]<ref name="note1" />.
Dialog — платформа для создания интерактивной литературы и текстовых игр. Автор оригинальной версии — [[Åkesson, Linus|Linus Åkesson]]. По его признанию<ref name="note1" />, на язык сильно повлияли [[Пролог]] и [[Inform 7]]. Входящий в набор компилятор ''dialogc'', позволяет компилировать игры для [[Z-машина|Z-машины]] и собственной виртуальной [[Å-машина|Å-машины]]. Игры для последней имеют формат [[.aastory|*.aastory]]. С помощью ''aambundle'' из данного формата можно создать javascript-версию для запуска игры в веб-браузере или образ диска для [[Commodore 64]]. В набор программ Dialog также входит интерактивный [[дебаггер]], позволяющий запускать и изменять игры «на лету».▼
 
== Язык ==
Dialog поставляется вместе со [[стандартная библиотека|стандартной библиотекой]] на английском языке, однако сам движок не привязан к конретному человеческому языку или типу [[платформа|платформы]] и позволяет писать как [[парсер]]ные, так и [[менюшные игры]]. Стоит отметить, что создание игр на этой платформе возможно вообще без использования стандартной библиотеки. Встроенная поддержка Юникода позволяет писать игры на русском языке.
Диалог — язык общего назначения, принадлежащий к семейству языков логического программирования<ref name="note2" />. Программы на Диалоге состоят из т.н. «правил». Правила с одинаковыми именами принадлежат к общему «предикату». Предикаты позволяют строить т.н. «модель мира» — определяют отношения между объектами. Сами же объекты в Диалоге являются простыми именами (идентификаторами)<ref name="note3" /><ref name="note4" />.
 
== Особенности платформы ==
== Главная версия 0 ==
▲Dialog — платформа для создания интерактивной литературы и текстовых игр. Автор оригинальной версии — [[Åkesson, Linus|Linus Åkesson]]. По его признанию<ref name="note1" />, на язык сильно повлияли [[Пролог]] и [[Inform 7]]. Входящий в набор компилятор ''dialogc'', позволяет компилировать игры как для классической [[Z-машина|Z-машины]], так и для собственной виртуальной [[Å-машина|Å-машины]]. Игры(игры для последней имеют формат [[.aastory|*.aastory]]). С помощью утилиты ''aambundle'' из данного формата можно создать javascriptJavaScript-версию для запуска игры в веб-браузере или образ диска для [[Commodore 64]]. В набор программ Dialog также входит интерактивный [[дебаггер]], позволяющий запускать и изменять игры «наApple лету»II.
Оригинальная платформа вышла в 2018 году. Последняя версия имеет номер 0m/03, Lib 0.46. Линус оставил за собой право продолжать развивать данную версию<ref name="note2" />.▼
В набор программ Dialog также входит интерактивный [[дебаггер]] ''dgdebug'', позволяющий запускать, тестировать и отлаживать игры из исходного кода. Более того, автор может изменять исходный код игры в процессе работы дебаггера, без необходимости её перезапуска. Программа отслеживает все изменения в файле и сразу применяет их в запущенной игре. Кроме того, в комплект с программой входит библиотека ''unit.dg'', позволяющая писать юнит-тесты, а также расширение ''stddebug.dg'', добавляющее в игру отладочные команды.
 
Dialog поставляется вместе со [[стандартная библиотека|стандартной библиотекой]] на английском языке, однако встроенная поддержка Юникода и понятный синтаксис могут облегчить её локализацию и на другие языки, в т.ч. на русский. Платформа позволяет создавать как [[парсер]]ные, так и [[менюшные игры]], а также комбинировать оба этих варианта. Большая гибкость системы достигается, в т.ч. за счёт того, что парсер и модель мира полностью реализованы в стандартной библиотеке, и, за исключением некоторых системных команд, отделены от компилятора. При необходимости, авторам рекомендуется напрямую вносить изменения в библиотеку<ref name="note1" />. Стоит отметить, что создание игр на Dialog возможно и без использования библиотек, средствами самого языка.
== Главная версия 1 ==
 
== Ветки Dialog ==
=== Ветка версии 0 ===
▲Оригинальная платформа вышла в 2018 году. Последняя версия имеет номер 0m/03, Lib 0.46. Линус оставил за собой право продолжать развивать данную версию<ref name="note2note5" />.
 
=== Ветка версии 1 ===
Является форком оригинальной версии. Разрабатывается и поддерживается сообществом [https://github.com/Dialog-IF Dialog Project]. Первый официальный релиз (1a/01 (Lib 1.1.0)) вышел в январе 2026 года.
 
== Ссылки ==
* [https://linusakesson.net/dialog/index.php Оригинальная версия Dialog]▼
* [https://github.com/Dialog-IF Dialog-IF]
▲* [https://linusakesson.net/dialog/index.php Оригинальная версия Dialog]
* [https://dialog-if.github.io/manual/ Руководство]
* [https://intfiction.org/c/authoring/dialog Раздел на форуме intfiction.org]
* [https://linusakesson.net/dialog/cloak/cloak-rel1.dg ИсходныйПлащ кодтьмы] в качестве примера исходного кода игры] [[Плащна тьмы]]языке Dialog
 
== См также ==
* [[:Категория:Игры на Dialog|Игры на Dialog]]
 
== Примечания ==
<references>
<ref name="note1">https://linusakesson.net/dialog/index.php</ref>
<ref name="note2">https://wwwdialog-if.ifwikigithub.orgio/Dialogmanual/dialog/1c03/intro.html#Major_version_0_overview</ref>
<ref name="note3">https://dialog-if.github.io/manual/dialog/1c03/lang/execution.html#predicates</ref>
<ref name="note4">https://dialog-if.github.io/manual/dialog/1c03/lang/execution.html#thinobjects</ref>
<ref name="note5">https://www.ifwiki.org/Dialog#Major_version_0</ref>
</references>
Источник — https://ifwiki.ru/Dialog