Всем приветы!
Наверное нужно описать текущее положение платформы ТОМ2.
Я действительно долго отсутствовал, и даже почту часто не читал.
Последние полгода никаких существенных работ не велось, можно сказать что проект заброшен. Но не факт что навсегда, для меня такие паузы в порядке вещей, а в разработку вложено слишком много, что бы её просто так взять и похоронить.
Причины такой паузы скорее личные - семейные дела, состояние здоровья и потеря интереса к программированию как таковому вообще.
Если говорить о поддержке сообществом, то на отсутствие интереса к платформе грех жаловаться. Масса людей спрашивает "как дела", и если бы этого не было, разработка наверное встала бы еще несколько лет назад.
Еще одной демотивирующей причиной стало осознание глобальной ошибки, заложенной в архитектуру платформы в самом начале. К сожалению, полноценно прочувствовать эту ошибку получилось лишь тогда, когда я сам начал много программировать на языке ТОМ2 создавая стандартную библиотеку.
В 1м ТОМе было 2 парсера: первый занимался разбором кода, второй анализировал пользовательские команды в процессе игры.
Во 2м ТОМе была объявлена возможность писать код на языке близком к естественному, поэтому я посчитал что и с командами на ЕЯ и с кодом может справиться один универсальный парсер. Это было ошибкой:
- В коде встречается масса языковых конструкций, которые не нужны для обработки команд пользователя. Можно сказать что язык игровых команд проще. Конечно, в идеале парсер должен понимать всё, но в нашем случае это излишнее усложнение, приведшее к сложностям отладки и проблемам с дальнейшем развитием. 2 разных языка предъявляют совершенно разные требования к парсеру, и попытка объединить это в одном привела к полному развалу парсера.
- Для игры важна адаптивность парсера к игровой ситуации и его вариантность. Если парсер выполнит команду совсем не так как ожидал игрок, это в плюс для игры. Но для выполнения кода это огромный минус! Код всегда должен выполняться однозначно, иначе его работа становится непредсказуемой, а отладка невозможной.
Напрашивается очередной глобальный рефакторинг.
Из парсера нужно выкинуть всё, что связано с обработкой кода, а интерпретатор кода взять из 1го ТОМа.
Задача весьма глобальная, но необходимая.
Развивать дальше ошибочную концепцию смысла не вижу...