ТОМ2 - платформа для парсерных игр

Объявление

Открыт сайт tom2-game.ru.


Последнюю версию платформы можно скачать здесь.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Альфа

Сообщений 121 страница 142 из 142

121

Alexandr, режим отладки еще не смотрел?

122

Порт 80 однозначно надо сделать изменяемым. Но если дело движется к апачу, то webtom можно не трогать. Сам я с апачем дел не имел, только с denwer игрался когда-то.
Разделением на сессии занимается tom.dll или webtom.exe? Насколько сложно будет написать примитивный аналог webtom, только для работы в качестве веб-сервера (без apache), с разделением на сессии? Куда будут попадать сохранения?

ASBer написал(а):

Alexandr, режим отладки еще не смотрел?

Очень любопытный режим! Прям редактор.

123

Alexandr написал(а):

Разделением на сессии занимается tom.dll или webtom.exe?

Основная нагрузка на tom.dll.
webtom.exe занимается веб-ориентированными вещами, такими как управление куками например.

Насколько сложно будет написать примитивный аналог webtom, только для работы в качестве веб-сервера (без apache), с разделением на сессии?

Более примитивный аналог написать невозможно, так как в webtom и так всё по минимуму.
В принципе, ничего сложного там нет, интерфейс к tom.dll я опишу как только он окончательно устаканится, исходники опубликую.

Куда будут попадать сохранения?

В папке каждой игры будет каталог "Save".
Файлы сохранений будут иметь вид <кука>.save, т.е. для каждого пользователя отдельный файл.

124

Анонс версии 2.a.4.9 альфа

- Полностью переделан поиск слов в библиотеке, добавлена поддержка кросс-статей, весь код из библиотечного плагина убран внутрь tom.dll. В результате библиотека стала немного компактнее и более функциональной. Также сократилось время сборки библиотеки, что существенно при её активном редактировании.

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

- Усовершенствован и расширен веб-отладчик. Теперь видно больше информации об объектах, добавлен просмотр библиотечных статей, виден разбор введенной игровой команды.

- ТОМ теперь свободно запускается на linux под wine, что само по себе очень здорово.

- Документация, к сожалению, доработана не так сильно как хотелось бы, но всё же там добавилось несколько статей.

- Исправлено много ошибок.

Следующий релиз 2.a.4.10 скорее всего будет посвящен исправлению ошибок, доработке и расширению стандартной библиотеки и написанию документации. Серьёзные переделки архитектуры пока отложу в сторону.

125

версия 2.a.4.9 альфа

Описание изменений смотрите постом выше.

126

версия 2.a.4.10 альфа

Очередная версия.

- Добавлено логирование прохождения игры, логи для нераспознанных команд и слов.

127

- Для классов и признаков добавлен новый механизм:
Выражение "A это не Б" теперь не только удаляет Б из родителей А, а еще и запоминается и в дальнейшем применяется к объектам, к которым применён класс или признак А.

Пример:
закрытое это не открытое;
открытое это не закрытое;
@мужчина это не @мальчик;

Далее, когда объекту будет присвоен признак:
сундук.открытое = да;
признак "закрытое" будет автоматически удалён из сундука.

Аналогично можно реализовать взросление мальчика:
Вася это @мужчина;
автоматически уберёт класс "@мальчик" из объекта "Вася".

128

версия 2.a.4.11 альфа

Очередная версия.

Много изменений, подробнее распишу завтра.

Онлайн-версия также обновлена.

129

Новое в версии 2.a.4.11 альфа:

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

Веб-редактор
Много мелких доработок. Из крупных нововведений стоит отметить карту и расширенный анализ синтаксиса команд:
http://s2.uploads.ru/aRQnj.png
http://sh.uploads.ru/t/in8B5.png
http://s2.uploads.ru/t/XAQ2N.png
Тем не менее, обе формы нуждаются в дальнейшей доработке.

Движок tom.dll
- Внесены изменения в структуру локаций и объектов. Теперь допускается размещение объектов снаружи локации, при этом объект становится внешним и виден в двух локациях одновременно. Очень удобно для дверей, ворот, окон и заборов между локациями. Раньше такие объекты приходилось дублировать. Для примера см. дверь в башне.
- Изменен ключ расположения объекта на месте: #Вм - объект виден в этом месте, #Дм - доступен в этом месте, #!м - отсутствует в этом месте. Это необходимо для поддержки прозрачных контейнеров. Для примера см. розу в витрине на башне.
- также много исправлений ошибок и мелких доработок.

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

