Изменение формата описания функций, необязательные аргументы функций;
Исправление ошибок в библиотеке;
Дальнейшее развитие веб-интерфейса;
В демо-игру добавлено несколько картинок:
Альфа
Сообщений 91 страница 120 из 144
Поделиться912015-04-05 16:44:11
Поделиться922015-04-11 18:12:45
В следующем релизе будет много мелких усовершенствований, поэтому буду сразу тут записывать, чтобы не забылось:
---------------------------------------------------------
Случайный выбор
синтаксис выражения: А | B [| C [|...]] - где А, B, C - выражения или константы на языке TOML.
Выполнено будет только одно случайное выражение из перечисленных.
Пример:
var A = (5|105|100500) //переменной А будет случайно присвоено одно из чисел - 5, 105, или 100500.
Изначально делалось для увеличения разнообразия выводимых сообщений:
%ты {"ударил"|"огрел"|"напал на"} гоблина!
---------------------------------------------------------
Операция подобия
синтаксис выражения: А like B; А подобно Б - где А любое объектное значение, B - класс.
Операция работает аналогично is - относит объект А к классу Б с наследованием всех свойств и методов, за одним исключением - классовые имена А не действуют на объект Б.
Пример:
class орк { like человек }
object Рубака{ is орк }
> осмотри Рубаку
Рубака выглядит как обычно.
> осмотри орка
Орк выглядит как обычно.
> осмотри человека
Здесь нет человека.
---------------------------------------------------------
Отрицание в игровой команде
Возможность вводить игровые команды с частицей "не".
Пропала во время переделки интерпретатора. Восстановлено.
---------------------------------------------------------
Системные сообщения
Переделан ряд системных сообщений на некорректный ввод и на не полный разбор команды.
Диалог с парсером стал выглядеть более осмысленным.
---------------------------------------------------------
Операции И и ИЛИ для объединения значений в списки
Возможность объединять значения в списки пропала после рефакторинга. Но и раньше это работало не очень корректно, т.к. для булевой логики и для объединения использовались одни и те же операторы, а приоритет этих операций различен и приходилось применять скобки () в выражениях.
Будут операции:
and/и, or/или - для создания списков.
Пример: Вася и Петя.
&&, || - для булевой логики.
Пример: true || false.
---------------------------------------------------------
Операция goto разбита на 2 части: check и goto
До этого проверка возможности перемещения проводилось внутри операции goto.
Теперь проверка вынесена в отдельную операцию check, а goto выполняет безусловный переход в локацию.
Поделиться932015-04-30 11:27:56
версия 2.a.4.4 альфа.
Подробности о изменениях смотрите постом выше.
Поделиться942015-05-11 20:12:30
В следующем релизе будет полностью восстановлена функциональность работы с NPC из 1-го ТОМа.
Там была весьма интересная концепция речевого акта и автоматического вычисления лица в различных фазах выполнения команды.
Вроде бы всё это получается переложить на 2й ТОМ без потерь.
-------------------------------------------------
Доработка веб-интерфейса:
- авто-список игр по команде "игры", "games", "список игр";
- команда "заново" / "restart";
- перезагрузка html, css файлов при старте игры (у каждой игры может быть своё оформление);
- подстановка команд из 10 последних введенных.
Поделиться952015-06-11 13:18:39
В архив в дополнение к демо-игре добавлены 2 обучающих урока.
Изменилась структура каталогов, добавлен стартовый список игр.
Доработка веб-интерфейса:
- авто-список игр по команде "игры", "games", "список игр";
- команда "заново" / "restart";
- перезагрузка html, css файлов при старте игры (у каждой игры может быть своё оформление и свой интерфейс);
- подстановка команд из 10 последних введенных.
Поддержка NPC не полная и пока еще очень сырая.
К сожалению, выявилась еще одна архитектурная проблема, но не настолько большая, чтобы затевать еще один рефакторинг.
Поэтому в демо-игру добавлять NPC я не стал. Во 2м уроке есть собака, которой можно покомандовать - заставить её читать книгу, или еще что-нибудь.
Для полноценной поддержи NPC нужно дописать все действия стандартной библиотеки. Каждое действие может выполняться двояко, в зависимости от того, выполняет его NPC или ГГ. Но это имеет смысл делать только после исправления выявленной проблемы.
Поделиться962015-06-17 15:43:59
Как начать игру? У меня вот что:
И я так понял, "консольного" варианта больше не будет? Только веб-интерфейс? В таком случае, как посоветуешь мне сделать запуск проекта из редактора? Раньше я просто запускал tom2.exe и передавал в параметре путь к файлу *.tom. Сейчас же запускается какой-то мини веб-сервер и как передать ему команду запуска игры, непонятно.
Поделиться972015-06-18 12:24:54
Как начать игру? У меня вот что:
Варианты:
run <filename>
Если игра лежит рядом с движком и имеет расширение .tom (как в моём архиве) она отобразится в списке игр,
Команда "заново" имеет смысл только если игра уже запущена.
И я так понял, "консольного" варианта больше не будет? Только веб-интерфейс?
Будет простой вариант с windows-консолью.
В таком случае, как посоветуешь мне сделать запуск проекта из редактора? Раньше я просто запускал tom2.exe и передавал в параметре путь к файлу *.tom.
Так же как и было - webtom.exe с параметром. Должно работать, если случайно не поломалось.
update: проверил, работает.
Поделиться982015-06-18 12:34:55
С текущей версии и далее структура каталогов платформы будет выглядеть примерно так:
\tom2
- \bin
- \игра 1
- \игра 2
- \игра ...
- \игра N
run.cmd
т.е. под каждую игру будет свой отдельный каталог, со своими файлами настроек, картинками и может быть даже со своими плагинами.
Поделиться992015-06-18 13:49:21
Так же как и было - webtom.exe с параметром.
Это запускает стартовое окно, в котором нужно нажать "Начаить игру", чтобы можно было начать проверку. Это лишнее действие - не совсем удобно. Можно добавить какой-нить параметр, чтобы игра сразу запускалась? Во время проверки/отладки игры её придётся часто запускать.
Поделиться1002015-06-18 14:03:35
object ты { // Parents это человек // атрибуты блестящее property описание = "" property немой = нет, "говорящий" } object дверь { // Parents это дверь // атрибуты открытое }
Результат проверки:
> дверь открыта?
Да.
> я блестящий?
Ок.
> я высокий?
Ок.
> я немой?
Ок.
Что означает это загадочное "Ок.", и как достучаться до атрибутов ГГ?
Поделиться1012015-06-18 14:10:05
Можно добавить какой-нить параметр, чтобы игра сразу запускалась?
Да, можно.
Второй параметр будет указывать на способ игры - в браузере или в окне.
Поделиться1022015-06-18 14:25:32
Что означает это загадочное "Ок.", и как достучаться до атрибутов ГГ?
Не знаю... надо потестить, видимо что-то поломалось.
"Ок." - успешное выполнение функции, только вот функция ничего не вывела.
Кстати, может заменить "Ок" на что-нибудь русское? "Хорошо" например, или "ладно" =)
Поделиться1032015-06-18 16:35:54
-- _проверка входа в башню -- if(дверь:башни.запертое) fail, "дверь в башню закрыта" ok -- _проверка залаза на башню -- if(_движение==лезть || _движение==подниматься) return ok fail, "По стене башни невозможно {_движение*#Ив}!"
И давно имена секций могут содержать пробелы? Или это какая-то новая фишка? Или всё после первого пробела - комментарий? Если да, то можно задавать несколько секций с одним именем?
Поделиться1042015-06-18 17:50:15
И давно имена секций могут содержать пробелы?
Довольно давно, около года наверное...
Но это относится только к секциям, использующимся в перемещениях между локациями.
-- _проверка входа в башню --
_проверка - основное имя секции;
в башню - расширение, специальный падеж от локации, в которую/из которой происходит перемещение;
Весь остальной текст игнорируется.
Если секция с нужным расширением не найдена, выполняется секция с нужным именем без расширения, которая должна стоять в конце. Поиск однопроходный.
можно задавать несколько секций с одним именем?
Это всегда можно было, только работать будет одна первая секция.
Поделиться1052015-06-18 19:13:34
Т.е. _проверка - это тоже имя стандартной секции, как parse или check в действиях? А зачем тогда знак подчёркивания перед именем? Меня это сбивает с толку и я думаю, что это пользовательская секция.
Получается _вход, _сцена, _выход и _фон - тоже стандартные секции? И все со знаком подчёркивания?
Поделиться1062015-06-18 19:36:27
Да, все верно.
Дело в том что "вход", "сцена", "выход" и "фон" - это нормальные слова русского языка и все они есть в словаре.
Если назвать секцию без подчеркивания, игрок сможет ввести команду, которая приведет к выполнению секции, ведь секция - это вычисляемое свойство.
А это тут совсем не нужно.
Поделиться1072015-06-23 20:11:29
> дверь открыта?
Да.
> я блестящий?
Ок.
> я высокий?
Ок.
> я немой?
Ок.
Ошибка была частично в платформе, частично в библиотеке. Будет исправлена в следующем релизе.
Возникает вопрос, насколько вообще реально оттестить библиотеку и платформу, учитывая их немалый объём.
Пока не вижу другого способа, кроме как писать игры. Разные и много =)
Поделиться1082015-07-21 11:19:03
Изменения в интерфейсе
- доработан список игр, названия игр берутся из файла игры и распределяются по категориям;
- добавлен автоматический 3-х секундный запуск игры;
- добавлен 2й параметр для автоматического запуска игры: "w" - запуск в окне, "b" - запуск в браузере.
Изменения в движке
- исправлены ошибки, связанные с неоднозначностью идентификаторов. Ошибки проявлялись в операциях, когда имена объектов совпадали с именами классов.
Изменения в библиотеке
- исправлены некоторые ошибки.
Текущие работы по движку
- начата, но не закончена работа по новому распределению контекстов и объектов this. Работа очень нужная и объемная. Без её завершения невозможна корректная работа вложенных вызовов функций и методов объектов, и как следствие - невозможно дальнейшее наращивание библиотеки.
Работаем =)
Поделиться1092015-08-13 15:15:41
версия 2.a.4.7 альфа (баг-фикс)
Исправленные ошибки
- восстановлена работа внешних функций.
Как следствие, все внешние функции и системные команды теперь работают исключительно из кода или режима "вне игры".
В режиме "в игре" функции могут быть вызваны через слэш - "/print test".
Переключение в режим "вне игры" теперь работает тоже только через слэш - "/вне игры".
Изменения в интерфейсе
- запуск игр и просмотр каталогов из адресной строки браузера.
Текущие работы по движку
- всё еще начата, но не закончена работа по распределению контекстов и объектов this. Работа очень нужная и объемная. Без её завершения невозможна корректная работа вложенных вызовов функций и методов объектов, и как следствие - невозможно дальнейшее наращивание библиотеки.
Работаем =)
Поделиться1102016-03-17 10:56:29
Анонс
Состояние платформы пришло к более-менее стабильному варианту, поэтому скоро будет очередной релиз.
Изменений много, не все они доведены до конца, но это вполне нормально для развивающейся системы. Специально вылизывать все ошибки к релизу не буду, их много.
Основные изменения:
- синтаксис (в библиотеке можно встретить устаревший код);
- принципы работы ядра, возможность параллельно запускать неограниченное количество игр на одном движке;
- усовершенствована система отлова ошибок;
- изменён интерфейс между движком и фронтендом;
- добавлен веб-редактор.
Поделиться1112016-03-18 13:38:09
Впервые за всю историю платформы к релизу будет приложена документация.
Пусть довольно грязная и не полностью детализированная, но структурированная и всеохватывающая.
За это отдельное спасибо Вадиму Балашову как соавтору и неутомимому "понукателю" =)
Поделиться1122016-03-27 15:25:55
Интересный получилось тег сделать - <letter>, который превращает следующую за ним букву в картинку:
Поделиться1132016-03-27 17:32:24
Интересный получилось тег сделать - <letter>, который превращает следующую за ним букву в картинку:
Мммм... буквица...
Когда же уже релиз альфы?
И вообще, есть какой-нибудь план развития проекта? Буквицы, веб, всё это, конечно, хорошо. Но лично моё мнение, что проект должен двигаться в сторону двух вещей -- 1. поддержка иных операционных систем, кроме windows. а для этого он должен быть компилируем скажем gcc. и 2. создание полноценной игры на платформе. а для этого нужна документация.
Поделиться1142016-03-27 18:37:44
И вообще, есть какой-нибудь план развития проекта?
Нет, плана нет. Есть представление о направлении развития.
Работа по плану со сроками к сожалению вгоняет меня в депрессию, что ведёт к срыву и откладыванию проекта на дальнюю полку. Это мы уже проходили.
поддержка иных операционных систем, кроме windows. а для этого он должен быть компилируем скажем gcc.
Реально быстрее будет развернуть веб-сервер и играть через интернет, чем адаптировать код к gcc.
Еще есть надежда на wine. Если было бы где поэкспериментировать, думаю ТОМ заработает с минимумом переделок.
2. создание полноценной игры на платформе. а для этого нужна документация.
Тут возразить нечего.
Когда же уже релиз альфы?
Осталось "причесать" документацию, дорисовать буквицы, отладить демо-игру до состояния проходимости и тогда уже сразу релиз...
Поделиться1152016-03-31 21:08:19
Изменений много, всё основное описано выше.
Можно было бы и дальше подчищать, но тогда бы и релиза не было =)
Редактор пока работает только как навигатор по коду без сохранения изменений.
Поделиться1162016-04-01 17:27:36
версия 2.a.4.8 альфа
и тебя с первым апреля. в связи с тем, что каталог Doc а ссылки в html -- doc, в линуксе имеем косяки
вот почему я за прикладывание православного pdf файла с документацией!
Поделиться1172016-04-01 18:09:33
каталог Doc а ссылки в html -- doc
Спасибо, поправлю =)
Поделиться1182016-04-03 13:00:17
Следующий релиз будет посвящен глобальной переделке словаря.
- плагин dic.plg.dll будет убран, и вся словарная функциональность переместится в tom.dll, что облегчит дальнейшую более тесную интеграцию словаря с движком;
- вероятно, будет изменен поиск слов в словаре, и следовательно вся структура словаря;
- для всех слов будут добавлены классы частей речи - существительное, глагол, прилагательное и т.д.;
- к словам будет добавлен обработчик события для не найденной формы, позволяющий собрать и вернуть форму программно.
Возможность подключить плагин своего собственного словаря на этом прекращается.
Вот такие примерно планы.
Поделиться1192016-04-14 09:58:43
возможность параллельно запускать неограниченное количество игр на одном движке
Запустил webtom.exe, в настройках - игра в браузере. В первом браузере запустил демку про башню. Запустил второй браузер (другой, так-что куки должны быть разные), зашёл там в урок 1. В первом браузере пошёл текст этого урока:
Как настроить параллельный запуск нескольких сессий? Или это пока не реализовано?
Хотел запустить на домашнем компе сервер, чтоб извне можно было зайти. webtom.exe для этого не годится? Нужно делать какую-то программу, которая будет использовать чисто tom.dll?
Как на счёт безопасности? После поверхностной проверки сложилось впечатление, что webtom.exe отдаёт файлы из папки уровнем выше себя (включая подкаталоги) с определёнными расширениями (html, css, ...). Получить доступ к файлам выше каталога, или скачать какой-нибудь tom.dll через браузер у меня не получилось. Т.е. безопасность уже на достаточном уровне для запуска сервера?
Отредактировано Alexandr (2016-04-14 10:00:18)
Поделиться1202016-04-14 10:28:11
Запустил webtom.exe, в настройках - игра в браузере. В первом браузере запустил демку про башню. Запустил второй браузер (другой, так-что куки должны быть разные), зашёл там в урок 1. В первом браузере пошёл текст этого урока:
Как настроить параллельный запуск нескольких сессий? Или это пока не реализовано?
По сессиям разделено управление, раздельный вывод текста пока еще не доделал, там немного сложнее, поэтому текст забирает себе та сессия, которая успеет первой.
Если свернуть окно неактивной сессии или перейти на другую закладку, весь вывод пойдет в открытое окно.
Хотел запустить на домашнем компе сервер, чтоб извне можно было зайти. webtom.exe для этого не годится? Нужно делать какую-то программу, которая будет использовать чисто tom.dll?
Компьютер должен иметь фиксированный IP и 80 порт должен быть доступен извне и webtom.exe должен быть запущен на проигрывание игры. По-моему этого должно быть достаточно.
Адрес в браузере должен быть: http://MyIP/TOM2/
Сам правда не пробовал, но теоретически должно всё работать.
Как на счёт безопасности? После поверхностной проверки сложилось впечатление, что webtom.exe отдаёт файлы из папки уровнем выше себя (включая подкаталоги) с определёнными расширениями (html, css, ...).
Да, всё так и есть.
Получить доступ к файлам выше каталога, или скачать какой-нибудь tom.dll через браузер у меня не получилось. Т.е. безопасность уже на достаточном уровне для запуска сервера?
Я не специалист в области сетевой безопасности, вполне возможно что webtom можно взломать извне каким-нибудь простым способом. Если владельцу сервера это не страшно, то можно запустить webtom как самостоятельный web-сервер. Но в дальнейшем я хотел бы на его основе сделать модуль к какому-нибудь апачу, чтобы было всё по-взрослому.