ПРИНТЕД #1

1 марта 2015 г.
http://instead.syscall.ru


Вот и наступила весна! А вместе с ней и новый выпуск ПРИНТЕДА. Теперь уже под цифрой #1, а как мы все понимаем, #1 это не #0! Вообще, должен сказать что после пилотного выхода #0 ПРИНТЕДА я получил неожиданно теплый фидбек, за который отдельно выражаю благодарность, и ... продолжаю выпуски!

Петр Косых

Новости


Корректируюший релиз INSTEAD 2.2.2

Всего через 5 дней после выпуска 2.2.1 пришлось выпускать корректирующий релиз из-за досадной ошибки в lua части. Зато теперь у INSTEAD красивая версия! Надеюсь, она продержится подольше. :)

Обновление INSTEAD на iOS

Небольшое обновление iOS версии. Теперь для установки игры достаточно в браузере Safari зайти на instead-games.ru, нажать на "скачать игру" и потом открыть с помощью INSTEAD. Довольно удобно. Правда, напомню, что порт работает только на jailbroken устройствах...

Зеркало INSTEAD

В связи со смутной политической обстановкой и перекрытием sourceforge.net для крымчан, v.v.b. любезно предоставил зеркало, на которое была перенесена последняя актуальная версия INSTEAD. Зеркало доступно на страничке http://instead.syscall.ru в разделе "скачать", если вы смотрите ее на русском языке.

Буквально сегодня, Maratich из Севастополя написал, что скачал INSTEAD с sourceforge без проблем. Но зеркало в любом случае лишним не будет. Так что будет поддерживаться и дальше.

Новый INSTEAD LAUNCHER

INSTEAD LAUNCHER от @jhekasoft уже обзавелся графическим интерфейсом и продолжает пилиться. Надеюсь, в будущем этот ланчер станет нашим основным. И главное -- поддерживаемым!

http://ifhub.ru

Пишу эти строки, пока наш новый сетевой ресурс еще официально не открыт, и поэтому точно не знаю, "выстрелит" он или нет.

Да, мы попытались поднять еще один ресурс по ИЛ. Как, еще один? Еще один ifprint.ru??? Ну... И да, и нет... В чем была идея?

Не секрет, что популярность нашего любимого жанра не такая высокая, как нам того бы хотелось. Тут возникает замкнутый круг. Мало хороших игр -- мало людей знает о жанре, мало игроков, мало авторов. Короче, одно цепляется за другое и взаимно из друг друга проистекает. :) Что делать? Делать "Хабрахабр" для интерактивной литературы! ifHub!

Честно говоря, в идеале, я бы видел в этой роли ifiction.ru, но администратор ifiction.ru @olegus имеет свое видение пути развития. Так что теперь у нас есть еще один ресурс, цель которого -- раскрутить его участников на интересные статьи и обсуждения, касающиеся творчества в рамках ИЛ. Я надеюсь, что ifHub станет удобной площадкой и объединит под своей крышей интеллигентных, несклочных и творческих людей!

Но без вашей помощи это будет трудно сделать! Так что у всех кого я заинтересовал, есть хороший шанс сформировать атмосферу нашего нового ресурса уже сегодня. Заходите на http://ifhub.ru и чувствуйте себя как дома!

Игры


В прошлом выпуске ПРИНТЕДА я писал, что игр в 2014 году было маловато. Кто бы мог подумать, что практически сразу (в течение месяца!) было выпущено сразу три игрушки, о которых кратко здесь расскажу. Что это -- совпадение? Не верю! Ну, так или иначе, если есть игры -- есть и ПРИНТЕД!

Славный город Лудд // Spline

Игра на спонтанный конкурс "3d", совсем короткая. Такие игры v.v.b. обычно называет "коротышами", а я -- "нанотрешачком".
Но почему-то в случае этой игры не хочется использовать подобные категории. Почему? Не знаю! Просто текст этой маленькой зарисовки, музыка и оформление таким образом сплетены между собой, что вызывают какой то особый настрой. И этот настрой остается даже через несколько дней после того, как ты прошел эту маленькую игру до конца. Тут как бы получается, что мир игры шире самой игры, и глубина пространства она подразумевается и чувствуется, остается между строк... Короче, классная штука получилась. Надеюсь, Андрей еще порадует нас своими играми. На мой взгляд эта его зарисовка -- пример такой конкретной интерактивной литературы, хоть и короткой. Пиши еще!

Хребты Безумия // Irremann

Еще одна игра, где текста больше, чем загадок, и которую скорее хочется назвать интерактивной литературой, чем квестом. Игра -- фактически инстедизация (ага!) произведения Лавкрафта. Скажу честно, хотя в свое время я читал этого автора (Лафкрафта), вряд ли меня можно отнести к почитателям его творчества. Тем не менее игрушка понравилась своей добротностью и... литературностью. Есть что то уютное в этой игре, когда запускаешь ее на планшете и видишь текст, который вполне себе хорошо читается, и вроде бы не хочется его пропускать. Нормально оформлено, аккуратно. Текст хороший (как я понял - большая его часть взята из книги), при этом присутствуют и квестовые элементы. В общем, Irremann -- еще один продуктивный автор, который делает качественные игрушки с присущим ему стилем. Добротная работа! Ждем новых игр!

Краски сентября // Петр Косых

Моя игра, которую описывать в художественном смысле по понятным причинам не буду (сложно писать обзор собственной игры), но расскажу немного о том, как я ее делал и как это отразилось на используемых технологиях.

Ну во первых, эта игра - один из заброшенных проектов. Лежала, пылилась пару лет. Игра на метапарсере, которую я планировал использовать для теста этого самого метапарсера.

Что такое метапарсер (МП)? Это такая штука для INSTEAD, которая позволяет играть в игру с помощью ввода команд с клавиатуры (хотя и мышкой тоже можно). Традиционная интерактивная литература это как раз такие игры (парсерные), но есть тут одно "НО". Метапарсер не занимается анализом введенных команд, а решает проблему наоборот - предлагает то, что можно ввести в данный момент времени... Подсказывает вам. Это сложно описать словами -- проще попробовать. А если хотите написать такую же игру -- смотрите документацию на INSTEAD wiki.

В общем, я вдруг понял, что игру нужно доделать. В итоге появилась история про художника (эксаписта?), которая не очень сложная и которая продвинула метапарсер еще немного вперед.

Улучшения в метапарсере по результатам разработки игры такие:

  • поддержка нового падежа (2-й предложный или местный);
  • улучшенная система переходов (теперь есть понятие Climb, WalkIn и Walk: взбираться, зайти внутрь чего-нибудь и просто идти к чему-нибудь);
  • возможность писать логи прохождения командой: _журнал да;

Дал людям потестировать и вот что понял:

МП в целом зарулил! Да, были единичные жалобы "старичков" вида: "вот парсер не все понимает", "почему я не могу ввести все что хочу", "почему я не могу сесть на скамейку" и так далее и тому подобное. Но мне вот кажется, что это некое кокетство. Почему? Да потому что в МП всегда видно, верна ли твоя фраза или нет. Мы же не нажимаем ссылку, скажем, "нюхать носки" в какой-нибудь CYOA игре. Может быть и хотелось бы нажать, но нет ее, нет это ссылки! Так и тут, мы набираем команду, и видим что она не будет понята, ну и не надо расстраиваться. :) Это всего лишь игра, а не искусственный интеллект.

Характерно также и то, что некоторые стандартные реакции на некорректные для игры запросы люди также понимали по разному. В общем, не надо делать из игры то, чем она не является. Зато те люди, которые просто играют и пользуются интерфейсом по назначению (играя в игру по правилам!) находят интерфейс удобным.

В МП проблема понимания игрой фраз игрока решена принципиально иным образом. В МП нет проблемы "угадай глагол" как класса, поэтому и нет необходимости делать парсер похожим на искусственный интеллект. Короче говоря, МП находится где то между классическим парсером и игрой на ссылках.

С другой стороны очень характерно то, что МП вообще на полном серьезе сравнивают с парсером, а иногда и разницы принципиальной не видят! Это для меня стало приятной неожиданностью! Ведь это означает, что в целом ощущения от игр похожи! В общем, считаю что МП состоялся как удачный проект и иногда буду писать игры с его помощью.

Еще немаловажная вещь, которую я понял при написании этой небольшой игры. Занимаясь творчеством, надо поменьше рефлексировать! Все продумать заранее не получится. Все-равно, начинаешь писать и герои оживают и делают то, что ты от них и не ожидал. Главное не давить на них своим авторитетом.

