Render.ru
Поддержать

Welcome to Dante's Inferno. Дневники разработчика. Часть 10

WIP Игра (Работа в прогрессе) WIP Хобби (Работа в прогрессе)

Приветствую грешники!

На связи OLD, давно меня не было. А точнее 4е месяца(!). Вы наверное решили, что я умер? Хотя кто вы, здесь меня только моя мамка и читает, привет мам, да поел я уже, поел. Почему я не постил отчёт? Да постить нечего было, я в основном работал над кодом, а на этом сайте я так понимаю не смогут в полной мере оценить листинг кода, здесь нужно, что-то более наглядное. Вот как только создал модели для второго уровня, так и выкладываю этот ньювслейт.

Ну ладно, начинаю ежемесячный отчет о проделанной работе, над проектом Welcome to Dante's Inferno, игрой в жанре аркады с элементами рогалика.

Я знаю некоторые инди студии умудряются за 4е месяца, создать и выпустить в стим игру, но я за всё это время успел доделать только первый уровень и закончить второй. Грустновато, но винить следует только себя, назвался груздём, полезай в лукошко.

Итак что было запланировано ранее:

1. Закончить первый уровень. (Дотекстурировать оставшиеся пропсы, расставить это всё по карте, создать систему бесконечно генерирующую грешников,
которые просто шатаются по уровню)
. - выполнил
2. Начать создавать второй уровень, создать второго босса - Миноса. - выполнил

А теперь ниже более подробный список того чем я занимался всё это время. Примечание, всё ниже описанное это скорее в личную копилку для своей истории создания, чем для наглядного опыта, если это читает настоящий разработчик игр прошу понять и простить.

MinosImage.jpg

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

10.08.25 - 11.08.25- Исправил баг бесов стрелков, когда при встрече с игроком они отбегают назад на точку и анимация бега не отключается.- Исправил баг у всех юнитов с возможностью ближнего боя, а это почти все, кроме стрелков, с прерыванием атаки в случае уворота героя.Теперь анимация атаки всегда проигрывается, а сам юнит всегда немного доворачивается в сторону игрока если последний отбегает, опциональнодоворот можно отключить и враг в случае уворота игрока будет просто промахиваться в сторону изначального удара.- Исправил баг со звуком атаки Харона, высшего демона-охотника и демона мясника, теперь звук проигрывается, а не сливается.- Создал и добавил большое кол-во разных звуков для разных ситуаций и объектов.А именно:1. Сделал 3и фразы для беса колдуна, когда он кастует заклинание, а также один звук когда он ударят посохом о землю.2. Сделал вопль для высшего демона-убийцы.3. Сделал фразу для демона колдуна, когда он кастует заклинание, а также звук при ударе посохом о землю4. Харону добавил фразу при вызове союзного моба - Лодки и во время смерти5. Лодка Харона теперь так же погружается и поднимается со звукам6. Демон ключник теперь при появлении издаёт рёв.7. Сделал разные звуки для призывных камней, а также звук когда их уничтожают8. Сделал 2а звука для туториала обучения управления игрока9. Добавил звуки местам силы и колодцам с маной10. Создал музыкальный трек для первого уровня.- Опять скорректировал и исправил время для запуска миссий уровня и туториалов.- Создал иконки седого древа, зубчатого камня, лагеря демонов для миникарты и интегрировал их в игру.- Исправил баг с жизнями Харона, теперь здоровье у боссов зависит не от кол-ва брони, как у бесов и демонов, а от его уровня.

