День 7
Снова пост за вчера 👀
Это был невероятно продуктивный день — я разбирал паттерн FSM (Finite State Machine) и переписывал всю логику персонажа
За свои 5 лет веб-разработки мне ни разу, просто никогда осознанно не понадобился ни один паттерн программирования/проектирования, но тут мне пришлось разобрать первый паттерн в жизни осознанно и сразу же применить его в реальной разработке
Это было невероятное удовольствие, когда узнаёшь что-то, что немного переворачивает твой взгляд на разработку и подход к программированию. С каждым годом такое бывает всё реже и реже
Если кто-то тоже захочет разобраться в стейт-машине — вот материалы и видео, которые мне реально помогли:
- State pattern - refactoring.guru — классный сайт, ещё 4 года назад хотел пройтись по нему, но руки не доходили 😅
- Finite State Machines in Godot 4 in Under 10 Minutes — очень прикольное и полезное видео
- Finite State Machines in Godot — закрепил вот этим видео и всё понял, когда разобрал до конца
Осталось добавить кувырок в ту стейт-машину, но это уже будет очень просто
Как всегда, запушил изменения в репозиторий
#godot #разработка
Снова пост за вчера 👀
Это был невероятно продуктивный день — я разбирал паттерн FSM (Finite State Machine) и переписывал всю логику персонажа
За свои 5 лет веб-разработки мне ни разу, просто никогда осознанно не понадобился ни один паттерн программирования/проектирования, но тут мне пришлось разобрать первый паттерн в жизни осознанно и сразу же применить его в реальной разработке
Это было невероятное удовольствие, когда узнаёшь что-то, что немного переворачивает твой взгляд на разработку и подход к программированию. С каждым годом такое бывает всё реже и реже
Если кто-то тоже захочет разобраться в стейт-машине — вот материалы и видео, которые мне реально помогли:
- State pattern - refactoring.guru — классный сайт, ещё 4 года назад хотел пройтись по нему, но руки не доходили 😅
- Finite State Machines in Godot 4 in Under 10 Minutes — очень прикольное и полезное видео
- Finite State Machines in Godot — закрепил вот этим видео и всё понял, когда разобрал до конца
Осталось добавить кувырок в ту стейт-машину, но это уже будет очень просто
Как всегда, запушил изменения в репозиторий
#godot #разработка
🔥1
Media is too big
VIEW IN TELEGRAM
Сегодня я в основном занимался настройкой микрофона и монтажом видео про этот самый микрофон и я очень доволен результатом
Прикрепил видео моей реакции 👀
Прикрепил видео моей реакции 👀
🔥3❤1
День 8
Сегодня удалось покодить всего полчаса (не считая основную работу 👀), но всё же я полностью закончил переписывание и разбиение логики персонажа на стейт-машину
Вопросы остались, но другие разработчики всегда подскажут, как лучше, или просто выскажут своё мнение, главное — серьёзно подойти к задаванию вопроса, иначе вас, скорее всего, проигнорируют или даже начнут насмехаться
Так как особо нечего рассказать и показать, расскажу, как правильно задавать вопросы, чтобы получить нормальный ответ, а не токсичный рофл 🌚
Вот примеры плохих вопросов:
1. Привет ❌
2. Кто-нибудь делал такое? / Кто-то работал с технологией [name]? ❌
3. Привет, у меня есть вопрос по [name] ❌
Как задать хороший вопрос? — Это довольно просто. Нужно:
1. Описать вопрос или вашу проблему
2. Озвучить ваши мысли по поводу решения этой проблемы
3. Описать то, что вы уже пытались сделать, но это не помогло / вы ожидали другого результата
4. Добавить скриншоты/код, дать контекст проблемы
Я прикреплю пару скриншотов своих вопросов, я всегда стараюсь подходить к задаванию вопросов осознанно, потому что так я экономлю своё время и время людей, которые абсолютно бесплатно вам помогают (а если и не бесплатно, то вам быстрее помогут)
Также очень рекомендую прочитать вот эту небольшую статью про "мета-вопросы"
Мир любит тех, кто задаёт хорошие вопросы, будь тем, кого любит мир 😎
#godot #разработка
Сегодня удалось покодить всего полчаса (не считая основную работу 👀), но всё же я полностью закончил переписывание и разбиение логики персонажа на стейт-машину
Вопросы остались, но другие разработчики всегда подскажут, как лучше, или просто выскажут своё мнение, главное — серьёзно подойти к задаванию вопроса, иначе вас, скорее всего, проигнорируют или даже начнут насмехаться
Так как особо нечего рассказать и показать, расскажу, как правильно задавать вопросы, чтобы получить нормальный ответ, а не токсичный рофл 🌚
Вот примеры плохих вопросов:
1. Привет ❌
...тишина 💤
2. Кто-нибудь делал такое? / Кто-то работал с технологией [name]? ❌
Да, кто-то точно работал 😁
3. Привет, у меня есть вопрос по [name] ❌
Хорошо, что у тебя есть вопрос, мы все рады 😈
Как задать хороший вопрос? — Это довольно просто. Нужно:
1. Описать вопрос или вашу проблему
2. Озвучить ваши мысли по поводу решения этой проблемы
3. Описать то, что вы уже пытались сделать, но это не помогло / вы ожидали другого результата
4. Добавить скриншоты/код, дать контекст проблемы
Я прикреплю пару скриншотов своих вопросов, я всегда стараюсь подходить к задаванию вопросов осознанно, потому что так я экономлю своё время и время людей, которые абсолютно бесплатно вам помогают (а если и не бесплатно, то вам быстрее помогут)
Также очень рекомендую прочитать вот эту небольшую статью про "мета-вопросы"
Мир любит тех, кто задаёт хорошие вопросы, будь тем, кого любит мир 😎
#godot #разработка
🔥3
День 9
Вчера был очень продуктивный день, если верить трекеру, то это целых 0 часов, 0 минут и даже 0 секунд 😎
Очень хотелось позаниматься геймдевом, но мне совершенно неожиданно пришло приглашение проводить персональные консультации. Это как раз то, что мне нужно — немного подзаработать без "долгосрочных" обязательств, потому что хочется баловать себя покупками, помимо кока-колы 👀
Предложение, конечно, я принял и заполнял анкету два часа, дольше всего было ответить на следующие пункты:
и
Долго думал, что такого написать и рассказать в видео искреннего, чтобы реально заинтересовать человека, надеюсь, получилось хорошо
Кому интересно посмотреть видео — вот ссылка на Google Диск, я даже немного смонтировал его. Мне до сих пор немного кринжово снимать видео, потому что это новый опыт для меня, но вроде не так уж и ужасно выходит
Сегодня (вторник 9-го числа) уже будет юбилей — 10 дней с того момента, как я начал заниматься разработкой игр, так что результат какой-то должен быть сто процентов, пока что всё говорит о том, что у меня будет много свободного времени на это дело
Вчера был очень продуктивный день, если верить трекеру, то это целых 0 часов, 0 минут и даже 0 секунд 😎
Очень хотелось позаниматься геймдевом, но мне совершенно неожиданно пришло приглашение проводить персональные консультации. Это как раз то, что мне нужно — немного подзаработать без "долгосрочных" обязательств, потому что хочется баловать себя покупками, помимо кока-колы 👀
Предложение, конечно, я принял и заполнял анкету два часа, дольше всего было ответить на следующие пункты:
Напишите, пожалуйста, описание о себе. Оно будет доступно студентам, которые заинтересуются этим сервисом.
и
Отправьте ссылку на Google Drive с вашим видео о себе.
Долго думал, что такого написать и рассказать в видео искреннего, чтобы реально заинтересовать человека, надеюсь, получилось хорошо
Кому интересно посмотреть видео — вот ссылка на Google Диск, я даже немного смонтировал его. Мне до сих пор немного кринжово снимать видео, потому что это новый опыт для меня, но вроде не так уж и ужасно выходит
Сегодня (вторник 9-го числа) уже будет юбилей — 10 дней с того момента, как я начал заниматься разработкой игр, так что результат какой-то должен быть сто процентов, пока что всё говорит о том, что у меня будет много свободного времени на это дело
❤2🔥2
День 10
Пост за вчера (снова) 🥲
Фактически занимался обучением 2.5 часа, где половину времени добавлял мелочи в игру про рыцаря, добавил двойной прыжок, возможность делать кувырок в воздухе, сразу же исправил баг, где можно было делать кувырок => двойной прыжок => кувырок => ... и так бесконечно
Разобрался, где хранить данные типа "can_user_jump" или "can_user_roll", потому что они нужны в разных местах, и я думал, где централизовать хранение всего этого. Ответ — в главном скрипте
Потом посмотрел How to program in Godot про язык
Не помню, говорил ли об этом, но в игровом движке Godot официально поддерживаются
Также перед тем, как начать учиться, меня прям накрыла прокрастинация и нежелание начинать. Мне даже стало немного страшно — как так, мне же это нравится. Но потом я понял, почему так было — из-за "больших" задач
Когда передо мной стоит большая и, главное, непонятная задача, на которую я не знаю, сколько уйдёт времени и как её делать — я откладываю это до последнего. Я знаю решение этой проблемы:
- Разбить задачу на подзадачи
- Начать делать, просто начать и понять, что не всё так сложно и "страшно", а дальше оно само пойдёт
Реально, самое трудное — это начать что-то делать, а дальше уже нормально идёт. Я уверен, что так у большинства, просто (ага, просто) нужна дисциплина и нужно немного переступить через себя, мне в этом помогает этот канал, я чувствую ответственность 😅
Также я написал планы на улучшение игры про рыцаря, чтобы максимально прокачаться и чтобы игра была "игрой", а не просто какой-то чел бегал и прыгал бесконечно. О планах я напишу в следующем посте, скорее всего это будет сегодня, хочу попробовать всё это "визуализировать
P.S. постоянно сохраняю в "Посмотреть позже" на YouTube видосы про Pixel Art, очень хочу начать рисовать, но распыляться нельзя, надо закончить рыцаря, а потом уже двигаться дальше
А, и ещё — то, сколько времени я трачу на геймдев — это чисто время на обучение и практику. То есть, если я смотрю какие-то видео, которые больше развлекательные и весёлые — я это время не трекаю, хочу точно знать, чему я научился за 10, 100, ... N часов, думаю, это будет интересно не только мне
#godot #разработка
Пост за вчера (снова) 🥲
Фактически занимался обучением 2.5 часа, где половину времени добавлял мелочи в игру про рыцаря, добавил двойной прыжок, возможность делать кувырок в воздухе, сразу же исправил баг, где можно было делать кувырок => двойной прыжок => кувырок => ... и так бесконечно
Разобрался, где хранить данные типа "can_user_jump" или "can_user_roll", потому что они нужны в разных местах, и я думал, где централизовать хранение всего этого. Ответ — в главном скрипте
player.gd, и можно спокойно в другом скрипте/файле искать Player на сцене и вызывать у него функции типа player.jump(), player.move(), player.can_roll и так далее, потому что я сначала думал, что это плохая практика. Ещё добавил музыку из тех ассетов, что дал Brackeys. Прикреплю небольшое видео того, что есть сейчасПотом посмотрел How to program in Godot про язык
GDScript, которым я пользуюсь уже десятый день. Всё правильно — сначала пишем предложения, потом учимся, как писать буквы, жизнь меня ничему не учит 😅Не помню, говорил ли об этом, но в игровом движке Godot официально поддерживаются
GDScript, C# и C++. Так как Godot полностью бесплатный и опенсорсный — для него делают плагины, и можно писать хоть на JS, но я не рискую, мне на работе его хватает 😢Также перед тем, как начать учиться, меня прям накрыла прокрастинация и нежелание начинать. Мне даже стало немного страшно — как так, мне же это нравится. Но потом я понял, почему так было — из-за "больших" задач
Когда передо мной стоит большая и, главное, непонятная задача, на которую я не знаю, сколько уйдёт времени и как её делать — я откладываю это до последнего. Я знаю решение этой проблемы:
- Разбить задачу на подзадачи
- Начать делать, просто начать и понять, что не всё так сложно и "страшно", а дальше оно само пойдёт
Реально, самое трудное — это начать что-то делать, а дальше уже нормально идёт. Я уверен, что так у большинства, просто (ага, просто) нужна дисциплина и нужно немного переступить через себя, мне в этом помогает этот канал, я чувствую ответственность 😅
Также я написал планы на улучшение игры про рыцаря, чтобы максимально прокачаться и чтобы игра была "игрой", а не просто какой-то чел бегал и прыгал бесконечно. О планах я напишу в следующем посте, скорее всего это будет сегодня, хочу попробовать всё это "визуализировать
P.S. постоянно сохраняю в "Посмотреть позже" на YouTube видосы про Pixel Art, очень хочу начать рисовать, но распыляться нельзя, надо закончить рыцаря, а потом уже двигаться дальше
А, и ещё — то, сколько времени я трачу на геймдев — это чисто время на обучение и практику. То есть, если я смотрю какие-то видео, которые больше развлекательные и весёлые — я это время не трекаю, хочу точно знать, чему я научился за 10, 100, ... N часов, думаю, это будет интересно не только мне
#godot #разработка
🔥2❤1
День 11
Сегодня был очень загруженный день, но под вечер всё-таки удалось немного накидать план доработок для рыцаря, посидел примерно час
1. Полоса здоровья и логика здоровья, без мгновенной смерти
2. Летающие очки урона/лечения
3. Лечение фруктами
4. Убивать врага при падении (как в Марио)
5. Кадры неуязвимости во время кувырка
6. Падение фруктов/монет с врага
7. Босс
7.1 2 типа атак
- Прыжок на персонажа
- Подготовка и рывок к персонажу
7.2 Немного проработанная арена
7.3 Специальная полоса здоровья (health bar) для босса
Это всё было ещё вчера, а сегодня я почти всё визуализировал, чтобы выглядело более-менее интересно и наглядно
Я всё это делал на miro.com, так что мой прогресс можно посмотреть вот здесь, прикреплю пару скринов оттуда, чтобы вас заинтересовать 👀
Если у вас есть какие-то предложения по тому, что добавить в игру про рыцаря, буду рад выслушать и, если это реально, добавить в игру 👀
Я дал всем возможность комментироватьдоску с планом, так что можете писать прямо туда (или в комментариях под этим постом), она удалилась, потому что я вышел из команды... длинная история, та за шо
Как только доделаю рыцаря, буду в основном заниматься пиксель-артом и потихоньку продумывать следующую игру, чтобы разработать её с полного нуля — логика, графика, музыка и звуки, как говорил ранее, скорее всего это будет капибара-рембо, которая будет стрелять по врагам 🔫
Сегодня был очень загруженный день, но под вечер всё-таки удалось немного накидать план доработок для рыцаря, посидел примерно час
1. Полоса здоровья и логика здоровья, без мгновенной смерти
2. Летающие очки урона/лечения
3. Лечение фруктами
4. Убивать врага при падении (как в Марио)
5. Кадры неуязвимости во время кувырка
6. Падение фруктов/монет с врага
7. Босс
7.1 2 типа атак
- Прыжок на персонажа
- Подготовка и рывок к персонажу
7.2 Немного проработанная арена
7.3 Специальная полоса здоровья (health bar) для босса
Это всё было ещё вчера, а сегодня я почти всё визуализировал, чтобы выглядело более-менее интересно и наглядно
Я всё это делал на miro.com, так что мой прогресс можно посмотреть вот здесь, прикреплю пару скринов оттуда, чтобы вас заинтересовать 👀
Если у вас есть какие-то предложения по тому, что добавить в игру про рыцаря, буду рад выслушать и, если это реально, добавить в игру 👀
Я дал всем возможность комментировать
Как только доделаю рыцаря, буду в основном заниматься пиксель-артом и потихоньку продумывать следующую игру, чтобы разработать её с полного нуля — логика, графика, музыка и звуки, как говорил ранее, скорее всего это будет капибара-рембо, которая будет стрелять по врагам 🔫
🔥3
День 12
Вчера разобрался, как сделать полосу здоровья и саму систему здоровья, но сделать её не успел, так что сегодня планирую сделать как минимум следующие вещи:
- Реализовать фичу здоровья — полоса, система и возможность повторного использования для врагов
- Реализовать нормальную смерть персонажа
Про полосу здоровья — это не так уж сложно, эти и эти видео, думаю, почти полностью покрыли всё, что нужно знать про health bar
Вчера вышло около часа на всё
У меня довольно часто возникают вопросы по поводу "правильности" и архитектуры, чтобы я сразу учился максимально правильно. За 5 лет у меня уже появилась "чуйка", если я пишу что-то, что вроде работает, но точно потом вылезет боком. К счастью, есть чат про Godot, где я могу задавать вопросы... к сожалению, в таких чатах не всегда отвечают. А я понимаю, что если сейчас буду делать неправильно и привыкну к этому, то потом придётся переучиваться, и такие вещи будут накапливаться, что может потом вылезти боком
Поэтому я решил найти ментора, которому мог бы задавать вопросы и который направлял бы меня в правильное русло, так сказать. Я неприхотливый, всё делаю сам, но вопросы типа "Какое сверло тут использовать? У меня их десять, и в принципе все подходят... как выбрать?" мне, как новичку, абсолютно непонятны, но кому-то, кто уже набил шишки, это очевидно. Так что скоро у меня впервые в жизни будет ментор — посмотрим, как это будет
Вчера разобрался, как сделать полосу здоровья и саму систему здоровья, но сделать её не успел, так что сегодня планирую сделать как минимум следующие вещи:
- Реализовать фичу здоровья — полоса, система и возможность повторного использования для врагов
- Реализовать нормальную смерть персонажа
Про полосу здоровья — это не так уж сложно, эти и эти видео, думаю, почти полностью покрыли всё, что нужно знать про health bar
Вчера вышло около часа на всё
У меня довольно часто возникают вопросы по поводу "правильности" и архитектуры, чтобы я сразу учился максимально правильно. За 5 лет у меня уже появилась "чуйка", если я пишу что-то, что вроде работает, но точно потом вылезет боком. К счастью, есть чат про Godot, где я могу задавать вопросы... к сожалению, в таких чатах не всегда отвечают. А я понимаю, что если сейчас буду делать неправильно и привыкну к этому, то потом придётся переучиваться, и такие вещи будут накапливаться, что может потом вылезти боком
Поэтому я решил найти ментора, которому мог бы задавать вопросы и который направлял бы меня в правильное русло, так сказать. Я неприхотливый, всё делаю сам, но вопросы типа "Какое сверло тут использовать? У меня их десять, и в принципе все подходят... как выбрать?" мне, как новичку, абсолютно непонятны, но кому-то, кто уже набил шишки, это очевидно. Так что скоро у меня впервые в жизни будет ментор — посмотрим, как это будет
🔥3
День 13
Сегодня был продуктивный день — всё, что планировал, сделал, а именно систему здоровья, полосу здоровья, "нормальную" смерть персонажа
Прикреплю пару видео, одно короткое с фактическим результатом, а другое подлиннее, больше про "процесс" с моими комментариями здесь и там
Я уже чувствую, как начинаю реально понимать, что и где могу использовать, как сделать какую-то фичу (пусть даже через костыли), и это очень приятное ощущение, а я ведь занимаюсь геймдевом всего 22 часа. Вот сейчас ещё подумал разделить потраченное время на разработку и на другие направления — арт-дизайн и саунд-дизайн, так будет максимально наглядно следить за прогрессом условно "по часам"
Также сегодня я созвонился и познакомился с ментором, поговорили час и поняли, что подходим друг другу и будем сотрудничать
Как я говорил выше в посте, пока мне нужны только ответы на вопросы и "направление" в правильное русло, чтобы я не копал и не делал то, что не нужно. Ну и, конечно, ревью моих проектов — их структуры, архитектуры и качества кода
Например, один из советов: "Пока кто-то пишет идеальный код, другой зарабатывает деньги", и ещё он привёл примеры людей, которые хейтили и сильно критиковали код какой-то игры, которая уже приносит немалые деньги, а сами ни одной игры не написали. Конечно, не нужно писать "говнокод", но и загоняться тоже не стоит, если надо пару раз нарушить какой-то принцип или что-то в этом духе
Например, я слышал шутку про невероятно классную игру Undertale, что там прямо "спагетти-код" и миллион вложенных if-else друг в друга. Ну, я посмотрел — и правда так (если верить, то вот исходный код игры), но игра заработала невероятные деньги, и в ней есть самое главное — душа. Играть и погружаться в неё — это прекрасно, всем рекомендую. Прикреплю скриншот их кода для диалогов
#godot #разработка
Сегодня был продуктивный день — всё, что планировал, сделал, а именно систему здоровья, полосу здоровья, "нормальную" смерть персонажа
Прикреплю пару видео, одно короткое с фактическим результатом, а другое подлиннее, больше про "процесс" с моими комментариями здесь и там
Я уже чувствую, как начинаю реально понимать, что и где могу использовать, как сделать какую-то фичу (пусть даже через костыли), и это очень приятное ощущение, а я ведь занимаюсь геймдевом всего 22 часа. Вот сейчас ещё подумал разделить потраченное время на разработку и на другие направления — арт-дизайн и саунд-дизайн, так будет максимально наглядно следить за прогрессом условно "по часам"
Также сегодня я созвонился и познакомился с ментором, поговорили час и поняли, что подходим друг другу и будем сотрудничать
Как я говорил выше в посте, пока мне нужны только ответы на вопросы и "направление" в правильное русло, чтобы я не копал и не делал то, что не нужно. Ну и, конечно, ревью моих проектов — их структуры, архитектуры и качества кода
Например, один из советов: "Пока кто-то пишет идеальный код, другой зарабатывает деньги", и ещё он привёл примеры людей, которые хейтили и сильно критиковали код какой-то игры, которая уже приносит немалые деньги, а сами ни одной игры не написали. Конечно, не нужно писать "говнокод", но и загоняться тоже не стоит, если надо пару раз нарушить какой-то принцип или что-то в этом духе
Например, я слышал шутку про невероятно классную игру Undertale, что там прямо "спагетти-код" и миллион вложенных if-else друг в друга. Ну, я посмотрел — и правда так (если верить, то вот исходный код игры), но игра заработала невероятные деньги, и в ней есть самое главное — душа. Играть и погружаться в неё — это прекрасно, всем рекомендую. Прикреплю скриншот их кода для диалогов
#godot #разработка
🔥2
День 14
Вчера удалось поработать около 2 часов, хочется больше уделять этому времени, потому что есть много свободного времени, но даже если удаётся поработать всего 15-30 минут — это уже хорошо. Самое главное — не корить себя за то, что недостаточно что-то делаешь, потому что ты уже начал это делать, и уже есть прогресс, ведь "1% больше, чем 0%", нужно всегда это помнить
Если говоришь себе: "Вот завтра я начну делать то и это по 4+ часа в день...", то будет очень сложно начать, потому что перед тобой стоит некая стена ответственности, которая мешает начать, ведь "нужно аж 4 часа...". Поэтому не нужно корить себя за то, что получилось мало поучиться или позаниматься чем-то. Раньше я постоянно себя корил (сейчас тоже, но не так сильно 😅) и часто бросал начатое из-за слишком высоких требований. А вот когда я решал делать хотя бы по 15 минут в день — с каждым днём становилось намного легче начинать заниматься этим и уделять больше времени
Это всё, конечно, хорошо, отмазку написал, почему по несколько часов работаю в выходные, теперь к сути 🌚
Добавил систему здоровья для врагов, и теперь их можно убивать, урон наносится, когда персонаж падает на врага, прямо как в Марио
Сегодня добавлю состояние "Умирает (Dying)" и "Оглушён (Stunned)". Враг будет переходить в состояние Stunned, когда получает урон, планирую сделать его немного краснее на это время и чтобы он не двигался в этот момент. А в состоянии Dying просто добавлю анимацию смерти и уберу его Hitbox (часть врага, которая наносит урон персонажу)
Сделал эти вещи за пару часов... но реалистично мог бы сделать за минут 40, потому что возникает много вопросов: "А как правильно? А как лучше?", так что я решил пока делать как получается, но оставлять комментарии в коде или записывать свои вопросы в заметки, чтобы потом уточнить у ментора
Пока что у меня следующие вопросы:
-
-
-
- Почему не использовать просто rectangle collision вместо RayCast? (вопрос по поводу этого видео). P.S. я сделал через rectangle collision
- Как правильно доставать главную ноду в сцене (враг или персонаж)? Потому что сейчас использую костыль типа
Также прикреплю небольшое видео с результатом
Хотел также смонтировать видео побольше с моими комментариями и мыслями, но OBS заглючил на макбуке и снимал экран одной вкладки в хроме все два часа 🫠
#godot #разработка
Вчера удалось поработать около 2 часов, хочется больше уделять этому времени, потому что есть много свободного времени, но даже если удаётся поработать всего 15-30 минут — это уже хорошо. Самое главное — не корить себя за то, что недостаточно что-то делаешь, потому что ты уже начал это делать, и уже есть прогресс, ведь "1% больше, чем 0%", нужно всегда это помнить
Если говоришь себе: "Вот завтра я начну делать то и это по 4+ часа в день...", то будет очень сложно начать, потому что перед тобой стоит некая стена ответственности, которая мешает начать, ведь "нужно аж 4 часа...". Поэтому не нужно корить себя за то, что получилось мало поучиться или позаниматься чем-то. Раньше я постоянно себя корил (сейчас тоже, но не так сильно 😅) и часто бросал начатое из-за слишком высоких требований. А вот когда я решал делать хотя бы по 15 минут в день — с каждым днём становилось намного легче начинать заниматься этим и уделять больше времени
Это всё, конечно, хорошо, отмазку написал, почему по несколько часов работаю в выходные, теперь к сути 🌚
Добавил систему здоровья для врагов, и теперь их можно убивать, урон наносится, когда персонаж падает на врага, прямо как в Марио
Сегодня добавлю состояние "Умирает (Dying)" и "Оглушён (Stunned)". Враг будет переходить в состояние Stunned, когда получает урон, планирую сделать его немного краснее на это время и чтобы он не двигался в этот момент. А в состоянии Dying просто добавлю анимацию смерти и уберу его Hitbox (часть врага, которая наносит урон персонажу)
Сделал эти вещи за пару часов... но реалистично мог бы сделать за минут 40, потому что возникает много вопросов: "А как правильно? А как лучше?", так что я решил пока делать как получается, но оставлять комментарии в коде или записывать свои вопросы в заметки, чтобы потом уточнить у ментора
Пока что у меня следующие вопросы:
-
owner — что, как и зачем?-
Hitbox — как правильно настроить? Как правильно наносить/получать урон, кто должен это вызывать и т.п.-
timers — когда нужно создавать отдельный узел, а когда просто вызывать SceneTree.create_timer?- Почему не использовать просто rectangle collision вместо RayCast? (вопрос по поводу этого видео). P.S. я сделал через rectangle collision
- Как правильно доставать главную ноду в сцене (враг или персонаж)? Потому что сейчас использую костыль типа
slime = get_parent().get_parent() или player = get_tree().get_first_node_in_group('Player'), насчёт последнего не уверен, что это костыль — но выглядит не оченьТакже прикреплю небольшое видео с результатом
Хотел также смонтировать видео побольше с моими комментариями и мыслями, но OBS заглючил на макбуке и снимал экран одной вкладки в хроме все два часа 🫠
#godot #разработка
❤2🔥2