Не надо бояться ошибаться, лучше сделать ошибку, но сделать, чем не сделать ничего. Или потратить полно времени на хорошо продуманную, но сухую игру. Короче, теперь собираюсь реанимировать еще одну недоделанную игрушку, в этот раз уже на классическом INSTEAD.

В общем, пишите игры! Надеюсь, тенденция продолжится!

Кружок программирования


Модуль nouse

Среди модулей INSTEAD есть один очень полезный модуль, который незаслуженно обделен вниманием. Я его, к примеру, постоянно использую в своих играх. Но то-ли в документации о нем плохо заявлено, то-ли по какой другой причине, но в других играх я его практически не вижу... Попробую исправить ситуацию.

И так, представим себе, что мы пишем use обработчик:

...
hammer = obj {
    nam = 'молоток';
    use = function(s, w)
        if w == window then
            p [[Я разбил окно молотком.]]
            w.broken = true
            return
        end
    end
}
...

Хорошо, если мы ударим молотком по окну, то разобьем окно. Понятно, что хорошо бы еще проверить а было ли оно уже разбито, но в целях простоты примера -- забудем. Допустим, мы ударили молотком что-то еще. Как вы знаете, раз в таком случае use не вернет текста, то вызовется game.use, который обычно сообщит что-то вроде: "Не получается.". Но это же скучно? Тогда можно написать что-то вроде:

...
    use = function(s, w)
        if w == window then
            p [[Я разбил окно молотком.]]
            w.broken = true
            return
        end
        p [[Нечего молотком махать без толку!]]
    end
...

Уже лучше. Правда не очень читаемо. Но все может осложниться, если мы захотим сделать used обработчик. Например, сделаем мусорку:

...
trash = obj {
    nam = 'мусорка';
    dsc = [[В углу стоит мусорка.]];
    act = [[Не буду я копаться в ней!]];
    used = function(s, w)
        remove(w, me())
        p [[В мусорку лишний хлам!]]
    end
}
...

INSTEAD вызывает use обработчик, а затем used. Это значит, что если ударить молотком мусорку, то сначала мы получим фразу о том, что, мол, нечего махать, а потом выбросим топор. Вряд ли это соответствует замыслу.

Да, есть выход -- вернуть из use обработчика false и прекратить цепочку use/used, но проблема то в том, что мы тогда должны учитывать ситуацию с мусоркой и в use и в used! Это очень запутывает логику. И тут на сцену выходит модуль nouse. Та-дам!

...
require "nouse"

...
hammer = obj {
    nam = 'молоток';

    use = function(s, w)
        if w == window then
            p [[Я разбил окно молотком.]]
            w.broken = true
            return
        end
    end;
    nouse = [[Нечего махать молотком зря!]];
}
...

И это все! nouse обработчик вызовется только в том случае, если ни use, ни used не вернули текста. Кроме решения проблемы, модуль nouse сделал код наглядней! Вы также можете определить game.nouse обработчик, как обработчик такой ситуации по умолчанию. (Вместо game.use).

Слухи


Есть слух, что после того как слухи о том, что кто то пишет игру предаются гласности, то игры перестают писаться. Так что больше никаких слухов! Хотя... Нет, никаких слухов!

Объявления


Наш журнал ifprint.org испытывает недостаток материалов. Если судьба журнала вам небезынтересна, черкните статейку и отправьте на почту: submit@ifprint.org.

Вопросы из зала


1) Когда-нибудь будет сделан нормальный отладчик? в существующей версии все очень сложно для понимания...

Да, периодически возникают мысли о нормальном отладчике, но до дела не доходит. Приоритет на том же уровне, что и конструктор без программирования... Наверное проблема в том, что я вообще не использую отладчик, и поэтому мне сложно делать то, что я плохо представляю. Так что, к сожалению, не в обозримом будущем. Но ведь проект открыт, и может быть кто-то другой сделает хорошую вещь?

2) Когда будут документированы и будут ли всякие недокументированные фичи?

Документация улучшается. Она гораздо лучше, чем была. Так что когда-нибудь все фичи будут документированы, только к тому времени появятся новые недокументированные... :)

3) Кто и зачем придумал и нужен ли в действительности ifhub?
или может не тратить на него время и изготовить какую-нибудь годную классику?

Идея моя. Может и не тратить. Есть много способов сделать ИЛ популярней. Можно и игру написать. И на ifhub заметку опубликовать. У кого что лучше получается...

