This media is not supported in your browser
VIEW IN TELEGRAM
День 46
Сегодня я доделал очень важную деталь в игре - движение кроликов, а точнее их прыжки, как я и хотел. Получилось ну вот прям идеально, точь-в-точь как я и хотел, я был очень рад (в видео вставлю момент с этим). Теперь кролики прыгают в сторону персонажа с некоторой задержкой. Сначала они "готовятся" к прыжку 3 кадра, а потом 2 кадра спрайтов для самого прыжка (фактически один, но все же), на видео будет намного лучше понятно о чем я говорю
А что может быть лучше, чем видео? Правильно - поиграть самому! Я успешно экспортировал и загрузил текущую версию R.I.T.K.A. Rampage на itch.io и абсолютно каждый теперь может в неё поиграть и следить за прогрессом разработки еще и как полноценный игрок🔥
Конечно же игра сырая, но я очень рад, что залить в интернет игру так просто и быстро получилось, что каждый из вас и вообще любой, кому я дам ссылку, сможет поклацать этот прототип игры (и будущие другие)
Пока что работает конечно же только с мышкой и компьютером, управление на WASD, левый клик мыши - стрельба, вот ссылка на игру https://sundwell.itch.io/ritka-rampage
В будущем оформлю страничку более адекватно, добавлю ассеты, спрайты, описание и т.д., но сейчас вполне хватит и этого. Буду очень рад любым идеям для добавления в игру, можете писать тут или же на страничке игры в "Comments" секции
Еще я поигрался с VFX (visual effects), а точнее с Particle System и добавил простейший "взрыв" крови от кроликов, когда они получают урон. Еще я добавил эффект "хвоста" для пули, который следует за ней, эдакий дым, что-то похожее на след от самолета
Полное видео с прогрессом за сегодня можете глянуть тут
#godot #разработка #ritkarampage
Сегодня я доделал очень важную деталь в игре - движение кроликов, а точнее их прыжки, как я и хотел. Получилось ну вот прям идеально, точь-в-точь как я и хотел, я был очень рад (в видео вставлю момент с этим). Теперь кролики прыгают в сторону персонажа с некоторой задержкой. Сначала они "готовятся" к прыжку 3 кадра, а потом 2 кадра спрайтов для самого прыжка (фактически один, но все же), на видео будет намного лучше понятно о чем я говорю
А что может быть лучше, чем видео? Правильно - поиграть самому! Я успешно экспортировал и загрузил текущую версию R.I.T.K.A. Rampage на itch.io и абсолютно каждый теперь может в неё поиграть и следить за прогрессом разработки еще и как полноценный игрок
Конечно же игра сырая, но я очень рад, что залить в интернет игру так просто и быстро получилось, что каждый из вас и вообще любой, кому я дам ссылку, сможет поклацать этот прототип игры (и будущие другие)
Пока что работает конечно же только с мышкой и компьютером, управление на WASD, левый клик мыши - стрельба, вот ссылка на игру https://sundwell.itch.io/ritka-rampage
В будущем оформлю страничку более адекватно, добавлю ассеты, спрайты, описание и т.д., но сейчас вполне хватит и этого. Буду очень рад любым идеям для добавления в игру, можете писать тут или же на страничке игры в "Comments" секции
Еще я поигрался с VFX (visual effects), а точнее с Particle System и добавил простейший "взрыв" крови от кроликов, когда они получают урон. Еще я добавил эффект "хвоста" для пули, который следует за ней, эдакий дым, что-то похожее на след от самолета
Полное видео с прогрессом за сегодня можете глянуть тут
#godot #разработка #ritkarampage
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
День 47
Вчера я понял, что я делаю игру, но сам до конца не понимаю что за игра. Т.е. ну вот в общем понятно - стрелять в животных, что-то типа Vampire Survivors, в главной роли капибара.. а дальше что?
Поэтому я решил уделить вчерашний день на так называемый брейншторминг (придумывание идей) и структурирование всей информации, что у меня есть и будет
Прикреплю пару скринов и небольшое видео (потому что там гифка🥳 ) моих результатов
И вкратце что я на данный момент обдумал:
Сессии
Каждая игра будет длится 10-15 минут, улучшения будут сохранятся только во время сессии, т.е. если вы умерли - все заново начинается (типичный подход в roguelike/roguelite играх), но, вероятно, я добавлю постоянные улучшения
Мутации (aka улучшения)
Из врагов будут выпадать апельсины (тот же опыт) и по достижению нового уровня будет возможность выбирать 1 из 3 мутаций, которые будут так или иначе влиять на игровой процесс. Это будет начало для "Апельсиновой Энергии", про которую я рассказывал в посте про мою целевую игру
Локации
Будет несколько локаций. На каждой будет:
- Как минимум 2 обычных врага со следующими характеристиками:
- Низко-средний уровень здоровья (HP), средняя скорость, низкий урон, ближний бой.
- Низкий уровень здоровья (HP), высокая скорость, атака роем, низкий урон, ближний бой.
- Как минимум 2 необычных врага со следующими характеристиками:
- Низкий уровень здоровья (HP), средняя скорость, высокий урон, взрывной.
- Высокий уровень здоровья (HP), медленная скорость, средний урон, специальная атака, ближний бой.
- Средний уровень здоровья (HP), средняя скорость, средний урон, специальная атака, дальний бой.
- Как минимум 1 редкий враг:
- Средний уровень здоровья (HP), высокая/средняя скорость, средне-высокий урон, специальная атака, особая способность, дальний бой / ближний бой.
- Босс каждые 5 минут:
- Высокий уровень здоровья (HP), средняя скорость, высокий урон, 2 специальные атаки, особая способность (возможно, призывает своих миньонов).
В локации я хочу воплотить идею из моей целевой игры, т.е. сначало все было мило-красочно (Луг, зайчики, коровы, милые животные, все зелено и ярко), потом Mr. Barashek подорвал станцию и все стало плохо (Радиационная локация, мутировавшие враги, все загрязнено и в темных тонах)
#ritkarampage
Вчера я понял, что я делаю игру, но сам до конца не понимаю что за игра. Т.е. ну вот в общем понятно - стрелять в животных, что-то типа Vampire Survivors, в главной роли капибара.. а дальше что?
Поэтому я решил уделить вчерашний день на так называемый брейншторминг (придумывание идей) и структурирование всей информации, что у меня есть и будет
Прикреплю пару скринов и небольшое видео (потому что там гифка
И вкратце что я на данный момент обдумал:
Сессии
Каждая игра будет длится 10-15 минут, улучшения будут сохранятся только во время сессии, т.е. если вы умерли - все заново начинается (типичный подход в roguelike/roguelite играх), но, вероятно, я добавлю постоянные улучшения
Мутации (aka улучшения)
Из врагов будут выпадать апельсины (тот же опыт) и по достижению нового уровня будет возможность выбирать 1 из 3 мутаций, которые будут так или иначе влиять на игровой процесс. Это будет начало для "Апельсиновой Энергии", про которую я рассказывал в посте про мою целевую игру
Локации
Будет несколько локаций. На каждой будет:
- Как минимум 2 обычных врага со следующими характеристиками:
- Низко-средний уровень здоровья (HP), средняя скорость, низкий урон, ближний бой.
- Низкий уровень здоровья (HP), высокая скорость, атака роем, низкий урон, ближний бой.
- Как минимум 2 необычных врага со следующими характеристиками:
- Низкий уровень здоровья (HP), средняя скорость, высокий урон, взрывной.
- Высокий уровень здоровья (HP), медленная скорость, средний урон, специальная атака, ближний бой.
- Средний уровень здоровья (HP), средняя скорость, средний урон, специальная атака, дальний бой.
- Как минимум 1 редкий враг:
- Средний уровень здоровья (HP), высокая/средняя скорость, средне-высокий урон, специальная атака, особая способность, дальний бой / ближний бой.
- Босс каждые 5 минут:
- Высокий уровень здоровья (HP), средняя скорость, высокий урон, 2 специальные атаки, особая способность (возможно, призывает своих миньонов).
В локации я хочу воплотить идею из моей целевой игры, т.е. сначало все было мило-красочно (Луг, зайчики, коровы, милые животные, все зелено и ярко), потом Mr. Barashek подорвал станцию и все стало плохо (Радиационная локация, мутировавшие враги, все загрязнено и в темных тонах)
#ritkarampage
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
День 48
Вчера начал смотреть плейлист от Branno по клону Vampire Survivors, пока что особо ничего полезного не почерпнул, т.к. только начало, но я надеюсь увидеть что-то очень полезное именно с точки зрения улучшений, левелинга, опыта и увеличивающейся сложности по ходу игры
На данный момент я понимаю то, как сделать игру чтобы в неё "можно было играть", но я вообще пока что не понимаю как это все сбалансировать. Вот добавлю я врагов новых - как понять, сколько там хп должно быть у врага и урона? Есть улучшения, сделать их не проблема - а баланс?
Вот будет улучшение "двойные пули" (чисто теоретически) и возникают следующие вопросы/мысли:
- получается пуль будет в 2 раза больше и урон собственно тоже в 2 раза больше. Ок, тут можно сделать "пуль в два раза больше, урон от каждой х0.7", в итоге урон будет х1.4, что в принципе обычная вещь, а дальше?
- Пуль будет в 2 раза больше, получается что если кролик умирает от первой пули, то вторая пуля летит дальше и это уже совсем другой разговор, сейчас объясню
Есть два врага, у каждого по 1 ХП, и есть персонаж с оружием, предположим есть такие ситуации:
№1 Урон оружия равен 2 ХП, пуля одна и не проходит насквозь - получается первый враг умирает, а второй идет дальше и толпа будет душить персонажа, даже если у него 999 урона с выстрела
№2 Урон оружия равен 1 ХП, пули две и они не проходят насквозь - получается два врага умирает, и эффективность оружия становится в два раза больше, а эффективность первого оружия остается такая же
Казалось бы все норм, один вариант для жирных врагов, второй - для толп. Но теперь вопрос как правильно сбалансировать врагов, когда и по сколько их спавнить? Какие типы врагов спавнить? И так далее
Короче вопросов по разработке и по pixel art'у нету, зато теперь миллиард вопросов по геймдизайну
Пока что решил что буду делать как делается, закончу игру чтобы она была полноценная, а потом займусь правками в балансе и несколько дней уделю изучению геймдизайна
#ritkarampage
Вчера начал смотреть плейлист от Branno по клону Vampire Survivors, пока что особо ничего полезного не почерпнул, т.к. только начало, но я надеюсь увидеть что-то очень полезное именно с точки зрения улучшений, левелинга, опыта и увеличивающейся сложности по ходу игры
На данный момент я понимаю то, как сделать игру чтобы в неё "можно было играть", но я вообще пока что не понимаю как это все сбалансировать. Вот добавлю я врагов новых - как понять, сколько там хп должно быть у врага и урона? Есть улучшения, сделать их не проблема - а баланс?
Вот будет улучшение "двойные пули" (чисто теоретически) и возникают следующие вопросы/мысли:
- получается пуль будет в 2 раза больше и урон собственно тоже в 2 раза больше. Ок, тут можно сделать "пуль в два раза больше, урон от каждой х0.7", в итоге урон будет х1.4, что в принципе обычная вещь, а дальше?
- Пуль будет в 2 раза больше, получается что если кролик умирает от первой пули, то вторая пуля летит дальше и это уже совсем другой разговор, сейчас объясню
Есть два врага, у каждого по 1 ХП, и есть персонаж с оружием, предположим есть такие ситуации:
№1 Урон оружия равен 2 ХП, пуля одна и не проходит насквозь - получается первый враг умирает, а второй идет дальше и толпа будет душить персонажа, даже если у него 999 урона с выстрела
№2 Урон оружия равен 1 ХП, пули две и они не проходят насквозь - получается два врага умирает, и эффективность оружия становится в два раза больше, а эффективность первого оружия остается такая же
Казалось бы все норм, один вариант для жирных врагов, второй - для толп. Но теперь вопрос как правильно сбалансировать врагов, когда и по сколько их спавнить? Какие типы врагов спавнить? И так далее
Короче вопросов по разработке и по pixel art'у нету, зато теперь миллиард вопросов по геймдизайну
Пока что решил что буду делать как делается, закончу игру чтобы она была полноценная, а потом займусь правками в балансе и несколько дней уделю изучению геймдизайна
#ritkarampage
🔥2
Media is too big
VIEW IN TELEGRAM
День 49
Вчера занимался тремя вещами
Глянул несколько видео от Branno с того плейлиста, сейчас я на 10 видео - оно про опыт, как раз то, что нужно. На самом деле качество всех видео в его плейлисте просто.. ужаснейшее, он почти ничего не объясняет, качество картинки - ужас, качество звука - ужас, скорость разговора и подача материала - абсолютно неуместно быстрая, качество кода - просто ужаснейшее.. Ну, ничего не поделать. Сейчас я досмотрю этот плейлист, а потом продолжу с тем курсом с Udemy про 2D Survivors Like Game. Я просто повелся на комментарии под первым видео (прикрепил скрин), ну и теперь смотрю каждый видос на х2 скорости + перемотка, чтобы дойти до полезного. Конечно я уже больше знаю чем большинство смотрящих тот плейлист, но.. курс объективно не очень, автору естественно спасибо, что-то полезное я почерпнул точно, но смотреть больно, а еще больнее знать, что много будущих разработчиков будут так же говнокодить и усложнять на ровном месте
Немного позанимался пиксель-артом - сделал спрайт воды, который добавил в тайлсет. Он мне нужен был, чтобы окружить арену и там не было этой серой зоны без графики
И, самое главное - разработка. Теперь камера не выходит за границы арены, а сама арена теперь больше примерно в 2-3 раза. Наконец-то сделал ходьбу во время стрельбы, раньше можно было только стоять и стрелять, а при беге оружие пряталось, теперь же есть что-то среднее - медленная ходьба с возможностью стрельбы. Ну и собственно последнее изменение - границы арены, теперь за арену выйти нельзя, так что никто не увидит этой серой зоны без графики👀
Полное видео прогресса можете глянуть на ютубе, а небольшое превью результата прикрепил к посту
#pixelart #godot #разработка #ritkarampage
Вчера занимался тремя вещами
Глянул несколько видео от Branno с того плейлиста, сейчас я на 10 видео - оно про опыт, как раз то, что нужно. На самом деле качество всех видео в его плейлисте просто.. ужаснейшее, он почти ничего не объясняет, качество картинки - ужас, качество звука - ужас, скорость разговора и подача материала - абсолютно неуместно быстрая, качество кода - просто ужаснейшее.. Ну, ничего не поделать. Сейчас я досмотрю этот плейлист, а потом продолжу с тем курсом с Udemy про 2D Survivors Like Game. Я просто повелся на комментарии под первым видео (прикрепил скрин), ну и теперь смотрю каждый видос на х2 скорости + перемотка, чтобы дойти до полезного. Конечно я уже больше знаю чем большинство смотрящих тот плейлист, но.. курс объективно не очень, автору естественно спасибо, что-то полезное я почерпнул точно, но смотреть больно, а еще больнее знать, что много будущих разработчиков будут так же говнокодить и усложнять на ровном месте
Немного позанимался пиксель-артом - сделал спрайт воды, который добавил в тайлсет. Он мне нужен был, чтобы окружить арену и там не было этой серой зоны без графики
И, самое главное - разработка. Теперь камера не выходит за границы арены, а сама арена теперь больше примерно в 2-3 раза. Наконец-то сделал ходьбу во время стрельбы, раньше можно было только стоять и стрелять, а при беге оружие пряталось, теперь же есть что-то среднее - медленная ходьба с возможностью стрельбы. Ну и собственно последнее изменение - границы арены, теперь за арену выйти нельзя, так что никто не увидит этой серой зоны без графики
Полное видео прогресса можете глянуть на ютубе, а небольшое превью результата прикрепил к посту
#pixelart #godot #разработка #ritkarampage
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1
День 50
Вчера немного потыкал сам геймдизайн и.. стало понятно, что углубляться в это сейчас это гиблое дело, слишком широкие познания там идут, а время не резиновое и руки только две (пока что)
Но, в любом случае, немного я почитаю про него, нашел пару ресурсов полезных так или иначе на первый взгляд
Аусхестов геймдизайн - дофига материала и, вроде как, очень полезного. Особенно мне будет полезны главы "Теория" и "Баланс"
GDCuffs.com - как устроены игры и их разработка, особенное внимание приделяется геймдизайну, для меня будет очень полезно "Баланс" и "Экономика"
Ну и на будущее сохранил несколько книг, мало ли когда-то возьмусь более серьёзно за это, вот названия:
1. Разработка игр и теория развлечений
2. Геймдизайн. Как создать игру, в которую будут играть все
Сегодня продолжу разработку игры, планирую сделать уже сейчас повышающуюся сложность со временем
Планирую сделать следующим образом - у меня будет спавнер мобов, в который я закину настройки. То есть я распишу на каждую минуту то, какие мобы будут спавниться, сколько и т.д. Спавнер будет принимать массив настроек, т.к. если на каждую минуту расписывать, то это уже минимум 10 настроек нужно, так что массив тут нужен
Настройки будут примерно следующие:
1. Начальное время
2. Конечное время
3. Кол-во
4. Уровень
5. Враг
6. Задержка спавна
Сейчас расскажу за что каждая настройка будет отвечать, но прежде напомню, что игра не бесконечная, и максимум будет несколько локаций, которые будут длиться 10-20 минут
Начальное время - с этого времени будут появляться враги
Конечное время - с этого времени эти враги не будут появляться
Кол-во - кол-во врагов, которые будут появляться за раз
Уровень - уровень врагов, которые будут появляться
Враг - собственно сам враг, который будет спавниться
Задержка спавна - скорость, с которой будут спавниться мобы, например 0.1 секунда задержки это 10 врагов в секунду
#gamedesign #ritkarampage
Вчера немного потыкал сам геймдизайн и.. стало понятно, что углубляться в это сейчас это гиблое дело, слишком широкие познания там идут, а время не резиновое и руки только две (пока что)
Но, в любом случае, немного я почитаю про него, нашел пару ресурсов полезных так или иначе на первый взгляд
Аусхестов геймдизайн - дофига материала и, вроде как, очень полезного. Особенно мне будет полезны главы "Теория" и "Баланс"
GDCuffs.com - как устроены игры и их разработка, особенное внимание приделяется геймдизайну, для меня будет очень полезно "Баланс" и "Экономика"
Ну и на будущее сохранил несколько книг, мало ли когда-то возьмусь более серьёзно за это, вот названия:
1. Разработка игр и теория развлечений
2. Геймдизайн. Как создать игру, в которую будут играть все
Сегодня продолжу разработку игры, планирую сделать уже сейчас повышающуюся сложность со временем
Планирую сделать следующим образом - у меня будет спавнер мобов, в который я закину настройки. То есть я распишу на каждую минуту то, какие мобы будут спавниться, сколько и т.д. Спавнер будет принимать массив настроек, т.к. если на каждую минуту расписывать, то это уже минимум 10 настроек нужно, так что массив тут нужен
Настройки будут примерно следующие:
1. Начальное время
2. Конечное время
3. Кол-во
4. Уровень
5. Враг
6. Задержка спавна
Сейчас расскажу за что каждая настройка будет отвечать, но прежде напомню, что игра не бесконечная, и максимум будет несколько локаций, которые будут длиться 10-20 минут
Начальное время - с этого времени будут появляться враги
Конечное время - с этого времени эти враги не будут появляться
Кол-во - кол-во врагов, которые будут появляться за раз
Уровень - уровень врагов, которые будут появляться
Враг - собственно сам враг, который будет спавниться
Задержка спавна - скорость, с которой будут спавниться мобы, например 0.1 секунда задержки это 10 врагов в секунду
#gamedesign #ritkarampage
🔥2
День 51
Я НАШЕЛ.. правильный вариант как делать архитектуру проектов в играх, в особенности в Godot - композиция. Я откладывал уже пару недель видео "Using Composition to Make More Scalable Games in Godot" (да-да, прокрастинация, я с вами). Вы не представляете насколько я рад, меня этот вопрос мучал почти два месяца, с самого начала разработки и тут.. это видео как манна небесная, камень с плеч
Если говорить более в абстрактном техническом плане - это композиция aka Single Responsibility Principle из принципов программирования SOLID. Очень полезно придерживаться, но только когда в этом есть смысл (приходит с опытом)
Я то знал и использовал это все в веб-разработке, да вот не мог никак спроецировать это на разработку игр - и вот, все прояснилось, это офигенное чувство, когда что-то "щелкает" и ты будто выходишь на новый уровень
У меня был страх перед будущим, что делать игры побольше как попало будет ну очень неприятно, а тут этот страх развеялся, потому что теперь я знаю +- как строить архитектуру игры, мои эмоции сложно описать словами
Я писал про то, что буду проходить дальше курс на юдеми про 2D Vampire Survivors like game, он у меня уже куплен был и все такое.. вы не поверите, это курс от того чела с видео на ютубе (в первом абзаце про это писал), и он там все четко делает, просто идеальную архитектуру с заделом на будущее, мотивации теперь у меня хоть отбавляй🔥
По фактическому прогрессу - сделал спавнер мобов как и описывал в предыдущем посте, еще добавил таймер и колизию для врагов, чтобы они не толпились в одной точке
И, как всегда, видео с результатом прикрепляю к посту (и видео с моментом реализации что курс на юдеми от того чела с ютуба), а полное видео прогресса можете глянуть на ютубе
P.S. Пост как обычно, за вчера
#godot #разработка #ritkarampage
Я НАШЕЛ.. правильный вариант как делать архитектуру проектов в играх, в особенности в Godot - композиция. Я откладывал уже пару недель видео "Using Composition to Make More Scalable Games in Godot" (да-да, прокрастинация, я с вами). Вы не представляете насколько я рад, меня этот вопрос мучал почти два месяца, с самого начала разработки и тут.. это видео как манна небесная, камень с плеч
Если говорить более в абстрактном техническом плане - это композиция aka Single Responsibility Principle из принципов программирования SOLID. Очень полезно придерживаться, но только когда в этом есть смысл (приходит с опытом)
Я то знал и использовал это все в веб-разработке, да вот не мог никак спроецировать это на разработку игр - и вот, все прояснилось, это офигенное чувство, когда что-то "щелкает" и ты будто выходишь на новый уровень
У меня был страх перед будущим, что делать игры побольше как попало будет ну очень неприятно, а тут этот страх развеялся, потому что теперь я знаю +- как строить архитектуру игры, мои эмоции сложно описать словами
Я писал про то, что буду проходить дальше курс на юдеми про 2D Vampire Survivors like game, он у меня уже куплен был и все такое.. вы не поверите, это курс от того чела с видео на ютубе (в первом абзаце про это писал), и он там все четко делает, просто идеальную архитектуру с заделом на будущее, мотивации теперь у меня хоть отбавляй
По фактическому прогрессу - сделал спавнер мобов как и описывал в предыдущем посте, еще добавил таймер и колизию для врагов, чтобы они не толпились в одной точке
И, как всегда, видео с результатом прикрепляю к посту (и видео с моментом реализации что курс на юдеми от того чела с ютуба), а полное видео прогресса можете глянуть на ютубе
P.S. Пост как обычно, за вчера
#godot #разработка #ritkarampage
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
День 52
Вчера продолжил смотреть курс на юдеми.. не могу нарадоваться ему, просто глаза открываются каждые 10 минут
Он показал интересную вещь - автотайлинг, т.е. настраиваемое автоматическое создание игровой местности (пол, кусты и т.д.), вот тут показывают как +- этим пользоваться, очень полезная функция. Можно настроить вероятность появления того или иного блока, например у нас есть три спрайта для земли - Пустая земля, земля с камушками и земля с кактусом
Для пустой земли мы даём probability (вероятность) 20, земле с камушками даём probability 4, а земле с кактусом - 1. И теперь когда мы рисуем нашу местность с помощью тайлмапа, то у нас вероятность 20/25 (80%) что будет нарисована пустая земля, 4/25 (16%) что будут камушки на земле и 1/25 (4%) что будет кактус, и это просто нереально удобно
Также я начал переделывать структуру проекта, там папочки и файлики поперетаскивал грубо говоря, а в ближайшем будущем переделаю и архитектуру проекта, чтобы все было создано с помощью композиции
Еще я начал разбирать очень необычную и, пока что, непонятную для меня вещь - разную работу с векторами и немного формул с математики. Например вчера я сделал камеру плавной с помощью кода, формулы и векторов (вот гайд), получилось очень классно (в видео к посту покажу). Для плавности камеры использовал вот такой кусок кода в скрипте камеры:
#godot #разработка #ritkarampage
Вчера продолжил смотреть курс на юдеми.. не могу нарадоваться ему, просто глаза открываются каждые 10 минут
Он показал интересную вещь - автотайлинг, т.е. настраиваемое автоматическое создание игровой местности (пол, кусты и т.д.), вот тут показывают как +- этим пользоваться, очень полезная функция. Можно настроить вероятность появления того или иного блока, например у нас есть три спрайта для земли - Пустая земля, земля с камушками и земля с кактусом
Для пустой земли мы даём probability (вероятность) 20, земле с камушками даём probability 4, а земле с кактусом - 1. И теперь когда мы рисуем нашу местность с помощью тайлмапа, то у нас вероятность 20/25 (80%) что будет нарисована пустая земля, 4/25 (16%) что будут камушки на земле и 1/25 (4%) что будет кактус, и это просто нереально удобно
Также я начал переделывать структуру проекта, там папочки и файлики поперетаскивал грубо говоря, а в ближайшем будущем переделаю и архитектуру проекта, чтобы все было создано с помощью композиции
Еще я начал разбирать очень необычную и, пока что, непонятную для меня вещь - разную работу с векторами и немного формул с математики. Например вчера я сделал камеру плавной с помощью кода, формулы и векторов (вот гайд), получилось очень классно (в видео к посту покажу). Для плавности камеры использовал вот такой кусок кода в скрипте камеры:
global_position = global_position.lerp(target_position, 1.0 - exp(-delta * 10))
#godot #разработка #ritkarampage
🔥2
День 53
Вчера был нагруженный день.. со стороны переезда в другую квартиру👀
Никогда так быстро еще не переезжал - за день и прибрали все и перенесли, к 11 вечера только освободился, так что новостей немного - глянул только пару видео с того курса и все еще не могу нарадоваться ему, ну ряльно, это просто невероятный курс с очень хорошей архитектурой, не припомню чтобы я проходил такие одновременно идеально прикладные и теоретические курсы по вебу за пять лет. Я уверен, что этот автор свою душу продал чтобы его сделать 😅
По работе сейчас полная разгрузка, так что на обучение получится уделять больше времени, тем более мотивации полные штаны из-за решенных проблем с архитектурой
#godot #разработка #ritkarampage
Вчера был нагруженный день.. со стороны переезда в другую квартиру
Никогда так быстро еще не переезжал - за день и прибрали все и перенесли, к 11 вечера только освободился, так что новостей немного - глянул только пару видео с того курса и все еще не могу нарадоваться ему, ну ряльно, это просто невероятный курс с очень хорошей архитектурой, не припомню чтобы я проходил такие одновременно идеально прикладные и теоретические курсы по вебу за пять лет. Я уверен, что этот автор свою душу продал чтобы его сделать 😅
По работе сейчас полная разгрузка, так что на обучение получится уделять больше времени, тем более мотивации полные штаны из-за решенных проблем с архитектурой
#godot #разработка #ritkarampage
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
День 54
Вчера обустроился на новом месте, раскладывать вещи на свои места это, как оказалось, занимает еще так же времени как и переезд😢
Последние дни как-то прогресса визуального вот такого чтобы показать нету, немного грустно от этого, но я понимаю, что лучше я щас переделаю немного архитектуру проекта, подразберусь в новых и старых вещах, а потом все пойдет как по маслу уже
Вчера просмотрел и "обработал" несколько видео с курса, задал вопрос под одной из лекций и.. понаходил несколько просто невероятно полезных вопросов-ответов от других людей (прикреплю парочку с них к посту)
Одно из наиболее полезных - если искать ноды через
Раньше я как делал - один раз получал ноду игрока и дальше её использовал, например:
Или как-то так:
И эти подходы выше означали, что если нода игрока (читать как "игрок") пропадала и появлялся новый игрок - то все сломалось бы, потому что старый игрок пропал, а новый не назначился. А с помощью методов групп я могу каждый раз получать "свежего" игрока и быть уверен в том, что это то, что мне нужно
Еще прикреплю видео своего мини рабочего места👀
#godot #ritkarampage #разработка
Вчера обустроился на новом месте, раскладывать вещи на свои места это, как оказалось, занимает еще так же времени как и переезд
Последние дни как-то прогресса визуального вот такого чтобы показать нету, немного грустно от этого, но я понимаю, что лучше я щас переделаю немного архитектуру проекта, подразберусь в новых и старых вещах, а потом все пойдет как по маслу уже
Вчера просмотрел и "обработал" несколько видео с курса, задал вопрос под одной из лекций и.. понаходил несколько просто невероятно полезных вопросов-ответов от других людей (прикреплю парочку с них к посту)
Одно из наиболее полезных - если искать ноды через
get_first_node_in_group или get_nodes_in_group, и, вероятно, для всех остальных методов для работы с группами реализован поиск через HashMap (нашел в сорс коде этот метод) и кеширования и это означает, что эти методы невероятно производительны и их можно вызывать каждый кадр (могу ошибаться, но видимо это и правда так)Раньше я как делал - один раз получал ноду игрока и дальше её использовал, например:
var player: Node2D
func _ready():
player = get_tree().get_first_node_in_group('player')
...
Или как-то так:
@export var player: Node2D # и назначал это руками (не оч хорошо)
И эти подходы выше означали, что если нода игрока (читать как "игрок") пропадала и появлялся новый игрок - то все сломалось бы, потому что старый игрок пропал, а новый не назначился. А с помощью методов групп я могу каждый раз получать "свежего" игрока и быть уверен в том, что это то, что мне нужно
Еще прикреплю видео своего мини рабочего места
#godot #ritkarampage #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
День.. а нет, еще рано для поста (или поздно)
Хотел с вами поделиться тем, что математика в программировании НЕ нужна.. если не касаться игр и ИИ, поэтому расскажу почему она мне понадобилась спустя 20 тыщ лет
Я вот коснулся игр, и тут вектора, тригонометрия, формулы😢
Например теорема Пифагора, сумма квадратов катетов равна квадрату длины гипотенузы.. и шо дальше? Ща расскажу
В 2д игре у нас движение в четырёх направлениях, каждый шаг можно представить как вектор x; y. Например:
Вправо: вектор 1; 0 — скорость равна 1
Вверх: вектор 0; 1 — тоже скорость равна 1
Но что происходит, если мы идём сразу вправо и вверх? Вектор становится 1; 1, и тут в дело вступает теорема Пифагора. Скорость по диагонали уже не равна 1, а составляет
P.S. sqrt = square root (корень квадратный)
Как это починить? Нужно нормализовать вектор движения, чтобы его длина не превышала 1. Для этого есть надо вычислить коэффициент масштабирования и применить его для нашего вектора, т.е. для x и для y
k (коэффициент) = макс. скорость, в нашем случае "1" разделить на "гипотенузу"
k = 1 / sqrt(2) ≈ 0.7071
И теперь применим коэффициент к координатам вектора движения (1, 1):
x' и y' - нормализованные вектора
x' = 1 * 0.7071 ≈ 0.7071
y' = 1 * 0.7071 ≈ 0.7071
Теперь, когда мы глянем модуль вектора (теорема Пифагора), он снова будет равен 1, и персонаж будет двигаться с нормальной скоростью по всем направлениям
Для наглядности еще раз заюзаем теорему Пифагора с новыми значениями
Нормализованный вектор (0.7071, 07071)
0.7071^2 = 0.5
sqrt(0.5 + 0.5) = sqrt(1) = 1, скорость не будет больше 1, четко🐸
Хотел с вами поделиться тем, что математика в программировании НЕ нужна.. если не касаться игр и ИИ, поэтому расскажу почему она мне понадобилась спустя 20 тыщ лет
Я вот коснулся игр, и тут вектора, тригонометрия, формулы
Например теорема Пифагора, сумма квадратов катетов равна квадрату длины гипотенузы.. и шо дальше? Ща расскажу
В 2д игре у нас движение в четырёх направлениях, каждый шаг можно представить как вектор x; y. Например:
Вправо: вектор 1; 0 — скорость равна 1
Вверх: вектор 0; 1 — тоже скорость равна 1
Но что происходит, если мы идём сразу вправо и вверх? Вектор становится 1; 1, и тут в дело вступает теорема Пифагора. Скорость по диагонали уже не равна 1, а составляет
sqrt(x^2 + y^2) = sqrt(2) ≈ 1.41. Получается, что персонаж на 41% быстрее двигается по диагонали - и это баг (если так не задумано изначально, что вряд-ли)P.S. sqrt = square root (корень квадратный)
Как это починить? Нужно нормализовать вектор движения, чтобы его длина не превышала 1. Для этого есть надо вычислить коэффициент масштабирования и применить его для нашего вектора, т.е. для x и для y
k (коэффициент) = макс. скорость, в нашем случае "1" разделить на "гипотенузу"
k = 1 / sqrt(2) ≈ 0.7071
И теперь применим коэффициент к координатам вектора движения (1, 1):
x' и y' - нормализованные вектора
x' = 1 * 0.7071 ≈ 0.7071
y' = 1 * 0.7071 ≈ 0.7071
Теперь, когда мы глянем модуль вектора (теорема Пифагора), он снова будет равен 1, и персонаж будет двигаться с нормальной скоростью по всем направлениям
Для наглядности еще раз заюзаем теорему Пифагора с новыми значениями
Нормализованный вектор (0.7071, 07071)
0.7071^2 = 0.5
sqrt(0.5 + 0.5) = sqrt(1) = 1, скорость не будет больше 1, четко
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1😁1
Media is too big
VIEW IN TELEGRAM
День 55
Вчера глянул много видео по курсу и все так же продолжаю перерабатывать постепенно свой проект
Пока что есть прогресс - сделал шаг назад, кролики теперь появляются не в поле зрения персонажа, таким образом игрок не видит как враги спавнятся. Я не хотел так делать изначально, думал что просто случайное появление врагов на арене вокруг персонажа будет приемлемым, но, все-таки, не очень оно хорошо получается щас, может в будущем переделаю
Так же кролики могут и появляются за пределами арены, прыгают по.. воде и не доходят до арены, потому что там граница арены, которая не впускает и не выпускает врагов, думаю через пару видео в курсе он покажет как это сделать правильно, потому что щас у меня, как мне кажется, дичайший костыль👀
А, ну да, как я мог забыть - я вспоминал математику и подробно разбирал разные действия с векторами, для этого понадобилась та самая теорема Пифагора (банальщина) и.. тригонометрия - проделки настоящего дьявола😢 . Мне абсолютно необязательно это все изучать, т.к. есть встроенные функции для этого в каждом игровом движке, например для поворота вектора на угол "X" надо просто вызвать функцию
Зачем же тогда я разбираю это, если я и без этого смогу работать? Потому что я твердо решил и понял, что я просто обязан отдавать себе отчет о каждой строчке кода, в первые два года работы программистом я что-то делал, и оно работало, но я не понимал как и почему, и, конечно же, у меня еще был синдром самозванца в том числе из-за этого
И с того момента, как я начал отдавать отчет о КАЖДОЙ строчке, которую я пишу, я начал намного быстрее и лучше работать работу. Это правда очень сложно, потому что хоть это делать с самого начала или же начать отдавать отчет спустя пару лет - в любом случае придется разбирать каждое новое слово, каждый новый алгоритм действий, нельзя пропускать непонятные слова в документации и гайдах и так далее
И я уверен, что в ближайшем будущем мне пригодятся эти знания, когда мне не будет достаточно встроенных функций и мне нужно будет сделать что-то 💫болиелименее💫 специфическое, я уже буду знать хотя бы в какую сторону копать. Самое главное это знать что что-то есть и +- понимать как оно работает, заучивать это гиблое дело в любой сфере как я считаю
Я очень хотел еще написать пост про тригонометрию и о формуле поворота вектора, но передумал, лучше вам не лезть в этот ад😦
Видео с текущим состоянием игры прикрепил и.. я наконец-то сменил в программе для монтажа кол-во кадров с 30 до 60, то есть два месяца я тупо выкладывал видео в 30 кадров где кровь из глаз при просмотре, ну не гений ли я
#godot #ritkarampage #разработка
Вчера глянул много видео по курсу и все так же продолжаю перерабатывать постепенно свой проект
Пока что есть прогресс - сделал шаг назад, кролики теперь появляются не в поле зрения персонажа, таким образом игрок не видит как враги спавнятся. Я не хотел так делать изначально, думал что просто случайное появление врагов на арене вокруг персонажа будет приемлемым, но, все-таки, не очень оно хорошо получается щас, может в будущем переделаю
Так же кролики могут и появляются за пределами арены, прыгают по.. воде и не доходят до арены, потому что там граница арены, которая не впускает и не выпускает врагов, думаю через пару видео в курсе он покажет как это сделать правильно, потому что щас у меня, как мне кажется, дичайший костыль
А, ну да, как я мог забыть - я вспоминал математику и подробно разбирал разные действия с векторами, для этого понадобилась та самая теорема Пифагора (банальщина) и.. тригонометрия - проделки настоящего дьявола
rotated(X), например чтобы повернуть вектор на 90 градусов - то это будет Vector2.RIGHT.rotated(90), где Vector2.RIGHT это единичный вектор, указывающий направо (1, 0)Зачем же тогда я разбираю это, если я и без этого смогу работать? Потому что я твердо решил и понял, что я просто обязан отдавать себе отчет о каждой строчке кода, в первые два года работы программистом я что-то делал, и оно работало, но я не понимал как и почему, и, конечно же, у меня еще был синдром самозванца в том числе из-за этого
Синдром самозванца — это психологический феномен, при котором человек сомневается в своих силах и чувствует себя «мошенником», несмотря на доказательства своих достижений и навыков. Его не покидает ощущение, что та точка, где он оказался, — это случайность, и его вот-вот разоблачат и осудят
И с того момента, как я начал отдавать отчет о КАЖДОЙ строчке, которую я пишу, я начал намного быстрее и лучше работать работу. Это правда очень сложно, потому что хоть это делать с самого начала или же начать отдавать отчет спустя пару лет - в любом случае придется разбирать каждое новое слово, каждый новый алгоритм действий, нельзя пропускать непонятные слова в документации и гайдах и так далее
И я уверен, что в ближайшем будущем мне пригодятся эти знания, когда мне не будет достаточно встроенных функций и мне нужно будет сделать что-то 💫болиелименее💫 специфическое, я уже буду знать хотя бы в какую сторону копать. Самое главное это знать что что-то есть и +- понимать как оно работает, заучивать это гиблое дело в любой сфере как я считаю
Я очень хотел еще написать пост про тригонометрию и о формуле поворота вектора, но передумал, лучше вам не лезть в этот ад
Видео с текущим состоянием игры прикрепил и.. я наконец-то сменил в программе для монтажа кол-во кадров с 30 до 60, то есть два месяца я тупо выкладывал видео в 30 кадров где кровь из глаз при просмотре, ну не гений ли я
#godot #ritkarampage #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1