Шифрование квестов, нужно ли?

У меня на багтрекере есть вот такой запрос. Собственно, вопрос к сообществу. Нужно ли такое вот шифрование? В принципе не слишком трудно сделать так, что формат файла будет полностью свой и данные будут надёжно зашифрованы. (Ну как надёжно, кто очень захочет — сломает, конечно). Мне просто интересно, насколько такая фича востребована.

Играю в IF3D (часть 2)

  1. «Посылка», Агент007
    Безграмотный текст, сюжета нет, не закончена (да чёрт, почти и не начата). Отказать.
  2. «Тайна предков», Ordan
    Сложные чувства. С одной стороны, сюжет. Это, я вам скажу, важно. Т.е. в игре есть некая завязка, есть повествование (ну пусть без кульминации и персонажей), развязка (пусть скомканная). Есть геймплей. Игра увлекает. Но текст… Обнять и плакать. Атмосферы нет, складности нет, населена роботами масса ошибок всех мастей. Автор, учись писать. (и это наш победитель…)
  3. «Двенадцать часов ночи», KetMen
    Не игра. Текстовая фиговина с пучком плохих концовок. «По паспорту его звали Виктор Анатольевич 23 года». Мда, ну и фамилия.
  4. «Славный город Лудд», Андрей Лобанов
    Графомания в стиле «instead». Что за город, чем он славен и почему его нет — я так и не понял (специально перепрошёл ещё раз). Главный герой ищет свою женщину, причём, чтобы спасти её от жутких кибер-похитителей, достаточно просто уйти от них через окно. Никакой погони. Полагаю, похитителям она и не была нужна. Простенькая загадка. Неудобоваримый (хоть и лучше некоторых других тут) текст. Пропинал и забыл.
  5. «Сны», Tregor
    Сгустки вакума (именно так) и абсолютной темноты. Вопящее перо. Летающий стол. «Надо это куда-нибудь записать и расшифровать, вдруг пригодится!» Не надо, уверяю вас.

Играю в IF3D

  1. Чешир, «Анабасис «Котов»
    Хрен его знает, что такое «анабасис», но вероятно что-то крутое. Чешир обленился. Прислал на конкурс альфу, которая не тянет даже на демку твайна. Без единой загадки. Текст традиционно хорош, но хороший текст ещё не игра. Чешир, садись, два.
  2. Светлана Пономарёва, «Солнце, движимое кровью»
    «…он угодил ногой в яму-ловушку для животных, и повредил ее» — фраза уже говорит о многом. Автор считает необязательным читать и пытаться понять то, что она написала. Поэтому читать этот плохой текст сложно, будьте готовы к этому. Тут я удержался от многочисленных позывов цитировать авторские перлы. Немного о загадках. Их нет. Есть ветвление истории, и не слишком понятно, что я выбираю в том или ином случае. Отказать.
  3. Saint, «Мечи, перья, замыслы»
    Позабавило. Саинт определённо растёт. И текст всё лучше, и загадки всё… ммм… удобоваримее. В общем, перед вами простой, но забавный квест в духе старой урк-школы. Браво? Браво.
  4. Korwin, «Замысел творца»
    Ура! Я поиграл в безбажную, вычитанную и законченную игру Корвина! Теперь я видел в ифне всё! Игра отличная, маленькая, конечно, но всё при ней. И текст, и загадки, и та фигня, которая заставляет сопереживать главному герою. Найдя одну, хм… неоптимальную концовку, я переиграл ещё раз. А это о чём-то да говорит. Забавно будет, если на конкурсе Корвина победит Корвин. 🙂

Продолжение, наверное, следует…

Другое измерение

Читаю обзоры Эмили Шорт на различную интерактивную литературу, там, «у них». Завидки берут.

Серьёзная литература там у них. И твайновые менюшки, и книгры, вот это всё. Не развлекалочки, не поделки, не фиготки, слепленные за пару часов на коленке…

Утешаю себя мыслью, что, наверное, это у них тоже было, но этап пройден, а у нас пока нет.

Хотя я, может, необъективен. Последние пару лет почти не играю в нашу ифню. Может, у нас тоже есть серьёзное, просто я не видел. Надо посмотреть…

Аппетит во время еды

Начав с небольших доделок в версии 1.9.2, ввязался в переделку системы сохранений. Чтобы избавиться от одной важной кривизны классической урки — что при сохранении нужно указывать локацию, на которою после восстановления будет осуществлён переход, а текст, бывший на экране при сохранении полностью пропадает.

В общем, «не приспособлены мы, кролики, для лазанья». В смысле, что фурка писалась без задела на такую вот фичу, и переделок там… хм. Ну, в общем, непросто там всё.

Но интересно. Так что будем пилить дальше. 🙂

FireURQ 1.9.1

Вот, не прошло и года и снова релиз. Изменения — в основном багфикс и немножко синтаксического сахара.

Что стоит упоминания…

Переменная decor_<имя>_enabled для декораторов-кнопок. Позволяет делать кнопки неактивными. Как-то забыл я про неё в августе. Впрочем, никто не жаловался.

Кнопки теперь можно создавать без упоминания текста на них. Название локации и будет текстом на кнопке. Т.е. как-то так:

