Это просто КЛАСС !! Надеюсь что будет полный курс про Движок Godot. С самого начала - язык программирования движка, создание игры (желательно под Android), встраивание рекламы, создание apk файла.
@@goldrockpro9079 Ну тогда остается только ждать Гошу) талант объяснять сложные вещи простым языком конечно у него не отнять. кстати у Сканера есть Дискорд сервер - там быстро помогают по большинству вопросов
@@goldrockpro9079 ахрахаапх, ну да, гоша лучше рассказывает. Правда дает он тебе информацию, за практическое применение которой тебе ноги сломают, но зато рассказывают лучше!!! Ты иди ещё купи у него курс по юнити)
*ВАЖНЫЕ ИЗМЕНИЯ GODOT 4* KinematicBody2D стал CharacterBody2D. Слегка поменяли логику, теперь не надо указывать в move_and_slide аргументы. Настройки стен, направления и всего прочего устанавливаются отдельно через собственные свойства , например CharacterBody2D.velocity = Vector2(100,0) или CharacterBody2D.up_vector = Vector2.UР P.s. это не все, еще очень много изменений советую почитать в интернете
@Владислав Велес 1) генераторы по большей части - синтакс. сахар. есть итераторы, если приспичит + есть yield 2. насчёт асинхронных функций - yield в большинстве случаев хватит за глаза. 3. про невозможность создания классов - это совсем не понял) скрипт уже является классом. можно создавать кастомные типы напр. с пом. ключевого слова class_name. можно создавать классы внутри скриптов
@@me2beats313, но всё равно легче на с# писать, ибо с gdscript будешь мозги себе больше иметь) Хотя, если разобраться( а там без "Б") то нормально будет
Смотреть видосы по годоту от дударя, когда есть действительно хороший разработчик с канала "Godot 3D Russia", который снимает ХОРОШИЕ и подробные видео по этому движку
@@ellyminaty5146 Да, тем более у Годо Раша этих видео дофига и больше, а у Гоши Дударя только одно видео по простенькому платформеру. Не знаю, как остальным, но я считаю, что простым инди возможностей Годо за глаза. Кто-то говорит, там говно графон, но нет. Графика в Годо на достойном уровне. Возможностей у Годо очень много. Сейчас версия 3.2.2. Боюсь представить, насколько это будет бомбезный движок после выхода версии 4.0.
@@alexraum8579 Ну, объективно, сейчас годот ещё совсем слаб и не может тягаться с юнити на равных. Но если ты энтузиаст и хорош в программировании и разработке игр, то годот крайне интересен, учитывая все ограничения юнити из-за подписок. Ну, а по поводу Дударя, здесь даже говорить нечего. Сколько бы видосов у него не было, учиться по ним никакого смысла нет, ибо он сам не имеет ни малейшего представления о том, что вещает. Видео ради видео и не более
@@ellyminaty5146 Вот именно, Годо полностью бесплатен. Хоть он и не может потягаться с Юнити на равных, но всё же мне за глаза его возможностей. Тем более, у меня ноут средний. Юнити тоже идёт без лагов, но Годо запускается за пару секунд. Плюс, мне его интерфейс как-то больше понравился. Уже и практика с Годо была. Сделал 2д игру небольшую и 3D шутер в стиле Low Poly. Там у меня сам игрок, карта, анимация движения, выстрел, перезарядка, ограничение патронов, вывод хр и патронов в интерфейс, туман добавил, дальность прорисовки и occlusion culling. Также, у меня перс медленно скользил с холма, поэтому я добавил в коде, что полом считается всё при наклоне до 30 градусов. Те, что только вошли в Годо, не знают, как решить это. Поэтому кину этот фрагмент кода сюда... vel = move_and_slide(vel, Vector3(0,1,0), deg2rad(30)) То есть, нужно просто добавить deg2rad(30)) У кого поверхность ровная, это не нужно вовсе. Но если у вас там в игре холмы есть, например, (как у меня) то без этого никуда.
@@ArcticFox42 Это линейная интерполяция. Нахождение промежуточных значений между двумя известными. Если, например, у нас есть 0 и 10, то, интерполированное значение ровно по центру(коэффициент интерполяции, или как правильно, уже не помню, будет 0.5) будет 5. Коэффициент обозначает насколько далеко от первого значения до второго интерполировать. Если коэффициент равен 0, то итоговое значение равно первому, а если 1, то равно второму значению. В основном, в языках программирования реализуется вот так: function lerp(start, end, t) { return start * (1 - t) + end * t; }
Нужно больше уроков по godot. Хороший движок, но мало таких уроков. Ещё можно было бы сделать выпуск про 3d игру, и создание для неё моделей с хотя бы простенькой анимацией
++ 32:45 - "За счёт дельты мы сглаживаем"... 6ляять, сглаживаем мы только с помощью математических функции, а дельта, это переменная с плавающей точкой, с помощью которой можно заставить игру работать в зависимости от реального времени, а не от ФПС. Дельта - это время, прошедшее с последнего кадра в секундах. Если есть переменная Speed = 400, используя выражение velocity = Speed * delta, персонаж будет передвигаться со скоростью около 6-7 пикселей за кадр (при частоте кадров 60). Т.е. если комп игрока не вытягивает все 60 ФПС, и его ФПС прыгает от 50 до 60, то игра все равно будет идти в реальном времени, даже при ФПС = 30 (передвижение на 13 пикселей за кадр) его игра не будет замедлять время. Но без дельты (при ручном вводе кол-ва пикселей за кадр), если комп игрока вытягивает только 30 из 60-ти, то его игра будет идти в 2 раза медленней чем должна.
31:00 "is_action_pressed срабатывает только после того как мы нажали, отпустили..." 6ляяяяяяяяять я в axye с этого ютубера... Скаммер чистой воды. Сплошное введение в заблуждение, халтурный и костыльный код, ноль понимания темы (только ее иллюзия) и т.д. до бесконечности... Ещё чувак зеркалит текстуру Игрока, но не зеркалит злоебучий хитбокс игрока -____- Я не могу даже примерно вспомнить сколько раз я пробил свой лоб сильнейшими фейспалмами в течении всего видео...
РЕБЯТА ДЛЯ ИЗБАВЛЕНИЯ ЭФФЕКТА СКАЛЬЖЕНИЯ У ПЕРСА НУЖНО ПРОДУБЛИРОВАТЬ МЕСТО ГДЕ НАПИСАНО Input ВМЕСТО PRESSSED НАПИСАТЬ released И ПОСТАВИТЬ ТАМ ГДЕ VEL.X+= ИЛИ VEL.X-= ,0 И ПЕРС БУДЕТ СТОЯТЬ КОГДА ВЫ ОТПУСТИТЕ КЛАВИШИ УПРАВЛЕНИЯ
Блин, так интересно пересматривать уроки по старой версии движка... Жалко, что нету гайдов для людей, которые хотели бы создавать игры на новых версиях. Очень надеюсь, что автор заметит этот комментарий (плевать что прошло 3 года) и создаст подробный гайд по четвёрке. Респект👍
delta нужна не для того, чтобы сглаживать, а чтобы синхронизировать с реальной производительностью. Дельта содержит время, которое прошло между предыдущим вызовом функции _physics_process и текущим. По умолчанию, функция вызывается 60 раз в секунду (это настраивается в настройках программы) Если вдруг игра подтормаживает, то delta увеличивается, и доумножением на delta мы как бы компенсируем любые тормоза на компе. По-хорошему, на delta следует умножать каждую переменную, которая изменяет velocity. И ещё неплохо сперва нормализовать delta (домножив на 60), чтобы все наши изменяющие переменные не уменьшались в 60 раз. Ну либо все переменные, меняющие velocity придётся указывать в единицах за секунду, а не в единицах за кадр.
Чтобы игрок не продолжал движение после того как вы отпустите кнопку движения можно просто после после elif Input.is_action_pressed("Player_right"): vel.x = speed Написать else: velocity.x = 0 Тогда после отжатия кнопки игрок мгновенно остановиться, сам я новичок, уверен можно придумать что-нибудь получше, чтобы например игрок останавливался плавно, но как сам я пока не знаю, по крайней мере это решит проблему.
Почему godot не видит первую кнопку то есть if input.is_action_pressed("влево")он не реагирует а elif input.is_action_pressed("вправо")он работает пр этом может в любой момент повернуть на лево хотя я жму на право
Спасибо. Я три с лишним часа по хреновейшему гайду пытался сделать то, что с твоей помощью сделал за 20 минут. И при этом мне всё понятно что было в твоём видео. Ты учитель программирования от бога.
А не правильнее (проще) так: onready var imagePlayer = get_node("icon") func _physics_process(delta): if Input.is_action_pressed("player_left"): imagePlayer.flip_h = false vel.x -= speed elif Input.is_action_pressed("player_right"): imagePlayer.flip_h = true vel.x += speed то есть вынести развороты игрока в уже имеющиеся IF где ранее уже задавали направление движения ?
А как вам идея сделать платформер в 3D? Можно будет сделать мини квадрат с полигонами,и заполнить его разными платформами с батутами,и прочей фауной,которая создаёт окружение игры. Я бы реально посмотрел на такую игру на движке Godot 😀
Кому нужен правильный код, держите + в этом коде персонаж не скользит использовал Chat GPT Нейросеть extends KinematicBody2D var speed = 50 var jumpForce = 500 var gravity = 800 var vel = Vector2() func _physics_process(delta): if Input.is_action_just_pressed("player_left"): vel.x -= speed elif Input.is_action_just_pressed("player_right"): vel.x += speed elif not Input.is_action_pressed("player_left") and not Input.is_action_pressed("player_right"): vel.x = 0 vel.y += gravity * delta if Input.is_action_pressed("player_jump") and is_on_floor(): vel.y = -jumpForce move_and_slide(vel, Vector2.UP)
Круто! Гоша, я тоже изучаю Godot, и сейчас пытаюсь реализовать мультиплеер. Оказалось, это не такая уж и легкая вещь. Было бы очень здорово, если бы ты выпустил видео про мультиплеер в Godot. Нет ни одного ролика на русском ютубе на эту тему. Стань же первопроходцем!
Godot хорошо продуман, но надо к нему привыкнуть. и синтаксис основного скриптового языка лёгкий, во многом похож на python. рад, что Гоша наконец выпустил видео о нём, на русском с туториалами для новичков пока не всё так здорово как у Юнити, а это то, что многих останавливает.
Если вам нужно чтобы персонаж останавливался на поверхности (Но нужно в самом начале объявить переменную friction, которая у меня равна 800, от нее зависит как сильно будет действовать трение на персонажа): if is_on_floor(): if vel.x > 0: vel.x -= friction * delta if vel.x < 1: vel.x = 0 elif vel.x < 0: vel.x += friction * delta if vel.x > -1: vel.x = 0
Да, у вас очень легко понимать. И главное уверенность, что можно так делать игру, не смортя по каждой теме урок, а сам принцип работы и уверенность что будет работать.
Если в главной сцене узел Игрок расположить выше, чем узел Платформа, то игрок проваливается за платформой. Если же платформа стоит выше в узле, то игрок как бы ближе, чем платформа. А встать на платформу не получается.
Вот уже спустя 3 года урок всё равно офигенный. Жаль что местами не актуальный. Может имеет смысл перезаписать? Прям этот же урок, только с обновленными функциями.
Вот круто объясняет Гоша, другие ютуберы когда назначают клавиши, используют стандартные функции, типо "ui_left" и тд, а Гоша показал сразу, что можно и свои создавать. За это мне и нравятся твои уроки)
В итоге в этих сценах так запутаешься. В юнити структура конечно поприятнее,да и кодить на vs прикольнее. Хз может дело привычки. Да и всё это в юнити в разы короче получилось бы. Один префаб персонажа,один скрипт. Билдить как под андроид или под пк? Если под мобилу,какие есть инструменты?
Два года назад я начал изучать Годо и написал коммент про него под твой ролик. Сейчас я делаю уже 3 или 4 игру в нем. Правда не выпустил я из них ни одной кроме демки на итче.
Люди! Подскажите в чем ошибка: Не работает эта строка - if vel.x < 0: imagePlayer.flip_h = true elif vel.x > 0: imagePlayer.flip_h = false Пишет ошибку: Invalid set index 'flip_h' (on base: 'null instance') with value of type 'bool'. Что делать-то?
Гоша, только твои ролики и помогают рассеять туман неведения. спасибо, что помогаешь нам! Очень хотелось бы увидеть продолжение. И если с платформерами все более менее понятно, то как работать с ЮАЙ генерацией и созданием, например пошаговых стратегий - пока загадка. Очень прошу, выпусти еще роликов!
@@me2beats313 зазеч оба? вопрос же не в том, что бы много знать, а в том ,что б делать игры?Чего такого я смогу делать в godot, чего не могу в Unity? И наоборот
@@PaparazziDreams Ну кастомизировать и настроить интерфейс не получится так гибко, как это можно в годо. банально - в Godot можно создать любую тему редактора. создание 2D игр не так удобно как в godot. если приложения захочешь писать, то Godot опять в выигрыше. Если же интересует только 3D, то да - юнити вин.
хоть немного головой подумай. Это же понятно, но говорить не буду, т.к. у тебя так мозг окаменеет, хотя он наверное уже и так каменный. И по такому пустяку ты попросил снять видео.
Почему-то очень 2D у Godot напомнил Scirra Construct Classic системой скриптов и, соответственно, простого ООП объектов сцены, правда там открытые переменные были дочерними объектами условного персонажа, а закрытые (которые надо устанавливать для каждой сцены) - как обычные атрибуты, да и каждый открытый объект не создавался на отдельной сцене (здесь уже напоминает Quest Soft Player с его отдельными сценами, предназначенными для типовой обработки каждого действия).
Существует возможность к одному узлу прикрепить несколько скриптов. Особенно ценно для мигрирующих с юнити. Делаем такой трюк. Допустим у нас есть узел KinematicBody2D, к которому мы хотим прикреплять не один скрипт, а несколько. Мы добавляем к этому узлу узлы Node (беленький кружочек). И к каждому из них прикрепляем свой скрипт. А у каждого Node есть метод parent() который и возвращает нам непосредственно родителя этого узла в дереве, то есть нашего KinematicBody2D. И теперь во всех этих скриптах, мы можем работать с нашим кинематиком так: parent().move_and_slide(bla, bla) Если постоянный вызов метода кажется неудобным, то в начале скрипта запишем: onready var body : KinematicBody2D = parent() или даже мы можем записать конструкцию, аналогичную, как это делается в юнити: onready var body : KinematicBody2D = get_node("/bla/bla/bla/player")
А можно вопрос а если ты пишешь команду if Input.is_action_pressed(player_left) то вскобках надо писать игрок как у тебя или то как у меня называется персонаж
Это просто КЛАСС !!
Надеюсь что будет полный курс про Движок Godot.
С самого начала - язык программирования движка, создание игры (желательно под Android), встраивание рекламы, создание apk файла.
@WyverN
Видел.
Автор скучен.
Гоша в сто раз лучше рассказывает !!
@@goldrockpro9079 Ну тогда остается только ждать Гошу)
талант объяснять сложные вещи простым языком конечно у него не отнять.
кстати у Сканера есть Дискорд сервер - там быстро помогают по большинству вопросов
@@me2beats313 Я за Сканнера)) У него очень много уроков по Годо. А после выхода версии Godot 4.0 он планирует перезапустить уроки.
@@goldrockpro9079 ахрахаапх, ну да, гоша лучше рассказывает. Правда дает он тебе информацию, за практическое применение которой тебе ноги сломают, но зато рассказывают лучше!!! Ты иди ещё купи у него курс по юнити)
@@goldrockpro9079 не знаю скучен он, не скучен. А меня устраивает.
*ВАЖНЫЕ ИЗМЕНИЯ GODOT 4*
KinematicBody2D стал CharacterBody2D.
Слегка поменяли логику, теперь не надо указывать в move_and_slide аргументы.
Настройки стен, направления и всего прочего устанавливаются отдельно через собственные свойства , например CharacterBody2D.velocity = Vector2(100,0) или CharacterBody2D.up_vector = Vector2.UР
P.s. это не все, еще очень много изменений советую почитать в интернете
Спасибо
@@FANBRO228 да пожалуйста, если честно вообще бы не советовал учить годо по этому ролику, тк он очень устаревший
@@Closemyheart да я понял уже нету новых видео по новой версии движка много всего поменялось
@@Closemyheart а какие бы видео уроки или документацию вы бы могли посоветовать по новой версии?
лол 4 версия мне всю физику сама написала
Жду серию уроков по этому движку) Интересно какие еще языки есть и сложно ли на них скрипты писать.
czcams.com/users/SkanerSoft можешь здесь посмотреть там чувак этим давно занимается.
есть C# например.
проще всего Gdscript
даже проще питона
и заточен под движок.
и большинство туториалов на нем.
поэтому советую начать с него
@Владислав Велес 1) генераторы по большей части - синтакс. сахар. есть итераторы, если приспичит
+ есть yield
2. насчёт асинхронных функций - yield в большинстве случаев хватит за глаза.
3. про невозможность создания классов - это совсем не понял)
скрипт уже является классом.
можно создавать кастомные типы напр. с пом. ключевого слова class_name.
можно создавать классы внутри скриптов
@@me2beats313, но всё равно легче на с# писать, ибо с gdscript будешь мозги себе больше иметь) Хотя, если разобраться( а там без "Б") то нормально будет
@Владислав Велес в gdscript каждый скрипт это класс
"Нужно больше золота", а так как в наш век информация и знания одно из самых ценных, то твои уроки это-Золото). Ждём ещё уроки по этому движку!
Гошик, ЛЮБАЯ игра начинается с МЕНЮ ! А не со сцены анимаций 🤣😂🤣
Да брат буду учится на ошибках :)
Спасибо, по годот на русском Ютубе мало видео. Очень рад, что вы выложили видео) Очень ждал
Зайди на канал к Сканнеру))
Смотреть видосы по годоту от дударя, когда есть действительно хороший разработчик с канала "Godot 3D Russia", который снимает ХОРОШИЕ и подробные видео по этому движку
@@ellyminaty5146 Да, тем более у Годо Раша этих видео дофига и больше, а у Гоши Дударя только одно видео по простенькому платформеру. Не знаю, как остальным, но я считаю, что простым инди возможностей Годо за глаза. Кто-то говорит, там говно графон, но нет. Графика в Годо на достойном уровне. Возможностей у Годо очень много. Сейчас версия 3.2.2. Боюсь представить, насколько это будет бомбезный движок после выхода версии 4.0.
@@alexraum8579 Ну, объективно, сейчас годот ещё совсем слаб и не может тягаться с юнити на равных. Но если ты энтузиаст и хорош в программировании и разработке игр, то годот крайне интересен, учитывая все ограничения юнити из-за подписок.
Ну, а по поводу Дударя, здесь даже говорить нечего. Сколько бы видосов у него не было, учиться по ним никакого смысла нет, ибо он сам не имеет ни малейшего представления о том, что вещает. Видео ради видео и не более
@@ellyminaty5146 Вот именно, Годо полностью бесплатен. Хоть он и не может потягаться с Юнити на равных, но всё же мне за глаза его возможностей. Тем более, у меня ноут средний. Юнити тоже идёт без лагов, но Годо запускается за пару секунд. Плюс, мне его интерфейс как-то больше понравился. Уже и практика с Годо была. Сделал 2д игру небольшую и 3D шутер в стиле Low Poly. Там у меня сам игрок, карта, анимация движения, выстрел, перезарядка, ограничение патронов, вывод хр и патронов в интерфейс, туман добавил, дальность прорисовки и occlusion culling. Также, у меня перс медленно скользил с холма, поэтому я добавил в коде, что полом считается всё при наклоне до 30 градусов. Те, что только вошли в Годо, не знают, как решить это. Поэтому кину этот фрагмент кода сюда...
vel = move_and_slide(vel, Vector3(0,1,0), deg2rad(30))
То есть, нужно просто добавить deg2rad(30))
У кого поверхность ровная, это не нужно вовсе. Но если у вас там в игре холмы есть, например, (как у меня) то без этого никуда.
Для плавной остановки хорошо еще использовать фунцию lerp()
velocity = move_and_slide(velocity, Vector2.UP)
velocity.x = lerp(velocity.x, 0, 0.2)
А что делает lerp? Оно постепенно уменьшаеть значение числа?
шО ЗА Язык програпирования ? Питон ?
@@darkhunter777 У этого движка свой язык GDScript но можно использовать CSharp (c#)
@@ArcticFox42 Это линейная интерполяция. Нахождение промежуточных значений между двумя известными. Если, например, у нас есть 0 и 10, то, интерполированное значение ровно по центру(коэффициент интерполяции, или как правильно, уже не помню, будет 0.5) будет 5. Коэффициент обозначает насколько далеко от первого значения до второго интерполировать. Если коэффициент равен 0, то итоговое значение равно первому, а если 1, то равно второму значению. В основном, в языках программирования реализуется вот так:
function lerp(start, end, t) {
return start * (1 - t) + end * t;
}
огромное спасибо возьму на заметку)
Нужно больше уроков по godot. Хороший движок, но мало таких уроков. Ещё можно было бы сделать выпуск про 3d игру, и создание для неё моделей с хотя бы простенькой анимацией
*В Godot пока что в 3D лучше не суваться, ибо есть проблемы с производительностью.*
@@Mitsumata что, и оптимизировать никак нельзя?
@@graphicsh Можно и легко. Там уже давно с 3D всё пофикшено.
@@variondrakon но графика очевидно хромает.
@@comachine ну ты сказанул годот ещё маленький движок
Создай серию уроков, пожалуйста
Отлично. Продолжай и дальше. А то многие после начальных уроков не объясняют дальше про Godot на русском. Ждём про стрельбу, анимацию и т.п.
Ты забыл написать:
else:
Vel.x = 0
Чтобы персанаж оставался, когда отпускается кнопка.
он будет в воздухе останавливаться, лучше так:
elif is_on_floor():
vel.x = 0
что за язык програмирования
@@thegreatfaer3081 GDScript
@@thegreatfaer3081 gdscript
Run_mAn_ruN это новый язык?
27:30 отлично, мы сначала создали 2 условия для передвижения, а потом создали еще два для отражения ассета игрока. Просто хлопки в чат.
Лол, и я об жтом подумал и написал, и сразу твой комент увидел !)
2 гения это сила 😂
++
32:45 - "За счёт дельты мы сглаживаем"... 6ляять, сглаживаем мы только с помощью математических функции, а дельта, это переменная с плавающей точкой, с помощью которой можно заставить игру работать в зависимости от реального времени, а не от ФПС. Дельта - это время, прошедшее с последнего кадра в секундах.
Если есть переменная Speed = 400, используя выражение velocity = Speed * delta, персонаж будет передвигаться со скоростью около 6-7 пикселей за кадр (при частоте кадров 60). Т.е. если комп игрока не вытягивает все 60 ФПС, и его ФПС прыгает от 50 до 60, то игра все равно будет идти в реальном времени, даже при ФПС = 30 (передвижение на 13 пикселей за кадр) его игра не будет замедлять время. Но без дельты (при ручном вводе кол-ва пикселей за кадр), если комп игрока вытягивает только 30 из 60-ти, то его игра будет идти в 2 раза медленней чем должна.
31:00 "is_action_pressed срабатывает только после того как мы нажали, отпустили..." 6ляяяяяяяяять я в axye с этого ютубера... Скаммер чистой воды. Сплошное введение в заблуждение, халтурный и костыльный код, ноль понимания темы (только ее иллюзия) и т.д. до бесконечности...
Ещё чувак зеркалит текстуру Игрока, но не зеркалит злоебучий хитбокс игрока -____-
Я не могу даже примерно вспомнить сколько раз я пробил свой лоб сильнейшими фейспалмами в течении всего видео...
@@theseangleвот кстати в одной игре у моего друга время было замедленно. А у меня все норм было.
РЕБЯТА ДЛЯ ИЗБАВЛЕНИЯ ЭФФЕКТА СКАЛЬЖЕНИЯ У ПЕРСА НУЖНО ПРОДУБЛИРОВАТЬ МЕСТО ГДЕ НАПИСАНО Input ВМЕСТО PRESSSED НАПИСАТЬ released И ПОСТАВИТЬ ТАМ ГДЕ VEL.X+= ИЛИ VEL.X-= ,0 И ПЕРС БУДЕТ СТОЯТЬ КОГДА ВЫ ОТПУСТИТЕ КЛАВИШИ УПРАВЛЕНИЯ
Спасибо
Спасибо
Не сработало. Скольжение все ещё есть.
И там нет функции released, лишь just_released
@@user-ew6wb1fo7z Тебе just_released и нужно. Только вместо += или -= пиши просто = 0
@@madbuilder9551 да я догадался уже. В гугл забил перевод, а дальше логика.
Но другим объяснение пригодится.
Блин, так интересно пересматривать уроки по старой версии движка... Жалко, что нету гайдов для людей, которые хотели бы создавать игры на новых версиях. Очень надеюсь, что автор заметит этот комментарий (плевать что прошло 3 года) и создаст подробный гайд по четвёрке. Респект👍
чел жизненно
есть гайды, но на английском
@@bloxz8594 знаю, но смотреть в субтитры которые переводят текст и одновременно на само видео очень некомфортно
@@rhapsodies3 ну тут остаётся только учить англ либо испльзовать яндекс с авто переводом голоса
@@bloxz8594 не могу не согласиться
delta нужна не для того, чтобы сглаживать, а чтобы синхронизировать с реальной производительностью. Дельта содержит время, которое прошло между предыдущим вызовом функции _physics_process и текущим. По умолчанию, функция вызывается 60 раз в секунду (это настраивается в настройках программы) Если вдруг игра подтормаживает, то delta увеличивается, и доумножением на delta мы как бы компенсируем любые тормоза на компе. По-хорошему, на delta следует умножать каждую переменную, которая изменяет velocity. И ещё неплохо сперва нормализовать delta (домножив на 60), чтобы все наши изменяющие переменные не уменьшались в 60 раз. Ну либо все переменные, меняющие velocity придётся указывать в единицах за секунду, а не в единицах за кадр.
Полезный комент 👍
Привет. Для первого ознакомления с движком прям шикарное видео ) Спасибо.
Чтобы игрок не продолжал движение после того как вы отпустите кнопку движения можно просто после после elif Input.is_action_pressed("Player_right"):
vel.x = speed
Написать
else:
velocity.x = 0
Тогда после отжатия кнопки игрок мгновенно остановиться, сам я новичок, уверен можно придумать что-нибудь получше, чтобы например игрок останавливался плавно, но как сам я пока не знаю, по крайней мере это решит проблему.
elif Input.is_action_just_released("player_right"):
vel.x = 0
Работает
Если хочешь чтоб оно плавно скользило просто вместо 0 поставь 5 или 7
Почему godot не видит первую кнопку то есть if input.is_action_pressed("влево")он не реагирует а elif input.is_action_pressed("вправо")он работает пр этом может в любой момент повернуть на лево хотя я жму на право
@@Ya_chelkash та же фигня
Я всё смотрел твои старые туторы и мне ненравилось что ты льёшь воду, непонятно обьясняешь без сценария, а тут... ДА ТЫ ЛУЧШЫЙ ЮТУБЕР!
У тебя лучший канал по программированию
кхм Хауди хо с более милионом подпищиков покинул чат))
Да! Продолжай!
ДА! ПРАДАЛЖАЙ!
спасибо за продвижение годота. ждем еще контента по годоту)))))))позязя
Спасибо ты всё-таки услышал и сделал по этой платформе. И получилось такое совпадение, что ты меня порадовал подарком на день рождения)
Спасибо. Я три с лишним часа по хреновейшему гайду пытался сделать то, что с твоей помощью сделал за 20 минут. И при этом мне всё понятно что было в твоём видео. Ты учитель программирования от бога.
@Stalker 8 ну, с английским мне помог Яндекс переводчик страниц. Он сейчас очень неплохо переводит.
А не правильнее (проще) так:
onready var imagePlayer = get_node("icon")
func _physics_process(delta):
if Input.is_action_pressed("player_left"):
imagePlayer.flip_h = false
vel.x -= speed
elif Input.is_action_pressed("player_right"):
imagePlayer.flip_h = true
vel.x += speed
то есть вынести развороты игрока в уже имеющиеся IF где ранее уже задавали направление движения ?
Нужны уроки дальше) Как создать более сложную и более полноценную игру?)
А как вам идея сделать платформер в 3D? Можно будет сделать мини квадрат с полигонами,и заполнить его разными платформами с батутами,и прочей фауной,которая создаёт окружение игры. Я бы реально посмотрел на такую игру на движке Godot 😀
Есть типа того уже
@@nikitagundorov9906 угу, несколько десятков тысячь наверное)) Орегенальная типа идея
Ну идея хорошая, но можешь эти игры посмотреть и на юнити и на других, так как их уже тысяч 5
Видео было очень интересный. Пожалуйста, продолжай снимать по Godot
Ураа! Это единственное видео на моей версии :'>
Спасибо тебе!
Плюсую тысячу раз
Кому нужен правильный код, держите + в этом коде персонаж не скользит использовал Chat GPT Нейросеть
extends KinematicBody2D
var speed = 50
var jumpForce = 500
var gravity = 800
var vel = Vector2()
func _physics_process(delta):
if Input.is_action_just_pressed("player_left"):
vel.x -= speed
elif Input.is_action_just_pressed("player_right"):
vel.x += speed
elif not Input.is_action_pressed("player_left") and not Input.is_action_pressed("player_right"):
vel.x = 0
vel.y += gravity * delta
if Input.is_action_pressed("player_jump") and is_on_floor():
vel.y = -jumpForce
move_and_slide(vel, Vector2.UP)
Может сделаете вторую часть?
Круто👍 Ждём 3D урок
После импорта можно выключить галку Filter и переимпортировать, тогда не будет мыла
Можешь подробнее рассказать, как импортировать без мыла?
Круто! Гоша, я тоже изучаю Godot, и сейчас пытаюсь реализовать мультиплеер. Оказалось, это не такая уж и легкая вещь. Было бы очень здорово, если бы ты выпустил видео про мультиплеер в Godot. Нет ни одного ролика на русском ютубе на эту тему. Стань же первопроходцем!
Народ жаждет больше видеоуроков по GODOT 2D
Я искал такую среду 1год с нетерпением жду продолжения
блин двигло пошло в паблик ) эх, а раньше было клево сидеть в небольшом и уютном комьюнити )
блин мне даже кажется что на этом движке проще чем на Unity
Тебе не кажется
Godot хорошо продуман, но надо к нему привыкнуть.
и синтаксис основного скриптового языка лёгкий, во многом похож на python.
рад, что Гоша наконец выпустил видео о нём, на русском с туториалами для новичков пока не всё так здорово как у Юнити, а это то, что многих останавливает.
Брат, родной, привет))
Лол, сравнил легковесный годо и тяжеловесный юнити
Это действительно так! Говорю как человек с опытом 2 года. Но придётся многие вещи делать ручками а не из ассетов)))
Если вам нужно чтобы персонаж останавливался на поверхности (Но нужно в самом начале объявить переменную friction, которая у меня равна 800, от нее зависит как сильно будет действовать трение на персонажа):
if is_on_floor():
if vel.x > 0:
vel.x -= friction * delta
if vel.x < 1:
vel.x = 0
elif vel.x < 0:
vel.x += friction * delta
if vel.x > -1:
vel.x = 0
Продолжайте )
Супер! Движок лучший для новичков! Мне всё понятно впервые ))))
Продолжи пожалуйста снимать такие видео
Да, у вас очень легко понимать. И главное уверенность, что можно так делать игру, не смортя по каждой теме урок, а сам принцип работы и уверенность что будет работать.
А как нарисовать своего персонажа?? Свой фон?
Спасибо большое за урок, все предельно понятно, продолжайте в том же духе, жду с нетерпением продолжения на эту тему
Да мне тоже очень интересно, также хотелось бы увидеть написание скриптов на языке C++
Как создать бэкграунд, как создать эффект паралакса для бэкграунда и вообще - давайте сделаем платформер-конфетку
Там узел есть ParallaxBackground, почитай в документации.
Если в главной сцене узел Игрок расположить выше, чем узел Платформа, то игрок проваливается за платформой. Если же платформа стоит выше в узле, то игрок как бы ближе, чем платформа. А встать на платформу не получается.
Отличный урок !!!
Есть канал, который снимает видео по Godot, но твои видео (лично для меня) более понятные
Жду продолжения уроков по Godot engine
Хотелось бы еще различных видео по этому движку. Уверен, что он не хуже того же юнити будет. Углубиться в эту тему стоит.
Буду очень рад если появится серия на эту тему)
GODOT работает с OPEN GL а не с Direct X что не очень хорошо для графики, но как мне кажется UNITY и UNREAL тоже без Direct X ? 😁
Здравствуйте Гоша, хочу спросить можете сделать урок по это му движку но только RPG игры а то на Ютубе нет нормального видео? пожалуйста!
Есть нормальные видео на английском языке.
Вот уже спустя 3 года урок всё равно офигенный. Жаль что местами не актуальный. Может имеет смысл перезаписать? Прям этот же урок, только с обновленными функциями.
Забиваю калик и начинаем смотреть
Жду больше уроков по godot
Вот круто объясняет Гоша, другие ютуберы когда назначают клавиши, используют стандартные функции, типо "ui_left" и тд, а Гоша показал сразу, что можно и свои создавать. За это мне и нравятся твои уроки)
Прикольно, мне очень понравились и понятно объяснил. Продолжай пожалуйста, удачи тебе
В итоге в этих сценах так запутаешься. В юнити структура конечно поприятнее,да и кодить на vs прикольнее. Хз может дело привычки. Да и всё это в юнити в разы короче получилось бы. Один префаб персонажа,один скрипт. Билдить как под андроид или под пк? Если под мобилу,какие есть инструменты?
в сценах не запутаешься, просто надо привыкнуть.
билдить можно под все
Гоша, давай ещё серию срочно, все ждём
Сделайте для версии 4.1, если не тяжело. Многое поменялось
Согл. move_and_slide не работает
@@cap7512 move_and_slide()
круто, продолжай))
Два года назад я начал изучать Годо и написал коммент про него под твой ролик. Сейчас я делаю уже 3 или 4 игру в нем. Правда не выпустил я из них ни одной кроме демки на итче.
_physics_process вообще то только 60 кадров в секунду вызывается, что бы когда у челика 10 кадров было, его перс не становился слишком непонятным
Но это значение можно изменить в настройках проекта
Так и есть лол:) Это как FixedUpdate в Unity.
Люди! Подскажите в чем ошибка:
Не работает эта строка -
if vel.x < 0:
imagePlayer.flip_h = true
elif vel.x > 0:
imagePlayer.flip_h = false
Пишет ошибку: Invalid set index 'flip_h' (on base: 'null instance') with value of type 'bool'.
Что делать-то?
и у меня
Нашёл ответ?
Наконецсто, видео урок от префсионала.
Звучит смешно, этот чувак просто посмотрел на бугре и интерпретировал на русский ютуб.
@@1play2fun еще и платформер трешовый получился нет нормального прыжка нет анимаций да и само обьяснение поверхностное
@@user-kn9xt7hf2b на скорую руку.
просвистеонала
ну а что вы хотели за полчаса?)
это видео для новичков
Гоша, только твои ролики и помогают рассеять туман неведения. спасибо, что помогаешь нам! Очень хотелось бы увидеть продолжение. И если с платформерами все более менее понятно, то как работать с ЮАЙ генерацией и созданием, например пошаговых стратегий - пока загадка. Очень прошу, выпусти еще роликов!
Пишет: The argument 'delta' is neger used in the function '_physics_process'. If this is intended, prefix it with an underscore: '_delta'. Что делать?
+
Жду больше уроков по этому движку. Очень мало уроков на русском в интернете
Можно по больше про создавание игр и сайтов
Оч круто! Только что доделал эту игру. Ждём 2 чсть
а будет вторая серия создание этой игры ?
это будет очень классно
Спс! Как же я этого ждал. В этой документации мне лень учить)). Жду короче курсы). Серьёзно, я не против если вы/ты выпустили/ил курсы по godot.
Очень положительный комментарий! Спасибо. Жутко интересно!
Спасибо ты топ 😁😁😁😁😁
Спасибо огромное, если честно, то правда в Godot очень удобно работать.
Отличный урок!
Спасибо :)
Я просил в пережном видио круто спасибо
У меня игрок проваливается за ящиком. В чем может быть причина?
было бы неплохо еще примеров разных типов игр
Учишь учишь Unity, тут какой то Godot... Оно мне надо?
решай сам)
вообще конечно круто оба знать
@@me2beats313 зазеч оба? вопрос же не в том, что бы много знать, а в том ,что б делать игры?Чего такого я смогу делать в godot, чего не могу в Unity? И наоборот
@@PaparazziDreams Ну кастомизировать и настроить интерфейс не получится так гибко, как это можно в годо.
банально - в Godot можно создать любую тему редактора.
создание 2D игр не так удобно как в godot.
если приложения захочешь писать, то Godot опять в выигрыше.
Если же интересует только 3D, то да - юнити вин.
@@me2beats313 понял, спасибо!
@@me2beats313 , плюс билды меньше весят. Для мобилок этого иногда критично.
Ребят скажите а что легче в освоении godo или unity в также в каком из движке легче скриптинг?
попробуй оба)
Если хочешь 3d, то годо пока сильно уступает юнити.
и наоборот - в 2d годо более удобен.
@@me2beats313 годо не прямо сильно уступает, а скоро, он даже будет лучше
Годо, найс
Жду игру на 3д :)
Очень жду серию уроков по Godot!
ИНФОРМАТИВНОЕ ВИДЕО, МОЛОДЕЦ! НО СНИМИ ЕЩЁ ПРО ТО, КАК ОГРАНИЧИТЬ ВИДЕНИЕ КАМЕРЫ: ПРИ ПОПЫТКЕ ПОДОЙТИ К КОНЦУ МИРА, КАМЕРА БОЛЬШЕ НЕ ДВИГАЛАСЬ.
хоть немного головой подумай. Это же понятно, но говорить не буду, т.к. у тебя так мозг окаменеет, хотя он наверное уже и так каменный. И по такому пустяку ты попросил снять видео.
@@Ams-sv5bf лмао, чел откуда столько токсичности? Только нубы отвечают как ты, разбирающиеся люди всегда делятся опытом
давай улучшать игру ну там меню или скины, покупки, игровую валюту...
ДАВАЙТЕ В ТОП!!
@Lost Dream Так ты хочешь сказать что обучатся плохо?
Здравствуйте, такая проблема, у меня в игре спрайт прыгает, а положение точки центра я не знаю как изменить, не могли бы вы помочь?
Почему-то очень 2D у Godot напомнил Scirra Construct Classic системой скриптов и, соответственно, простого ООП объектов сцены, правда там открытые переменные были дочерними объектами условного персонажа, а закрытые (которые надо устанавливать для каждой сцены) - как обычные атрибуты, да и каждый открытый объект не создавался на отдельной сцене (здесь уже напоминает Quest Soft Player с его отдельными сценами, предназначенными для типовой обработки каждого действия).
Жду продолжения.
Существует возможность к одному узлу прикрепить несколько скриптов. Особенно ценно для мигрирующих с юнити. Делаем такой трюк. Допустим у нас есть узел KinematicBody2D, к которому мы хотим прикреплять не один скрипт, а несколько. Мы добавляем к этому узлу узлы Node (беленький кружочек). И к каждому из них прикрепляем свой скрипт. А у каждого Node есть метод parent() который и возвращает нам непосредственно родителя этого узла в дереве, то есть нашего KinematicBody2D. И теперь во всех этих скриптах, мы можем работать с нашим кинематиком так: parent().move_and_slide(bla, bla) Если постоянный вызов метода кажется неудобным, то в начале скрипта запишем: onready var body : KinematicBody2D = parent() или даже мы можем записать конструкцию, аналогичную, как это делается в юнити: onready var body : KinematicBody2D = get_node("/bla/bla/bla/player")
а почему когда я пишу
move_and_slide(vel, Vector2 UP)
мне пишет
eror parsing expression misplaced: built- In type
КТО ХОЧЕТ ПРОДОЛЖЭНИЯ ШУТЕР ОТ 1 ГО ЛИЦА? ЛАЙК ЕСЛИ ХОТИТЕ.
А как управлять кликами персонажем кликами на экране, если игра под андроид?
Всё сделал точно так же,но персонаж сначала не идёт влево,а если зажать стрелку влеву,и потом нажать вправо,он улетит со скоростью равной световой бл
лучший движок. Давай, пж, еще про него
можно в следующем видосе сделать смерть и чекпоинты??
А можно вопрос а если ты пишешь команду if Input.is_action_pressed(player_left) то вскобках надо писать игрок как у тебя или то как у меня называется персонаж
Жду плейлист с уроками)