Upgrading My Roguelite C# Game to Godot 4

Поділитися
Вставка
  • Опубліковано 29 вер 2024
  • In this devlog, I walkthrough the my experience upgrading my large C# game to Godot Engine 4. This video is technical and contains a lot of information. If you're a Godot developer and use C#, you may find this video helpful!
    Here are the libraries mentioned in the video:
    github.com/fir...
    github.com/fir...
    📰 Sign up for my newsletter: firebelley.com
    📖 Learn Godot with my Udemy course: www.udemy.com/...
    🎮 Pick up one of my games:
    store.steampow...
    store.steampow...
    firebelley.itc...
    ➡️ Follow me on Twitter: / firebelley
    ➡️ Steam: store.steampow...
    ➡️ Itch.io: firebelley.itc...
    #Godot #gamedev

КОМЕНТАРІ • 65

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

    I have just recently upgraded my Godot 3 C# project to Godot 4. I ran into every single one of these issues. This video will surely help others as they begin the upgrade process.

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

      I'm not really sure if its worth the upgrade process if you have 2D game.. afaik the Godot 4 mainly improves 3D capabilities.

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

      ​@@roastinpeace2320 multi threaded physics, engine base improvents and more performance improvements... not just vulkan support

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

    Me reading this as someone new to Godot & relatively new to coding 🤯 lol

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

    As someone who has been using the C# / Mono Version since 3.4, and was an early adopter of 4.0 (the moment it got C# support) I just wanted to say that I deeply appreciate you making Godot C# videos! Resources are slim enough for Godot, but I've only found a handful of folks covering the C# corner and you are by far one of the best.

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

    How to choose scripting language for godot? GDScript or C#

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

      Use whatever you feel most comfortable and proficient with!
      However I would say if your primary platform is going to be HTML5, then probably best to stick with GDScript. C# has a few performance problems on web.

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

      @@FirebelleyGames Thank you for you kindly reply! very helpful for me because I am working on web projects

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

    Cool video! I really appreciate these technical deep-dives, so I've gone ahead and subbed + liked, and I'm gonna check out the rest of the channel now. I hope you have a good day :)

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

    All of this work should reduce the inevitable changes you will need to make to fix new breaks when 4.0 is finished.

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

    So many people are switching but im scared to 😭

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

      i tried both godot and c#/unity and godot is sooo much easier to work with especially with gdscript and the syntax is very readable and its soo small and not bloated like unity and the export size and the engine size are unbelievably small i cant recommend it enough

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

      Depends on your workflow ;-)
      * If you are using Asset Store very often - stick with Unity.
      * If you are tinkerer and like to experiment. Like the way Python looks (GDScript) and want to look at source code to know more about the engine you are working with - Godot is the choice!

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

      @@igorthelight i switched and made a game and it turned out well but I switched back to use GodotSteam and SGPhysics2D

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

      @@abdulrahmanallihyani8825 i know its been a month but I was talking about switching to 4.0, and I agree with you but I find C# a little better for my workflow

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

      @@lightcomic1 And C# is a little bit faster (that's 100% true for 3.X - not sure about 4.0 tho)

  • @seoulpeterson432
    @seoulpeterson432 Рік тому +7

    I was under the impression that Godot 4 might not support C# straight out of the gate due to a lack of developers to help porting. I'm glad to see it is indeed being worked on.
    Also, is there any chance you could either throw out some resources for the Tilemaps, or make a tutorial for it?

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

      There are a handful of videos on UA-cam that are helpful in showing the new functionality. I forgot which video I watched but you can find it with a search for something like "Godot 4 tilemaps"

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

      @@FirebelleyGames Hey just thought i'd let you know but the current non fix fix for the particle issue if you have yet to figure it out (You probably have but still for anyone who hasn't) is setting the particles to 60fps. i don't know why it works but it seems to make the artifacting EXTREMLY rare.

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

    The UI for the new TileSets definitely needs some work, but functionally it's AMAZING.

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

    This was super helpful. So many differences with Godot 4 that will trip people up who are used to Godot 3.x. I'd love it if you could elaborate on what resources you used to figure out these changes. I'm finding that some official docs haven't yet been updated to Godot 4

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

      Actually the official documentation for Godot 4 is up, you just need to make sure you switch to "latest" which corresponds to the master branch. You can also read the documentation in-engine. That's how I figured out most of the changes!

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

    Thanks for showing the hurdles you had to take to upgrade your project. I might consider doing the same now!

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

    Thanks a lot for documenting your migration from Godot 3 to 4.

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

    Please, report all those problems in their GutHub page if you have time for that!
    That would help any other C# developers in future ;-)

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

    Aaahhh... the NEVERENDING Quest to Game Completion... CLASSIC!

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

    Hello, thank you for your video - it helped me a lot! You are one of the few really good C# developers at Godot, good luck to you! But
    I noticed that in Godot 4, after exporting the game to the desktop, there is a file in the *game_name * _data folder containing all the source code in C#, which was not in Godot 3 (due to the transition from Mono to .NET). Have you tried to solve this problem in any way or have you not even noticed? Thanks for any reply

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

      There is an option in Godot 3 to "include scripts content" during export. I don't know if this still exists in 4 but look for this option and see if you can uncheck it.

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

    Hey Firebelley, you are a huge inspiration and help for beginner developers like myself. I can humbly say I'm learning a lot from you in every area of game design and you are far more talented in all aspects, however id like to give some input to maybe return the favor, if possible. I know as I'm beginning to make games I realize having honest feedback can be as helpful as it is rare so I'd like to offer the one bit of advice I've noticed regarding Gunforged. In the gun info/selection UI it immediately struck me as too wordy with too much information, I know this may sound like a redundant or picky detail and I'm sure its an intentional design or style choice but i feel it isnt as cohesive with the rest of the game, which I'm loving so far btw and I couldn't be a more perfect target user. I agree that rationally more information makes more sense but if we look at the real market of successful roguelites It would seem less tends to be more. look at isaac for example, nobody even knows what anything does or what its called until you get in deep. Its information system is mainly just grab something and figure out what's happening from the gameplay. My personal game development philosophy, and the direction I think the industry should keep moving towards is, no tutorials or explanations. throw everything at the player and trust them to figure it out. That being said, for your gun ui i would get rid of the more obvious attributes that can be observed after the first use like "NO. BULLETS", "CAPACITY", and "SPREAD". Id also get rid of all of the descriptive text below the gun stats for a minimal aesthetic, but that could just be my personal preference. One thing I liked about Gungeons info system is that there is a very minimal short description when you see items in game and then you can access a longer description in the menu or even further details with online sources. Just some food for thought, as I said you ultimately would know better than me so if you have a logical opposition to what I'm saying id love to hear your thoughts as well. Thanks again Firebelley, I can't wait to play Gunforged!

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

    I am also working on a game in godot 3.5 using C# and I am planning to upgrade so this video will be a lot of help.(I haven't watched the video yet)

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

    Thanks for the detailed writeup! Wow, I was anticipating spending 100 hours at least upgrading my game. I can't believe you finished in just 10, I hope those visual issues were resolved in the final release of Godot 4!

  • @logan123799
    @logan123799 2 місяці тому

    A godot C# enjoyer i see

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

    Do I need specific extensions to use vscode with godot? Can you please share your extensions list that help you code in c#?

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

      All that's necessary for C# in Godot is the C# extension from Microsoft. Should just work with that!

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

    This is such a great overview of the upgrade process 🔥💯

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

    Good thing you didnt noticed the tile flip horizontal and flip vertical. I think alot of users are going to be stuck in there for a long time ( if they havent left already )

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

    Thank you for this video, it's given me enough confidence to try to port my game to godot4.

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

    Hello, I am interested in this course, do you intend to update it to Godot 4? I'm finishing the one for Complete 2d Survivor and I'm loving it. Congratulations on all your content.

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

      I have no plans to update the platformer course at the moment, but thanks for your interest!

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

    Hello from your Udemy 2d platformer course.

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

    One question if I could. Can we write text in visual studio (not code) output window ? I know it's ok with Godot editor, but in a ideal world I want it in visual studio 🤪. I already try Console.WriteLine or System.Diagnostic.Debug.WriteLine, ... Thanks for this video. I want to use something more "universal" than Monogame / FNA and your video help me on this way.

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

    What are the main differences between unity and godot? I've never used godot but it looks simpler

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

      I don't believe I am very qualified to answer that since I have little experience with Unity, but there are plenty of other creators on UA-cam that have produced videos on that topic. I would recommend giving them a look!

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

      Just some points:
      + Godot is much smaller - 100 Mb (+800 Mb for export templates) vs 8+Gb in Unity. And it doesn't need installation so it can work on a flash drive!
      + Godot is Free and Open Source
      + Godot 3 works on very old PCs. And works on modern PCs much smoother than Unity.
      + Godot support GDScript (their variation of Python - very easy to learn and use!), C#, C++ and Visual Scripting (that one is discontinued in Godot 4). There are binds for Go, Rust, Nim, Lua, JavaScript/TypeScript, Kotlin, Python (created by community - some work better than others).
      + Godot supports plugins written in GDNative (it's a fancy name for C++). Godot 4 supports plugins written in GDExtension (same C++ but much easier rules!).
      + Godot supports "true 2D". Unity's 2D is just 3D + Orthographic camera mode.
      + Godot uses Node system unlike Unity's Components. Components -> There are main Components but you can add to them some secondary Components to make them "do more stuff". Node -> same as Components, but there are no secondary ones! Use Sprite as a base and add KinematicBody or other way around - it's up to you - so it's more flexible that in Unity!
      + Godot supports Editor Themes - make your Godot Editor the way you want it - even pink! xD (Unity does too, but it's unofficial and some people have problems with it).
      +/- Godot 3 supports GLES 2.0/3.0 - an old type of renderer, based on OpenGL 2.0/3.0. Godot 4 supports GLES 3.0 and Vulkan - so it's fine xD
      +/- Godot 3 3D quality and performance are... not that great. And again - Godot 4 saves the day here with it's Vulkan renderer!
      - Godot's Asset Store is laughable (small) compared to Unity's BUT everything there is FREE. There is an obvious reason for that, of course ;-)
      - Godot doesn't support porting to consoles - you have to outsource porting to the third party company. No problems with Windows/Linus/Mac/Web/Andoid/iOS tho.
      - Godot has much less plugins, assets, tutorials... The community is just smaller overall. But if you are a tinkerer - it's not a problem.

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

    9:20 rotation_degrees helper restored PR # 70263

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

    Underrated

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

    Awesome ...wow how many changes in code is it good idea to begin a game in Godot 4 because when start in Godot 3 and later when upgrade to 4 there will be soo much to change . So isn't it good idea to start with 4 ? Even there are more tutorial for Godot 3?

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

      If you are starting a new project definitely go with Godot 4. Like you said, it's easier to do that than to upgrade.
      If you have a game in progress (like me) and still have a lot of work to do (like me) then upgrading is worth the effort for all the new features and performance.

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

      @@FirebelleyGames thanks awesome 👍👍👍 by the way I love your devlogs 👍

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

    very nice video. hopefully the godot-team can use the hurdles and found bugs you encountered to improve usability and the porting/restoring tool for godot 4.
    is using VS Code sufficient when working with C#? why do you use VS Code over Visual Studio?

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

      Thanks! Yes, VSCode does everything I need it to do no problem. I prefer VSCode generally, plus I do a lot of web development so it's nice to be able to use one IDE for everything.

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

      @@FirebelleyGames hmm thank you for your insight. I work with VS2022 due to my job and have had the perception that its intellisense is way better than VSCode's but that could just be me.

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

      I used to do my programming in Visual Studio but after working with Intelij for my job for a year and seeing some other developers use Rider I decided to try that for a month (free trial). A year later and I will never be using Visual Studio or VS Code.
      Jetbrains the maker of Intelij and Rider also makes the Resharper plugin for Visual Studio.
      Only thing is you have to pay a license fee for Rider, but that is well worth it.

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

    Will this game be in console?

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

      Most likely not

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

      Godot does not support porting to consoles - developers could use third party companies to do that but that's expensive.
      Also - developing for consoles (even with Unity) is a pain in the ass... You have to pass their freaking "store test". The smaller you are - the harder it is to pass... And even after then - you have to pass it EVERY time you release a new update.
      So... no, thanks ;-)

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

    When your comment gets deleted 😐

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

      Wasn't me!

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

      @@FirebelleyGames Now I am curious what was wrong with my comment that UA-cam made it go *poof. Anyway I heard beta 8 is doing weird things and deleting scenes so waiting till beta 9 comes out to see how it is. Also godot 4.0 has weird vulkan issue in which it will never switch over to dedicated gpu on AMD ryzen laptops unless you edit registry on 4000 series at least. Found that out when using GDRE tools.

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

      @@reynold99991 UA-cam deletes comments with links sometimes ;-)

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

      @@igorthelight oh. That might explain it. Post link to a github repo. Was talking about how hard it is to get people to work together on a game jam. I have been in 4 already and couldn't even complete 😅. On 5th 1 but since this is a month I am able to find people who are ready to help mid way yet 😊

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

      @@reynold99991 Small tip: don't try to create a game from zero during the jam - prepare some kind of prototype ;-)
      Let's say: prepare 2D platformer-type of game. Movement, simple character with animations, moving platforms. And then, maybe another prototype - isometric one. The more you prepare BEFORE jam itself - the easier jam would be ;-)

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

    Did u know that in the c language’s u can do things in one line? Like this: if (something) poop(7), p(); or: if (s) { lol(); do(); } etc/ and more, a lot of cool customization ;)

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

    Very insightful video! While I never used Godot3, this did help me follow certain tutorials made for that, as I started with Godot 4.
    I was wondering, however: when connecting to signals, should one prefer Callables over the default C# event “+=“? I tried looking in the documentation and I couldn’t find anything clear.
    Based on the code you show in this video, your Github and livestreams, I see you use a mixture of both, but mainly Callables.
    Could you explain why, or whether there are any guidelines you follow?

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

      I use the event style += when I can, however if I need to connect to signals on an object that may be null then I use Connect with Callables because the += operator doesn't work on potentially null objects. Hope that helps!