btn <локация>[, <надпись на кнопке>]

Если для локации указаны параметры или модификатор, то они в надпись на кнопке не попадут, разумеется.

Новые встроенные функции для работы со строками. Вызываются через proc, результат помещают в переменную _result, всё как обычно.

Функция _trim обрезает пробелы с начала и в конце строки, вызывается как proc _trim(str), где str — строка (строковая переменная или строка в кавычках).

Функция _scopy копирует кусочек строки, вызывается как proc _scopy(str, start[, len]), где str — строка, start — номер символа в строке, с которого начинать копировать и len — количество копируемых символов. Если параметр len опущен, то строка копируется до конца.

Например, если нужно взять первые 10 символов строки, то вызов proc _scopy(name, 1, 10) поместит в переменную _result 10 первых символов строки, содержавшейся в переменной name.

Одинарные и двойные кавычки теперь равнозначны. Т.е. можно задать строку с двойными кавычками внутри строки, определённой с помощью одинарных и наоборот. Например:

str = 'Бот назывался "Смердящий", и, как понял позже Валера, не случайно...'

В общем, это всё. Пишите игры.

Навеяло

У нас были 8 игр на урке, 9 на инстеде, несколько кусповых опусов, пара парсерных, по одной-две на неизвестных платформах, одна на дельфи, пара переводов вне конкурса и целая куча аксмы. Не то, чтобы это был типичный набор игр на конкурс. Но если начал принимать игры на КРИЛ, становится трудно остановиться. Единственное, что вызывало у меня опасение — это аксма. Нет ничего более беспомощного, безответственного и испорченного, чем аксмовские графоманы. Я знал, что рано или поздно мы перейдем и на эту дрянь.

FireURQ 1.9

Итак, вышла новая фурка. Скачать, как обычно, на вики. Главные нововведения — новые виды интерактивных декораторов и текстовый вывод текста в текстовый файл.

Итак.

Новые декораторы.

Декоратор «Область клика»

Это просто невидимый квадрат на экране, который ловит клики мышкой. Целевая локация — имя локации в кавычках. Модификаторы работают. Можно сделать выпадающее меню, переход или локальное действие.

decoradd <имя> (x, y[, z]) CLICKAREA <ширина>, <высота>, "<целевая локация>"

Декоратор «Кнопка-картинка»

decoradd <имя> (x, y[, z]) IMGBUTTON "<файл-текстура>", [<tx>, <ty>, <ширина>, 
<высота>,] "<целевая локация>"

файл-текстура — это полноцветный PNG с прозрачностью, например
tx, ty — это координаты верхнего левого угла В ПРОСТРАНСТВЕ ТЕКСТУРЫ
ширина и высота — это ширина и высота одного КАДРА
Кадры должны идти друг за другом в такой последовательности — нормальная, неактивная (disabled), в фокусе, нажатая

Если tx, ty, ширина и высота не указаны, то вся текстура просто «пилится» на четыре кадра по горизонтали. Это удобно, но слишком много текстур вредят скорости работы фурки. Поэтому, если у вас много кнопок, лучше всё-таки разместить их на одну текстуру.

Декоратор «Текстовая кнопка»

decoradd <имя> (x, y[, z]) TEXTBUTTON ["<рамка>", ] "<текст>", 
"<целевая локация>"

текст — надпись на кнопке
рамка — это название рамки, которая должна быть определена в скине. Это на случай, если захочется сделать много разных кнопок с разным оформлением. Рамки текстовых кнопок определяются в скине в разделе ресурсов. Если рамку не указать, то кнопка будет по умолчанию с тем же оформлением, что и btn-кнопки.

Для всех новых типов декораторов существует переменная decor_<имя>_target, которая позволяет поменять целевую локацию. Для текстовой кнопки есть ещё переменная decor_<имя>_text, позволяющая менять надпись на кнопке.

Вывод в текстовый файл

Корвин давно просил меня сделать возможность вывода в текстовый файл. Так вот, я и сделал. Итак, в фурке есть несколько новых команд:

fprint, которая сокращается до fp и fprintln, которая сокращается (сюрприз!) до fpln. Работают они ровно также, как всем привычные p и pln, только текст выводится не на экран, а записывается в файл.

Файл задаётся с помощью переменной fp_filename. Это просто строка. Но есть нюанс. Чтобы предотвратить написание вирусов и всякой вредоносной фигни на фурке я решил серьёзно ограничить создаваемые файлы. Первое правило — все файлы должны иметь расширение TXT. Второе правило — никаких путей, все файлы создаются рядом с файлом игры. Т.е. если вы даже попробуете задать в переменной fp_filename что-нибудь вроде «C:WindowsSystem32cmd.exe», ей присвоится «cmd.txt» и лежать этот файл будет рядом с файлом игры.

Есть ещё одна новая команда:
newfile <имя файла>
Она присваивает переменной fp_filename имя файла и стирает этот файл. Это для того, чтобы быть увереным, что вы пишете в пустой файл. Если просто присвоить переменную fp_filename, то новые записи будут добавляться к уже существующему файлу.

Ну вот, собственно, и всё. Пишите игры.