Alexandr, режим отладки еще не смотрел?
Альфа
Сообщений 121 страница 144 из 144
Поделиться1222016-04-14 11:08:11
Порт 80 однозначно надо сделать изменяемым. Но если дело движется к апачу, то webtom можно не трогать. Сам я с апачем дел не имел, только с denwer игрался когда-то.
Разделением на сессии занимается tom.dll или webtom.exe? Насколько сложно будет написать примитивный аналог webtom, только для работы в качестве веб-сервера (без apache), с разделением на сессии? Куда будут попадать сохранения?
Alexandr, режим отладки еще не смотрел?
Очень любопытный режим! Прям редактор.
Поделиться1232016-04-14 12:32:31
Разделением на сессии занимается tom.dll или webtom.exe?
Основная нагрузка на tom.dll.
webtom.exe занимается веб-ориентированными вещами, такими как управление куками например.
Насколько сложно будет написать примитивный аналог webtom, только для работы в качестве веб-сервера (без apache), с разделением на сессии?
Более примитивный аналог написать невозможно, так как в webtom и так всё по минимуму.
В принципе, ничего сложного там нет, интерфейс к tom.dll я опишу как только он окончательно устаканится, исходники опубликую.
Куда будут попадать сохранения?
В папке каждой игры будет каталог "Save".
Файлы сохранений будут иметь вид <кука>.save, т.е. для каждого пользователя отдельный файл.
Поделиться1242016-05-20 22:26:58
Анонс версии 2.a.4.9 альфа
- Полностью переделан поиск слов в библиотеке, добавлена поддержка кросс-статей, весь код из библиотечного плагина убран внутрь tom.dll. В результате библиотека стала немного компактнее и более функциональной. Также сократилось время сборки библиотеки, что существенно при её активном редактировании.
- Усовершенствован способ генерации словоформ при формировании текста, вплоть до программной генерации словоформы в крайнем случае. Переделано формирование ошибок для отсутствующих словоформ и добавлен механизм альтернативной генерации фраз.
- Усовершенствован и расширен веб-отладчик. Теперь видно больше информации об объектах, добавлен просмотр библиотечных статей, виден разбор введенной игровой команды.
- ТОМ теперь свободно запускается на linux под wine, что само по себе очень здорово.
- Документация, к сожалению, доработана не так сильно как хотелось бы, но всё же там добавилось несколько статей.
- Исправлено много ошибок.
Следующий релиз 2.a.4.10 скорее всего будет посвящен исправлению ошибок, доработке и расширению стандартной библиотеки и написанию документации. Серьёзные переделки архитектуры пока отложу в сторону.
Поделиться1252016-05-21 19:10:53
версия 2.a.4.9 альфа
Описание изменений смотрите постом выше.
Поделиться1262016-07-28 16:34:41
версия 2.a.4.10 альфа
Очередная версия.
- Добавлено логирование прохождения игры, логи для нераспознанных команд и слов.
Поделиться1272016-07-29 09:55:19
- Для классов и признаков добавлен новый механизм:
Выражение "A это не Б" теперь не только удаляет Б из родителей А, а еще и запоминается и в дальнейшем применяется к объектам, к которым применён класс или признак А.
Пример:
закрытое это не открытое;
открытое это не закрытое;
@мужчина это не @мальчик;
Далее, когда объекту будет присвоен признак:
сундук.открытое = да;
признак "закрытое" будет автоматически удалён из сундука.
Аналогично можно реализовать взросление мальчика:
Вася это @мужчина;
автоматически уберёт класс "@мальчик" из объекта "Вася".
Поделиться1282017-03-19 00:24:55
версия 2.a.4.11 альфа
Очередная версия.
Много изменений, подробнее распишу завтра.
Онлайн-версия также обновлена.
Поделиться1292017-03-19 10:21:40
Новое в версии 2.a.4.11 альфа:
Веб-плеер:
- переделан контроль игровых сессий, потоки данных разведены по сессиям;
- изменен формат обмена с движком;
- проведена оптимизация для работы в полях интернета.
Тем не менее, если для офлайновой работы этого достаточно, в качестве веб-сервера плеер требует дальнейших доработок.
Веб-редактор
Много мелких доработок. Из крупных нововведений стоит отметить карту и расширенный анализ синтаксиса команд:
Тем не менее, обе формы нуждаются в дальнейшей доработке.
Движок tom.dll
- Внесены изменения в структуру локаций и объектов. Теперь допускается размещение объектов снаружи локации, при этом объект становится внешним и виден в двух локациях одновременно. Очень удобно для дверей, ворот, окон и заборов между локациями. Раньше такие объекты приходилось дублировать. Для примера см. дверь в башне.
- Изменен ключ расположения объекта на месте: #Вм - объект виден в этом месте, #Дм - доступен в этом месте, #!м - отсутствует в этом месте. Это необходимо для поддержки прозрачных контейнеров. Для примера см. розу в витрине на башне.
- также много исправлений ошибок и мелких доработок.
Стандартная библиотека
- добавлено около сотни новых слов;
- внесены исправления в код, соответствующие исправлениям в движке.
Старый код, если где остался, может приводить к ошибкам.
Поделиться1302017-03-19 12:08:12
Почему-то не запускается тестовый пример forms.tom. Пишет "Ошибка платформы! Файл: ...forms.tom". Остальные примеры вроде запускаются.
И веб-редактора в последнем архиве я не нашёл. Нашёл в папке bin\webtom
Отредактировано Alexandr (2017-03-19 12:13:56)
Поделиться1312017-04-16 15:46:29
Версия 2.a.4.12 альфа
Очередной релиз.
Много доработок и исправленных ошибок. Словарь дополнен новыми словами.
Верстка страниц модернизирована благодаря RealPeha, за что ему спасибо огромное.
Каких-либо особых изменений в релизе нет, просто всё стало работать немного лучше.
Поделиться1322017-06-01 11:25:56
Версия 2.a.5.0
Очередной релиз.
Изменена внутренняя структура парсера, добавлена поддержка NPC.
Основные изменения:
Словарь
- убраны излишние ударения в словах, ударения оставлены лишь там где есть возможность неоднозначного прочтения.
- добавлены новые слова и их значения.
webtom
- добавлено отображение ударений в выводимом тексте;
- добавлены дополнительные настройки, в частности возможность отключать ударения и буквицы;
- добавлен запуск в режиме сервера (без открытия игрового окна).
- добавлены стандартные буквицы \TOM2_v2.a.5.0\bin\webtom\letters\ (для начала алфавита)
Возможно, кто-нибудь возьмётся дорисовать или полностью переделать стандартные буквицы?
тесты
- добавлен тест для просмотра стандартных буквиц.
движок tom.dll
- изменена структура парсера и принцип сбора ошибок парсинга; внешне это не сильно заметно, но тем не менее возможны непредусмотренные ошибки, надо еще потестить.
- добавлена поддержка NPC на уровне парсера.
- исправлены старые ошибки и добавлены новые.
Поделиться1332017-06-01 12:00:19
Поддержка NPC
Команда для NPC имеет следующий формат:
npc_name, команда
или
команда, npc_name
где npc_name - обращение к NPC, отделенное запятой;
а команда - любая команда, воспринимаемая или не воспринимаемая парсером.
В роли NPC может выступать любой объект в игре.
Для проверки объекта вызывается метод _check_npc; далее возможно 4 варианта:
- метод _check_npc у объекта отсутствует или возвращает null или false - это не NPC и выполнять команды объект не может.
- метод _check_npc возвращает ошибку, например false, "объект мёртв" - это NPC, но в данный момент в "нерабочем" состоянии.
- метод _check_npc возвращает строку, например "не хочу, не буду!" - эта строка будет выведена от имени NPC, а команда будет проигнорирована.
- метод _check_npc возвращает true - это означает что NPC вас слышит и готов принять команду.
Далее, после того как мы определились с NPC, меняются речевые роли:
speaker = actor //действующее лицо превращается в говорящего, т.к. именно он обращается к NPC;
actor = NPC //NPC становится действующим лицом, т.к. именно он будет выполнять команду;
addreesse = NPC//и он же становится адресатом, т.к. именно к нему обращена речь говорящего.
После этого ко всем токенам команды заново подбираются значения, потому что для таких слов, как "мой", "твой", "себя" и им подобных, значения зависят от распределения ролей, которые у нас уже поменялись.
Далее команда парсится и выполняется как обычно, только вместо персонажа, управляемого игроком, команду выполняет NPC.
Поделиться1342017-09-13 11:40:15
Анонс изменений в интерфейсе версии 2.a.5.1
В синтаксический анализ добавлена расшифровка ключей:
Список свойств объекта теперь включает унаследованные свойства и методы:
(1) - собственные свойства и методы объекта;
(2) - свойства и методы, унаследованные от классов;
(3) - унаследованные свойства, рекомендованные к переопределению.
Для 3-го пункта в синтаксис введено новое ключевое слово - template (шаблон), сокращенно tmp, которое работает аналогично property, но рекомендует переопределение этого свойства у потомков.
Поделиться1352017-09-16 11:36:20
Анонс изменений в словаре версии 2.a.5.1
Добавлены или изменены следующие действия:
- вооружаться, надевать, одевать, снимать, давать;
- атаковать/нападать;
Добавлены временные заглушки для действий:
- сделать, приготовить, пожарить, сварить, сшить, построить.
И также сделано много различных исправлений в коде стандартной библиотеки.
Поделиться1362017-09-23 23:08:40
Очередная Версия 2.a.5.1
Честно говоря, я знаю много мест где эта версия косячит, но вылизывать уже просто в лом, тем более что наклёвывается новый подход, который всё исправит, но только уже в следующей версии.
Поэтому просто пойдите, найдите в подземелье гоблина и УБЕЙТЕ его! если сможете...
Поделиться1372017-09-24 17:25:42
Убил. Как демонстрация боевой системы, хорошо. Но с точки зрения мотивации это было совершенно бессмысленно. Гоблин не пытался нападать первым, не вредил мне в прошлом, и вообще для героя не было никакого смысла его убивать. По боёвке: гоблин вообще не мог пробить броню (я надел её перед боем) и не нанёс ни одного повреждения. А ещё я дал гоблину арбалет, но он не воспользовался им. После гибели гоблина нельзя осмотреть его инвентарь и забрать его вещи.
Поделиться1382017-09-24 21:26:14
Убил. Как демонстрация боевой системы, хорошо. Но с точки зрения мотивации это было совершенно бессмысленно.
А мотивации нет ни у ГГ ни у NPC. Нужна система отношений, хотя бы простенькая.
А ещё я дал гоблину арбалет, но он не воспользовался им.
он спокойно положил его в инвентарь попробуй вооружить гоблина
После гибели гоблина нельзя осмотреть его инвентарь и забрать его вещи.
Можно обыскать гоблина, но это действие всё еще не доделано...
Поделиться1392017-10-29 20:30:58
Анонс версии 2.a.5.2 alpha
Как всегда проделано много важной и очень внутренней и внешне совершенно незаметной работы:
- полностью переделан обмен между IDE и движком, теперь в отладке платформа работает гораздо устойчивее, а то раньше на карте постоянно падала;
- полностью переделан подбор объектов для парсера; все декорации в локации теперь доступны без исключений;
- усовершенствован расчет значений признаков;
- и самое заметное - к играм теперь можно добавлять красивую титульную страничку.
- а самое главное - парсер научился работать со списками объектов; сейчас списки формируются по обобщающим словам - "возьми еду", "сними одежду" и т.п.
- также найдено и ликвидировано множество старых ошибок.
К релизу планируется:
- объединение в команде объектов союзами И и ИЛИ, которые также будут работать через и-списки и или-списки;
- расширить подбор аргументов к функциям, разрешив подбирать объекты по их признакам (сейчас только по типу и классу).
Дизклеймер: списки работаю пока очень плохо - там еще много работы, но это уже потом.
Поделиться1402017-11-11 23:28:39
Очередная Версия 2.a.5.2
Основные изменения смотрите постом выше.
Демо-игра расширена, и помимо прочего более или менее заработало действие "обыскать".
А еще есть версия с музыкой: https://cloud.mail.ru/public/MKgU/xM3PRAa9X (24 мегабайта)
Поделиться1412017-12-15 20:16:44
Анонс версии 2.a.5.3 alpha
За время, прошедшее от прошлого релиза, сделано много. Но сказать, что же главное, пожалуй трудно.
Сделано много исправлений по всем фронтам, и все они примерно одинаковой важности.
Большая часть модификаций возникла в результате разбора логов с сайта. Это просто бесценный ресурс, как оказалось.
Игроки четко делятся на профессиональных парсерщиком и тех кто никогда в парсеры не играл.
Первые обычно пробуют на зуб стандартную библиотеку, почти сразу находят нереализованные действия и выходят. При этом практически не выходят из шаблона игры в стиле рТАДСа/рИнформа.
Вторые значительно интереснее, потому что непредсказуемы. Как правило не проходят дальше первой локации, но зато там успевают столько всего ввести, что обязательно удивляют и меня, и парсер ))) При этом каким-то чудом они находят общий язык с парсером, иногда очень извращенным способом. Это действительно удивительно. В грядущем релизе многое ориентированно именно на таких игроков, и именно они моя целевая аудитория.
Самое печальное в логах - это тотальная безграмотность. В русском языке слова имеют только один вариант правильного написания; а всё остальное не имеет права к существованию. А у таких игроков даже мысли не возникает, что его не поняли из-за его безграмотности, это же игра глупая а не я))
Теперь еще 1-2 недели на подчистку хвостов, а там и релиз.
Поделиться1422017-12-30 20:43:29
Выпущена очередная версия 2.a.5.3 (альфа).
Большая часть доработок ориентированна на новичков незнакомых с парсером:
- существенно переделаны реакции на ошибки;
- добавлена реакция на ругань;
- добавлена реакция на вопросы;
- команда "помощь" добавлена в стандартную библиотеку;
- добавлена команда "выходы";
- добавлена команда "счет";
- налажена работа системных локаций "смерть" и "победа";
- в словарь добавлено много новых слов;
- переделан алгоритм js на стороне браузера.
а также много других исправлений и усовершенствований.
P.S. Версия с музыкой https://cloud.mail.ru/public/YqRX/Sgt4Tsqhy
P.P.S. Версия на сайте также обновлена.
Поделиться1432018-09-10 20:59:23
парсер поддерживает сокращения как в МАДах? А то вводить слова целиком утомляет, дело усложняется ещё тем, что надо учитывать склонение. Например в демо игре про гоблина, «открыть витрина» не получиться, а надо именно витрину. А хотелось бы вообще написать «отк вит», и/или автодополнением по TAB.
Ещё вопрос: а это нормально что ТОМ такой задумчивый?
Отредактировано satorkain (2018-09-10 21:03:26)
Поделиться1442018-09-12 14:34:01
Нет, сокращения не поддерживаются. Для их поддержки придётся переписать парсер с самого низа.
И если делать сокращения, то тогда будет интересно разрешать коллизии не в пользу игрока, а против него =) так как первые буквы могут относиться к самым различным объектам.
Сам ТОМ вполне шустрый, это веб-реализация работает с искусственными задержками, т.к. у некоторых медленный интернет и возможны накладки команд друг на друга. Хотя да, наверное можно было бы сделать более умно.