IDE или редактор

Материал из Wiki о русской интерактивной литературе (текстовых играх)
Перейти к: навигация, поиск

IDE или редактор

Причина создание данной статьи об различии IDE и редактора появилась из-за обсуждения ее на одном из каналов IRC (#qsp). Так, что в качестве объекта рассмотрения для темы возьмем QGen - редактор для квестов QSP.

Начнем с редактирования содержимого квеста. В отличие от данного редактора IDE будет отличаться, если будет выполнять как минум три варианта:

  1. Обычное редактирование, как в блокноте
  2. Использование мастеров
  3. Использование графов, деревьев и прочей графической раскладки содержимого квеста с целью облегчить восприятие всего квеста.

Пункт 1

Здесь можно провести аналогию с языками программирования, там присутствует подсветка, автоматическое форматирование текста и построение определенных кусков кода, но это все может реализовать и редактор. В IDE, можно добавить анализатор на не явные ошибки, например использование goto в противоречие с правилами, зацикливание программы (забыли в рекурсии возврат поставить) и многие другие ошибки, которые на первый взгляд не заметны, но плохо влияют на алгоритм. Также добавить всем известный принцип набора слова меньшим нажатием клавиш, т.е. нажал букву b и вылезло раскрывающее окно, дальше вводишь нужное кол-во букв, чтобы выбрать команду, после чего нажимаем enter и готово. Таким образом обойдется без хлопот работа с объектами, написал точку после имени объекта и сразу вылез целый список его сво-в, методов и т.д. Это и есть на мой, взгляд первый этап.

Пункт 2

В QGen есть своеобразный мастер, помогающий работать с содержимым напрямую, через интерфейс, а не как в блокноте. Но нет мастеров, как дополнение ко всему прочему. Новичкам всегда удобно экспериментировать с мастерами. Почему? Ответ, как всегда проще пареной репы. Да потому, что в таких мастерах указано все, что есть, а выбираешь в итоге, только нужное, да еще справку короткую можно получить. А также, будучи полным нулем можно создать неплохой квест. Пусть он и будет сделанным только через мастер, но это будет полезным опытом, для быстрой выучки правильной работы с платформой, т.к. мастера сгенерированным кодом могут показать, как писать правильный код так, чтобы платформа нас поняла без проблем и дала нужный результат. Поэтому данный мастер в редакторе больше подходит для редактирования локации в целом, чем к примеру наличие мастера создания объекта, с помощью которого можно без проблем создать любой объект и не чесать затылок с мыслью: "Почему не работает?! Ведь все правильно написал". Ну а когда, вы уже освоились, то нужен первый вариант, так сказать для тонкого и грамотного кода квеста - это для знатоков в этом деле. Также можно заметить, что в качестве IDE не помешает создать ряд мастеров, которые могут задавать разные типы локаций, т.к. применение таких уже давно известно. К примеру, создание основы локации боев, диалогов и прочее, где создается только основа, а прилагающиеся комментарии поясняют, как это использовать (можно в принципе и по другому).

Пункт 3

В данном редакторе не плохо бы сделать карту локаций да так, чтобы можно было увидеть все различные переходы допустим условный и безусловный переход, возврат, переход по действию (например из-за меню), особые скриптовые влияния (к примеру обращения к объектам или еще что-то очень особенное и важное). Одним словом карта, должна выделять одну информация над другой, так и представлять полную инфу. Для пущего примера представьте себе квест в 100 локаций, 20 из которых особенные (бой, торговля, диалоги, особые моменты, но без особой конкретики к месту), к таким локам могут обращаться остальные 80. Так вот, на карте это может быть очень хорошо видно и, если вам не нравится данная ветвь хода квеста, вы ее обрываете одним щелчком (с подтверждением на удаление) вместо того, чтобы часами вручную выдирать из текста кода тоже самое, IDE должна делать это сама, а вам остается только корректировка ее действий на ваше усмотрение. Разве такое может сделать редактор, конечно же нет! Т.к. это уже получается среда, а для редактора - это уже слишком много. Но это все приятные мелочи, а теперь о крупном.

Опустим, как говорится все, что может редактор, а это: импорт и экспорт квестов, автоматическая генерация кода, создание по шаблонам, а также все инструменты редактирования кода. Так, что начнем с утилитных фич. В отличие от редактор в IDE не выходя из проги (без внешних прог), можно провести отладку или пошаговое исполнение, не говоря о том, что при этом можно брать прямо из текста переменную или объект и в специально выделенном окне наблюдать за всеми его изменениями, нежели наблюдать целый ворох переменных, также IDE в ходе отладки позволяет корректировать содержимое переменных и поправлять свой код во время отладки, что впрочем повлияет, либо сразу, либо после повторного запуска скрипта квеста - это зависит от самой IDE. Также в IDE, можно сразу протестировать свой квест, проще говоря проигрывать его во встроенном проигрывателе. Мало того, не секрет, что некоторые IDE поддерживают модульный принцип развития своих возможностей, например IDE от Borland Delphi, она на 20% написана разработчиками в коде и все 80% развита по модульному принципу, вот так. Конечно, можно сказать, что реализация такого IDE в IF задача непосильная, но для группы людей - это не сколько вопрос сложности, сколько вопрос времени.

Так, что подводя итоги всей маленькой статьи, скажу, что IDE - это интегрированная среда разработки для квестов (программ, графики и т.д.) имеющая все инструменты, которые нужны для разработки данного продукта, в том числе редактор, отладчик, интерпретатор, при этом тесно взаимосвязанные между собой в рамках одной программы. А Editor (редактор) - это специализирующая и облегчающая своими средствами написания продукта программа, иначе говоря - это тот же самый редактор, только имеющий плюс ко всему этому все средства, которые ускоряют написание нужных элементов в продукте. Однако в современных продуктах разработки нет четкой границы, т.к. все IDE основываются на редакторах, это тоже самое, что сказать: "Любой стратег может быть тактиком, но не любой тактик может быть стратегом".

Автор статьи: Этэн (Смирнов Андрей Владимирович). Статья является личным мнением её автора.

Использованные источники

Сама статья