Новая система сборки
...много переделывал её и забывал как работает. В начале сборщика проекта не было - один main.cpp и .hpp модули. На каждый чих я тратил по 2 мин компиляции, чтобы сделать тест игры в 5 сек и повторять этот процесс по кругу - мне надоело.
Я делал сложные вещи: редактор анимаций, q-tree, софтвер-рендер и свой вариант rotsprite - ни с чем из этого не было столько проблем. Что нужно от сборщика? Пересобрать изменения кода в многопотоке с логами. CMake всё это умеет, но он выглядит как perl + linux bash - любая вещь делается более чем десятью способами, но ты не знаешь какой способ правильный и не устаревший. Повезло что существует подобный аналог на Python - SCons. На нём мне доступна любая автоматизация из питона: копирование файлов с инфой в папку билда, пакование ассетов, вычисление хэшей бинарников, определение системы. Подставой от сконса стало то, что при линковке все .o модули вписывались в длинную команду, которая привысила лимит символов в Windows (8K символов в команде). Разраб SCons ничего не сделал с этим, а костыли были нерабочими и я решил выпилить SCons из игры.
В реальности я it-раб с завода, поэтому не мог заниматься игрой долго - забывал как работает собственный сборщик. В игре все компоненты можно делать отлельно друг от друга, но в сборщике нужно сделать всё и сразу и чтоб работало. После двух перепиливаний, попробовал сделать подробные коменты и отдельную справку - всё равно хуйня.
Поспрашивав нейронку, я узнал о неком подходе где данные и функции валяются отдельно, а действия программы это что-то ещё отдельное и если я так сделаю, то всё получится (нет). Сейчас билд-система, это самый главный тормоз проекта. На CMake я не перейду, это низко. В крайнем случае, просто ебану один батник на сборку игры, а под линухом .sh и всё - проект HPW так и начинался, с одного .bat файла с опциями для mingw.