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
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.
I'm not really sure if its worth the upgrade process if you have 2D game.. afaik the Godot 4 mainly improves 3D capabilities.
@@roastinpeace2320 multi threaded physics, engine base improvents and more performance improvements... not just vulkan support
Me reading this as someone new to Godot & relatively new to coding 🤯 lol
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.
How to choose scripting language for godot? GDScript or C#
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.
@@FirebelleyGames Thank you for you kindly reply! very helpful for me because I am working on web projects
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 :)
All of this work should reduce the inevitable changes you will need to make to fix new breaks when 4.0 is finished.
So many people are switching but im scared to 😭
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
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!
@@igorthelight i switched and made a game and it turned out well but I switched back to use GodotSteam and SGPhysics2D
@@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
@@lightcomic1 And C# is a little bit faster (that's 100% true for 3.X - not sure about 4.0 tho)
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?
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"
@@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.
The UI for the new TileSets definitely needs some work, but functionally it's AMAZING.
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
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!
Thanks for showing the hurdles you had to take to upgrade your project. I might consider doing the same now!
Thanks a lot for documenting your migration from Godot 3 to 4.
Please, report all those problems in their GutHub page if you have time for that!
That would help any other C# developers in future ;-)
Aaahhh... the NEVERENDING Quest to Game Completion... CLASSIC!
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
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.
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!
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)
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!
A godot C# enjoyer i see
Do I need specific extensions to use vscode with godot? Can you please share your extensions list that help you code in c#?
All that's necessary for C# in Godot is the C# extension from Microsoft. Should just work with that!
This is such a great overview of the upgrade process 🔥💯
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 )
Thank you for this video, it's given me enough confidence to try to port my game to godot4.
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.
I have no plans to update the platformer course at the moment, but thanks for your interest!
Hello from your Udemy 2d platformer course.
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.
What are the main differences between unity and godot? I've never used godot but it looks simpler
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!
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.
9:20 rotation_degrees helper restored PR # 70263
Underrated
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?
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.
@@FirebelleyGames thanks awesome 👍👍👍 by the way I love your devlogs 👍
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?
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.
@@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.
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.
Will this game be in console?
Most likely not
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 ;-)
When your comment gets deleted 😐
Wasn't me!
@@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.
@@reynold99991 UA-cam deletes comments with links sometimes ;-)
@@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 😊
@@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 ;-)
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 ;)
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?
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!