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
28.06.2012 13:34

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

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

Неактивен

0    0    #3
28.06.2012 13:38

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

И ещё явно не хватает возможности поменять фон, рамку сделать например. Вообще возможность сменить "тему". Визуализация часто много значит для погружения игрока в игру, даже такая мелкая, как рамка на фоне игры.

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

Неактивен

0    0    #4
28.06.2012 15:48

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

Умм, а вместо ссылки нельзя вставить объект никак? Что-то не выходит каменный цветок.

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

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

или хотя бы так
[[проверка ссылки|$объект]]

чтобы можно было сделать. Потому что может потребоваться запомнить имя локации. То же самое с картинками. Если бы путь можно было вставлять из переменной, это многое бы упростило.

Неактивен

0    0    #5
28.06.2012 16:21

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

Спасибо за ответы. smile

Неактивен

0    0    #6
28.06.2012 16:24

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

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

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

Неактивен

0    0    #7
28.06.2012 16:32

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

Ну хотя бы дневную и ночную smile Это было бы уже что-то.

Неактивен

0    0    #8
28.06.2012 16:35

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

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

Ждать релиза ведь ещё долго, насколько я понимаю.

Неактивен

0    0    #9
28.06.2012 17:11

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

DoubleDragon написал:

Релиз на 14-е августа как раз назначен.

Ооо!! Тогда подожду, спасибо.

Неактивен

0    0    #10
28.06.2012 17:52

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

Вот знакомимся, да smile

Неактивен

0    0    #11
28.06.2012 18:03

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

А что с форматированием текста? Есть ли какая-то возможность сделать ссылку по центру строки?

Неактивен

0    0    #12
28.06.2012 18:37

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

Было бы ещё отлично прикрутить к редактору хотя бы минимальную проверку орфографии. Вот за что авторы сказали бы огромное спасибо. Потому что часто, когда быстро печатаешь, еле успевая за мыслью, в тексте появляются трудновычитываемые очепятки.

Неактивен

0    0    #13
28.06.2012 19:03

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

sosiskin написал:

Ajenta написал:

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

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

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

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

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

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

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

Неактивен

0    0    #14
28.06.2012 19:04

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

DoubleDragon написал:

В версии Mac OS X кстати орфография проверятся. Вся сложность в том, что господа из Мкрософт не дают почему-то такую возможность по дефолту, хотя это им ничего не стоит.

Ну, мака, к сожалению, не имею. И в ближайшем будущем вряд ли обзаведусь. sad

Отредактировано Ajenta (28.06.2012 19:04)

Неактивен

0    0    #15
28.06.2012 19:06

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

Ajenta написал:

sosiskin написал:

Ajenta написал:

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

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

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

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

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

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

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

Хотя туда кажется и сейчас можно напихать всего, что душе угодно. Вроде же не запрещает программа.

Неактивен

0    0    #16
29.06.2012 00:23

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

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

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

Переменная-счётчик и несколько картинок с разными параметрами под условиями - и вот тебе шкала.

апд: Только тут событий нет, так что придётся обновлять руками всё время, то есть условия эти везде прописывать, где надо.

Отредактировано Ajenta (29.06.2012 00:25)

Неактивен

0    0    #17
02.07.2012 13:51

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

Картинки действительно не отображаются в фаерфоксе, но отображаются в IE -  причём это касается вроде бы только пнг.


Вот игра http://dreamtream.ru/play/nedetskayaskazka/ - можете проверить.

Отредактировано Ajenta (02.07.2012 13:52)

Неактивен

0    0    #18
02.07.2012 17:03

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

Спасибо.

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

Отредактировано Ajenta (02.07.2012 17:07)

Неактивен

0    0    #19
02.07.2012 17:58

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

DoubleDragon написал:

http://sm.axmasoft.com/examples/noback.png

Надеюсь такой вариант устроит и авторов и читателей?

С подчёркиванием? Хммм.. Ну, так тоже не сильно красиво конечно.

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

Неактивен

