RTADS: различия между версиями
Содержимое удалено Содержимое добавлено
Nikita (обсуждение | вклад) Нет описания правки |
Nikita (обсуждение | вклад) |
||
| (не показано 7 промежуточных версий 4 участников) | |||
Строка 20:
'''RTADS''' — это локализованная на русский язык известная [[платформа]] [[TADS|TADS 2]] (Text Adventure Development System], на что и указывает буква «R» (Russian) в её названии. Локализация произведена [[Гранкин, Андрей|Андреем Гранкиным]] в 2002 году и активно дорабатывалась в последующие годы. Также используется написание (R)TADS, которое, как правило, применяется в случаях, когда языковая специфика не имеет существенного значения и обсуждаемые вопросы справедливы как в отношении оригинальной, так и в отношении локализованной версии.
RTADS — это одна из наиболее функциональных и отлаженных русскоязычных платформ для написания [[
Данная статья посвящена преимущественно особенностям RTADS, специфичным для русского языка, поэтому для получения общей информации о платформе в целом следует также ознакомиться с [[TADS|основной статьёй про TADS 2]].
Строка 27:
(Данный раздел посвящён истории платформы RTADS, построенной на базе [[TADS|TADS 2]]. Для получения информации об истории оригинальной платформы см. основную статью «[[TADS#История|TADS: История]]».)
Впервые с [[Интерактивная литература|текстовыми играми]] [[Гранкин, Андрей|Андрей Гранкин]] познакомился в 1992 году на компьютере [[wikipedia:ZX Spectrum|
{{начало цитаты}}
Строка 37:
Впрочем, некоторое время спустя [[Гранкин, Андрей|Андрей Гранкин]] всё же снова вернулся к переводу и платформы [[Inform]], пролоббировав в [[Windows Frotz]] доработки, необходимые для поддержки русского ввода, а также сделав базовый перевод стандартной библиотеки [[Inform]] и написав тестовую игру, что в последствие и стало основой проекта [[RInform]] [[Гаев, Денис|Дениса Гаева]] (подробнее см. «[[RInform#История|RInform: История]]»). Впрочем, основные усилия им всё же тратились именно на проект RTADS.
На 2002-2003 годы пришёлся наиболее активный этап разработки RTADS, когда шла основная работа по адаптации стандартной библиотеки к
В 2003 году к проекту RTADS подключился [[Коптельцев, Валентин|Валентин Коптельцев]], хорошо знакомый с платформой [[TADS]] ещё в её оригинальном виде и являвшийся автором ряда англоязычных игр на ней. [[Коптельцев, Валентин|Валентин]] взялся за перевод официальной документации [[TADS]] и её адаптацию к RTADS, то есть за дополнение темами, освещающими нюансы написания русскоязычных игр. Вместе с работой [[Старков, Стас|Стаса Старкова]] по переводу технических комментариев к коду стандартных библиотек всё в том же 2003 году, это обеспечило высокий уровень документированности платформы RTADS, позволявший привлекать новых авторов, желающих писать парсерные игры, но неготовых для этого предварительно глубоко погружаться в исходные коды для понимания принципов работы движка.
Строка 66:
Также существует модуль [[Модуль проверки орфографии для RTADS|spellchecker]] для автоисправления ошибок при вводе команд, написанный [[Гранкин, Михаил|Михаилом Гранкиным]], который раньше включался в официальный комплект поставки RTADS, но в последствие был из него исключён и теперь поставляется отдельно. Однако в advr.t сохранён интерфейс для его подключения.
Дополнительная библиотека [[GameInfo|gameinfo.t]], которая отвечает за автоматическое создание файла библиографического описания игры по стандарту "[[
=== Отличия RTADS от TADS 2 ===
Строка 92:
=== Возможности парсера для игроков ===
Платформа RTADS имеет развитый [[Парсер|синтаксический анализатор]], соответствующий требованиям современных стандартов [[
RTADS поддерживает обработку команд из одного действия («[[Глагол|глагола]]»), из действия и [[Объект|объекта]], а также из действия и двух [[Объект|объектов]], например, «встать», «взять ключ», «открыть дверь ключом» соответственно. При этом, возможно связывание частей команды при помощи различных предлогов, обозначение объектов или действий более чем одним словом, использование названий объектов в разных падежных формах, а также использование в качестве объекта не только предмета из игрового мира, но и числа или строки текста в кавычках, например, для команд типа «повернуть переключатель микроволновки на 5» или «напечатать "привет" на клавиатуре».
Строка 135:
=== Примеры кода и возможностей платформы для разработчиков ===
Ниже приводится несколько примеров кода RTADS, демонстрирующих общий синтаксис языка и его базовые конструкции, а также возможности платформы в отношении решения типовых задач по написанию [[
<code><pre>
Строка 146:
==== Сортировка методом пузырька ====
Язык программирования (R)TADS имеет развитые алгоритмические возможности и поддерживает основные конструкции и типы данных, характерные для языков
Листинг:
Строка 229:
==== Создание предмета ====
При создании [[
Листинг с ручным указанием словоформ:
Строка 284:
==== Определение класса и функции, динамическое создание объектов ====
(R)TADS имеет развитый язык программирования, характеризующийся классической реализацией ООП с поддержкой суперклассов и множественного наследования, что позволяет упрощать написание кода за счёт высокой степени его переиспользования. В языке также существует механизм динамического создания объектов, позволяющий создавать и удалять новые объекты в процессе выполнения программы, что позволяет легко реализовывать многие продвинутые игровые механики. Одинаковые предметы игрового мира могут быть описаны особым образом, который позволяет пренебречь стандартным требованием [[
Листинг:
Строка 390:
==== Создание новых «глаголов» ====
Стандартная библиотека платформы имеет более сотни предопределённых «[[Глагол|глаголов]]», которые покрывают все типовые взаимодействия с игровым миром, традиционные для [[
Листинг создания нового «глагола» как простого действия:
Строка 561:
==== Создание отдельной области на экране ====
(R)TADS при работе в интерфейсе с поддержкой [[HTML TADS]] позволяет делить экран на произвольные области — так называемые баннеры — и управлять ими отдельно: выводить туда какой-то текст или картинку, менять только в них шрифт или фон и так далее. Это позволяет менять вид интерфейса, отходя от традиционного телетайпного стиля [[
Листинг:
Строка 620:
Существуют специализированные редакторы для работы с [[TADS|TADS 2]], в частности, Imaginate, Implementor и TFE (TADS File Editor).
Схемы подсветки синтаксиса языка [[TADS|TADS 2]] существуют для таких общераспространённых редакторов как Aditor, Emacs, FAR, FED, FTE, Notepad++, TextPad, UltraEdit, Vim. Кроме того, ввиду близости синтаксиса [[TADS]] к синтаксису [[C
Также существует проект кодогенератора «[[Конструктор]]», выполненный как программа (игра) RTADS, в которой можно специальными командами создавать объекты мира (локации и предметы), тут же тестировать их поведение путём взаимодействия с ними стандартным игровым образом, а затем отдельной командой вывести сгенерированный код, описывающий построенный мир.
Строка 649:
* [[:Категория:Игры на RTADS|Игры на RTADS]]
* [[:Категория:Интерпретаторы TADS|Интерпретаторы TADS]]
* [[:Категория:Библиотеки
* [[Конструктор квестов]]
| |||