Converting My 7500+ Line Game to Godot 4!

Поділитися
Вставка
  • Опубліковано 13 вер 2024

КОМЕНТАРІ • 154

  • @Entikai
    @Entikai Рік тому +66

    So good to see the code that runs Dauphin. If I saw those 300+ errors after the conversion, I would have freaked out and went back to the old version of Godot. 😂😂

  • @manchmalscott
    @manchmalscott Рік тому +174

    Just a heads up, beta 8 introduced a breaking change by removing the trigger update mode from animations, and because the update mode is stored as an int in the scene file, the consequence is any animations using the capture mode will break until you manually go into the tscn file and change the "update": 3 to "update": 2 for each track. I just got burned on this with one of my projects I've been doing in godot 4. They're aware of the issue, and the animations *can* be converted by hand editing (change 3->2 and 2->1), but there isn't any automated tool to do it.

    • @twenty-fifth420
      @twenty-fifth420 Рік тому

      Im new to dev and semi-new to game dev in general. But how many breaking changes in general have been patched from 1 to 8?
      I just want a stable 4 soon lol. I have 3.5 chilling in my computer learning other dev stuff lol. I can be patient, especially since I plan to keep/use both. (Mostly for Visual Scripting).
      Just curious, I hope this aint too much to ask. 💔

    • @Crazylom
      @Crazylom Рік тому +3

      I think with Microsoft VS you can go search the string in every file that contains it...which means you can basically in an instant fix it all. Hope that helps :P

    • @manchmalscott
      @manchmalscott Рік тому

      @@Crazylom lol I only had one scene that used trigger capture, so it was a pretty easy fix (once I figured out what was going on)

    • @BrunodeSouzaLino
      @BrunodeSouzaLino Рік тому

      @@twenty-fifth420 v3 currently has over 2 thousand issues open on github, with some persisting across betas or regressions done to fix one issue creating another.

  • @neekitsart990
    @neekitsart990 Рік тому +12

    For the sailing system, by far my favorite that I've ever experienced was on the pirate island in Poptropica. Each island had different trade rates for different items based on what their primary export/imports were, and that meant if you wanted to sell your bounty at a good price you had a reason to sail around. There were recruitable NPCs to add to your crew on each island who each had an ability that made an aspect of sailing better, and while you were sailing, pirate ships and giant sea monsters would approach your ship and try to attack you. If you won you got loot, and if you lost you lost some loot and were sent back to the last island. The loot was what you traded on the islands to get money, and money let you recruit new NPCs. If you didn't have the money to recruit one, it was an incentive to go back out sailing to make money, and also to return to that island later to get them. It was simple but surprisingly well built out. It definitely wouldn't be something you could copy directly, seeing as the themes are pretty different, but I loved sailing as much as I loved being on the islands, and it encouraged me to go out and explore the generated ocean. Maybe something to look at for inspiration?

    • @gogurtbogurt
      @gogurtbogurt Рік тому +1

      It’s crazy how much effort was put into Poptropica

    • @blazequakes
      @blazequakes Рік тому

      @JacksonorTyler Paine correction is crazy how much effort was put into Poptropica its now pay to play and isn't very good anymore I've played it a bit a year ago and it wasn't nearly as good as it was in the early years

  • @Hiroshji
    @Hiroshji Рік тому +32

    Crazy how it’s been 2 years I remember your first ever video and it’s amazing how much the game have grown!!

  • @BastiaanOlij
    @BastiaanOlij Рік тому +9

    I was surprised to see you tackle this conversion, I wasn't expecting Godot 4 to offer that many new features that you were hanging out for as a lot of the work focused on 3D. It did look like totally doable, it doesn't look like you ran into any issues that couldn't been solved or set you back.
    That said, your perspective at the end of the video was interested, yes it took you a month to convert and that means a month of not moving the project forward, but I'm actually surprised seeing the size of Dauphin and seeing you've done this along side of family, vacation and work obligations that it only took a month. And lets face it, a month in the total time it takes to tackle a project of this size, is a small price to pay imho.
    So damn impressive, keep it up!

  • @Pontypants
    @Pontypants Рік тому +4

    Yeeeah been looking forward to this one! Thanks for making this 🥳

  • @intangiblematter_misc
    @intangiblematter_misc Рік тому +110

    Little tip! I noticed your dialogue doing a weird wrap (39:20). In Godot this will only happen if you're passing the characters to the textbox one at a time. Instead you should try putting it all in the textbox, then increment visible_characters until the whole string is visible!

  • @megahombre24
    @megahombre24 Рік тому +4

    Even without any knowledge on godot, I enjoyed the video a lot and think it was interesting to see this conversion process. It reminded me of when I switched my project in unity from the light weight render pipeline (LWRP) to the universal render pipeline (URP), however that did not nearly require the amount of effort that you had to go throgh. However I think the feeling when it was finally done is comparable for sure, it felt really great and enabled a lot of cool new features. Congratz my friend and keep it up, looking forward to the next devlog. Much love from germany ❤

  • @slimeydagamer
    @slimeydagamer Рік тому +31

    I love Your videos So much. Your videos Finally got me to start leaning how to be a gamedev and you showed me that even if i dont spend all my time on a game it can still be really good. Please keep up the good work :>

  • @joshuamorris1851
    @joshuamorris1851 Рік тому +8

    As someone who has been using Godot 4 beta (mono version) I can say, I love what they've done with the engine and I appreciate the support C# is getting nowadays. Keep up the great work! I'm excited to keep following you on your journey!

  • @thiag-o
    @thiag-o Рік тому +3

    Looks like you made the right choice lol. Love these kind of dev logs, good stuff.

  • @smolblockboi
    @smolblockboi Рік тому +5

    Dang I really admire your dedication. I keep looking to try out Godot 4 and converting my projects, but then I look at things and be like "oh that'll break, and that, and that" then just throw my hands up and shelf it.

  • @LambtacoGames
    @LambtacoGames Рік тому +1

    I actually appreciate the length and detail of this devlog. Let's me now what's in store for me when I update one of my own projects to Godot 4. Seeing it step by step makes the whole process seem less daunting.

  • @LookiePookie
    @LookiePookie Рік тому +3

    man everytime i see this guys progress it’s so inspiring and refreshing

  • @geshtu1760
    @geshtu1760 Рік тому +1

    Loved this deep dive into the Godot 4.0 conversion. Glad to see it was successful. Would love to see more "thoughts on Godot 4" now that everything is mostly in place.

  • @interstellardragoncg
    @interstellardragoncg Рік тому +2

    Thanks so much for explaining all the changes you had to make. This will make it so much easier for the rest of us devs to convert our projects to Godot 4. Keep up the good work 😊😊

  • @itsjustme7450
    @itsjustme7450 Рік тому +2

    I am always so excited to see your dev logs. You have a really good balance with how much you explain the process, it doesn’t drag on with the specific tiny details, but you provide really good coverage of the process

  • @skyscraperV1
    @skyscraperV1 Рік тому +3

    Great video - it's really good to see a focus on the technical stuff, code, decision making and problem solving stuff :) I know you also like to make your devlogs a bit broader than just coding, and that's good too - but I think a lot of people are like me and love the tech stuff even more! Keep up the good work :)

  • @MarkIsAsleep
    @MarkIsAsleep Рік тому +9

    I understand the pain of converting to godot 4. I literally redo my game with more than 5k lines of codes and a lot of 3d models,.textures and UI because of the new renderer. But man it is WORTH IT

  • @pietrusbauerus1819
    @pietrusbauerus1819 Рік тому +2

    I found you on UA-cam some days ago and I love this content! Please continue working on it, because it's an excellent way of learning new things in Godot, and it's entertaining too :D
    Waiting for the next video ^^

  • @soleilray86
    @soleilray86 Рік тому +4

    I don't know really anything about coding...yet, but, this video explained a lot of complex concepts in a way that I understood pretty much everything you were talking about. I'd love to see more coding tutorials like this in the future. And more doggie B-roll 😊

  • @DGdevv
    @DGdevv Місяць тому

    That video shows and explains very well how is converting a godot project from the 3 version to the 4.
    I am working on a really big project in Godot 3.x and I have come to the conclusion that I will eventually need to upgrade my project, so the sooner I start, the easier it will be.

  • @c0b0exe
    @c0b0exe Рік тому +1

    I really enjoyed the longer video, keep up the good work!

  • @intangiblematter_misc
    @intangiblematter_misc Рік тому +4

    Okay first:
    It's been *how* long????
    Second:
    Loved the code-first approach! Always enjoy seeing devlogs on how things actually work

  • @tonatiuhislas8006
    @tonatiuhislas8006 Рік тому +5

    Thank you so much for this content, and the music...the way you edit and explain your work.

  • @Galomortalbr
    @Galomortalbr Рік тому +2

    my project has twice as many lines of code, even if my project was only half as big, i could not imagine myself converting it to godot 4, honestly congratulations on the hard work

  • @derherrquantum5467
    @derherrquantum5467 Рік тому +1

    Thanks for ur project it always give me motivation to work on mine too! I love ur art of Gamedeveloping and how u manage your comon daily living ^^ Keep it up

  • @nestorpiedraquesada2954
    @nestorpiedraquesada2954 Рік тому +2

    Wow Ben I admire your dedication to this, I sill have some projects stuck on unity 2020 because I'm afraid to destroy everything haha I love your videos, you're a huge inspiration

  • @OraNN
    @OraNN Рік тому +1

    Congratulations for the conversion ! Thx a lot for the tips ! I'm sure I will use it for my own project soon or later !

  • @iphoeniximarco5488
    @iphoeniximarco5488 Рік тому

    thanks for sharing the process of the conversion, was quite interestiong to see! For sure will as a sideeffect help the devs of godot optimize the conversion further

  • @gonzo191
    @gonzo191 Рік тому +9

    for your _request_state function @22:54, instead of doing if current_state = A || B || C etc, simply add all of your query states to an array and check if the array has the current state
    *e.g. ln 26 changes to*
    var query_states = [move_state, attack_state, cast_state, fish_state, forge_state]
    if query_states.has(current_state): change_state(idle_state)
    *[OR]*
    if current_state in query_states: change_state(idle_state)
    *[OR]*
    extract all of those if checks to a function to reduce repetition like the following
    if requested_state == idle_state:
    ....update_state(idle_state, current_state, [move_state, attack_state, cast_state, fish_state, forge_state])
    // English: update current state to new state when the current state is any of the query states
    *func* update_state(new_state: State, current_state: State, query_states: Array[State]) -> void:
    ....if query_states.has(current_state):
    ........change_state(new_state)

  • @Casta2
    @Casta2 11 місяців тому

    40:20 "All our organisms are behaving as expected" Meanwhile the breakdancing jellyfish bottom right XD

  • @GamesBySaul
    @GamesBySaul Рік тому +1

    Very nice work with this honestly! :D Don't use Godot but I imagine this will be incredibly useful for so many people!

  • @Chevifier
    @Chevifier Рік тому +3

    The Tilemap system is one of the best upgrades in Godot 4. I dont use it as much since im using 3D but the little I did it just felt much more intuitive. There is a learning curve but once you get it. Its a breeze. My main reason for the upgrade was for the Vulkan Renderer.

  • @LostGameDev
    @LostGameDev Рік тому +3

    19:55 I am absolutely in love with how adorable your doggie looks.😊

  • @graydwarf22
    @graydwarf22 Рік тому

    Found your Signals setup interesting. Was trying to figure out what value you get from that design (calling a function to call a signal seems redundant so I'm missing something). I was also surprised to see you referencing scenes in your autoloads. I haven't thought to do that for anything yet. I guess it allows you to have multiple scenes open at the same time. Trying to think of a situation where that is useful over global scripts/state management. Your water transition is neat and your blur effect with/without mask is fantastic. (first time visiting/seeing your game). Your slot-dots are an interesting design choice. Reaching the end here and wow... an entire month (with some PTO mixed in) to convert from 3.x to 4.x. That's brutal. I appreciate the share and you being an early adopter so I don't have to. ;P

  • @TheSpeedyBoi
    @TheSpeedyBoi Рік тому +2

    Well, now I want to get back into game development. Thanks DevDuck!

  • @hassanjomaa4073
    @hassanjomaa4073 Рік тому +5

    Yes do more videos like this

  • @DonLeeelbow667
    @DonLeeelbow667 Рік тому

    This was super helpful, I bet I'll be referencing this video again as I follow other tutorials made for Godot 3.

  • @zackmurphy2207
    @zackmurphy2207 Рік тому +4

    Wake up babe, Devduck uploaded a 45 minute video

  • @picster
    @picster Рік тому

    Super cool video!

  • @Nnif_Boots47
    @Nnif_Boots47 Рік тому

    I understood about none of this but still watched it all.

  • @wonjaelee9902
    @wonjaelee9902 Рік тому +50

    We need a new Devlog…🙏 I miss it 😭

    • @ml-engineer
      @ml-engineer Рік тому +3

      Agreeeee

    • @DevDuck
      @DevDuck  Рік тому +27

      Coming soon!

    • @_Darko
      @_Darko Рік тому +11

      is this not a devlog?

    • @KaidenBird
      @KaidenBird Рік тому +1

      @@_Darko More of a verbose announcement for a game engine upgrade, these guys seem to be looking for more progress updates and new features

  • @swiggyawag7037
    @swiggyawag7037 Рік тому +2

    On the topic of the ocean exploring on the boat, maybe an idea of you have to sail to and find an island for the first time, but after that you can access a map that fills in over time
    and fast travel/cut there each time since?

  • @FutureChaosTV
    @FutureChaosTV Рік тому +4

    Audio Level at -18.5dB according to UA-cam. Far too quiet. Please increase the master audio level on your video exports to at least -10 to -5 dB...
    Otherwise a very informative video and a very cute dog! ;-)

  • @bitbraindev
    @bitbraindev Рік тому +2

    Welcome to the other side! :)

  • @pwerd
    @pwerd Рік тому

    Glad to see a new video out! Keep killing it!

  • @kwagogames8974
    @kwagogames8974 Рік тому

    What interesting changes! And being able to just put the type of Enum in export variables instead of declaring an int is definitely a quality-of-life improvement...

  • @MH-lr6ue
    @MH-lr6ue Рік тому

    I love your understanding of the gdscript code...one day I'll reach this level...but I'm currently too tired from my shit job.

  • @dragonmytie
    @dragonmytie Рік тому +1

    From a gameplay perspective I would zoom in when you dive. I assume this would give a more natural feeling of diving in :)

  • @UliTroyo
    @UliTroyo Рік тому

    This was fun! I'm sure it'll be helpful for others making the switch to Godot 4.

  • @lunaumbra5179
    @lunaumbra5179 Рік тому

    I'm loving the Flash/AS3 signals & tweens concept. I know both were used elsewhere and earlier, but it was in heavy use in Flash long before the rest of the internet caught up.

  • @roastinpeace2320
    @roastinpeace2320 Рік тому +3

    I have ~40000 lines game and I hope the conversion process gets eventually so thorough that it will automatically do most stuff for me.

  • @ton1
    @ton1 Рік тому

    I love your workspace

  • @dummyaccount1706
    @dummyaccount1706 Рік тому +2

    24:30 The 'plus_file' was renamed to 'path_join' in 4.0

  • @kieranklaassen
    @kieranklaassen Рік тому

    I really enjoyed this longer form with lots of code!

  • @Meaningfulcausesstudio
    @Meaningfulcausesstudio Рік тому

    So cool thank you for sharing this!

  • @_gamma.
    @_gamma. Рік тому

    This was an awesome video!! 👏 🎉

  • @Jar_Jar_Twinks
    @Jar_Jar_Twinks Рік тому +1

    i know that a full release isn't happening any time soon, but when it does happen, you should include texture pack support.

  • @st.altair4936
    @st.altair4936 Рік тому +2

    Would love a comparison between your experiences with Godot 4 and Unity, specially now that it's very relevant.

  • @Paruthi.618
    @Paruthi.618 Рік тому +1

    Awesome.. hard work.. inspiring..

  • @delleloper
    @delleloper Рік тому

    Great video, thanks for explaining everything, it will be super useful for converting my own project!
    I see you are still making multiple tilemaps, for the island, probably you prefer it that way, but just in case you didn't know, you can now define multiple layers inside the tilemap node!
    I was missing your devblogs, i learn a lot from them!

  • @BlekYT
    @BlekYT Рік тому

    Return of the king.

  • @captainharpoon
    @captainharpoon Рік тому

    This was very entertaining to me. Makes me want to do some refactoring.

  • @Hovrawl
    @Hovrawl Рік тому +1

    It looks like they changed `match` to function more like a `switch` statement in other languages with the constant requirement, you should have been able to use your previous setup with only have to change your variables into constants:
    `var idle_state = : State = $"Player Idle State"` can become `const idle_state = : State = $"Player Idle State"`
    I believe GDScript has const values so this should keep your code clean still

  • @matthias916
    @matthias916 Рік тому

    "You're diving deeper than your current skill level permits. Yo"

  • @DylanMatthewTurner
    @DylanMatthewTurner Рік тому +1

    You should contribute to the Godot documentation for any issues you had

  • @allanwernermusic
    @allanwernermusic Рік тому +1

    Hey, it's a bit hard to read the code on your videos because of you big screen but maybe you could expand the Upscale or just the code font size

  • @BryceDixonDev
    @BryceDixonDev Рік тому +2

    Frankly, the fact that a new major engine revision *still in beta* only had ~350 errors is kind of amazing. Unity projects can result in dozens of errors between *minor* revisions and in AAA development it's not uncommon for redactors to result in thousands of errors.
    Godot is really so amazing to work with.

  • @pinguis_thorax
    @pinguis_thorax Рік тому +1

    you can reduce the time it waits until the auto completion pops up in editor settings/General/TextEditor/Completion/Code complete delay and the time it waits for the error to show up in editor settings/General/TextEditor/Completion/Idle parse delay

  • @markthompson403
    @markthompson403 Рік тому

    Hey DevDuck. Great video as always. Can I ask what iPad stand you use please? I don’t think it’s on your “Gear” list.

  • @erkkimadisson
    @erkkimadisson Рік тому +1

    At match patterns you can just check if the state is not the requested status with operator !=
    (i haven't used godot and i am not sure if there even is that operator but in every other language there is so that could just make the code easier to read)

  • @Levirules
    @Levirules Рік тому

    Keep those elbows forward at the bottom of your overhead press!

  • @JakeDevYT
    @JakeDevYT Рік тому

    Worth the wait :)

  • @SamiTheAnxiousBean
    @SamiTheAnxiousBean Рік тому +1

    the title alone gives me second hand pain
    I mean, it's obvious why it needs to be done
    but it's a painful process

  • @Darkyahweh
    @Darkyahweh Рік тому +1

    I just converted mine. Took a LONG time. (16 hours)

  • @strawstack
    @strawstack Рік тому

    That's brave. I tried Godot 4 recently, and it does not feel bug free yet. When I encounter a bug, I abandon game dev for like a week, and start over

  • @devster269
    @devster269 Рік тому

    jeezez thats a lot of work to update your game in godot yep ima stick with blueprints in unrealengine cause that looks like a lot.

  • @RealSirPots
    @RealSirPots Рік тому

    My girlfriend said your fish tank looks really good

  • @pepsiman9093
    @pepsiman9093 Рік тому +1

    I have to ask, I'm not very experienced with Godot (only been using it for about 6 months) and I've never heard of loading scenes as singletons over scripts. I've been part of the discord for a while but I've never heard anyone talk about the benefits, or even recommending it at all. I kind of just paused the video at 14:42 to comment and ask, but what are benefits/downsides of using scenes/scripts as singletons?

  • @Arctan95
    @Arctan95 Рік тому

    Hey Ben, I was wondering your thoughts with regards to source control - namely git vs perforce for game dev. Our studio currently uses perforce as it seems more angled towards supporting both code and larger art, audio and video assets. I suppose, given your project is sprite based you don't run into the file size concerns as much but is it something you've looked at and are you using a premium version of git at all to allow for extra storage?
    Good call branching the project, as somebody who just updated our live project to the latest (non beta) release of UE5 and have everything break due to an engine bug and need rolling back - lesson learned.
    Cheers,
    - J

  • @LeoBerardino
    @LeoBerardino Рік тому

    This code have video is great. It will be nice to have more like it.
    It will be nice if you add paralax underwater

  • @BeardedWrenchh
    @BeardedWrenchh Рік тому

    @Devduck could you link us to your ipad stand? trying to find one without "arms" that hold up the ipad, yours looked sleek!

  • @clray123
    @clray123 Рік тому +1

    Congrats Godot devs, making backwards-incompatible changes is the surest way to kill your API/library/engine. The biggest problem is not that you need to change code that uses it, the problem is that you invalidate all docs/tutorials that are already out there.

  • @raymk
    @raymk Рік тому +1

    It's still beta tho...
    Maybe some people should make a list of breaking changes, and make an automated tool to fix it

  • @lufog
    @lufog Рік тому +14

    I'd advise you to be careful with Godot 4 for now, it sometimes corrupts scenes and resources (for example, when renaming or moving things). So it's better to use git more often.

  • @ami7mina
    @ami7mina Рік тому +1

    I can't convert my few lines of code in Godot 3.5 to Godot 4.0.2 It always crashes. sometimes crashes Windows with the stopcode error.

  • @mangojuic3e
    @mangojuic3e Рік тому

    GOD BLESS

  • @jamiiedev
    @jamiiedev Рік тому

    thanks

  • @crustydev5561
    @crustydev5561 Рік тому +1

    Have you noticed any improvements in the change?

  • @fadge316
    @fadge316 Рік тому

    You've got a pretty fish

  • @neozoid7009
    @neozoid7009 Рік тому

    Awesome

  • @Patrick-vv3ig
    @Patrick-vv3ig Рік тому +2

    only 7500 lines???

  • @fadge316
    @fadge316 Рік тому

    I don't know the code you're developing in but I'll share how I'd go about that match pattern for the states.
    Have you heard of smart enums? Imo enums are meant to be dumb, but I think this could provide a nice solution for your problem. Basically you can define your state's in the class, as part of that definition you could specify in a list which states are allowed to transition from to that state. Then the change state method would just take the current state and requested state, check if that's part of the allowed transition from list. Would remove all those if statements and would scale better because you'd just have to define a new state and it's allowed transitions, all existing code would work.
    Might not be the best solution but I think it's better than the current 👍
    Edit:
    ua-cam.com/video/v6cYTcEfZ8A/v-deo.html
    There's a great video on smart enums

  • @DissonantSynth
    @DissonantSynth Рік тому

    Commenting for the algorithm.

  • @johnko2632
    @johnko2632 Рік тому +1

    I'm self-teaching myself how to code with unity, and I want to know how you learn, remember, and use what you've learned without backtracking so much. If anybody has any tips for me please let me know as I still HAVE ALOT of learning to do.

  • @error303
    @error303 Рік тому

    When will we be able to play(test) it?
    Will there be source so that we can help you?

  • @mad616
    @mad616 Рік тому

    I let rider count my written cs code and it says 14378 coded lines in my script folder. Working on my game early december, hmm.

  • @alejandroINC
    @alejandroINC Рік тому

    cool

  • @viniciusschadeck4992
    @viniciusschadeck4992 Рік тому

    I build my game in pure javascript... Take soo long to learn a engine as godot or unity, unreal as well that i not sure if i want that without real need