Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
07.04.2012 19:33

DoubleDragon
Модератор (+391, -32)
Откуда: Москва
Зарегистрирован: 07.04.2012
Сообщений: 1760
Вебсайт

Разработчик "AXMA Story Maker"

Делаю замену Twine (Tweebox)

Добрый день, друзья.

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

Twine (Tweebox) неплохо подошёл бы для решения этого вопроса, но, к сожалению, он уже давно не обновлялся и при всех своих достоинствах плохо работает с кириллической кодировкой (возникают ошибки во время редактирования пассажей и при импорте/экспорте текстовых исходников). Тут ещё и узнал, что автор проект забросил. Но идея визуального проектирования повествования, заложенная в Twine, очень хороша, и жаль от неё отказываться.

В общем пришлось написать свой велосипед, обратно совместимый по исходникам с Tweebox и с аналогичным интерфейсом. В настоящее время редактор "допиливается" и тестируется. Есть три сборки - для Windows, Mac OS X и Linux.

Сейчас реализовано следующее:
- визуальное проектирование, аналогичное Twine;
- нативная поддержка любых кодировок (внутри всё крутится в utf-8);
- совместимость с исходными кодами игр Tweebox;
- корректная подсветка синтаксиса во время редактирования;
- собственый компилятор игр в один компактный независимый html-файл;
- адаптация для экранов мобильных браузеров.

Если кому интересно, выложу скриншоты и бета-версию.

Последняя версия всегда лежит по адресу http://sm.axmasoft.com/ru/

По этой ссылке можно посмотреть "Руководство пользователя AXMA Story Maker":
http://sm.axmasoft.com/ru/help.html

Отредактировано DoubleDragon (17.06.2012 10:35)

Неактивен

0    0    #2
18.06.2012 14:44

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

Очень интересно движется проект. А скажите, планируется ли макрос <<elseif>>, которого так досадно не хватало в Twee? Из-за его отсутствия приходилось по-дурацки изворачиваться с логикой.

Ещё из идей и пожеланий: интересно было бы развить тему StoryMenu, сделав её отдельным блоком, висящим где-нибудь сторонке. В этом меню можно было бы выводить например, список основных действий игрока (в зависимости от ситуации), как-то "осмотреться", "поговорить с" и т.д. Например, если речь идёт о локации, в которой присутствует другой персонаж, в меню есть вариант "поговорить". А если персонажа нет - то это действие не выводится.

Отредактировано sosiskin (18.06.2012 14:54)

Неактивен

0    0    #3
18.06.2012 15:18

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

DoubleDragon написал:

С elseif проблем особых нет, думаю сделаем на днях.

yeeaah! боги услышали молитвы, к которым упорно оставался глух Крис Климас smile

DoubleDragon написал:

Про StoryMenu - всё это можно, вопрос только интерфейсный, не хочется загромождать экран, тем более для мобильных утройств.

Маленькая такая менюшечка. Где-нибудь сверху её влепить, как у Twee историй в формате Jonah, сверху справа. Тут уже задача автора: если не злоупотреблять и выводить в меню не большё трёх позиций, вполне допустимо.
Просто другое дело, что в твях не было никакой логики связанной с этим меню, просто выводились пассажи. А если добавить логику - это уже мощный инструментарий для игры.

А, и по макросам, можно ли использовать старый твяшный макрос очистки экрана?

Код:

:: Hello macro [script]
macros['clrscr'] =
{
handler: function()
{
removeChildren($('passages'));                           
}
}

Отредактировано sosiskin (18.06.2012 15:21)

Неактивен

0    0    #4
18.06.2012 16:42

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

DoubleDragon написал:

Нет, но в нём и смысла нет, т.к. каждая локация и так очищает экран.

Смысл был следующий: пассажи выводятся один за другим, но очищается экран только по этому макросу. Таким образом можно было выводить текст по параграфу, и в какой-то момент убирать всё. Это лучше, чем когда КАЖДЫЙ пассаж выводится по отдельности, по умолчанию.

Неактивен

0    0    #5
18.06.2012 17:46

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

ну хорошо, а можно ли тогда сделать наоборот, и предусмотреть макрос, который ОСТАВЛЯЕТ пассаж, не стирая его при выводе другого?
хотя стоп, нет, это как-то странно я сформулировал.
в общем, можно ли как-то кастомизировать очистку экрана, на усмотрение автора?

Отредактировано sosiskin (18.06.2012 17:52)

Неактивен

0    0    #6
18.06.2012 17:56

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

ага, понял. Да, возможно так даже гибче. Буду пробовать.

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

Неактивен

0    0    #7
18.06.2012 20:36

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

Всё-таки с оставлением старого текста на экране не всё так просто, как вы говорите.

DoubleDragon написал:

Засорять экран читателя старой информацией - это плохо.

Это справедливо, если мыслить большими кусками текста, т.е. перелистыванием страниц (многие авторы лепят помногу текста, но имхо вся прелесть интерактивки вовсе не в этом).

