Открыть главное меню

Изменения

RTADS

10 байт убрано, 13:45, 24 февраля 2019
Нет описания правки
(Данный раздел посвящён истории платформы RTADS, построенной на базе [[TADS|TADS 2]]. Для получения информации об истории оригинальной платформы см. основную статью «[[TADS#История|TADS: История]]».)
Впервые с [[Интерактивная литература|текстовыми играми]] [[Гранкин, Андрей|Андрей Гранкин]] познакомился в 1992 году на компьютере [[wikipedia:ZX Spectrum|Spectruм]]. Впрочем, по его собственному признанию, ни одну из тех игр пройти ему в свои 9 лет не удалось из-за недостаточных знаний английского языка, однако они оставили у него ощущение больших скрытых богатств, и с тех пор его неодолимо тянуло ко всем играм изобилующим текстом. Следующим знаковым этапом приобщения [[Гранкин, Андрей|Андрея Гранкина]] к текстовым играм стало его знакомство с Rogue-подобной игрой [[wikipedia:NetHack|NetHack]] в 1999 году, в отношении которой он даже предпринимал серьёзные попытки перевода на русский, а затем и с играми класса [[MUD]]. Именно после них он стал целенаправленно интересоваться вопросом однопользовательских [[Парсер|игр с текстовым вводом]], и однажды, случайно увидев игру «[[Зомби 1 - Бегство]]», понял, что это то, что надо, хотя и в неудачной реализации:
{{начало цитаты}}
Впрочем, некоторое время спустя [[Гранкин, Андрей|Андрей Гранкин]] всё же снова вернулся к переводу и платформы [[Inform]], пролоббировав в [[Windows Frotz]] доработки, необходимые для поддержки русского ввода, а также сделав базовый перевод стандартной библиотеки [[Inform]] и написав тестовую игру, что в последствие и стало основой проекта [[RInform]] [[Гаев, Денис|Дениса Гаева]] (подробнее см. «[[RInform#История|RInform: История]]»). Впрочем, основные усилия им всё же тратились именно на проект RTADS.
На 2002-2003 годы пришёлся наиболее активный этап разработки RTADS, когда шла основная работа по адаптации стандартной библиотеки к специфики специфике русского языка. Менее чем за полтора года был выпущен 21 релиз, за счёт которых в итоге удалось достигнуть высокого уровня [[Парсер|синтаксического анализа]] русскоязычных команд и процедурной генерации описаний с учётом лексических параметров игровых объектов, превосходившего все альтернативные русскоязычные платформы и самодельные парсерные движки, существовавшие на тот момент.
В 2003 году к проекту RTADS подключился [[Коптельцев, Валентин|Валентин Коптельцев]], хорошо знакомый с платформой [[TADS]] ещё в её оригинальном виде и являвшийся автором ряда англоязычных игр на ней. [[Коптельцев, Валентин|Валентин]] взялся за перевод официальной документации [[TADS]] и её адаптацию к RTADS, то есть за дополнение темами, освещающими нюансы написания русскоязычных игр. Вместе с работой [[Старков, Стас|Стаса Старкова]] по переводу технических комментариев к коду стандартных библиотек всё в том же 2003 году, это обеспечило высокий уровень документированности платформы RTADS, позволявший привлекать новых авторов, желающих писать парсерные игры, но неготовых для этого предварительно глубоко погружаться в исходные коды для понимания принципов работы движка.
==== Сортировка методом пузырька ====
Язык программирования (R)TADS имеет развитые алгоритмические возможности и поддерживает основные конструкции и типы данных, характерные для языков промышленного уровняобщего назначения, что позволяет просто и компактно реализовывать достаточно сложные алгоритмы, не отвлекаясь на странные с точки зрения прикладного программирования особенности синтаксиса, систему типов и модель работы с памятью, встречающиеся у альтернативных [[ИЛ]]-[[платформ]]. Кроме того, он содержит ряд возможностей из области синтаксического сахара, ориентированных на специфику текстовых игр, например, упрощённый вывод текста на экран из любого места программы или специальную конструкцию внедрения логических выражений, вызовов отдельных функций, значений переменных или возвращаемых значений функций в выводимый на экран текст без необходимости описывать такие операции отдельно и затем делать конкатенацию. Хотя в явном виде операции конкатенации (как модифицирующей, так и немодифицирующей) в (R)TADS также доступны в полной мере, в отличие от некоторых альтернативных [[Платформа|платформ]], например, [[Inform|(R)Inform]], где этому препятствует архаичная модель работы с памятью.
Листинг:
Существуют специализированные редакторы для работы с [[TADS|TADS 2]], в частности, Imaginate, Implementor и TFE (TADS File Editor).
Схемы подсветки синтаксиса языка [[TADS|TADS 2]] существуют для таких общераспространённых редакторов как Aditor, Emacs, FAR, FED, FTE, Notepad++, TextPad, UltraEdit, Vim. Кроме того, ввиду близости синтаксиса [[TADS]] к синтаксису [[C++]] в какой-то мере можно использовать и его схемы подсветки и файлы синтаксиса или режима.
Также существует проект кодогенератора «[[Конструктор]]», выполненный как программа (игра) RTADS, в которой можно специальными командами создавать объекты мира (локации и предметы), тут же тестировать их поведение путём взаимодействия с ними стандартным игровым образом, а затем отдельной командой вывести сгенерированный код, описывающий построенный мир.