0    0    #20
02.07.2012 18:00

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

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

апд. Какое я могу предложить решение. Сделать эту кнопку отключаемой по системной переменной. Потому что при интерактивном рассказе она может понадобиться, не спорю, но при любой игре это зло. И если её отключить, то выводить все ссылки единым стилем, если же не отключать, то будет как было.

Отредактировано Ajenta (02.07.2012 18:11)

Неактивен

0    0    #21
02.07.2012 18:16

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

DoubleDragon написал:

Ajenta написал:

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

Хорошо, а как тогда быть с сохранением состояния? Тоже читерство по-своему. Без кнопки назад игрок будет бесконечно сохраняться... Вроде он должен получать удовольствие от игры, а мы возвращаем его к ранним хардкорным играм времён ZX-Spectrum. За читателей/игроков в нашей ситуации мы должны бороться, имхо.

Есть такое понятие - шаг назад, когда с игроком в игре произошла смерть, он может откатиться на предыдущее состояние. Обычно такое делается автоматом. Но кнопка "Назад" может побудить игрока пользоваться ею всё время.

По поводу спектрума, не думаю, что стоит преувеличивать так сильно. У нас не хардкор и игроков мы любим. Сохранения нужны и важны. Они дают возможность откатиться, но откатываться туда, где сохранился игрок, а не на любой шаг игры. Это обычная практика. Не думаю, что стоит её ломать.

Неактивен

0    0    #22
02.07.2012 18:17

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

Повторю, а то вдруг затерялось

"Какое я могу предложить решение. Сделать эту кнопку отключаемой по системной переменной. Потому что при интерактивном рассказе она может понадобиться, не спорю, но при любой игре это зло. И если её отключить, то выводить все ссылки единым стилем, если же не отключать, то будет как было."

Неактивен

0    0    #23
03.07.2012 02:14

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

goraph написал:

Ajenta написал:

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

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

Издеваешься? Про парсерные он вспомнил.

Ну, в любом случае ссылки надо делать одинаковые все, или нафиг убирать возвраты, или нафиг убирать невозвраты, вот и всё.

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


апд. И я, если честно, не понимаю зачем предупреждать игрока, что он нажимает невозвратную ссылку, если ему всё равно придётся нажать её для продолжения. Чтобы успеть осмотреть остальное вокруг? Так если оно нужно по сюжету, то невозвратных и не будет, пока он всё не осмотрит, надо немного и автору доверять. В общем, излишние заморочки. Тут реально надо отделять текстовые игры и интерактивные истории, где хочется просто перечитать какой-то ранее шедший параграф и вернуться обратно. Но тут, насколько я поняла, движок позиционируется как и для текстовых игр тоже.

Отредактировано Ajenta (03.07.2012 02:41)

Неактивен

0    0    #24
03.07.2012 16:23

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

goraph написал:

Ajenta написал:

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

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

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

Неактивен

0    0    #25
03.07.2012 16:27

Ajenta
Модератор (+1309, -328)
Зарегистрирован: 03.05.2009
Сообщений: 1147
Вебсайт

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

DoubleDragon написал:

Выложил очередное обновление 0.6.5: http://sm.axmasoft.com/ru/

Что нового.

1. Добавлена возможность поиска по тексту статей и названию параграфов. Обратите внимание, что в Навигаторе в закладке Параграфы снизу появилось поле поискового запроса. При закрытом навигаторе быстро перейти в него можно через шорткат Ctrl+F.

2. Макрос <<random>>. Выдержка из обновлённого мануала:

Если Вы хотите присвоить объекту (переменной) случайное числовое значение (целое), то воспользуйтесь для этого макросом random. Например, чтобы присвоить объекту сила случайное значение от 0 до 99, напишите следующее:

<<random $сила = 99>>

Если нужно получить значение от 1 до 100, то просто прибавьте потом к значению единицу:

<<set $сила = $сила+1>>

За рандом большое спасибо. smile

Неактивен

Powered by PunBB
© copyright 2001–2026 iFiction.Ru