Каптал (специализированный редактор книг-игр)


Ср Янв 27, 2016 12:34
connect
Свободный искатель

27 января, среда

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


  • 2016-01-27 10_30_53-Каптал.png (56.51 КБ) : 71 раз(а)  Скачать
  • 2016-01-27 10_21_47-TODO supply a title.png (197.77 КБ) : 71 раз(а)  Скачать
Чт Янв 28, 2016 14:35
connect
Свободный искатель

28 января, четверг

Реализовал простую цветовую дифференциацию штанов... пардон, параграфов. Белый – обычный параграф, Желтый – тупиковый параграф, Красный – на который не ссылается ни один другой.

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

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


  • 2016-01-28 12_21_14-Каптал.png (13.76 КБ) : 62 раз(а)  Скачать
Чт Янв 28, 2016 21:27
Lethal Weapon
5  1  Герой легенд

Может стоит ознакомиться с Neo4j?

Пт Янв 29, 2016 17:08
connect
Свободный искатель

29 января, пятница

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

Итак СИНЕЯР – Скриптовой ИНтерпретатор Естественного Языка: Русский.

Наряду с имеющимися блоками text, action и script я планирую создать еще один sinejar, в котором бы размещался интерпретируемый текст, описывающий логику игры. К каждому такому блоку был бы привязан скрытый былок script, который содержал бы ту же логику, но уже преобразованную в JavaScript. Таким образом движок jsIQ будет получать знакомый ему script код, но создаваемый автором в виде sinejar текста.

Пример на СИНЕЯР
—- ОПИСАНИЕ ПРАВИЛ —-

Создать свойства игрока: инвентарь (меч, щит, еда, питье), умелость (1 куб + 6), выносливость (2 куба + 12), удача (1 куб + 6)
Синонимы игрока: игроку

Создать группу противников
Синонимы противников: противники, противникам

Создать механику дуэли:
    Выбрать противника из противников
    Повторять, пока выносливость противника больше, чем 0:   
        Установить бросок противника: 2 куба + его умелость
        Установить бросок игрока: 2 куба + его умелость
        Если бросок игрока больше, чем бросок противника:       
            Изменить выносливость противника: -2
            Сообщить: Вы попали
        Если бросок игрока меньше, чем бросок противника:       
            Изменить выносливость игрока: -2           
            Сообщить: По вам попали
        Если выносливость игрока меньше, чем 1:       
            Конец игры!
    Результат положительный

—- ПО ХОДУ ИГРЫ —-

Добавить Орка в противники: выносливость (5), умелость (4)

Если результат дуэли положительный:
    Параграф 37

А теперь, во что это все могло бы быть превращено:

JavaScript:

//
// ОПИСАНИЕ ПРАВИЛ
//

// Создать свойства игрока: инвентарь (меч, щит, еда, питье), умелость (1 куб + 6), выносливость (2 куба + 12), удача (1 куб + 6)
vars[‘игрока’] = {};
vars[‘игрока’][‘инвентарь’]     = [ ‘меч’, ‘щит’, ‘еда’, ‘питье’];
vars[‘игрока’][‘умелость’]      = dice(6) + 6;
vars[‘игрока’][‘выносливость’]  = dice(6,2) + 12;
vars[‘игрока’][‘удача’]         = dice(6) + 6;

// Создать механику дуэли:
vars[‘дуэли’] = function(params){
    var result = false;
    // Выбрать противника из противников
    vars[‘противника’] = vars[‘противников’].shift();

    // Повторять, пока выносливость противника больше, чем 0:
    while ( vars[‘противника’][‘выносливость’] > 0 ) {   
        // Установить бросок противника: 2 куба + его умелость
        vars[‘противника’][‘бросок’] = dice(6,2) + vars[‘противника’][‘умелость’];

        // Установить бросок игрока: 2 куба + его умелость
        vars[‘игрока’][‘бросок’] = dice(6,2) + vars[‘игрока’][‘умелость’];

        // Если бросок игрока больше, чем бросок противника:
        if (vars[‘игрока’][‘бросок’] > vars[‘противника’][‘бросок’]) {
            // Изменить выносливость противника: -2
            vars[‘противника’][‘выносливость’] += -2;
            // Сообщить: Вы попали
            console.log(‘Вы попали’);
        }
        // Если бросок игрока меньше, чем бросок противника:
        if (vars[‘игрока’][‘бросок’] > vars[‘противника’][‘бросок’]) {
            // Изменить выносливость игрока: -2
            vars[‘игрока’][‘выносливость’] += -2;
            // Сообщить: По вам попали
            console.log(‘По вам попали’);
        }   
        // Если выносливость игрока меньше, чем 1:
        if ( vars[‘игрока’][‘выносливость’] < 1) {
            // Конец игры!
            gameOver();
        }
    }
    // Результат положительный
    result = true;
    return result;
};

