НЕВОЗМОЖНАЯ ЗАДАЧА В ПРОГРАММИРОВАНИИ (или GAMEDEV для даунов)
Наверное все играли в майнкрафт, террарию, прочие "квадратные игры" и даже не задумывались как они работают. Типа это все просто пиксель арт с незамысловатой логикой. Когда я начинал свой проект, были именно такие мысли, но я ошибался. Идея казалась простой, песочница с элементами стратегии, где группа болванчиков будут пытаться построить свое государство с нуля. А игрок будет им в этом помогать. Другими словами, хотел свой Rimworld в масштабах Хойки 4.
Определившись с идеей и движком начал думать как все это реализовать. В итоге имеем сетку, хранящую в себе всю информацию о карте, по ней же осуществляется поиск пути и передвижение болванчиков. Клетки могут быть заняты некоторыми объектами по типу дерева, домика и т.д. После этого начал пилить механику погоды, в процессе реализовал систему состояний для объектов и клеток. Теперь на деревья падал снег, где не было влаги появлялись пустыни и т.д. Вроде все шло хорошо, до определенного момента.
Не смотря на мою зацикленность на оптимизации возникла проблема. При обновлении карты возникали микрофризы. Причиной этого была плохая реализация моего метода и абсолютная неспособность Unity Tilemaps эффективно обновлять большое количество клеток. Когда я разобрался со скриптами на своей стороне, тайлмап юнитеков все равно создавал лаги.
Пришлось написать свой собственный рендер, карта разделялась на чанки которые обрабатывались на фоне и после данные шли на шейдер. Таким образом добавил пару кадров и избавился от микрофризов.
Но выглядело все как то топорно, переходы от одной текстуры к другой были слишком резкими, я решил это исправить и видимо стал ближе к истине нашего мира...
Начал менять существующий шейдер, но ниче толкового не получилось. Делаешь переход по Y, ломается переход по X и наоборот, а это я еще не учитывал соседей по диагонали.
Перерыл весь инет, взял в рабство нейросеть но не смог сделать хоть что то сносное, постоянно возникали какие то артефакты.
После всех неудачных попыток словил дизмораль, агрессию и срыв нервов. Но все равно продолжал искать решение.
После скопировал у какого то чела код шейдера, несколько дней переписывал его и свершилось, получилась картинка с кучей артефактов, убивающая производительность. Снова провал.
В итоге во время очередного срыва я понял, я столкнулся с чем то нереальным, не поддающееся созданию в нашей вселенной. Нельзя взять и сделать переход между текстурами, ни один язык программирования не позволяет сделать это. Вы сможете симулировать лучи света, но не сможете соединить текстуру по 8 направлениям. Ни математически, ни с точки зрения Бога это невозможно. Все что я видел до этого, что у кого то получалось это все ложь и иллюзия. Это подмена, а не соединение текстур. Все эти лжецы должны быть наказаны, я их ненавижу.
Прошел месяц, как я пытаюсь реализовать тот переход. Давно уже забил на проект, все что важно это переход, который невозможен в математике этого мира. Разработчики игр, в особенности те кто пишут графику полные идиоты. Я вас всех искренне ненавижу и желаю всего плохого. Я тот кто понял истину, нашел предел нашего мира, пока вы там создаете какую то чертовщину. Я здесь разработчик. Я прав.