4) Какие исторические темы затронуты в игре краски сентября?
что вообще натолкнуло на написание такого сильного психологического сюжета? и на каком языке говорят люди с картины?

Историчности в игре нет, это выдуманный мир, который, впрочем, наверное слишком похож на наш. Насчет психологического -- мне сложно судить. Я сам не могу рационально объяснить что я хотел в этой игре сказать, но она мне нравится -- значит сказал то что нужно. Язык - исковерканный испанский.

5) Почему бы не сделать принтед на базе ifhub или syscall отдельным адресом? в одном цветовом чб тоне и со своей структурой архива выпусков, желательно без комментариев и обсуждений.

Отличная идея! Подумаю!

  1. Как дальше будет и будет ли развиваться МП?

МП -- зрелый проект. Сейчас появилось понимание, что докручивание МП делает его очень похожим на парсер. С одной стороны -- здорово. С другой -- не это было моей целью. Вероятно, это ошибка и надо вернуться немного назад. Так как если хочется именно парсера, проще уже просто дописать код и сделать парсер. Но я не верю в этот путь, поэтому в будущем я наверное буду искать способы сделать разницу между МП и парсером более очевидной. Если говорить про самое ближайшее будущее, то доработки МП (в основном это касается библиотеки глаголов и реакций) лучше делать во время написания следующей игры на нем.

  1. Как отразится общая экономическая нестабильность в России на проекте instead и его сообществе??? (8

Надеюсь что INSTEAD останется вне политики. В конце-концов он принадлежит всем.

Под разношерстную бублику из битком набитого зала успешно маскировался j-maks.

Метафизика


Иногда я нахожу в soundcloud или в modarchive музыку, которая мне очень нравится. Нравится настолько, что я чувствую, что в данном случае оказался на той же волне, что и автор, когда он записывал свою музыку. И я откладываю трек для своей будущей игры. Часто, счетчики скачек таких треков могут содержать двузначное число. Очень редко -- что то около тысячи. Учитывая то, что интернет глобален -- это кажется очень маленьким числом, исчезающе маленьким. Конечно, сразу задаешь себе вопрос. Вот человек писал, старался. Может, переживал. И что, кто знает о нем? Кто знает об этом треке? С другой стороны я то знаю! Я проникся!
Но все равно, вопрос популярности и ценности творчества не очень понятный. Ценность как то соотносится с популярностью?

Количество и качество. Если думать только о количестве, то мы вообще не существуем, относительно необъятных, немыслимых пространств вселенной. Тут есть какая то подмена. Как коллектив не есть личность и поэтому не обладает совестью и возможностью делать моральный выбор, так и говоря о ценности произведения в свете обобщения на некую массу людей мы делаем подмену. То есть в пределе, даже одной личности (даже если это сам художник!) достаточно, чтобы оправдать творчество.

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

Игры на движке INSTEAD по большей части это такие же поделки "для своих", редко когда у игры несколько тысяч скачек. Если не говорить о флеш-версиях. В то же время, в игры в вконтакте играют сотни тысяч людей... Онлайн платформы ИЛ (например, Аперо -- из новых проектов) тоже имеют шанс получить широкую аудиторию. Так оправдано ли такое непопулярное творчество? Или правильный путь -- это создание новых технологий уже с учетом современных тенденций?

К сожалению, дело осложняется тем, что технологии все-таки влияют на содержание. Например, игры во вконтакте это совсем другие игры. А INSTEAD игры, даже запущенные в веб никогда не станут настолько же популярными как какой-нибудь пасьянс.

Наверное, ответ на вопрос о целесообразности такого творчества у каждого свой. Что касается меня, то я, наверное, просто не мог не написать этот движок и эти игры. И я могу только надеяться, что фраза "рокн-ролл мертв, а я еще нет" (c) относится ко мне не в полной мере, и найдутся люди, которым мои игры не покажутся пустой тратой времени. \:) До встречи на полях ПРИНТЕДА!


    Zzzzz  |\      _,,,--,,_        +-----------------------------+
           /,`.-'`'   ._  \-;;,_    | Его сон спокоен, потому что |
          |,4-  ) )_   .;.(  `'-'   | он уже зарегистрировался на |
         '---''(_/._)-'(_\_)        |       http://ifHub.ru       |
                                    +-----------------------------+

Ищите квантового кота на ифхабе!