Бывает масса ситуаций, когда текст, если выводится малыми порциями, очень органично вплетается в повествование. В частности в Twee таким образом люди писали стихи и микропрозу.

Ну, вот к примеру отрывок из моей истории.

Лучше сделать ещё один макрос, чтобы можно было вывести другой параграф по клику, не убирая предыдущий текст.

Неактивен

0    0    #8
18.06.2012 21:51

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

DoubleDragon написал:

Ну а actions чем плох?

Да, но actions не даёт влепить ссылку просто на слово в предложении, обязательно вставляет bullet и переносит строку.

Плюс эти три звёздочки между пассажами - их лучше опционально включить, имхо, по ранее перечисленным причинам.

И ещё, было бы здорово, чтобы всё-таки был предусмотрен способ редактировать всю историю в виде исходного текста, потому что когда этих листиков-квадратиков становится дико много, там иногда попутаться можно (не говоря уже о сверхмелком шрифте).

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

Отредактировано sosiskin (18.06.2012 23:17)

Неактивен

0    0    #9
19.06.2012 13:09

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

DoubleDragon написал:

Только про "сверхмелкий" шрифт не очень понял -- его же изменять можно?

Я имел в виду шрифт на визуальных листиках-квадратиках. Его тоже можно изменять?

DoubleDragon написал:

Да, и elseif уже сделал.

Ура!

DoubleDragon написал:

Это можно. С тебя -- название макроса.

ну, скажем, <<reveal>> или <<nested>>.

Неактивен

0    0    #10
19.06.2012 15:10

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

ок, сообщайте как будет новый билд, охота уже погонять!

Неактивен

0    0    #11
19.06.2012 17:11

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

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

Неактивен

0    0    #12
20.06.2012 10:44

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

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

А, вот полезная вещь: shortcut-ы для вставки синтаксиса в редакторе, [[|]], макросы, чтоб не лезть всякий раз мышкой. Например ctl+a, ctl+s, ctl+w такие чтоб левой рукой рядом.

Неактивен

0    0    #13
26.06.2012 17:04

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

Ок, хочу погонять линуховую версию. Что делать с инстялляхой, компилить чем-то, или? Под Убунтой.

Неактивен

0    0    #14
26.06.2012 18:11

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

Под Убунтой 11.02 тулбар уходит под верхний тулбар Юнити, и его оттуда не достать. Или я чего-то не то делаю?

Неактивен

0    0    #15
26.06.2012 18:53

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

http://i42.fastpic.ru/big/2012/0626/fc/13a3e2d89bf77c6ef242b3f8c0c9d1fc.png
1920х1280

Неактивен

0    0    #16
28.06.2012 18:52

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

Ajenta написал:

вместо ссылки вставить объект

<<set $объект = 'рассказ'>>

[[проверка ссылки|<<print $объект>>]]

да, это было бы просто шикарно!

А ещё будет очень хорошо, чтобы StoryMenu рефрешилось (обновлялось) с каждым циклом (нажатием на ссылку).
Например, открывает игрок новую локацию, и в сторименю появляется опция "Пойти туда-то" (чтоб в любой момент можно было переместиться в ту локацию). А в ситуации когда нельзя туда пойти, то эта опция из сторименю исчезает.

Ну, а в самом меню это всё можно циклами if-then прописывать. Или как-то ещё.

Неактивен

0    0    #17
29.06.2012 18:52

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

Ajenta написал:

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

А вот позвольте вообще с вами в этом не согласиться плохое слово. Как раз следующий за вашим постом вопрос именно об этом.

Вета написал:

А есть ли возможность встраивать в игры инвентарь с предметами? А параметры в виде шкалы? (например, шкала отношения нпц к герою)

Вот и я об этом. Ведь можно шкалу просто в численном виде выводить в сторименю, напр: ЗДР-10. Но чтобы это имело смысл, строка должна обновляться каждый раз.

DoubleDragon написал:

есть возможность загрузки файлов формата twee

Да? Отлично. Расширение файла может быть какое-угодно?

---------------------
В тематических ветках следует придерживаться корректного тона. / Olegus t.Gl.

Неактивен

0    0    #18
29.06.2012 18:56

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

Тестирование под Ubuntu: окно программы иногда открывается в совершенно гигантском размере, далеко выходящем за экран. Хотя в fullscreen переходит нормально.

Неактивен

0    0    #19
29.06.2012 18:57

sosiskin
Участник (+8, -9)
Зарегистрирован: 02.02.2012
Сообщений: 144

Re: Делаю замену Twine (Tweebox)

Narratius написал:

Разговор игрока с НПС. Выдается несколько вариантов ответа. На мой взгляд странно видеть уже отработанные выборы.
Возможно, я придумываю велосипед, и у вас в загашнике есть готовое решение для описания диалогов?

Можно просто пользоваться логикой, <<if>>, <<else>>, <<elseif>> для вывода опций диалога.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru