Devlog 2026.02


Наконец это случилось! То чего я боялся больше чем потратил на него времени. В игре появился какой-то визуал.

Оказалось что это второе явление визуала в этой игре. Ютуб хранит для меня эти позорные моменты. Оказывается первый раз я пытался заняться Змейкой больше 6 лет назад. И от кубиков к персонажам я перешел буквально за два месяца. Никто уже не узнает что меня тогда остановило, но у меня даже интерфейсы какие-то были. Изначально у меня были какие-то самопальные персонажи, похожие роботов из Звездных Воин. Не крутых дройдеков, а ту фигню, которую джавы разбирали у себя на корабле. Из-за трехмерности пришлось наклонить камеру, но она была еще ортографическая.

Второй раз я занялся игрой больше 2х лет назад. Судя по сохранившемся видео у меня появился ассет с буллетхеллом и стало понятно как именно персонажи будут атаковать. Изначально я пытался адаптировать ассет, который предназначался для 2д-игр. Полноценный буллетхелл мне конечно совершенно не нужен, но самостоятельно возиться со снарядами у меня нет вообще никакого желания. Тогда же я поменял настройки камеры на перспективу и собрал уровень из боле подходящих под это ассетов.

Эти настройки камеры перекочевали в третью версию игры без изменений. И самое удивительное что мне вообще не хочется их менять. Я уверен в том что я в принципе не способен к поиску решений связанных с картинкой… но я беру этих персонажей, эту камеру и по крайней мере камера мне нравится. Чтобы мне начали нравиться персонажи, надо похимичить с шейдерами, но это для меня пока на уровне магии.

Я не хотел браться за визуал пока не доделаю ядро ролевой системы. В прошлый раз я хвастался тем как замечательно у меня получилось выделить Статусы и Модификаторы. Мне даже удалось сделать модификатор на уровне меты. При попытке же перетащить их на уровень боевки случилась проблема, которую я уже даже преодолевал пару раз. Проблема в разделении на мету и кор. И не очень понятно почему я не догадался решить эту проблему один раз вместо трех. Сначала я разделил персонажей, почему-то не выделив остальные карточки. Это нужно было просто потому что у меня в бою очевидно может быть несколько персонажей основанных на одной карточке. Потом я делил свойства. По той же причине. И вот наконец выяснилось что инстансы свойств ссылаются на те же параметры что и их меты. Как так.

А параметр свойства у меня - это такая очень крутая штука, которая умеет сама связываться с другими свойствами, от которых может прямо или косвенно зависеть. Более того, я как-то умудрился не разделить параметры на дату и рантайм, при том что такое деление у карточек и свойств я заложил изначально, хоть и недосчитался одного слоя.

Теперь параметры приходится вручную инициализировать при инициализации самих свойств. Это нужно именно для работы механизма налаживания связей и зависимостей - без отдельного пинка само там ничего не случится.

Ну и оказалось что параметры у меня застряли в каких-то карточках, откуда их пришлось вычищать - у карточек могут быть только свойства. В конце концов у меня сломалось сохранение, которое я не трогал буквально ни разу за прошедший год, с момента когда у меня сохранение в принципе появилось.

Хочется надеяться что мне не придется больше в ядро лазить, потому что это довольно утомительно. Очень много зависимостей, очень много изменяющихся файлов. Может потребоваться много времени чтобы просто начать компиляцию проходить. А потом еще искать возникающие баги. Это просто физически тяжело и очень плохо на мотивации сказывается.

Но графикой я не хотел заниматься еще сильнее, поэтому решил упороться в ASMDEFы. Это такая штука, которая позволяет перекомпилировать только то что менялось, было с ним связано или валяется снаружи. Проблемы на самом деле начались с того что я для последней переделки ядра установил себе Console Pro. И вообще не знаю почему, но компиляция начала занимать заметно дофига времени. Я как-то привык посмеиваться над теми кто экономит целую половину времени при 5 секундах компиляции, но когда она начала заниматься 20 секунд - тут даже я напрягся.

Конечно все легко пойти не могло. По совету ГПТ я решил поделить игру на довольно большое количество частей. Ну и тут выясняется что чтобы работать из верхнего слоя с чем-то из нижнего слоя, ему нужна прокладка в верхнем слое. Прям как в моем любимом DIе. Такой прокладкой являются… интерфейсы! Наконец концепция интерфейсов обрела хоть какую-то ценность хоть и является костылем, нужным лишь для того чтобы компиляция проекта занимала меньше времени, а не потому что логика самой игры этого требует. Иронично.

Ну и еще у моего буллетхельного ассета оказалось нет своих ASMDEFов. Потому что чувак имеет несколько проектов для которых использует общую библиотеку, и вот в какой-то очередной версии Юнити эти проекты ее перестали видеть. Какая-то магия случилась. Я ее конечно починил, но теперь интересно почему у более опытного чувака это вызвало хоть какие-то проблемы.

И таки да. Теперь компиляция у меня занимает чо-то типа пару секунд. Даже при том что я задолбался примерно на середине и так и не закрыл ASMDEFами боевку и UI. Подозреваю что в этом больше заслуги того что я закрыл ассет, а не свой код, но все же.

Get mineNimble

Leave a comment

Log in with itch.io to leave a comment.