14.08.25 - 15.08.25- Написал параллельную систему для выдачи заданий игроку, а также контролль их выполнения- Нарисовал спрайты и добавил полоску жизней босса на канвас, чтобы игрок видел сколько здоровья осталось у босса- Подкорректировал текстуру глав героя в трусах, теперь на ногах у него нет тапочек и на первом уровне ходит он босой- Создал систему оповещения игрока о том какой бонус он подобрал и что этот бонус делает- Благодаря системе оповещения сделал маленькую подсказку если игрок затупит и не сможет вызвать босса- Так же с помощью системы оповещения настроил всплывающий текст названия круга, в самом начале каждого уровня.- Наконец разобрался с запеканием света, всегда забываю как это делается, теперь уровень загружается с корректными тенями- Исправил баг с подбором бонусов, теперь игрок всегда может подобрать бонус в случае нужды, даже если он раньше на него наступал и не мог его взять из-за отсутствия свободного места в слоте бонусов.- Исправил баг с полоской жизней босса, теперь кол-во жизней корректно отображается.- Написал скрипт для рандомизации проигрывания музыки на уровне- Сделал ещё один музыкальный трек, теперь все три трека проигрываются рандомно, без повторений.- И ещё в который раз дорисовал карту земли, исправил основную дорогу так как там было много повторяющихся тайлов- Исправил баг при перегрузке уровня, когда враги перестают загружаются - проблема была как в всегда в статическом списке врагов, который не обнулялся перед выходом из игры- Исправил баг с очередностью обучающих миссий при перезагрузке уровня, в этом случае также виновата статическая переменная номера диалога обучающей миссии которая сохранялась при перезагрузке.- Добавил свою кастомную систему сохранения, вместо префсов, пока только для сохранения и загрузки настроек графики.

18.08.25-19.08.25- Отладил систему сохранения настроек, дописал методы для звука и музыки, добавил звуки для кнопок.- Отладил систему звука, а именно вк/откл всех звуков на уровне, это было весело, но я превозмог.- Сделал ещё звуков, для интро-диалога, и звуки для хорошей, плохой концовки уровня- Нарисовал кнопочки, интегрировал их в игру и присобачил к ним звуки- Скорректировал камеру игрока, а именно удалил её от земли, теперь челик меньше, но больше видно вокруг- Игровое меню и главное меню настроил для дальнейшего дублирования для следующих уровней- А так же воспользовавшись системой сообщений игрока, добавил вывод сообщения об отсутствии маны в случае её окончания.

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

26.08.25-27.08.25- Написал систему сохранения уровня, пока только сохранения всех врагов со всеми текущими параметрами.- Расширил систему сохранения, теперь сохраняются параметры врагов и всех бонусов, в том числе и кубов с символами- Написал систему загрузки юнитов и бонусов из сохранений, это было муторно и многое я ещё не дописал, сейчас предстоит долгая отладка системы.- Так же исправил баг с перезаписыванием автосохранения, теперь при перезаписи добавляются все строки, а не одна на весь файл.- Кстати так же расширил параметры сохранений и добавил к позициям объекта ещё и поворот, написал несколько методов для конвертации из стринга в вектор и обратно. Итого на рядового юнита у меня приходится 21(!) параметр который я планирую сохранять и загружать.В это число входит и его статистика и физическое положение и внешний вид с апгрейдами. Для чего я так заморочился?Просто планирую использовать нечто подобное для последующих игр, более масштабных и сложных.