130

Почему-то не запускается тестовый пример forms.tom. Пишет "Ошибка платформы! Файл: ...forms.tom". Остальные примеры вроде запускаются.

И веб-редактора в последнем архиве я не нашёл. Нашёл в папке bin\webtom

Отредактировано Alexandr (2017-03-19 12:13:56)

131

Версия 2.a.4.12 альфа

Очередной релиз.
Много доработок и исправленных ошибок. Словарь дополнен новыми словами.
Верстка страниц модернизирована благодаря RealPeha, за что ему спасибо огромное.
Каких-либо особых изменений в релизе нет, просто всё стало работать немного лучше.

132

Версия 2.a.5.0

Очередной релиз.
Изменена внутренняя структура парсера, добавлена поддержка NPC.

Основные изменения:
Словарь
- убраны излишние ударения в словах, ударения оставлены лишь там где есть возможность неоднозначного прочтения.
- добавлены новые слова и их значения.

webtom
- добавлено отображение ударений в выводимом тексте;
- добавлены дополнительные настройки, в частности возможность отключать ударения и буквицы;
- добавлен запуск в режиме сервера (без открытия игрового окна).
- добавлены стандартные буквицы \TOM2_v2.a.5.0\bin\webtom\letters\ (для начала алфавита)
Возможно, кто-нибудь возьмётся дорисовать или полностью переделать стандартные буквицы?

тесты
- добавлен тест для просмотра стандартных буквиц.

движок tom.dll
- изменена структура парсера и принцип сбора ошибок парсинга; внешне это не сильно заметно, но тем не менее возможны непредусмотренные ошибки, надо еще потестить.
- добавлена поддержка NPC на уровне парсера.
- исправлены старые ошибки и добавлены новые.

133

Поддержка 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.

134

Анонс изменений в интерфейсе версии 2.a.5.1

В синтаксический анализ добавлена расшифровка ключей:
http://se.uploads.ru/t/6GkYy.png

Список свойств объекта теперь включает унаследованные свойства и методы:
http://s9.uploads.ru/t/b16Wt.png
(1) - собственные свойства и методы объекта;
(2) - свойства и методы, унаследованные от классов;
(3) - унаследованные свойства, рекомендованные к переопределению.

Для 3-го пункта в синтаксис введено новое ключевое слово - template (шаблон), сокращенно tmp, которое работает аналогично property, но рекомендует переопределение этого свойства у потомков.

135

Анонс изменений в словаре версии 2.a.5.1

Добавлены или изменены следующие действия:
- вооружаться, надевать, одевать, снимать, давать;
- атаковать/нападать;

Добавлены временные заглушки для действий:
- сделать, приготовить, пожарить, сварить, сшить, построить.

И также сделано много различных исправлений в коде стандартной библиотеки.

136

Очередная Версия 2.a.5.1

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

Поэтому просто пойдите, найдите в подземелье гоблина и УБЕЙТЕ его! если сможете...

137

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

138

Alexandr написал(а):

Убил. Как демонстрация боевой системы, хорошо. Но с точки зрения мотивации это было совершенно бессмысленно.

А мотивации нет ни у ГГ ни у NPC. Нужна система отношений, хотя бы простенькая.

Alexandr написал(а):

А ещё я дал гоблину арбалет, но он не воспользовался им.

он спокойно положил его в инвентарь :D попробуй вооружить гоблина ;)

Alexandr написал(а):

После гибели гоблина нельзя осмотреть его инвентарь и забрать его вещи.

Можно обыскать гоблина, но это действие всё еще не доделано...

139

Анонс версии 2.a.5.2 alpha

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

К релизу планируется:
- объединение в команде объектов союзами И и ИЛИ, которые также будут работать через и-списки и или-списки;
- расширить подбор аргументов к функциям, разрешив подбирать объекты по их признакам (сейчас только по типу и классу).

Дизклеймер: списки работаю пока очень плохо - там еще много работы, но это уже потом.

140

Очередная Версия 2.a.5.2

Основные изменения смотрите постом выше.
Демо-игра расширена, и помимо прочего более или менее заработало действие "обыскать".

А еще есть версия с музыкой: https://cloud.mail.ru/public/MKgU/xM3PRAa9X (24 мегабайта)

141

Первая ссылка не работает. 404 Not Found

142

Спасибо, поправил)