//
// ПО ХОДУ ИГРЫ
//

// Добавить Орка в противники: выносливость 5, умелость 4
vars[‘Орка’] = {};
vars[‘Орка’][‘выносливость’] = 5;
vars[‘Орка’][‘умелость’] = 4;
vars[‘противники’].push( vars[‘Орка’] );

// Если результат дуэли положительный:
if (vars[‘дуэли’]() == true) {
    // см параграф 12
    jsIQ.showArticle(12);
}

Интерпретированный JavaScript в этом примере, призван пояснить общую концепцию и местами может быть не полным.

Вс Янв 31, 2016 11:07
connect
Свободный искатель

31 января, воскресение

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

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

Ко всему прочему будут реализованы пользовательские папки с возможностью смены их иконки.

Ср Фев 03, 2016 0:46
connect
Свободный искатель

02 февраля, вторник

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

Я решил внять предложению сэра Jumangee и в будущих релизах ввести в Каптал возможность визуального программирования игровой логики Google Blockly. Однако идея интерпретирования естественного языка все еще не отменена.


Чт Фев 04, 2016 22:34
connect
Свободный искатель

04 февраля, четверг

Работа нового дерева проекта реализована. Остаётся ещё обновить код импортов. Таким образом 0.12 alpha я планирую выложить уже на этой неделе.

Пт Фев 05, 2016 9:33
Oreolek
1  Путник

По укладке графов вот хорошая библиотека: http://getspringy.com
Мультиязычность планируется?

Пт Фев 05, 2016 9:35
connect
Свободный искатель

05 февраля, пятница

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

Автор
Начинает с пустого проекта и постепенно наполяет его содержимым, параграф за параграфом. Результатом своей работы хочет видеть DOC\DOCX\PDF документ, а значит будет пользоваться функцией экспорта. Для самопроверки актуальны инструменты проверки орфографии. Постепенное заполнение потребует максимум удобства от механизмов создания новых параграфов, так как они будут очень востребованы. В их числе: внедрение параграфа между двумя существующими, разделение выделенного текста в отдельный параграф\блок, создание связанного параграфа, клонирование параграфов и удаление с восстановлением связи. Стратегия написания книги-игры через последовательное внедрение параграфов между началом и концом, позволит иметь частично работоспособную игру на любой стадии написания. Даже если целью автора не является создание собственной интерактивной книги-игры, инструмент автоматического распознавания переходов позволит проводить интерактивное тестирование.

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

Пт Фев 05, 2016 16:28
connect
Свободный искатель

05 февраля, пятница (продолжение)

Переводчик

В начале работы имеет некий исходный материал, который и попытается импортировать в проект из DOCX\PDF\TXT. После чего начнет планомерный перевод параграфа за параграфом в любой удобной для себя последовательности. Приятными инструментами Переводчика будут режим индикации языков параграфов в дереве проекта и монитор общей динамики перевода, позволяющий наблюдать скорость и степень завершенности. Блочная структура предоставит возможность одновременного хранения оригинального текста параграфап и его перевода. Не будет лишним встроенный блокнот заметок, куда можно помещать помимо различных памяток и собственный словарик соответствия терминов, позволяющий не забыть принципы, принятые переводчиком для себя самого. Как и Автор, будет заинтересован в проверке орфографии и экспорте проекта в условно-бумажные форматы.

Аниматор (Интерактиватор)
Создатель интерактивной версии книги-игры. Может быть вместе с тем как Автором, так и Переводчиком игрового материала. В чистом же виде это тот, кто переводит бумажную книгу-игру другого Автора в иной формат – интерактивный. Импорт из других форматов и автоматическое распознавание переходов послужит отличной базой для будущего творения. В распоряжении Аниматора будет вся широта возможностей языка написания сценариев JavaScript, способная в наши дни реализовать что угодно. Для тех же, кто не владеет этим искусством, на помощь придет визуальное блочное программирование Google Blockly. Один из режимов индикации параграфов в дереве проекта поможет отследить тупиковые и те из них, на которые вообще нет ни одного перехода, что позволит уменьшить общее количество возможных ошибок. Последним упомяну не последний по значимости инструмент тестрования во встроенном jsIQ. Благодаря jsIQ технологии, экспортируемый проект сможет быть запущен на любом современном устройстве, поддерживающем серфинг интернета.

В заключении
Еще раз упомяну, что роли могут смешиваться между собой любым образом. Эти три были выделены лишь для демонстрации характерных процессов. Однако многие функции могут быть востребованы во всех сценариях. Среди подобных построение графа параграфов и поиск параграфов по содержимому с возможностью автозамены. Одна из возможных перспектив для Каптала – это быть включенным в Game Development Kit, где он мог бы выступать в единой связке с самим книго-игровым движком jsIQ и библиотекой подготовленных заранее шаблонов типовых проектов.

Что ж, это пока все имеющиеся у меня соображения, которыми я хотел бы с вами сегодня поделиться. Спасибо, что дочитали до конца Smile

Сб Фев 06, 2016 21:08
connect
Свободный искатель

06 февраля, суббота

Что ж, версия 0.12 alpha представлена вниманию общественности. Как упоминалось ранее, в ней было переработано дерево проекта и реализованы пользовательские каталоги.

Вс Фев 07, 2016 14:14
connect
Свободный искатель

07 февраля, воскресение

В следующей версии Каптала будут увеличены иконки панели инструментов редактора блоков для повышения удобства работы.

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

Еще раз благодарю за ваши отзывы.

Пн Фев 08, 2016 16:12
connect
Свободный искатель

08 февраля, понедельник

Возможно, вы обратили внимание, что обновления выходят довольно часто и не содержат между собой значительных изменений. Дело в том, что для сохранения темпа разработки, мной было принято решение выкладывать новые версии, как только будет реализована одна-две новых функции. Так и в этот раз, отличия 0.13 alpha от ее предшественности заключается лишь в "косметическом" увеличении размера кнопок в панели редактрирования блоков и новоя функция "автоссылки". О последней поподробнее.

Автоссылки
Как я уже упоминал, идея заключается в превращении всех чисел текущего абзаца в активные элементы, левый щелчек мыши по которым открывал бы для редактирования одноименный параграф, а правый – вызывал бы конекстное меню. Функция активируется удержанием кнопки Ctrl и возвращает все на место, при ее высвобождении.


Вт Фев 09, 2016 1:32
connect
Свободный искатель

08 февраля, понедельник (продолжение)

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

Вт Фев 09, 2016 17:15
connect
Свободный искатель

09 февраля, вторник

Продолжается марафон написания Каптала. Не успела 0.13 запылиться на просторах сервера, как ее уже сменяет 0.14 alpha! А всему виной мое искреннейщее желание как можно скорее поделиться с вами новой возможностью дерева проекта – перетаскивание параграфов. Оные можно свободно переносить между автокаталогами и каталогами, созданными пользователями.

Ср Фев 10, 2016 17:57
connect
Свободный искатель

10 февраля, среда

Продолжаю совершенствовать инструменты импорта проекта. Внимание мое сейчас сосредоточилось прежде всего на TXT формате. Благодаря предоставленным вами файлам, импорт становится все умнее и удобнее. Каптал научился замечать и решать проблемы с кодировкой. А так же находить маркированный текст. Эту и другие возможности вы увидете в ближайшие дни с выходом 0.15 alpha.


Пт Фев 12, 2016 0:25
connect
Свободный искатель

11 февраля, четверг

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

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

Импорт ТХТ превратился в полноценный инструмент анализа текста, наработки которого в последствии перейдут к импорту из PDF и DOCX.

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

Впереди предстоит еще много работы, но достигнутый на данный момент результат уже достоин внимания.


  • 2016-02-11 22_23_16-Каптал.png (54.82 КБ) : 74 раз(а)  Скачать

