Проблема заключалась в том, что все мои архивы-бэкапы оказлись битыми. И вот это конечно было совсем уму нерастяжимо. Они как NAN расползлись по всем хранилищам. А ведь я был уверен что у меня есть актуальные бэкапы на фрэшке, но увы. Впрочем спасённого достаточно для полноценного продолжения работы. В промежуточных бэкапах не было ничерта интересного.
Добавлено 20-07-2019 в 17:26:
Если я немного туманно написал: текущий прогресс полностью сохранён. Утеряна только б0льшая часть бэкапов в промежутке между февралём-апрелем.
Добавлено 20-07-2019 в 17:28:
Мне это напомнило начало разработки Xash3D. Тогда я точно так же потерял стартовые бэкапы с февраля по июнь. Правда там у меня ничего не полетело. Я их сам удалил, подумал что не пригодятся. Так и оказалось.
Добавлено 20-07-2019 в 17:32:
Ну чтож, выводы из случившегося сделаны. Написан скрипт для тестирования всех бэкапов на валидность, а к скрипту создания бэкапа добавлен параметр сохранения информации для восстановления.
Потихоньку переписываю вообще всё. Заворачиваю в синглтоны и атд по смыслу. В движке накопилось очень много мест для шареного кода, эти места лучше всего реализовать в виде закрытых классов. Конечно будь я помоложе, я бы всё это разломал на отдельные дллки, но прав был тот чувак с геймдева, который когда-то сказал мне, пока ты молод и неопытен, тебе хочется всё разделить на модули. А когда ты уже искушенный, для тебя оптимальмым является единый экзешник и никакого DLL Hell. Сейчас, спустя 13 лет, я понимаю, насколько же он был прав.
Дядя Миша писал: Сейчас, спустя 13 лет, я понимаю, насколько же он был прав.
Он был совершенно не прав. Возможно, он это уже понял. А может быть, и нет, кто его знает.
Цитата:
Дядя Миша писал: оптимальмым является единый экзешник и никакого DLL Hell
Модули могут быть статически линкуемыми, это не существенно.
Но у статических модулей есть серьёзная проблема - не срабатывает автоматическая инициализация глобальных объектов, из-за чего, как пример, не работает авторегистрация компонентов фабрики. Опытные и искушённые, конечно же, будут регистрировать вручную (они же опытные) или предложат какую-нибудь фичу из Boost (они же искушённые), но что мы говорим таким способам решения простых задач? НЕ СЕГОДНЯ. И переводим lib в dll.
Переписываю загрузчик и менеджер текстур. Фактически - полдвижка. Где-то на этой точке необратимо дропнется потдержка восьмибитных текстур и прочей экзотики, типа впечатывания номера билда в массив пикселей.
Останется только три базовых формата - bmp, tga и dds. Причём, как водится, первые два - для разработки, а последний уже для финальной сборки. Впрочем, в том же крайэнджине в качестве формата источника юзают TIFF, но насколько я помню TIFF это вообще мета-контейнер, а не формат.