DevLog (Capybara Survivors)
12 постов
12 постов
Ну или почти первая.
Мысль разрабатывать игры уже давно сидит в голове, но делать хоть что-то я начал только недавно. К тому же подумал, что у меня есть навыки в программировании и веб-разработке, и вкатиться будет немного легче, чем могло быть с полного нуля. С учениками я сделал уже несколько игр в Roblox и на Pygame. Да, это не совсем то, плюс идеи были не мои, и делал не лично я — я только объяснял материал и сопровождал их на пути разработки. Но опыт есть опыт, даже такой.
Начал где-то с месяц назад: просто скачал Godot и приступил делать что-то. «Что-то» — потому что плана никакого не было, была только цель потыкать движок и просто уже делать хоть как-то, а не откладывать мысль на потом.
Спустя какое-то время я сделал вот такую странную игру:
И тут я создал примитивные механики, посмотрел на процесс разработки в целом, разобрался со сборкой билдов, сталкивался с багами и исправлял их. Также я проводил плейтесты и продумывал вопросы для Google-формы, которую люди заполняли после игры.
На момент, когда игра была готова, я начал читать литературу по геймдизайну, закреплял на практике полученные знания, писал кучу заметок и параллельно смотрел множество полезных видео.
И вот тут я уже решил сделать что-то чуть большее — то, во что я бы и сам играл с удовольствием. Идей было (и есть) много, но решил остановиться на этой. Это будет некий bullet-hell, рогалик — в общем, Vampire Survivors-like игра, поделённая на две основные части, как в Cult of the Lamb. Первая — это, собственно, походы в разные локации с противниками, где нужно собирать различные травы и ресурсы. А вторая часть будет наполнена мини-играми в хабе.
Главным героем будет капибара-волшебник :D
Всё это пока лишь прототип, призванный показать общую суть игры. Основываясь на нём, я скоро начну полноценную разработку. Чтобы было с чем работать, я уже нарисовал тайлы, персонажа игрока и двух противников. Для начала этого хватит — остальное буду делать по мере необходимости.
Анимации, к сожалению, пикабу не загружает.
Сто процентов, о чём-то я забыл рассказать, где-то что-то пропустил, но мариновать этот пост неделю я тоже не хочу — поэтому будет как будет. Надо идти дальше и продолжать делать игру. Может, в итоге она получится посредственной и никому не нужной, но без неё я не пойму своих ошибок и не стану лучше.
Чтобы не пропускать самое интересное, можете подписаться на мой ТГ. Там я рассказываю не только о разработке игр — почти обо всём: что посмотрел, прочёл, прошёл, просто свои мысли и т. д. Большая часть контента именно там. Ну и интерактив стараюсь поддерживать для подписчиков — например, «Капибардофест». Но о нём вы уже узнаете в самом канале.
А это мой сайт, там мои ссылки на всё про всё:
Потихоньку начинаю собирать все в движке. На этот раз ландшафт, движение и камера.
Персонаж двигается, оно живое. Сначала я пытался сделать движение с инерцией / менее резким / с задержкой в милисекунды, пробовал всякое в общем. Но пришел к тому, что в боевых условиях и пулевом аду, четкое управление куда важнее, дабы от всего уворачиваться.
Камера. Она стала более приятная из-за микро-задержки. Но такие приемы в 2D играх используются уже очень давно, ничего сложного не было и ничего нового я не изобретал. Также она упирается в край карты при приближении к краю игрока. Этому есть несколько причин. Во-первых так проще, ограничить карту визуально, плюс меньше ресурсов будет потреблять. Во-вторых, это напрямую связано с первой причиной, мне лень рисовать фон. Изначально у меня была идея для фона, и ее можно было бы лорно красиво подкрутить и было бы хорошо. Но пока что я решил от этого отказаться. Если ближе к концу проекта у меня будет желание и силы, я реализую задуманное, а пока что лучше поберечь мои ресурсы для самого важного. Как бы я не считал, что меня хватит на долго, и как бы мне не нравилось это занятие, лучше не буду рисковать. Доделать всегда можно потом, а вот закончить хотя бы основу - очень важно.
Готовы основные элементы ландшафта. Подшаманил с масштабом, все выровнял, добавил хитбоксы, тени, и самое главное поработал со слоями. Если игрок находится за условным деревом, но оно выдвигается на передний план и становится полупрозрачным, также и с остальными элементами.
Про самое начало и прототип игры можно почитать тут:
Больше контента тут:
Мой сайтик тут:
В главное меню добавлена музыка, а на поле битвы добавлены монетки!
Признаюсь, я не осилил создание музыки, все таки я больше по коду/движку/геймдизайну. Именно поэтому я обратился к музыканту и заказал у него тему для главного меню. Лично мне все понравилось, поэтому будем работать дальше. Буду постепенно заказывать темы по ходу создания новых уровней, ну и думаю саунд-дизайн в целом тоже переложить уже в руки того, кто это умеет делать.
Рекомендую взять у меня билд и прочувствовать лично на вашем же ПК.
А вот про монетки щас распишу. После убийства противника с него падает монета. Пока что она падает со всех противников со 100% вероятностью, позже это скорее всего будет изменено, но это не точно. Монеты в будущем можно будет выменивать у торговца на разные предметы. Но это все еще будет, а пока что вот так вот.
Да, дело идет медленно, но пока что я просто так чувствую. Последнее время я не так активно занимаюсь игрой, и не заставляю себя делать это через силу, не хочу чтобы желание пропало, и очень не хочу, что бы оно пропало вообще, на все будущие игры.
Если просто банально посчитать, я потратил час на первую версию монетки, час на вторую, которую вы видите, еще полтора часа на кодинг и добавление в игру, и еще час на адаптацию под windows. Итого 4,5 часа на фичу. При чем код пишу масштабируемый, в будущем не будет проблем с новыми фичами. И вот это все сделано по сути за один день почти. Еще два дня я занимался другими делами. Я стараюсь не винить себя за это, но будто в глубине души я понимаю, что этот девлог должен был выйти два дня назад, и щас уже в игре должен был быть новый противник или торговец.
Короче, таков путь, не вините себя, если что-то не сделали, или наоборот сделали. Как заплачено, так и нахуячено, а мне никто не платит, соответственно да.
Ну и билды я обновил, пишите кому надо, скину, есть для windows и macOS.
Больше контента, само собой тут:
Мой сайтик тут:
Ничего глобально крупного я не добавил на этот раз, но и мелких изменений хватает!
Еще немного доработал темп игры, как многие отметили на плейтестах.
Добавил легкую тряску камеры при получении урона. В пылу битвы игрок может не заметить, как его здоровье стремится к нулю, решил напоминать ему об этом.
Теперь игра не только ставится на паузу при нажатии на ESC, но и снимается с нее. Для этого я немного переработал саму по себе паузу. До этого использовалось одно из встроенных решений, и как оказалось не самое удачное.
Добавлена иконка! Да, решил использовать уже имеющуюся мордочку капибары, как по мне вполне подошло. Только почему-то в версии для Windows лично у меня иконка сопротивляется показать себя, уже что только не пробовал.
Добавлены тени снарядам, воспринимаются они теперь чуть лучше и понятнее.
Ну и немного невидимой внутрянки - рефакторинг кода. Там было совсем мало, минут на 15, но тем не менее работа была проведена. Не хочется повторять историю Team Fortress 2 с их легендарным кокосом.
Еще я сделал билды, все желающие можете написать мне для получения файла. Тут уже и пеньки добавлены и все что в этом девлоге описал тоже есть.
Больше о разработке (и не только) тут:
Мой сайтик тут:
Поведение противников, переработка слоев и меню паузы.
Когда я начал добавлять противников в игру, возникло сразу несколько проблем. Точнее парочка возникла, а остальные я не замечал. Все они связаны со слоями. Игра 2д, но я пытался создать иллюзию того что игрок может быть перед деревом, а может быть и за ним. Так было с каждым элементом ландшафта. Это работало так: есть условное дерево-родитель от которого наследуются все остальные деревья, у родителя есть скрипт, который проверяет, если игрок выше, то выходим на передний план, то есть прибавляем +1 к слою, в ином случае уходим на задний план, то есть -1 к слою.
Так это работало до определенного момента, как раз пока я не начал добавлять противников. Ведь противники тоже должны иметь возможность заходить за дерево или ходить перед ним. Я учел этот момент. Но потом обнаружил, что за деревом может быть игрок, а перед ним противник. А потом я столкнулся с ситуацией когда множество деревьев в одной точке работают некорректно. Таким образом один несчастный скрипт дерева был на абсурдные 120 строк кода.
В один момент я психанул и начал думать как это исправить (На самом деле я напиздел, я просто психанул и ушел пить кофе, идея пришла сама по себе). В общем вместо всех этих проверок элементы ландшафта просто при запуске сцены получают свою координату Y и делают ее слоем. Всё. Вот так просто получается целая куча слоев. Карты не бесконечные, не большие, поэтому в производительности это не упадет. А вот игрок обновляет свой слой постоянно. 120 строк магическим образом превратились в просто 2 строки.
Чуть позже я столкнулся с новой проблемой касаемо слоев, но решил все еще одной строкой. Что в любом случае лучше, чем первое решение, которое к тому же не работало как надо.
Потом я приступил к поведению противников, что бы они преследовали игрока, атаковали, наносили и получали урон. Спустя где-то пол часа, когда были настроены все сцены, написан код, я запустил игру и получил вот такой забавный "душ" из снарядов для слайма.
Потом уже начал все полировать, убирать лишнюю физику и т.д. Добавил меню паузы, а то как это, игра без паузы не игра. В общем результат ниже.
Да, работы еще вагон и маленькая тележка, но процесс мне пока что только в радость, так что со временем все станет выглядеть лучше.
Дальше планирую набросать баланс-табличку, что бы понимать, что именно я хочу что бы игрок ощутил от процесса, и полировать что уже есть. Например, когда противники умирают, у них еще какое-то время остаются тени, хотя сам спрайт уже начал исчезать, таких мелочей еще много можно найти.
Больше процесса можно видеть у меня в ТГ:
Мой сайтик:
Исправление багов и добавление в игру нового противника.
Много времени прошло после предыдущего девлога. Просто мне тяжело дается рисование, много над ним размышляю, плюс не заставляю себя рисовать, если не хочется. Вот и получается, что вдохновение может не приходить долго, но зато когда придет, все делается быстро и сразу. Хотя даже так у меня были перебои после каждого мини этапа, нарисовал спрайт, и сразу затуп над анимацией, нарисовал анимацию передвижения, и сразу затуп над анимацией смерти и т.д.
По багам. Выявлены они были в ходе плейтестов, пока что только 3 штуки. Всех ликвидировал. Заняло это целых 10 минут 😎. Даже табличку с багами начал заполнять, так как это первые баги выявленные не мной, и я не мог исправить их вот прям сразу.
Билд новый будет уже, наверное, к следующему дневнику разработки. Надо по вашим же просьбам поработать над темпом игры, балансом, а это займет некоторое время. Ну и снова наступает скучный и странный этап отрисовки нового персонажа.
Мой канал, там гораздо больше размышлений, и более подробно расписан каждый шаг разработки:
Мой сайтик:
Собраны 3 карты и меню.
Собраны все 3 карты. Да, пока что их только 3, со временем их количество будет расти. Но это не точно, может и трех будет достаточно, посмотрим. Не хочется что бы игрок говорил, мол, надоели одни и те же карты, игра слишком растянута и т.д.
Я собрал главное меню (!). Оно живое, можете посмотреть запись. На фон ставится случайная из карт. Облака тоже генерятся случайный образом, точнее их размер, позиция, скорость и прозрачность. Кнопки нажимаются, это тоже есть на видео.
Самое запарное было с облаками, наверное. Но даже они были сделаны достаточно быстро.
Предыдущий DevLog:
Больше контента (и разработка, и ККИ, и ивенты) тут:
Мой сайтик:
Добавлены HP и XP Bar. Теперь противники спавнятся за пределами камеры и можно восполнять здоровье, если постоите несколько секунд у куста с ягодами.
И самое главное, вы можете поучаствовать в плейтесте. Просто напишите мне в ЛС (@Capybard) и я все скину и объясню.
Больше процесса можно видеть у меня в ТГ:
https://t.me/CapybardCollege
Мой сайтик:
