ПЕРЕШЕЛ С UNITY НА GODOT ЧТОБЫ СОЗДАТЬ ИГРУ МЕЧТЫ | WATALANDS

Sdílet
Vložit
  • čas přidán 1. 06. 2024
  • 14 сентября я перешел с Unity на Godot, спасибо Unity за их новую политику монетизации и испорченное доверие к кампании. Перенос игры не был долгим, уже через 2 дня я перенес все что хотел, хорошо что проект был совсем недавно начат. До этого я работал только с Unity и я ничего не знал о Godot, но спустя некоторое время, пройдя все стадии принятия, я полюбил Godot Engine.
    WATALANDS - это РПГ игра с элементами фермерства, подземельями, врагами и прокачкой и еще многими механиками... надеюсь.
    Подписывайся, чтобы не потерять!
    Тайм-коды:
    0:00 - Вступление
    1:13 - Механики
    1:44 - Добыча лута
    2:45 - Получение монет
    3:48 - Улучшения
    4:16 - Строение мостов
    4:48 - Сохранения
    5:14 - Трудности и референсы
  • Jak na to + styl

Komentáře • 99

  • @LapkaCode
    @LapkaCode  Před 4 měsíci

    Обязательно заходи на наш Discord сервер!🤠
    discord.gg/J7GtZVVhKQ

    • @RiG134
      @RiG134 Před 3 měsíci

      Стоять ковбой 🤠

  • @Svobodavsemdarom
    @Svobodavsemdarom Před 4 měsíci

    Отличный фарагер получился 👍

  • @user-stanrbm
    @user-stanrbm Před 5 měsíci

    Правильный выбор. Я одобряю. Молодец.

    • @LapkaCode
      @LapkaCode  Před 5 měsíci +1

      Благодарю за одобрение

  • @sintecky
    @sintecky Před 5 měsíci

    Подскажи, пожалуйста - в каком разрешении у тебя игра? Так как это пиксель арт, большинство ресурсов, включая официальную документацию godot, рекомендуют делать маленькое разрешение, чтобы целочисленно скейлить
    Вопрос в таком случае а как быть с UI - места то маловато получается, а если нужен какой то сложный UI то что делать - непонятно
    При этом UI то тоже бывает пиксельным и можно было бы отрендерить основную игру в отдельном Viewport с маленьким разрешением, а саму игру сделать в разрешении побольше, специально под UI, но тогда опять возникает проблема со скейлингом в те же 2к или 4к, пиксели в UI поплывут

    • @LapkaCode
      @LapkaCode  Před 5 měsíci

      Я не уверен, что все сделал правильно, но у меня так: Все арты 1:1 (то-есть если арт 16x16, то разрешение тоже 16 на 16), разрешение viewport 1920x1080, но у меня стоит sctretch.scale на 2, так что можно сказать, что разрешение в итоге 960x540. При моей настройке пиксели на UI совпадают с пикселями самой игры

    • @user-vv5dc1tl4m
      @user-vv5dc1tl4m Před 5 měsíci

      Для решения этой проблемы в GODOT есть настройка рендеринга 2D объектов, по дефолту стоит Linear, для пиксельарта используется Nearest

  • @o_HET
    @o_HET Před 5 měsíci +2

    Выглядит прекрасно, геймплейно всё понятно, лора бы немного )
    Ну и баланс деревьев бросается в глаза, большое дерево 10 сердце (больше чем в 3 раза чем маленькое) а даёт всего в 3 раза больше, нужно поднять будто бы )

    • @LapkaCode
      @LapkaCode  Před 5 měsíci

      Спасибо. Да, пожалуй, с балансом надо будет поиграться

    • @asdwwe307
      @asdwwe307 Před 4 měsíci

      Наоборот это правильно, иначе не будет смысла рубить мелкие деревья

  • @lauraqueen7848
    @lauraqueen7848 Před 6 měsíci +13

    Прочел название игры и в голове перевелось как "Чозаземье" ахахха
    Очень надо обучалочки, либо отдельном механики на гитхаб, чтобы самому поковыряться и понять как оно работает.
    Сам начал не так давно за 2д рпг, в идеале с коопом . Сел в годот, чтобы, как принято, сделать игру своей мечты, но столкнулся с тем, что каких-то гайдов на 4й годот мало, а на русском я вообще молчу)
    Тем не менее уже реализовал систему статов (сил, лвк, инт) , сердца, мана-звезды и полоску стамины, бег и перекат, даже какой то инвентарь есть)
    Базы не хватает и референсов, чтобы качественно продвигаться. Поэтому от лица работяг к лорду, мы ждем гайдов, чем сильнее нам разжуешь - тем лучше)

    • @LapkaCode
      @LapkaCode  Před 6 měsíci +1

      Название кстати так и переводится, а еще оно созвучно с water lands, что очень подходит игре, ведь действия происходят на островах. В следующих видео буду стараться показывать код и разбирать его по возможности. Насчет обучений тоже задумываюсь, в первую очередь хочу показать, как сделать такую тень, как у меня в игре (она не просто прозрачная, а также сливается с тенями других обьектов, сам это долго гуглил), думаю будет полезно. Буду рад, если помогу тебе с твоей игрой!

    • @lauraqueen7848
      @lauraqueen7848 Před 6 měsíci +1

      ​@@LapkaCode
      О да, легендарная тень в тени) Полезная вещь, если запишешь видик!
      Если интересно, могу поделиться системой сердец. Сам тоже долго искал. В годот, в основном, все полоски используют и лишь немногие сердца. А те, что их используют не показывают как их обновлять, при наличии пассивной регенерации. Вдруг и я смогу тебе помочь, да время сэкономить

    • @LapkaCode
      @LapkaCode  Před 6 měsíci

      @@lauraqueen7848 Мне нравится система хп из игр Зельды, думаю похожую добавить. Расскажи о своей. Просто я уже делал это и вроде не сложно

    • @lauraqueen7848
      @lauraqueen7848 Před 6 měsíci

      В общем вот, чтобы понимать, что тут происходит: 1 - я немного панк и испытываю балдеж от названия переменных на ру;
      Если в краце - то эта функция исполняется постоянно. Постоянно создает сердца и постоянно их удаляет (по дельте), а потому оно достаточно прожорливое, так, экспериментально, ~40+ сердец начинают снижать фпс, однако такое количество выглядит странно) В моем случае мое максимальное кол-во сердец будет 14 , как и мана-звезд, такое кол-во дискомфорта и снижения фпс не вызывает. Если знаешь как можно менее ресурсно-затратно реализовать - буду ждать видик.
      В самом начале функции удаляются все сердца в "контейнере сердец" - элемент канвас, а именно "грид контейнер", по умолчанию в нем нет элементов.
      А так же чистится массив в котором они хранятся
      Затем происходит перерасчет максимального колличества сердец, зависящий от макс здоровья. Которое можно привязать, например к стате СИЛЫ, так же удобно будет добавить какой нибудь бафф аля СИЛАх2
      После создается новые сердца
      Затем созданным сердцам назначается текстура. Она зависит от целости десятка. В моем случае идет проверка "делится ли текущее здоровье на 10 или на 5"
      и, если делится на 10 -> сцене сердечка назначается 0й кадр (полное), если делится на 5 -> сцене назначается 1й кадр (половина сердечка), в другом случае -> 2й кадр (пустое)
      var хранилище_сердец_массив: Array = []
      static var максимальное_здоровье: float = 100.0
      static var текущее_здоровье: float = 100.0
      static var регенерация_здоровья: float = 0.1
      var heartsContainer: Node #элемент канвас задающий правила расположения своих детей (сердец)
      var heartScene: PackedScene # это собсна ссылка на саму сцену сердечка
      func _physics_process( delta: float):
      Расчет_количества_и_отображения_сердец()
      Реген_хп() # сюда что нибудь свое можно про реген, аля "если хп< макс: хп+=реген"
      func Расчет_количества_и_отображения_сердец():
      # Удаляем все предыдущие сердца, если они есть
      for сердечко in хранилище_сердец_массив:
      heartsContainer.remove_child(сердечко)
      сердечко.queue_free()
      хранилище_сердец_массив.clear()

      # Вычисляем количество сердец на основе максимального здоровья
      var колво_сердец = int(максимальное_здоровье / 10)

      # Создаем сердца и добавляем их в контейнер
      for i in range(колво_сердец):
      var сердце_Instance = heartScene.instantiate()
      heartsContainer.add_child(сердце_Instance)
      хранилище_сердец_массив.append(сердце_Instance)

      # Устанавливаем состояние каждого сердца в зависимости от текущего здоровья
      for i in range(хранилище_сердец_массив.size()):
      if текущее_здоровье >= (i + 1) * 10:
      хранилище_сердец_массив[i].текстура.frame = 0
      elif текущее_здоровье >= i * 10 + 5:
      хранилище_сердец_массив[i].текстура.frame = 1
      else:
      хранилище_сердец_массив[i].текстура.frame = 2
      Про сцену сердце: Панель с дочерним элементом Sprite2D. В спрайт2д лежит картинка с 3 сердцами (полн, половин, пуст), скрипт на нем же, в нем только это:
      @onready var текстура = $Sprite2D
      Как то так 👀
      Надеюсь было понятно чуть больше, чем ничего хд

    • @LapkaCode
      @LapkaCode  Před 6 měsíci

      Ничего себе!!! Сами методы хорошие (несмотря на названия переменных, конечно). Не очень понял, зачем вызывать эти методы каждый физический кадр, лучше вызывай их при изменении хп, в годоте это оч легко сделать, с помощью сеттера:
      var health: int:
      set(value):
      health = value
      Расчет_количества_и_отображения_сердец()
      В таком случае, производительность будет во много раз выше, потому что high-level методы по типу хранилище_сердец_массив.clear() жрут много памяти, так как пересоздают массив, а по мимо этого методы есть много других, и в итоге вызывать такую сложную функцию как Расчет_количества_и_отображения_сердец() очень затратно каждый физический кадр. Кстати, могу посоветовать не удалять сердца и добавлять новые, а изменять уже существующие: просто добавить их в редакторе, а в ходе игры скрывать, показывать и изменять текстуру. Это тоже намного экономнее.
      По поводу метода Реген_хп() ничего такого сказать не могу, потому что его нет тут. Но уверен, что он в-принципе не нужен, потому что единственное, что надо для восстановления здоровья - это увеличить переменную хп сеттер сам вызовет Расчет_количества_и_отображения_сердец(). Если нужна анимация появления сердца, то это можно добавить на само сердце в годоте, и связать сигнал visibility_changed() сердца с методом play() у AnimationPlayer с String параметром, который отвечает за название анимации.

  • @firewatch123
    @firewatch123 Před 6 měsíci +1

    если не секрет, ты делаешь игру исключительно для себя или также преследуешь цель её монетизировать?

    • @LapkaCode
      @LapkaCode  Před 6 měsíci +2

      Игру хочу выпустить, а насчет монетизации еще не знаю, думаю над тем, чтобы ее вообще не было

    • @liveworkdie
      @liveworkdie Před 6 měsíci

      @@LapkaCode отличная мотивация, респектую

  • @zymer4481
    @zymer4481 Před 2 měsíci

    Увидеть бы еще обучалку по годо и как это сделать...

  • @user-fj4bz6gp4f
    @user-fj4bz6gp4f Před 6 měsíci

    Лучше сделай так чтобы после улучшения здоровья и время у деревья и Кустов стало гораздо больше

  • @user-re8um1vx7f
    @user-re8um1vx7f Před 6 měsíci

    0:55 Stardew Valley? ))
    А если серьезно, то игра выглядит интересно. Приятная графика... Подпишусь, посмотрю) Лайк за Godot

    • @LapkaCode
      @LapkaCode  Před 6 měsíci

      Из-за улучшений? Ну может быть, чем-то игры будут похожи

    • @user-re8um1vx7f
      @user-re8um1vx7f Před 6 měsíci

      @@LapkaCode По моему всё из списка напоминает Stardew Valley) не в обиду, твой проект интересный.

  • @blackseade3304
    @blackseade3304 Před 6 měsíci +1

    А будут обучающие ролики на примере этой игры?

    • @LapkaCode
      @LapkaCode  Před 6 měsíci +2

      Да, планирую

    • @m.vizaru7879
      @m.vizaru7879 Před 6 měsíci

      @@LapkaCode это будет очень славно ибо гайдов по таким играм я не нашел, очень жду

  • @madozax8594
    @madozax8594 Před 4 měsíci

    Можешь посоветовать туториалы мне бы хотелось начать создавть игры а знаний 0 все расказывают все как-то поверхносно

    • @LapkaCode
      @LapkaCode  Před 4 měsíci

      Сам я не смотреть каких-то линейный обучалок, только о чем-то конкретном т на зарубежном ютубе. Но на нашем Discord сервере рекомендовали плейлист czcams.com/play/PLhLIDMvl_HKGIo14rDqdTtY2JXc0Q1py-.html

  • @D.N.O._.21
    @D.N.O._.21 Před 6 měsíci +1

    Напоминает Forager.

    • @LapkaCode
      @LapkaCode  Před 6 měsíci +1

      Да, мне такое уже писали

  • @ImmortalBest
    @ImmortalBest Před 4 měsíci

    на каком языке пишешь скрипты? GDScript или продолжил шарпить?

    • @LapkaCode
      @LapkaCode  Před 4 měsíci

      На GDScript. Решил попробовать новое и понравилось

    • @ImmortalBest
      @ImmortalBest Před 4 měsíci

      @@LapkaCode на GDScript производительность похуже будет

    • @LapkaCode
      @LapkaCode  Před 4 měsíci

      Да, но уверен, для подобных моей игре проектов, разница незначительная

  • @Sosoly103
    @Sosoly103 Před 6 měsíci

    можно добавить веревки для крафта луком и разных улучшенные интрументы

    • @LapkaCode
      @LapkaCode  Před 6 měsíci

      Подумаю над этим!

  • @fluffyfox4797
    @fluffyfox4797 Před 5 měsíci

    Привет! Почему Godot а не Defold?

    • @LapkaCode
      @LapkaCode  Před 5 měsíci +1

      Привет, о годоте давно слышал и он оказался идеальным для этого проекта. О Defold я только недавно (почти) узнал

  • @BESTICSX
    @BESTICSX Před měsícem

    А вы сами изучали GdScript?

  • @ImmortalBest
    @ImmortalBest Před 4 měsíci

    юнька чем хороша, что можно за пару кликов получить apk под андроид

    • @LapkaCode
      @LapkaCode  Před 4 měsíci

      Да, на Godot тоже не сложно, но на Юнити попроще, конечно

  • @salahzak7615
    @salahzak7615 Před 5 měsíci

    Можеш зделать так чтобы когда ты нажал на кнопку тебя перекидывают на сайт?

    • @LapkaCode
      @LapkaCode  Před 5 měsíci

      Это не сложно, для этого есть узел LinkButton!

  • @kokletka228
    @kokletka228 Před 6 měsíci

    А на Godot на каком языке кодишь?

    • @LapkaCode
      @LapkaCode  Před 6 měsíci

      На GDScript

    • @kokletka228
      @kokletka228 Před 6 měsíci

      @@LapkaCode лучше использовать c# или GDScript?

    • @LapkaCode
      @LapkaCode  Před 6 měsíci +1

      Я решил попробовать GDScript, когда перешел с Unity, в-принципе доволен, много прикольных фишек. Но насколько я знаю, C# более быстрый и в больших проектах производительность будет лучше. А так если нет любви к C#, то я советую GDScript.

  • @SergeyBobrov240
    @SergeyBobrov240 Před 6 měsíci +1

    Не плохой проект, не смотря на то, что он явно делается для себя. Правда я так и не понял подлинную мотивацию перехода с Unity на Godot, ибо новая политика тебя, как разработчика, я уверен почти на 100% даже не коснется в обозримом будущем. А на счет доверия, то тут фиг знает, особенно, когда ты инди разраб, а не компания. В любом случае, это твой выбор 🤷‍♂
    Еще хотел узнать почему ты решил выбрать такую медленную анимацию всего, что есть в игре? По виду она походит cozy играм, но только у тебя это RPG, которой такая медленность ни к чему. Хороший пример это Forager - там хоть и есть эта мультяшная и весьма простая графика, но анимации там бодрые!

    • @LapkaCode
      @LapkaCode  Před 6 měsíci +3

      Я хочу сделать спокойную игру, из-за этого анимации такие же (хоть я и не специально их замедлял). Эта игра будет больше не про боевку и экшн, а про развитие и фермерство (хоть его я еще не сделал). А насчет Юнити не знаю, в день когда были анонсированы их изменения, я тоже понимал, что набрать 200к загрузок и 200к прибыли очень сложно, но это как раз моя цель и это когда-то случиться (надеюсь!!!). Несмотря на то, что Unity вскоре отменила их решения, да и вообще сделала даже лучше, я все равно решил перейти на Godot. В конце концов, кто знает, что кампания еще сделает в будущем? А Godot open-source и в нем я уверен

    • @SergeyBobrov240
      @SergeyBobrov240 Před 6 měsíci

      @@LapkaCode Ясненько. Ну тогда могу пожелать лишь удачи довести проект до конца! :)

    • @LapkaCode
      @LapkaCode  Před 6 měsíci

      Большое спасибо!!

    • @valentinapaziy
      @valentinapaziy Před 5 měsíci +1

      коснулась и очень сильно. Попробуйте подтвердить свой аккаунт, если у Вас российский паспорт, ибо до 1го марта 2024го надо........много что надо :))))

    • @SergeyBobrov240
      @SergeyBobrov240 Před 5 měsíci

      @@valentinapaziy а что же еще надо? И в чем проблема заключается про которую вы написали вначале?

  • @Black-White_Human
    @Black-White_Human Před 5 měsíci

    Уменьшать здоровье "врагов" вместо того чтобы увеличивать урон оружия, оригинально ничего не скажешь...

    • @LapkaCode
      @LapkaCode  Před 5 měsíci

      Я так и не делал 🤷‍♂️

  • @drowing6350
    @drowing6350 Před 4 měsíci

    Неплохой переход с юнити на Годот)
    Годот сама прога для созданий 2 игр не хуже юнити, незнаю че челы тут видят какой-то не нужный переход(особенной с той политикой) .

    • @LapkaCode
      @LapkaCode  Před 4 měsíci

      Для таких сольных проектов, как у меня, такой переход действительно может быть ненужным. Но меня это не смущает, я на годоте как свободная птичка

  • @troxeg
    @troxeg Před 4 měsíci

    Чем игра ярче, тем она лучше?
    Пока в глазах стоят слезы, 2D выглядит как 3D, а корявость спрайтов перестает быть проблемой. 😭

    • @LapkaCode
      @LapkaCode  Před 4 měsíci

      Не очень понял, что ты написал, это комплимент? Мне нравится мой стиль...

  • @Mr.Epsilion
    @Mr.Epsilion Před 5 měsíci

    а где мем "не мамкай, где лопата"?

    • @LapkaCode
      @LapkaCode  Před 5 měsíci +1

      "Кто ответственный?"

  • @TurutoT
    @TurutoT Před měsícem

    Можешь сделать обучалку на такую игру пж 😭

    • @LapkaCode
      @LapkaCode  Před měsícem

      Хорошо, что тебе понравилась моя игра, но чувствую обучалка была бы слишком долгая

  • @thewebsapiens
    @thewebsapiens Před 5 měsíci +1

    Unity теперича все? Новое руководство компании загубило сей движок окончательно?

    • @LapkaCode
      @LapkaCode  Před 5 měsíci

      Да вроде пока нет. Спрос на движок огромный, особенно в РУ сегменте

  • @ThemeManager-gs4rn
    @ThemeManager-gs4rn Před 5 měsíci

    continue please

  • @user-yr5ui3xm7q
    @user-yr5ui3xm7q Před měsícem

    Сделай пожалуйста порт на мобилы

  • @xnerchx
    @xnerchx Před 7 měsíci +1

    Lielisks darbs

  • @sladkopuknul
    @sladkopuknul Před 6 měsíci

    forager на минималках

    • @LapkaCode
      @LapkaCode  Před 6 měsíci

      Все с чего-то начинается

  • @ln1760
    @ln1760 Před 5 měsíci +3

    Мда уж, игра мечты - клон forager 🤣🤣

  • @user-go9wr2nm7h
    @user-go9wr2nm7h Před 5 měsíci +2

    Странно смотреть на переход на Godot с Unity. Т.к. не думаю что ты бы зарабатывал столько инсталлов, сколько указывалось в новой политике Unity. Выглядит как обида для обиды и возомнить о себе героя, который решил встать против капитализма. Очень смешно смотреть за подобными авторами, как ты, удачи тебе ничего не сделать

    • @byalex366
      @byalex366 Před 5 měsíci

      автор канала клоун, боится отдать процент если вдруг будет прибыль 🤡 🤡

    • @LapkaCode
      @LapkaCode  Před 5 měsíci

      Ну может быть так и выглядит, ладно

    • @lomeat
      @lomeat Před 5 měsíci +1

      @@byalex366 согласен, что переход просто на каком-то хайпе, абсолютно тупая отмаза, чтобы в видео этим афишировать. Сказал бы, что просто надоел и стал интересен новый движок - просто и понятно. Однако ты тоже ошибаешься. Там политика не процент отдавать, это фигня, а платить за каждую установку твоей игры. А устанавливать то могут и бесплатно. Кто-то где-то поиграл в твою игру, а ты юнити платишь за это, как тебе такое?

    • @byalex366
      @byalex366 Před 5 měsíci

      @@lomeat про плату за установку игр не слышал

    • @lomeat
      @lomeat Před 5 měsíci

      @@byalex366 так только об этом вся новость и была

  • @arckanumsavage2822
    @arckanumsavage2822 Před 6 měsíci

    Нельзя грабить корованы?

    • @LapkaCode
      @LapkaCode  Před 6 měsíci

      Ни в коем случае