ТОМ: Changelog
Содержание
- 1 Changelog
- 1.1 Версия v.0.9.4.9 beta (багфикс)
- 1.2 Версия v.0.9.4.8 beta
- 1.3 Версия v.0.9.4.7 альфа
- 1.4 Версия v.0.9.4.6 альфа
- 1.5 Версия v.0.9.4.5 (багфикс)
- 1.6 Версия v.0.9.4.4 dev
- 1.7 Версия v.0.9.4.3 (багфикс)
- 1.8 Версия v.0.9.4.2 dev
- 1.9 Версия v.0.9.4.1 dev
- 1.10 Версия v.0.9.4.0 dev
- 1.11 Версия v.0.9.3.1 бета
- 1.12 Версия v.0.9.3.0 бета
- 1.13 Версия v.0.9.2.11 бета
- 1.14 Версия v.0.9.2.10 бета
- 1.15 Версия v.0.9.2.9 бета
- 1.16 Версия v.0.9.2.8 бета
- 1.17 Версия v.0.9.2.7 бета
- 1.18 Версия v.0.9.2.6 бета
- 1.19 Версия v.0.9.2.5 бета
- 1.20 Версия v.0.9.2.4 бета
- 1.21 Версия v.0.9.2.3 бета и v.0.9.2.2 бета
- 1.22 Версия v.0.9.2.1 бета
- 1.23 Версия v.0.9.2.0 бета
- 1.24 Версия v.0.9.1.4 бета (bugfix)
- 1.25 Версия v.0.9.1.3 бета
- 1.26 Версия v.0.9.1.2 бета
- 1.27 Версия v.0.9.1.1 бета
- 1.28 Версия v.0.9.1.0 бета
- 1.29 Версия v.0.9.0.2 бета
- 1.30 Версия v.0.9.0.1 бета
- 1.31 Версия v.0.9.0.0 бета
- 1.32 Версия v.0.2.4.1 альфа
- 1.33 Версия v.0.2.4.0 альфа
- 1.34 Версия v.0.2.3.3 альфа
- 1.35 Версия v.0.2.3.2 альфа
- 1.36 Версия v.0.2.3.1 альфа
- 1.37 Версия v.0.2.3.0 альфа
Changelog
Версия v.0.9.4.9 beta (багфикс)
- исправлено сохранение игр;
- добавлен выбор значения свойств по локации (предмет_по_месту);
- интерфейс переписан с учётом потокобезопасности.
- речевой плагин временно убран из архива - не корректно завершает работу.
Версия v.0.9.4.8 beta
- финальная версия в этом направлении.
Версия v.0.9.4.7 альфа
- Сделана загрузка плагинов.
- Добавлена интерфейсная функция pause() / пауза(). Рекомендуется использовать вместо тэга <pause>.
- Доработана обработка ошибки с незакрытыми скобками в коде игры.
Версия v.0.9.4.6 альфа
- доделана нормализация знаков препинания;
- исправлены некоторые ошибки.
Версии присвоен статус "альфа". Всё основное, что планировалось в ветке 0.9.4.х, сделано. Осталось доделать небольшие фичи, после чего эта версия перейдет в "бету" и будет рекомендована как основная официальная версия.
Версия v.0.9.4.5 (багфикс)
- Исправлен ряд ошибок, критичных и не очень. Спасибо Александру.
Версия v.0.9.4.4 dev
- Добавлена speech.dll для чтения текста.
Версия v.0.9.4.3 (багфикс)
- Исправлена критическая ошибка. В остальном без изменений.
Версия v.0.9.4.2 dev
- Доделана система ввода-вывода (за исключением голоса и коррекции знаков препинания)
- Исправлены старые ошибки
- Добавлены новые ошибки
Версия v.0.9.4.1 dev
- Исправлено несколько мелких ошибок.
- Воспроизведение музыки приведено к полной совместимости с версией 0.9.3.1
Версия v.0.9.4.0 dev
В плюсе:
+ новый графический интерфейс и новый механизм взаимодействия движка с интерфейсом.
+ основной цикл убран внутрь dll и выполняется в отдельном потоке.
+ система регистрации внешних функций.
+ вычисление выражений непосредственно в командной строке (удобно для отладки)
+ проигрывание музыки реализовано в отдельной dll, независимой от текстового движка.
+ тестить можно на старых играх - мышках и спелеологисте.
В минусе:
- синтез речи - будет реализован отдельно от текстового движка.
- пост-обработка текста пока отсутствует, будет переделываться.
Версия v.0.9.3.1 бета
- Изменен принцип подстановки произношения - оно теперь подставляется непосредственно в тексте в квадратных скобках:
слово[правильное произношение слова]
- добавлена команда "повторить", которая повторяет последний произнесенный текст (работает только если в системе установлен голос)
- усовершенствован механизм подстановки альтенативных форм предлогов ("с"->"со", "из"->"изо" и т.д.).
Версия v.0.9.3.0 бета
- Добавлено чтение текста игры через MS Speech API 5.1 (синтезированный голос).
- Добавлены новые команды для управления звуком на уровне платформы:
- включить звук/музыку/голос;
- выключить звук/музыку/голос.
( для включения/выключения музыки используется новый обработчик OnMusic()).
- Исправлены найденные ошибки.
Версия v.0.9.2.11 бета
Основые изменения касаются работы с меню.
- строки меню теперь формируются динамически;
- меню может быть сформировано и вызвано для любого объекта (раньше было привязано к локации);
- добавлена сортировка строк меню (раньше было по алфавиту);
- добавлена автонумерация строк меню;
- выбор в меню возможен по номеру строки или по началу любого слова в меню.
Версия v.0.9.2.10 бета
- исправлены мелкие ошибки
Версия v.0.9.2.9 бета
- добавлены функции преобразования типов object(), string(), number(), bool();
- добавлены функции преобразования строк left(), right(), mid(), lower(), upper(), trim();
- исправлены найденные ошибки.
Версия v.0.9.2.8 бета
- добавлена возможность вставки в код игры команд на естественном языке.
- добавлена конструкция для описания предлогов.
- доработано сохранение игр.
- исправлены найденные ошибки.
Версия v.0.9.2.7 бета
- добавлены операторы ++; --; &&; и ||; (синтаксический сахар).
- исправлен парсинг составных команд для НПС.
Версия v.0.9.2.6 бета
- Добавлена функция для проигрывания звуков - media()
- В демоигру добавлено много новых звуков. Архив с игрой слегка распух.
- добавлено новое действие - смеяться :)
Версия v.0.9.2.5 бета
- исправление ошибок, доработка парсера.
Версия v.0.9.2.4 бета
- добавлено наследование объектов action от action, что позволяет создавать дейстия по подобию существующих.
- добавлена возможность вводить составные команды:
> войди в лифт и нажми 5 кнопку Ты вошел в лифт. Лифт Самая обычная кабинка лифта. Здесь есть кнопки. Ты находишься тут и лифтер находится тут. Ты нажал кнопку 5. Лифт поднял тебя на 5 этаж.
- исправлены мелкие ошибки
Версия v.0.9.2.3 бета и v.0.9.2.2 бета
- исправление ошибок, мелкие косметические улучшения.
Версия v.0.9.2.1 бета
- Изменен способ для первичного размещения объектов внутри друг-друга. Теперь при первом объявлении объекта в теле другого объекта, объявляемый объект автоматитески попадает внутрь этого объекта.
unique заяц { //... описание зайца unique утка { //... описание утки unique яйцо { //... описание яйца // и т.д. до самой смерти Кощея } } }
- Добавлен механизм уточнения команд:
> возьми еду
Стручок на грядке или малину на кустах?
?> горох с грядки
Ты сорвал стручок с грядки.
- В демоигру добавлены притяжательные местоимения. Сравните варианты ответов при игре за мышонка:
> осмотри крота
и при игре за крота:
> мышонок, осмотри меня
- исправлены некоторые мелкие ошибки в движке и демоигре.
Версия v.0.9.2.0 бета
- Изменен синтаксис языка. Изменен формат описания объектов и доступ к свойствам объектов. В целом язык приблизился к C++ и стал выглядеть еще более привычно для программистов. Очень надеюсь что до выхода версии 1.0 синтаксис меняться более не будет.
- Доведена до ума речевая модель. Определены речевые роли и их распределение в различных типах речевых актов. Реализация поддержки речевых ролей на уровне платформы позволяет автоматически определять лица и правильно подставлять/определять личные и возвратные местоимения при генерации/парсинге текста. Проверить это можно играя за различных персонажей - для мамы игра идет в 1 лице, для мышонка во 2м, и для крота в 3 лице. (О речевой модели в ТОМе обязательно напишу подробнее, т.к. тема интересна и требует дальнейшего развития)
- Проект полность перебран заново. Исправлена архитектура движка. Это позволило избавиться от детских болезней роста и исправить множество ошибок. Теперь ТОМ мне представляется логически цельным и завершенным (в рамках разумных ограничений версии 1.0)
Версия v.0.9.1.4 бета (bugfix)
- исправлены ошибки предыдущей версии
Версия v.0.9.1.3 бета
- убраны синонимы для объектов (будут реализованы позже и на других принципах)
- добавлен предопределенный метод CalcKey() для расчета переменной части морфологического ключа в зависимости от свойств объекта или других измечивых обстоятельств.
- добавлен предопределенный метод Redirect() для перенаправления действия с одного объекта на другой.
- исправлены найденные ошибки
Версия v.0.9.1.2 бета
- произведен рефакторинг движка;
- вызовы обработчиков событий и парсерных проверок приведены к стандарту Си;
- изменена логика для значения null;
- исправлены найденные ошибки.
Версия v.0.9.1.1 бета
- существенно упрощена работа с числительными - для любого объекта в команде можно указать его число. Проверки на согласование с числительными теперь выполняются парсером.
- для объектов, возвращаемых парсером, свойство .num теперь содержит число, указанное игроком;
- числовые переменные в парсерных шаблонах убраны за ненадобностью;
- для чисел стало возможным задавать строковые синонимы - "100"="сто";
- добавлены специальные константы для указания количества - "все", "несколько", "половина", "треть", "четверть".
Версия v.0.9.1.0 бета
- в дополнение к шаблонному парсеру добавлен подбор действий и фраз по ключевым словам и ключевым объектам с оценкой по весу (см. keyword);
- конструкция задания лексем для парсера .lex = "строка" признана устаревшей и впоследствии будет удалена;
- для объектов, возвращаемых парсером, свойство .lex теперь содержит лексему, названную игроком в команде;
- любое свойство объекта, содержащее строку в формате лексемы и имеющее в основе одно слово, теперь может быть использовано как имя объекта в команде (альтернатива .lex=)
- исправлены ошибки.
Версия v.0.9.0.2 бета
- добавлены глобальные переменные token и secret;
- добавлено сообщение парсера object_select;
- для объектов добавлены предопределенные свойства in_dialog и as_variant
- системные команды теперь могут использоваться в коде игры.
Например
global < "exit"
приводит к выходу из программы.
- исправлены найденные ошибки.
Версия v.0.9.0.1 бета
- для локаций добавлен обработчик события OnEnter()
- убран обработчик события onChangePers() за ненадобностью
- добавлен тег для очистки экрана <clear>
- исправлены найденные ошибки в движке и игре.
Версия v.0.9.0.0 бета
- дополнительная поддержка интерфейсов - добавлена константа frontend;
- добавлена функция input();
- демоигра адаптирована под Милену, добавлены картинки;
- исправлены найденные баги.
Версия v.0.2.4.1 альфа
- добавлены средства для организации диалогов и событий;
- сообщений об ошибках в парсере вынесены в переменные и могут быть изменены;
- оптимизирован парсер;
- доработано сохранение игр;
- исправлены найденные баги.
Версия v.0.2.4.0 альфа
- добавлена возможность сохранения/восстановления игры;
- исправлены найденные баги;
Версия v.0.2.3.3 альфа
Доработки платформы:
- существенно доработан парсер;
- изменены управляющие теги;
- исправлена масса ошибок.
Доработки демоигры:
- добавлены новые объекты (ягоды и грядки во дворе)
- добавлены шаблоны для действий с объектами упомянутыми ранее;
- добавлены действия с классовыми именами;
- вероятно еще что-то… эээ не помню :)
Версия v.0.2.3.2 альфа
Добавлены относительные свойства объектов и ключевые слова actor и act.
Объектная модель платформы окончательно сформирована.
В демоигре восстановлена возможность игры любым персонажем.
Версия v.0.2.3.1 альфа
Исправлена работа конструкций языка if-else, for, while, switch-case. Фигурные скобки {} теперь необходимы только для объединения многострочных блоков. Все конструкции (за исключением switch-case) работают аналогично C. Принцип работы switch-case мною изменен, надеюсь, в лучшую сторону.
Также добавлены ключевые слова return, break, continue, работающие аналогично C.
Теперь язык платформы окончательно сформирован и позволяет разрабатывать алгоритмы любой сложности.
Документирование системы пока не начато, но начиная с этой версии в папке "Примеры" можно найти простые файлы с подробными комментариями, позволяющие освоить принципы работы платформы. Файлы, имеющие расширение .tom, открываются текстовым редактором.
Версия v.0.2.3.0 альфа
Изменения в интерпретаторе:
- добавлены конструкции циклов for и while;
- добавлена конструкция switch-case;
- изменена обработка событий, добавлены функции CheckMove, BefMove, AftMove;
- добавлена команда restart;
- формируется лог-файл, прошу присылать логи
Изменения в демоигре:
- добавлена система помощи, мышонок научился думать;
- добавлено ведение счета;
- возможность игры за разных персонажей временно убрана.
PS: оконный интерфейс пока крайне сырой...