03.09.25-04.09.25- Отладил систему сохранения юнитов и бонусов, это может показаться странным, но она работает, абсолютно все характеристики и положения всех юнитов на карте сохраняются.- Дополнил метод оповещения игрока, теперь сообщения можно ещё и распалогать в любом месте экрана из кода, чтобы в одном случае оно было по центру, а вдругом над головой игрока.- Подкорректировал систему сохранения, теперь при нажатии кнопки в главное меню, происходит секундная задержка и сообщение о сохранении игры.- Пока ещё не решил стоит добавлять кнопку сохранить игру или нет, так как игра подразумевает перманентную смерть, то смысл сохраняться перед неким боссом нет, игрок может просто выйти из игры и отдохнуть перед схваткой и заново загрузить с того места, где вышел или умереть и начать заново.- Скорректировал положение сообщений для игрока теперь все сообщения возникают над головой игрока, что облегчает их чтение.- Отлаживал систему сохранения и загрузки списка туториалов и списка миссий, то ещё муторное действие. Пришлось значительно рефакторить код туториалов и особенно миссий, чтобы уменьшить связи, тем самым сделать задел и для других уровней. У меня было то что в одном скрипте с миссиями хранилось много уникальных ссылок на объекты на сцене, которых(объектов) скорее всего не будет на следующих уровнях, но код постоянно ищет связи и выдаёт ошибку. Исправлял и бился головой о монитор.Короче пока остановился на том, что настроил сохранение миссий и туториалов, систему загрузки нужно делать с загрузкой и сохранения игрока, так как мисии напрямую от этого зависят.- Так же сделал задел на будущее, написал пока примерный код для загрузки мобов- союзников игрока, но на 1м уровне их не будет, они начнутся со второго уровня. Пока эта тема не тревожит.- Так же думаю на миникарте отображать все развалины города и деревья, а также перерисовать спрайты с колодцами маны и местами силы.

07.09.25-08.09.25- Дописал часть системы для сохранения и загрузки игрока, почти дописал, осталось разобраться с магией игрока. Немного рефакторил код, потому что когда сохранял статистику игрока выяснил много неучтённых деталей, вроде того, что рандомное кастомные плюхи у игрока должны начинаться с единицы, а не с нуля, добавил увеличение урона в ближнем бою на максимальном уровне игрока. По мелочи настроил в меню полный цыкл игры, начать новую игру или продолжить текущую.Далее нужно объединять системы сохранения игрока, туториалов и миссий и начинать уже отлаживать всё в куче.

11.09.25-12.09.25- Исправил баг, когда при полном уничтожении всех врагов на уровне мясник не может найти союзного врага, чтобы пойти к нему, теперь в подобном случае бучер, так же как и волшебник ищет ближайшее место силы и идёт к нему.- Исправил баг с глюком звука, когда появляется лодка - миньон Харона.- Продолжил дебажить сохранение и загрузку уровня. Немного поехал кукухой, но это состояние для меня привычно.* Често я на каком-то этапе зашёл в тупик, у меня первый уровень это обучающий с туториалом и миссиями и там куча таймеров и анимаций которые если и можно сохранить, то загрузить адекватно крайне затруднительно, тем более нужно было учитывать, что на других уровнях ничего подобного и близко не будет. Побившись головой о монитор, покушав и поспав, решил посмотреть, а как другие игры сохраняют первые обучающие уровни игрока. И внезапно обнаружилось, что они не сохраняют подобные уровни! Вот так просто, сохранение и загрузка там отключена. Решил сделать также. Таким образом и решился старый вопрос о том стоит или нет добавлять кнопку "сохранить" в игровое меню.Теперь у меня первый уровень не сохраняется, точнее автосохраняется в самом конце, когда уже игрок побеждает босса, а все остальные уровни сохраняются. НО кнопка сохранения на последующих уровнях доступна ровно до того момента пока не будет призван очередной босс, как только появляется босс я опять отбираю возможность сохранять игру, жестоко? Да, но игрок может сохраниться перед боссом, а если он будет сохраняться во время схватки то таким образом появляется много непредсказуемых багов, когда я опять попытаюсь воспроизвести все те анимации и префабы которые я навешал на сцену во время появления босса и схватки с ним.- Исправил баг с некорректным присвоением префабов наручен игрока во время повышения уровня.- Запустил начало работы над интро сценой в самом начае игры, пока есть только сцена и несколько служебных скриптов.- Настроил сохранение и загрузку игрока, как в старом сохранённом уровне, так и при переходе на новый уровень.- С огромным трудом выловил баг, когда в ID кодировке означающего лут(символ/букву) высшего демона вместо подстроки пусто "_" отображался 0.- Произвёл рефакоринг кода, чтобы связать второй уровень с первым. Всё двигается в сторону готовой демки.

15.09.25-16.09.25- Замоделил второго босса - Миноса.

