ECW DevLog #8. Рефактор рефактора
Ещё один этап страдания. Мыслительный рефакторинг и закладка фундамента.
3. Что на гифке
Раньше это всё было красиво сделано, текст там выводился нормально и всё-такое. Зато сейчас это работает через класс UI::Scene, у которого функция отрисовки выглядит примерно так:
Всё, что на гифке рисуется - через UI::Scene! Хотя, конечно, обработку анимаций надо будет ещё налаживать, но какое-никакое ядро уже есть.
1. Файлы конфигураций
Произвёл рефакторинг в уме системы конфигов и кэширования. В будущем ещё буду проверять систему наследования (это чтобы многомиллиардное коммьюнити моей игры мечты могло создавать крутые моды). Там на самом деле сложно всё, ИИ мне про какие-то AST-деревья рассказывал.
1.1. Коммонизация
В общем-то, всё, кроме GUI (ну, это системное), задаётся через текстовые JSON-style файлы. Соответственно, были реализованы различные механизмы кэширования самих файлов и объектов, которые из них создаются. Общая цепочка: файл -> конфиги[тип_сущности][токен_конфига].
Далее, можем либо закэшировать прототип объекта, создав его из конфига, либо создавать объекты напрямую из конфига, минуя прототипирование объекта.
2. Менеджер кэширования
В итоге, раскопал заготовку для менеджера кэширования. Ранее я на него забил, поскольку сложно, непонятно. Нужны шаблоны, связь между типом объекта и enum. Но с помощью ИИ разобрался. Оказалось, там ужё всё написано почти как надо. И теперь вместо где-попальных объявлений можно писать так:
Только сейчас осознал, что в такой кэш можно вообще впихать вообще все синглтоны и менеджеры, и по сути точкой входа и выхода для логики всей программы становится mCACHE.
4. Задействованные файлы
4.1. Script
4.2. Scenes
4.3. Drawer
Кстати, тут есть другой пост, там прикреплен важный опрос связанный с концепцией игры, очень хочется узнать ваше мнение!