_________________
Терпение и труд все перетрут!
Ср Фев 17, 2016 0:50
connect
Свободный искатель

16 февраля, вторник

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


  • 2016-02-16 22_43_55-Каптал.png (131.32 КБ) : 66 раз(а)  Скачать

_________________
Терпение и труд все перетрут!
Чт Фев 18, 2016 18:10
connect
Свободный искатель

18 февраля, четверг

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


  • 2016-02-18 15_55_27-Каптал.png (115.35 КБ) : 73 раз(а)  Скачать
  • 2016-02-18 15_54_49-Каптал.png (107.33 КБ) : 72 раз(а)  Скачать

_________________
Терпение и труд все перетрут!
Пн Фев 22, 2016 1:16
connect
Свободный искатель

21 февраля, воскресение

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

Итак, чем же она отличается от 0.15:
+ Появилось: Главное меню программы
+ Появился: Системный лог программы
+ Появилось: Справочное руководство
+ Появилась: Защита от случайного закрытия Каптала
+ Новая функция: Закрыть другие параграфы
+ Новая функция: Закрыть все параграфы
+ Новая функция: Перемешивание параграфов
+ Новая функция: Переход к параграфу Alt+G
+ Новые комбинации клавиш:

  • F2 Переименовать параграф
  • Alt+O Открыть проект
  • Alt+S сохранить проект
  • Alt+N новый параграф


  • 2016-02-21 23_03_15-Каптал.png (128.58 КБ) : 67 раз(а)  Скачать

_________________
Терпение и труд все перетрут!
Сб Фев 27, 2016 10:22
connect
Свободный искатель

27 февраля, суббота

Благодаря введению в прошлой версии Главного Меню, стало возможным не только разгрузить Панели инструментов, но и объединить их в одной. Это снижает эффект "самолета" и упрощает воспрятие интерфейса Каптала. Разрешилась и старая проблема отображения большого количества открытых в редакторе закладок, которые теперь могут быть выставлены в произвольном порядке путем их перетаскивания. Помимо вышеупомянутого, были пополнены микрословари автоматического распознавания языка. Теперь они содержат по сотне слов из частотных словарей.

Версия 0.17 alpha пока еще не доступна для общественности. Следите за дальнейшими новостями.


  • 2016-02-27 08_07_38-Каптал.png (100.63 КБ) : 79 раз(а)  Скачать

_________________
Терпение и труд все перетрут!
Вс Мар 06, 2016 2:49
connect
Свободный искатель

06 марта, воскресение

Дамы и господа, прошу не беспокоиться по поводу длительного отсутствия каких бы то ни было новостей с моей стороны. Разработка Каптала еще вовсе не встретила свою вторую эпоху ледникового периода. Я бы даже выразился в том ключе, что дела у Каптала обстоят отличнейшим же образом. Однако о подробностях я вынужден временно умолчать. Уж простите мне сей невинный каприз. Тем не менее, разработка продолжается и в данный момент 0.17 все еще не завершена. Мне бы очень хотелось реализовать в ней выборочный экспорт материалов на указанном языке.


_________________
Терпение и труд все перетрут!
Ср Мар 23, 2016 11:41
connect
Свободный искатель

23 марта, среда

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

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

Обсуждение данного нововведения происходит по адресу: http://quest-book.ru/forum/post/83832

Другой припасенной для вас новостью будет появление исходных кодов Каптала в общедоступном репозитории github, которые теперь находятся по адресу: https://github.com/connect/captal

Работа над Капталом еще далека от своего завершения и обязательно будет продолжена. Рассчитываю на ваше тесное сотрудничество и обоюдную заинтересованность.



_________________
Терпение и труд все перетрут!
Чт Мар 31, 2016 16:41
connect
Свободный искатель

31 марта, четверг

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

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


_________________
Терпение и труд все перетрут!
Пт Апр 01, 2016 0:42
connect
Свободный искатель

31 марта, четверг (продолжение)

А вот и упомянутое сегодня видео, в некотором смысле, пробное.
https://youtu.be/xIlYibx9CH4

Продолжение следует!


_________________
Терпение и труд все перетрут!