19.09.25-20.09.25- Сделал развёртку, затекстурил, заскинил и заригал персонажа

23.09.25-24.09.25- Заанимировал модель персонажа

27.09.25-28.09.25- Накидал ещё несколько анимаций для босса, замоделил и затекстурил трибуну для Миноса, всё интегрировал в двиг. В юньке мне не понравилось как выглядит текстура трибуны (я использовал готовую текстуру каменной кладки немного отредактированую), заново перерисовал текстуру трибуны, чтобы она более менее соответсвовала стилю игры, также отредактировал некоторые анимации босса, анимацию ходьбы полностью переделал.- Создал префаб босса из модели Миноса, создал префаб для призыва стража, создал анимированную префаб для Миноса, который используется вне боя, а служит декорацией на уровне.- Создал две иконки для Миноса, одну для диалога, вторую для префаба босса.- Нарисовал иконку для мини карты для места силы и для колодцев с маной, оставил только первую, колодцы с маной плохо видны.- Начал мусолить терраин второго уровня, застрял на том что не могу повторить в редакторе терраин предыдущего уровня с новыми текстурами.

05.10.25-06.10.25- Повторил в редакторе терраин предыдущего уровня с новыми текстурами, по советам Алисы, через дебаг мод, странная фигня этот террейн в юнити, почему-то не работаетбез танцев с бубном.- Собрал рефенсы для моделирования объектов на 2м уровне, в том числе и для миньёна/помошника миноса - змеячервя./Похоже без плана я не могу работать.

05.10.25-06.10.25- Замоделил Разрушенный храм

09.10.25-10.10.25- Замоделил скалы и большие камни

13.10.25-14.10.25- Замоделил деревья которые постоянно раскачиваются от ветра и заанимировал их

17.10.25-18.10.25- Замоделил статую женщины и статую мужчины

21.10.25-22.10.25- Замоделил помощник миноса я его назвал червезмей/WormSnake или змеечервь, а также заанимировал как он выпрыгивает из под земли.- Интегрировал все созданные ассеты для второго уровня в движок.- Занимался рутиной, а именно из ассетов делал префабы для дальнейшей работы. Осталось самое мерзкое и неприятное, а именно текстурирование, ненавижу рисовать чёртовы текстуры.

25.10.25-26.10.25- Затекстурил: змеечервя, разрушенный храм миноса, 2е колонны, пьедестал, модели статуй грешника и грешницы.- Из пьедестала и моделей статуй сделал префабы статуи грешника и грешницы.

29.10.25-30.10.25- Затекстурил камни- Раскидал ассеты по сцене второго уровня, конечно скудновато получилось, но то что есть, то есть. Теперь предстоит долгий прцесс дебагинга уровня.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Icon_Minos.png

Ну что же грешник чем займемся далее?

Итак, я до сих пор не ввёл в игру нейтральных грешников, нужно добавить их на первый и второй уровень, а также согласно описанию второго круга, мне нужно реализовать визуализацию тумана войны и ветра, ну и сделать механику битвы со 2м боссом. Кстати у него в помощниках будет змеечервь. Ну и переходить к боссу 3го уровня и самому уровню, благо там совсем мало будет моделей.

План на предстоящий месяц:

1. Сделать из мест сил интерактивные объекты, то есть когда игрок подходит к этому месту он получает немного маны, а все окружающие демоны сбегаются к этому месту.

2. Визуализировать туман войны для второго уровня.

3. Визуализировать ветер для второго уровня.

4. Сделать механику битвы со вторым боссом.

5. Сделать живую сценку, где Минос судит грешников.

6. Переходить к 3ему уровню, замоделить 3го босса - Цербера.

Как то так как.

На этом будем прощаться. Я точно не знаю до следующего месяца или дольше в нашем меняющемся мире я уже вообще ничего не могу сказать наверняка, ну время покажет.

Всё, всех благ и много звёздной пыли. Покедова.

MinosGif.gif



230
Комментарии:0
по поступлению