Тема закрыта
Добрый день, друзья.
Мне тут по долгу службы (а компания, где я работаю, сейчас разрабатывает ролевую онлайн-игру) необходимо написать движок для воспроизведения текстовых мини-игр на 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)
Неактивен
Очень интересно движется проект. А скажите, планируется ли макрос <<elseif>>, которого так досадно не хватало в Twee? Из-за его отсутствия приходилось по-дурацки изворачиваться с логикой.
Ещё из идей и пожеланий: интересно было бы развить тему StoryMenu, сделав её отдельным блоком, висящим где-нибудь сторонке. В этом меню можно было бы выводить например, список основных действий игрока (в зависимости от ситуации), как-то "осмотреться", "поговорить с" и т.д. Например, если речь идёт о локации, в которой присутствует другой персонаж, в меню есть вариант "поговорить". А если персонажа нет - то это действие не выводится.
Отредактировано sosiskin (18.06.2012 14:54)
Неактивен
DoubleDragon написал:
С elseif проблем особых нет, думаю сделаем на днях.
yeeaah! боги услышали молитвы, к которым упорно оставался глух Крис Климас
DoubleDragon написал:
Про StoryMenu - всё это можно, вопрос только интерфейсный, не хочется загромождать экран, тем более для мобильных утройств.
Маленькая такая менюшечка. Где-нибудь сверху её влепить, как у Twee историй в формате Jonah, сверху справа. Тут уже задача автора: если не злоупотреблять и выводить в меню не большё трёх позиций, вполне допустимо.
Просто другое дело, что в твях не было никакой логики связанной с этим меню, просто выводились пассажи. А если добавить логику - это уже мощный инструментарий для игры.
А, и по макросам, можно ли использовать старый твяшный макрос очистки экрана?
:: Hello macro [script] macros['clrscr'] = { handler: function() { removeChildren($('passages')); } }
Отредактировано sosiskin (18.06.2012 15:21)
Неактивен
DoubleDragon написал:
Нет, но в нём и смысла нет, т.к. каждая локация и так очищает экран.
Смысл был следующий: пассажи выводятся один за другим, но очищается экран только по этому макросу. Таким образом можно было выводить текст по параграфу, и в какой-то момент убирать всё. Это лучше, чем когда КАЖДЫЙ пассаж выводится по отдельности, по умолчанию.
Неактивен
ну хорошо, а можно ли тогда сделать наоборот, и предусмотреть макрос, который ОСТАВЛЯЕТ пассаж, не стирая его при выводе другого?
хотя стоп, нет, это как-то странно я сформулировал.
в общем, можно ли как-то кастомизировать очистку экрана, на усмотрение автора?
Отредактировано sosiskin (18.06.2012 17:52)
Неактивен
ага, понял. Да, возможно так даже гибче. Буду пробовать.
кстати, в хелпе, там где пример макроса actions, при нажатии на две ссылки действия (рычаг и дверь) параграфы выводятся без фэйда. А когда с очисткой экрана - то фэйд есть.
Неактивен
Всё-таки с оставлением старого текста на экране не всё так просто, как вы говорите.
DoubleDragon написал:
Засорять экран читателя старой информацией - это плохо.
Это справедливо, если мыслить большими кусками текста, т.е. перелистыванием страниц (многие авторы лепят помногу текста, но имхо вся прелесть интерактивки вовсе не в этом).
Бывает масса ситуаций, когда текст, если выводится малыми порциями, очень органично вплетается в повествование. В частности в Twee таким образом люди писали стихи и микропрозу.
Ну, вот к примеру отрывок из моей истории.
Лучше сделать ещё один макрос, чтобы можно было вывести другой параграф по клику, не убирая предыдущий текст.
Неактивен
DoubleDragon написал:
Ну а actions чем плох?
Да, но actions не даёт влепить ссылку просто на слово в предложении, обязательно вставляет bullet и переносит строку.
Плюс эти три звёздочки между пассажами - их лучше опционально включить, имхо, по ранее перечисленным причинам.
И ещё, было бы здорово, чтобы всё-таки был предусмотрен способ редактировать всю историю в виде исходного текста, потому что когда этих листиков-квадратиков становится дико много, там иногда попутаться можно (не говоря уже о сверхмелком шрифте).
Как вариант - для тех, кто привык работать с кодом, гораздо более удобоваримой будет возможность просто открыть всю историю во встроенном редакторе, с вашей удобной подсветкой синтаксиса.
Отредактировано sosiskin (18.06.2012 23:17)
Неактивен
DoubleDragon написал:
Только про "сверхмелкий" шрифт не очень понял -- его же изменять можно?
Я имел в виду шрифт на визуальных листиках-квадратиках. Его тоже можно изменять?
DoubleDragon написал:
Да, и elseif уже сделал.
Ура!
DoubleDragon написал:
Это можно. С тебя -- название макроса.
ну, скажем, <<reveal>> или <<nested>>.
Неактивен
ок, сообщайте как будет новый билд, охота уже погонять!
Неактивен
в принципе да, наверное имеет. Но разумеется не для всех. Есть просто квесты, а есть с боевкой, там может пригодиться.
Ну и иногда ограничение времени на решение\ответ добавляет саспенс.
Также можно в сторименю выводить (опционально) время проведенное в игре.
Неактивен
Но всё равно время лучше опционально, потому что некоторых оно может только отвлекать.
А, вот полезная вещь: shortcut-ы для вставки синтаксиса в редакторе, [[|]], макросы, чтоб не лезть всякий раз мышкой. Например ctl+a, ctl+s, ctl+w такие чтоб левой рукой рядом.
Неактивен
Ок, хочу погонять линуховую версию. Что делать с инстялляхой, компилить чем-то, или? Под Убунтой.
Неактивен
Под Убунтой 11.02 тулбар уходит под верхний тулбар Юнити, и его оттуда не достать. Или я чего-то не то делаю?
Неактивен
1920х1280
Неактивен
Ajenta написал:
вместо ссылки вставить объект
<<set $объект = 'рассказ'>>
[[проверка ссылки|<<print $объект>>]]
да, это было бы просто шикарно!
А ещё будет очень хорошо, чтобы StoryMenu рефрешилось (обновлялось) с каждым циклом (нажатием на ссылку).
Например, открывает игрок новую локацию, и в сторименю появляется опция "Пойти туда-то" (чтоб в любой момент можно было переместиться в ту локацию). А в ситуации когда нельзя туда пойти, то эта опция из сторименю исчезает.
Ну, а в самом меню это всё можно циклами if-then прописывать. Или как-то ещё.
Неактивен
Ajenta написал:
Это бред. Менюшка нужна именно для хелпа или об авторе или ещё чего служебного. Пихать в неё действия совершенно ни к чему, для этого ссылки есть.
А вот позвольте вообще с вами в этом не согласиться плохое слово. Как раз следующий за вашим постом вопрос именно об этом.
Вета написал:
А есть ли возможность встраивать в игры инвентарь с предметами? А параметры в виде шкалы? (например, шкала отношения нпц к герою)
Вот и я об этом. Ведь можно шкалу просто в численном виде выводить в сторименю, напр: ЗДР-10. Но чтобы это имело смысл, строка должна обновляться каждый раз.
DoubleDragon написал:
есть возможность загрузки файлов формата twee
Да? Отлично. Расширение файла может быть какое-угодно?
---------------------
В тематических ветках следует придерживаться корректного тона. / Olegus t.Gl.
Неактивен
Тестирование под Ubuntu: окно программы иногда открывается в совершенно гигантском размере, далеко выходящем за экран. Хотя в fullscreen переходит нормально.
Неактивен
Narratius написал:
Разговор игрока с НПС. Выдается несколько вариантов ответа. На мой взгляд странно видеть уже отработанные выборы.
Возможно, я придумываю велосипед, и у вас в загашнике есть готовое решение для описания диалогов?
Можно просто пользоваться логикой, <<if>>, <<else>>, <<elseif>> для вывода опций диалога.
Неактивен
Тема закрыта