Choosing Your Godot Programming Language: C#, C++, GDScript,...

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ก.ย. 2024
  • ▶︎ FREE APP "Learn GDScript From Zero" : www.gdquest.com
    🎓 GODOT 4 COURSES : school.gdquest...
    🎮 FREE INTERACTIVE GODOT TOUR - The Godot Editor - www.gdquest.co...
    🗨 DISCORD INVITE : / discord
    🖈 RELATED DOCS : docs.godotengi...
    ------------------------------------------
    🖋 SYNOPSIS
    Learn about the 3 programming languages of Godot and decide which to use when and for what or choose the one that's right for you.
    #godot #csharp #cplusplus
    -------------------------------------------
    CC-BY 4.0 LICENSE
    Terms: creativecommon...
    Attribute To: "CC-By 4.0 - GDQuest and contributors - www.gdquest.com/"

ความคิดเห็น • 330

  • @Gdquest
    @Gdquest  8 หลายเดือนก่อน +151

    On the state of c# right now: at the time we release this video (January 2024), you can't export c# games to the browser with Godot 4. This was possible in Godot 3 and is probably just a matter of time.
    Godot depends on .NET releases for some c# platform support.
    Right now you can make desktop and mobile games with c# in Godot.

    • @jokerphoenix3788
      @jokerphoenix3788 7 หลายเดือนก่อน +2

      When will the .NET version of Godot arrive on Steam?

    • @damsen978
      @damsen978 3 หลายเดือนก่อน +2

      Good enough to me. Browser games are a waste of time and the only thing they're made for is to get quick cash from people who consume everything you throw at them. So unless you want to take advantage of that kind of lazy people, you're better off doing games for PC.

    • @tatapnhob
      @tatapnhob หลายเดือนก่อน

      @@damsen978 browser exporting is a great thing for game jam games though

  • @filiformis
    @filiformis 8 หลายเดือนก่อน +650

    You ask 5 gamedevs what language you should use, you'll get 6 different answers.

    • @BryceDixonDev
      @BryceDixonDev 8 หลายเดือนก่อน +175

      Still somehow better than web development where you'll ask one developer and get 6 different answers.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +66

      Then there's what happens when they're both...

    • @kimmyera174
      @kimmyera174 8 หลายเดือนก่อน +11

      @@BryceDixonDev True. Not just like HTML/CSS/JavaScript either for your frontends, but databases, backends, respectively using NO/SQL, and any possible language honestly.

    • @SnakeEngine
      @SnakeEngine 7 หลายเดือนก่อน +1

      I thought it's always C# nowadays.

    • @insanimal2
      @insanimal2 7 หลายเดือนก่อน +7

      Sounds like that might be a zero-based indexing issue

  • @ajmgdaj
    @ajmgdaj 8 หลายเดือนก่อน +482

    The Zero compile time for gdscript is an absolute killer feature

    • @Christobanistan
      @Christobanistan 8 หลายเดือนก่อน +23

      Is there a sort of 'fully compiled' GDScript option when we need to test performance? Or is it interpreted even on end user systems? Because from what I've seen, performance is abysmal. If we have to write performance critical bits in C++ that is a real pain...
      I really wish Godot's C# implementation was far better.

    • @BryceDixonDev
      @BryceDixonDev 8 หลายเดือนก่อน +51

      GDScript is compiled to bytecode, then interpreted. This is a pretty universal feature of interpreted languages.
      It'll never be compiled to machine code, though.

    • @PopCar
      @PopCar 8 หลายเดือนก่อน +15

      Not just zero compile time, it also has hot reloading so you can change functions at runtime for rapid prototyping. It's really cool.

    • @ShiloBuff
      @ShiloBuff 8 หลายเดือนก่อน +11

      @@Christobanistan You can improve performance with static typing. Also C# implementation is still usable. But I agree I wish things felt overall as I don't feel happy choosing any of the languages primarily.

    • @xananacs
      @xananacs 8 หลายเดือนก่อน +26

      @@Christobanistan What performance issues did you encounter in practice to make that statement?
      I ask because the language you use is typically the least important part for performance.
      A large number of Godot commercial games are written in GDScript.
      Generally, for the vast majority of games, whether you wrote your game code in pure assembly or in Scratch, and whether you used very efficient patterns or the worst possible ones, the difference would be imperceptible to the player. The heavy lifting is done in the engine in C++, and your code is some minor glue.
      If you have performance issues, you should look, in that order, at: assets, data structure, code structure, threading work, scaffolding work, language.
      But let's say you were making a bullet hell, which requires a lot of loops per frame, and GDScript's performance (about 8000 bullets on screen) was not enough. If you needed to port that part in C++, it would be about 30 lines out of your thousands of lines of game code (and that C++ would look almost identical to GDScript).

  • @AstonJay
    @AstonJay 8 หลายเดือนก่อน +269

    When it comes to programming languages, as long as any developer knows their fundamentals by heart, the only thing you have to "learn" for a new programming language is the syntax. In the case of C/C++, it would be memory management, caching, and a few other things. But overall, the fundamentals of programming is all you need to "master" any programming language and write good programs with it.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +27

      Word.

    • @zigrakudo4092
      @zigrakudo4092 8 หลายเดือนก่อน +14

      yeah, absolute beginners to programming should be taught how to do flowcharts and pseudocodes, not copy pasting codes without understanding what they do. Ditch the mindset of "If it works, it works" or even bethesda's "it just works".

    • @Eiravxe
      @Eiravxe 7 หลายเดือนก่อน

      tru @@zigrakudo4092

    • @Angemell
      @Angemell 3 หลายเดือนก่อน

      👏

    • @pythonxz
      @pythonxz 2 หลายเดือนก่อน

      I just cannot get used to writing everything in snake case.

  • @Shadow-cs7oy
    @Shadow-cs7oy 8 หลายเดือนก่อน +104

    I wish there was a beginner-friendly interface for C++ developers out of box. I get the idea of using GDNative, but I really don't like the fact that you have to manually download it and do settings you probably won't understand.
    Solution example: when you wanted to create a script for a node in C++, the Engine would had automatically added both header and code files with presettings of the parent node. It also would have helped a lot in object-oriented programming, providing you more access to nodes and libraries. The libraries themselves could have been added in a specific folder, guaranteing users that the libraries will be available in both debugging and exporting projects

    • @dhombios
      @dhombios 8 หลายเดือนก่อน +12

      It would also be nice if the engine automatically generated the required makefile (or scons script) to compile your gdextention for all supported platforms. Additionally, godot could have a button for recompiling all gdextentions used in the project instead of having to do it manually

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +29

      I definitely hope that the team or contributors gets to making this more accessible at some point. I'm sure there have been proposals for stuff like this and it's likely a matter of someone having the time to work on this.

  • @nullismstudio
    @nullismstudio 7 หลายเดือนก่อน +14

    Some upsides that were missed with C# (IMO, the largest ones):
    1. It's statically typed and compiled, so fewer runtime errors and basic features like typed dictionaries.
    2. Intellisense is orders of magnitude better, noticed that GDScript gets pretty wonky.
    I still use GDScript, but project is getting large enough that I need more sanity checks, and am willing to add C# boilerplate to avoid the major drawbacks of GDScript.

  • @vojtastruhar8950
    @vojtastruhar8950 8 หลายเดือนก่อน +138

    I think you left out a major consideration aspect - long-term sustainability. For projects that last years and involve multiple people at the same time (~3 and more?), I think C# might be the way to go because of the tooling. You mentioned Rider and I cannot stress enough how big of a deal it is to have a full-fledged IDE at your disposal. Namely refactoring is something that's not easy for a GDScript codebase. If you have a long-running project, refactoring is inevitably something you will need to do. When the time comes, you might pay a price for the fast iteration speed of GDScript.
    Not an issue for me, I have a 1000 unfinished GDScript games so far :) But I think it's important to think about

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +25

      Good point!
      I think GDScript isn't too far behind bigger languages in this regard, given you use it in the context of a fully fledged framework, Godot. You do have something not too far from bigger languages like c# and typescript, for me, with external editors, the language server, and the Debugger adapter protocol. Renaming symbols and their references and looking up references are supported. For me they're the most useful tools in that category by far - I very rarely need extraction. But if people do need the rest, I'd expect more tools to come as people really come to need them.
      In practice I've found refactoring needs to mostly stem from changing design requirements and requiring rethinking and rewriting parts of the code big enough for tooling not to make much of a difference.

    • @Kylanto
      @Kylanto 8 หลายเดือนก่อน +7

      There are downsides to using C# for bigger projects, mainly garbage collection

    • @Cameo221
      @Cameo221 8 หลายเดือนก่อน +8

      Absolutely. I've been preaching this for a while, but my dilemma is that I like c# because of the absolutely powerful refactoring capabilities with Rider. But there's 2 huge problems I personally have:
      No hot reload, and the existence of recompile times.
      Because of those 2 issues, it compells me to only wanting to use GDscript. But the issue there is the weak refactoring options!
      My hope in the future is that GDscript gets better editing UX in the future, whether it's Jetbrains that does it, or the Godot engine itself.
      Godot is very exciting to me, but I'm still using Unity because of my reasons above 🙂

    • @Eiravxe
      @Eiravxe 7 หลายเดือนก่อน

      ohhhh@@Cameo221

  • @feripuru
    @feripuru 8 หลายเดือนก่อน +65

    I'm really enjoying using Godot to build my game. It's a RTS with Survival elements. That said, I needed some specific codes to be really performant. I'm currently building everything in C# (because of the available libraries) and Rust (because it's my "main" language) for the performance-critical code.
    I really liked using GDScript in the past. That's to say my choices were probably more personal than pratical.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +11

      I find this to be an excellent approach to choosing and using programming languages in general. Letting the right balance between your preference and the needs of the project drive your choice at a given time.

    • @shadid516
      @shadid516 8 หลายเดือนก่อน

      How are you developing in Rust?

    • @NateyC214
      @NateyC214 8 หลายเดือนก่อน

      @@shadid516 There's a Godot - Rust plugin available.

    • @kurushimee
      @kurushimee 8 หลายเดือนก่อน +1

      I'm interested in what C# libraries you found use for in Godot development?

    • @feripuru
      @feripuru 8 หลายเดือนก่อน +1

      @@kurushimee I'm currently using only the standard library but I meant that, in case you need, you can use C# libraries available for any type of task you need.

  • @grilleFire
    @grilleFire 8 หลายเดือนก่อน +19

    I did NOT know you could debug in real time! I always just closed the game window, make a change in editor, and run the game again!. MY MIND IS BLOWN!!!

    • @bobbobson6290
      @bobbobson6290 หลายเดือนก่อน

      Aren't you using breakpoints?

  • @majorgnu
    @majorgnu 8 หลายเดือนก่อน +71

    One thing people should know is that Godot 4 still doesn't support C# for web exports, so if you're targetting the web that's currently not an option.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +15

      Yes, good point at the current time.

    • @mayankbhaisora2699
      @mayankbhaisora2699 8 หลายเดือนก่อน +1

      @@Gdquest Can i use Swift with Godot?

    • @Roosader
      @Roosader 8 หลายเดือนก่อน

      ​@@mayankbhaisora2699Yes, using SwiftGodot by Miguel De Icaza (founder of mono and Gnome). He's also porting Godot to iOS using his Swift integration for Godot.

    • @Christobanistan
      @Christobanistan 8 หลายเดือนก่อน

      @@mayankbhaisora2699 Please, no.

    • @DanielAlbanoIII
      @DanielAlbanoIII 8 หลายเดือนก่อน +4

      That's why I switched back to Godot 3.5 so I could export for browser in C#. I'm still waiting for Godot 4 update for C#.

  • @Snyper-if3kt
    @Snyper-if3kt 8 หลายเดือนก่อน +29

    Your GDScripting app was what convinced me to Godot over Unity as I started learning Python during the pandemic and the similarities meant I wouldn't have to start learning a brand new language as I'm not a professional programmer. Then a couple of months later the whole Unity debacle happened and I'm glad I decided to go with Godot even though I'll likely never make the amount of money required to have to pay for it, the fact that Unity did that the way they did is a very shady thing to do and I feel they will just slowly make changes to their pay structure anyways.

  • @SamdaChao
    @SamdaChao 8 หลายเดือนก่อน +60

    I was going to use unity but you turned me right around to Godot. Thanks!

    • @Noccai
      @Noccai 8 หลายเดือนก่อน +9

      Welcome to the cult! :D (To be serious tho, wish you luck and a lot of fun with your game development!)

    • @LaynaStambaugh
      @LaynaStambaugh 3 หลายเดือนก่อน

      You really dodged a bullet 😂
      I hope you're enjoying developmet!

  • @pointyheadYT
    @pointyheadYT 7 หลายเดือนก่อน +7

    A tutorial video on just the big differences between C#/C/C++ and GDScript would be great for someone like me only familiar with the former.

  • @anastasiaklyuch2746
    @anastasiaklyuch2746 8 หลายเดือนก่อน +52

    For performance, the bottleneck is actually whether it's CPU (script) or GPU (shader) that does the calculations. This means that the shader language is the 4th language and is the most efficient, especially with compute shaders.
    It's currently a drag to integrate into your code, but learning it is fairly smooth, results are fast and optimisation is through the roof, especially with complicated marching-cube terrain-generation, for example.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +7

      Excellent point

    • @LaynaStambaugh
      @LaynaStambaugh 3 หลายเดือนก่อน +2

      In some situations. Shader code is much slower when using if-statements compared to scripting, because GPU's are designed to be computing as much information as possible all the time, not following huge logic systems. Nevermind the fact that pushing data to and pulling data from the GPU is INCREDIBLY slow. So using C# for complex algorithms that interact with many different objects in a scene is still more performant than trying to do it all in a shader.

  • @troy1993
    @troy1993 8 หลายเดือนก่อน +8

    As someone who just wants to makes little games as a hobby. And doesn't know much about programming. I love gdscript.

  • @RAFMnBgaming
    @RAFMnBgaming 8 หลายเดือนก่อน +20

    Personally I find dynamic/gradual typing syntax less intuitive to read than static typing. I think being able to know exactly what a variable is is really handy for whenever you go back to edit code that you wrote long enough ago that you've forgotten the fine details of how you made it, even when you have commented it.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +4

      It's not my preference either to be honest

    • @Samurai11267
      @Samurai11267 6 หลายเดือนก่อน

      Agreed. Also, while compiling does make it a little slower, the compiler can catch a lot of mistakes (especially after refactoring) which imo actually makes development faster. I think dynamic typing is good to learn algorithmics and stuff, but when you want to build a solid project, typing is super important. It's the same reason why people move over from Javascript to Typescript.

    • @Gdquest
      @Gdquest  6 หลายเดือนก่อน +2

      You can use static typing in GDScript.

    • @Samurai11267
      @Samurai11267 6 หลายเดือนก่อน

      @@Gdquest You can, but it's pretty limited. If I recall, you can't type a 2d array for example. You can say it's an array of arrays but you can't specify what's inside. Ive run into a few of those issues when starting out with GDScript and ended up picking up C#. I do think GDScript eases the barrier of entry for all non developers who want to make games, and it's amazing for that, but I'm wondering if it doesnt make it harder to handle larger projects

    • @RAFMnBgaming
      @RAFMnBgaming 6 หลายเดือนก่อน

      ​@@GdquestYou can but the way it's implemented syntactically feels very much like you're wrestling against what the language wants you to do rather than using a feature that it actually wants to support.

  • @madson-web
    @madson-web 8 หลายเดือนก่อน +4

    I'm very comfortable with C#. Glad we've got this option

  • @QatariGameDev
    @QatariGameDev 8 หลายเดือนก่อน +31

    The next video should highlight the following:
    1- The Godot engine is an open and community-driven project.
    2- In addition to GDScript, C#, and C++/C, programming languages such as Rust, Swift, and others are available, thanks to contributions from the community.
    3- There are also game engines like RPG in the Box, The Mirror, and Cozy Blanket developed using the Godot Engine. 😁

  • @lamelama22
    @lamelama22 8 หลายเดือนก่อน +7

    Overall a pretty good video and did a good job explaining the tradeoffs.
    Minor nits: Strange that you didn't mention that the #1 reason to use C# and the why developers want it is because that's the language Unity uses, and developers simply want to be able to re-use their code; so if you're coming over from Unity, it's probably easiest & best to use C#. Similarly, another reason to use C/C++ is that the code you write can be re-used, often without modification, on pretty much *any* other computer / engine / OS; unless it's a Godot-specific interface; which you should minimize. Have code from an old game that runs on Windows or native Android or possibly even iOS (if you were smart & didn't use Obj-C / Swift); it can just be reused as is.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +1

      We do say that if you're already used to one of the languages you can continue using it. Nevertheless, in one of our shorts that you may have seen, we do recommend for Unity folks to still pick up a bit of GDScript to make it easier to benefit from tutorials even if they reference GDScript and in general for easier time going through the official doc listing of equivalencies.

  • @NateyC214
    @NateyC214 8 หลายเดือนก่อน +3

    I came to Godot as a very fresh programmer with some Basic knowledge. GDScript has been amazing to learn, in no small part due to your channel and courses. One of the best things about it is that it is growing as a language and grows with the engine. Though this causes some dramatic changes, like in Godot 4, I am very excited to see what comes out in the future.

  • @siddhubhai2508
    @siddhubhai2508 5 หลายเดือนก่อน +3

    My suggestion is to use C++ because it is more flexible (for making custom and unique game mechanics) and have more performance, and also if you use C++, If you will decide to switch to Unreal engine you won't need to learn one more language because the unreal engine uses C++ and it has a big community around the C++ in UE5

  • @brunoarnoni
    @brunoarnoni 8 หลายเดือนก่อน +2

    I believe that GDScript for gameplay in general, and C++ in a C style for algorithms might be a good combo for me. Thanks for the video.

  • @tamkish
    @tamkish 8 หลายเดือนก่อน +3

    as almost exclusively C# user, i absolutely love gdscript just for existing and would recommend it for anyone who doesn't have prior experience with the engine or programming

  • @Angemell
    @Angemell 3 หลายเดือนก่อน +1

    It would be nice to mention C#'s accessibility to Interfaces for code design, and the handful libraries for DBs' management (sounds like a niche thing, but it's its practical usage) 🤓

  • @xuraith
    @xuraith 8 หลายเดือนก่อน +3

    coming from Unity I know C#, but, I do game jams and like to submit with WebGL so that put me to learning GDScript so I can use the newest Godot version. "Projects written in C# using Godot 4 currently cannot be exported to the web. To use C# on web platforms, use Godot 3 instead." - Godot docs

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน

      Good point for game jams. Hopefully that's high enough priority to be tackled soon.

  • @benji-menji
    @benji-menji 8 หลายเดือนก่อน +12

    If you want an idea for a tutorial, you can teach people how to write models in C# and then use them to create GDScript Proxies/ViewModels.

    • @alejmc
      @alejmc 8 หลายเดือนก่อน +1

      Oh, I would be interested in that too… you are referring to ViewModels as in Model-View-ViewModel WPF UI style right?
      I know nothing, just hack at it Unity and C#, but this would be a good excuse for me to formalize some knowledge and see Godot in a more complex light.

    • @benji-menji
      @benji-menji 8 หลายเดือนก่อน +2

      @@alejmc Not even WPF in particular. If you can run an instance of a class within another class, then you can do MVVM. The idea is to make a C# class and then add the engine integration and variable/constant injection into the GDScript ViewModel. I might not need to recompile a bunch if the variables and constants can be changed in the ViewModel.

  • @adventuretuna
    @adventuretuna 8 หลายเดือนก่อน +26

    I dunno about C#. It feels like a second-class citizen in Godot with how little documentation there is.

    • @pythonxz
      @pythonxz 2 หลายเดือนก่อน

      There's a large number of C# examples in the documentation.

  • @Vhite
    @Vhite 8 หลายเดือนก่อน +1

    I'm a lifelong C++ dev, but so far I still prefer to stick to GDScript, but I'm glad that C++ is on the menu if I ever need it.

  • @kenarnarayaka
    @kenarnarayaka 4 หลายเดือนก่อน

    I think another thing about GDScript is it's a really nice language syntactically. It has so any nice things about it which make it really nice, fun and friendly to work with

  • @DuarteRoso
    @DuarteRoso 8 หลายเดือนก่อน +13

    C# allows much deeper tooling and enables for complex services. Thanks to it, developing games take less time the more games you make. Each respectable company have their own (Unity) framework for a reason.
    GDScript is limited to what the name implies: logic scripting.

  • @TayoEXE
    @TayoEXE 8 หลายเดือนก่อน +2

    You should mention one major region people would not consider C#. Target build platforms. Godot 4.2 recently gained support for Android and iOS builds with .Net 8 I believe, but Web is still not working, so you'd have to use Godot 3.5 instead if you want to build for web using C# I believe.
    I would argue Web is an important build medium for play testing and easily sharing with others to prototype especially, even if you don't intend to release a final build for web.

    • @stickguy9109
      @stickguy9109 8 หลายเดือนก่อน +1

      Especially in game jams

  • @macchiato_1881
    @macchiato_1881 8 หลายเดือนก่อน +1

    My opinion:
    GDScript must be your default choice if you don't have good reason to use C# or C++.
    Use C# when you want to migrate existing Unity codebases and refactor it into Godot based code. The .NET features are very niche for game development. You will rarely use them. The only thing I can think of the top of my head is for Machine Learning/Deep Learning with game environments. But that's just me.
    For C/C++, this is the best option, but only if you have strong low-level fundamentals and a good understanding of memory management. Everybody should definitely touch and learn these languages at somepoint in their developer lives. But for beginners, just stick to GDScript to build solid fundamentals. Start with small C/C++ projects then build your way up. Modify the source code for the engine a bit. Maybe even build your own engine to understand what's going on under the hood in game engines.

    • @macchiato_1881
      @macchiato_1881 8 หลายเดือนก่อน

      And don't touch JavaScript...

  • @reddeath7169
    @reddeath7169 2 หลายเดือนก่อน

    I have to learn python because it's easiest for mechanisms to understand in engineering. But I still want to learn to program games. Thank you so much!

    • @Gdquest
      @Gdquest  2 หลายเดือนก่อน

      GDScript is very similar to Python according to many users

  • @liolyne
    @liolyne 4 หลายเดือนก่อน

    The right language to use is the one your are comfortable with. I don't really like python syntax and always prefered a strict typing language. This is why Im using C# and will probably stick to it as long as I can.

  • @tigerseye1202
    @tigerseye1202 หลายเดือนก่อน

    I love C#, but due to there being a grand total of zero IntelliSense features for it in Godot and me really not wanting to have another editor open on the side, I switched to GDScript.

  • @ursulaoases8592
    @ursulaoases8592 5 หลายเดือนก่อน

    Good tip that I think you should know is to use a random language test it, done, that's it. Since you didn't see anything else about other engines the engine you randomly choose will adapt with you and you won't see any disadvantages. I tried this with gdscript and I didn't care about the advantages and disadvantages. You're a beginner you don't need to know everything wrong with a language. Just choose a language with no further thought and comparison and have fun.

  • @rmt3589
    @rmt3589 4 หลายเดือนก่อน +1

    I want to see about using C++, because I'm trying to learn it to make my own engine. As a Unity Refugee, I know some C# already, and and I know a bit of python from ML & Chatbot stuff. Idk what I'll use more, but want to lean heavily on C++ if I can.

    • @Gdquest
      @Gdquest  4 หลายเดือนก่อน +1

      Using C++ for performance heavy parts is great because you don't carry all of .NET and there's no garbage collection. At the same time, you talk directly to the engine so no marshalling costs.

  • @parl.
    @parl. 7 หลายเดือนก่อน

    I hope they add support for the Basic programming language!

  • @martinvacheron3839
    @martinvacheron3839 8 หลายเดือนก่อน +5

    Great video as always :) I was wondering what's your VS Code color theme is, any chance to have the name?

    • @dzjin
      @dzjin 8 หลายเดือนก่อน +2

      Looks like the Atom One Dark theme

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +8

      Atom one dark. It's a theme ported from the text editor Atom (which generally had a bit of a nicer user interface and experience at the time).

  • @wolderado
    @wolderado 6 หลายเดือนก่อน

    I've used GDScript for my first game on Godot. It's pretty awesome but if you want to be employable in the future, you gotta use C# or C++. Using GDScript for a long time shifts your thinking. Your best language will be GDScript and there are not a whole lot of game jobs for it. Basically you'll stuck with Godot since GDScript is only good for Godot.
    Yeah underlying algorithms you write will basically be the same for all languages. But syntax is massively different. You don't want to be stuck at an interview thinking of what's the correct syntax for the language you're applying.
    That's my opinion anyway 😄

  • @implozia1360
    @implozia1360 8 หลายเดือนก่อน

    Thank you so much for this video! I am but an artist and not knowing where to start language wise when I want to work with Godot is a lil tricky.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน

      I come from an art background too :) Talking to computers is not exclusive to tech disciplines. I'm happy GDQuest videos are helpful to you.

  • @spacechannelfiver
    @spacechannelfiver 8 หลายเดือนก่อน +1

    I prototype in GDScript (well actually outside of Engine in Python), then port some stuff to C# when there's clear benefits

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +1

      Comments like this where someone tells me about their workflow are like gold.

    • @spacechannelfiver
      @spacechannelfiver 8 หลายเดือนก่อน +1

      @@Gdquest currently making a space game with Newtonian physics so a lot of the simulation is originally worked out in Python, then gets ported into GDScript to bring it in engine. A lot of it is either Math heavy or asynchronous or both; and that’s where C# comes in as it’s much better suited to running that kind of task with threads, memory management etc. All of the front end stays native GDScript.

  • @user-ti5ce4hg1o
    @user-ti5ce4hg1o 27 วันที่ผ่านมา +1

    unlike C#/C/C++, GDScript is useless outside Godot. It would've been better to have the script syntax at least modeled after C#. But I don't think it's too late (if ego / pride about GDScript is not something the devs care about) to introduce CSharpScript to the engine.

  • @liamspruyt
    @liamspruyt 5 หลายเดือนก่อน

    great video, i'll check out the app so i can make the games i wanted!

  • @SsbigmansS
    @SsbigmansS 8 หลายเดือนก่อน +2

    Great video any chance for more videos of c++ and godot?

  • @teslacuil1437
    @teslacuil1437 8 หลายเดือนก่อน +2

    As an ex unity developer, I started with c#, as I liked the idea of not having to learn a new language. However, Godot's current integration with c# is not exactly seamless. The connection between the c# editor and Godot breaks constantly, with very little in the way of explanation as to why, and having to recompile to see changes becomes tiresome very quickly.

    • @Christobanistan
      @Christobanistan 8 หลายเดือนก่อน

      Don't use Godot's built in editor, right?

    • @teslacuil1437
      @teslacuil1437 8 หลายเดือนก่อน

      @@Christobanistan my understanding is that for any language other than gdscript, you HAVE to use an external editor. I was using vscode, so its possible a different editor might work better.

  • @8bit_pineapple
    @8bit_pineapple 8 หลายเดือนก่อน

    I tried the tutorial, instead of drawing a corner I made a Dragon Curve 😅
    #Generates a list of turns for a Dragon Curve
    func dragon_array(it):
    if(it = 0)
    if(turns[curr_index] == 'r'):
    turns += ['l']
    else:
    turns += ['r']
    curr_index -= 1
    return turns
    #Draws a dragoncurve
    func dragon_curve(it):
    var turns = dragon_array(it)
    #magic number to size curve
    var dist = 900/(it*it)
    move_forward(dist)
    for turns in turns:
    if(turn == 'r'):
    turn_right(90)
    else:
    turn_left(90)
    move_forward(dist)
    func draw_corner():
    dragon_curve(6)
    #Dragon Curve Algorithm Explination
    #Usually you start with an 'R'
    #Append an R
    # 'RR'
    #Copy the original list 'R'
    # Reverse the order of the copy
    # so R -> R Better example, LLR to RLL
    #Flip the directions in the reverse
    #So R -> L
    #Append the Copy
    #RRL
    #Next RRL -> RRLR -> RRLR + RLL -> RRLRRLL
    # +R Add the reverse flipped
    #So RRLRRLL is the next Iteration.
    #We can get the same results without
    #copying the original list.
    #To do that, note everything before
    #The appended R is the original.
    #So we can read it back to front
    #And append the opposite of what
    #we read
    #So Store list Size
    #Append an R
    #Read the list from index Size - 1
    # to 0
    #While Reading Append the opposite to
    #The end of the array.

  • @Holsp
    @Holsp 8 หลายเดือนก่อน +1

    What about using C++ for algorithms? You mentioned using C++ for changing the engine itself, but I would suppose this would be a use case too since it would be faster than C#. I want to make a game with maybe 100 moving objects (traders in player proximity) and some cities (maybe also like 100 active on the whole map) that would calculate data and I don't know if GDScript would be performant enough.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน

      You can definitely use C++. It's a valid use case. You'd probably use GDExtention.

  • @danielluko7635
    @danielluko7635 4 หลายเดือนก่อน +1

    if you know C# you know OOP and can get job. If you know gdScript you know nothing - only Godot, it's like visual scripting in UE.

  • @Wentz-t4p
    @Wentz-t4p 7 หลายเดือนก่อน +2

    I'm Japanese beginner in programming.
    Some parts of Godot have already been localized into Japanese, but it's not complete yet.
    Especially, since all the help is in English, it takes a lot of time to understand. I know it's audacious to ask for more when using free software. I've also considered using a different game engine.
    However, I want to continue game development with Godot, so I kindly request a swift implementation of multi-language support.
    And also, what is the current specification of the 'connectr()' function?

    • @Wentz-t4p
      @Wentz-t4p 7 หลายเดือนก่อน

      Sorry, the connect() function has been resolved.

    • @sean7221
      @sean7221 5 หลายเดือนก่อน

      It's in the works, see if you can contact the Godot team to help contribute to it

  • @watercat1248
    @watercat1248 5 หลายเดือนก่อน +1

    i pesonly don't like gd script for one very important reason,
    the don't let my organized the code in the way i wand to in C you can put the line in whatever order you wand as long you add semicolon in the end that mean you able to organize the code and put this line on whatever order you want.
    in GD script you have errors because you have add single space before the line even starts this very anoying i hope to fix this on Godot.

  • @josephkeen7224
    @josephkeen7224 หลายเดือนก่อน +2

    Is the gdscript from zero tool updated for the current version of gdscript?

    • @Gdquest
      @Gdquest  หลายเดือนก่อน +2

      If you go to the app, on the thumbnail and main menu, you'll notice it says that it is updated for Godot 4. It is now part of the official Godot 4 docs.

  • @owenlloyd2528
    @owenlloyd2528 8 หลายเดือนก่อน +2

    Thank you. Do you have, or plan to have, a tutorial going through the processes involved in creating a gdextension, one or two worked examples?

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน

      Not in the very near future but hopefully some day.

  • @guillermoelnino
    @guillermoelnino 4 หลายเดือนก่อน

    I highly doubt ill ever be in a position where performance would be a deciding factor. Im pretty self-choncious about minimizing on screen calculations. So im heavily into whatever helps iterate the esiest.

  • @el_primer_y_el_ultimo_caiman
    @el_primer_y_el_ultimo_caiman 8 หลายเดือนก่อน +1

    C# is an awful choice if you need to build game-specific plugins, as Godot can only restore Variant and Signal state when recompiling the assembly. You can make your tools work in-game, sure, but why do that when you can have a smoother workflow by making an editor plugin?
    Furthermore, interfacing between strings and stringnames creates tons of garbage, problematic for custom _set/_get behavior, shaders, and input polling.

  • @okie9025
    @okie9025 8 หลายเดือนก่อน +4

    "Python and JS are general-purpose languages, not designed for modern game development" but isn't C# also a general-purpose language, not designed for modern game development?
    I don't know too much about how C# handles multithreading so I'll take your word on it being better, but I still don't understand how this makes C# more valid than any other option.
    I think it makes more sense to say that C# was included mostly to allow existing Unity game developers to port over their C# knowledge.

  • @난아스타
    @난아스타 8 หลายเดือนก่อน +1

    i use bevy :D

  • @yllanojayvalido165
    @yllanojayvalido165 หลายเดือนก่อน

    Use Rust for binding logic

  • @desoft8b
    @desoft8b หลายเดือนก่อน

    Soy indie y trabajo sólo, mis juegos consumen menos recursos que una Super Nintendo, no necesito C#, C++ podría aprenderlo sólo si quisiera modificar el motor. Gdscript es mí preferido.

  • @reneb86
    @reneb86 2 หลายเดือนก่อน

    So as a C++ developer, may takeaway from this video is that C++ is not meant to be used for game logic? But more for fundamental rendering, networking, resourcing, etc. kind of things? That is disappointing. I’d love to define my game logic in C++.

  • @vectoralphaSec
    @vectoralphaSec 7 หลายเดือนก่อน

    Wait. Is support for C++ new? I dont remember it having it back in 2022.

  • @deadlock_problem
    @deadlock_problem 8 หลายเดือนก่อน +1

    "People wanted it"
    more like
    One is fundamental
    Microsoft paid for the other
    Creators of Godot wanted something simple
    I don't see the value of C# since gdscript exist if you want something very easy or C++ if you want performance.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +1

      People really wanted C#. There really were lots of people and professionals who would not even consider Godot because it did not support a general purpose language officially for game scripting. And there are some good use cases with entire teams having large code bases in C# with modules and libraries that live outside of the engine they use. C# being one of the most widely supported languages and game engines, it does make sense for a Godot to support it alongside GDScript.
      I'm completely fine with gdscript and c++ myself, this is what we use and generally recommend, but I also respect that on the I'm completely fine with gdscript and c++ myself, this is what we use and generally recommend, but I can also appreciate that other teams want or even need C# to consider the engine.

    • @deadlock_problem
      @deadlock_problem 8 หลายเดือนก่อน

      @@Gdquest I'm not arguing against it, but a company had to pay to get it put in. It's fine that it's there and being used. It's an alright language though I'd rather just stick with C++ if I had to choose. I don't think godot's adoption rate would be any less if C# didn't exist.
      But thank you for your videos you are doing a great job for the community.

  • @shantotto6763
    @shantotto6763 8 หลายเดือนก่อน +1

    zig or nim

  • @gregorywatine
    @gregorywatine 8 หลายเดือนก่อน

    i saw in the french video "Rencontre en terre indé (04)" you say that godot itself is an application made with godot tools. I assumed it was made with gdscript, but i was wrong, here you explain it was made with C++.
    So, is it possible to create extension for godot in gdscript ? i actually learn gdscript with the website "learn to code from zero" it's really interesting but i am wondering at what level i can use godot and gdscript. (for exemple, i saw a youtuber working on a montage application with godot, but i don't remember which language he uses and if gdscript allow this)
    Thank you for all your work and helping infos !

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +2

      Godot is made in Godot with C++ yes. And you could do most of the same in GDScript. The app learn GDScript from zero is all GDScript for example. You can code editor plugins in GDScript. There are some really elaborate ones like Dialogic and Pandora for example.

  • @m.hosseinmahmoodi
    @m.hosseinmahmoodi 2 หลายเดือนก่อน

    I would like to use C++ and have access to my stdints, but it's too much work for not a huge gain and C# not supporting Web on Godot 4 it's out of the question. But I have to say I HATE GDScript's indentation based syntax, it's awful.

  • @This_Guy-
    @This_Guy- 8 หลายเดือนก่อน +1

    C++ all the way to my grave baby😎

  • @AnesPro-g1o
    @AnesPro-g1o 8 หลายเดือนก่อน +1

    thanks

  • @Adekon
    @Adekon 5 หลายเดือนก่อน

    bro your outro reminds me ALOT about rodamrix

  • @adityarahalkar1024
    @adityarahalkar1024 8 หลายเดือนก่อน +2

    C++

  • @shroomer3867
    @shroomer3867 6 หลายเดือนก่อน

    So I've been wondering. I have enough of a base in C++ to probably code fully in it and I'm probably most comfortable there, but zero compile time and similiarity to Python is really attracting me towards trying out GDScript.
    Would it make sense for someone like me to learn GDScript or should I just jump head first with C++? What I took away from the video is that C++ is more used towards the development of the Godot engine and extensions rather than the games themselves.

    • @Gdquest
      @Gdquest  6 หลายเดือนก่อน

      In your case, I would definitely use GDScript because the learning curve from a base in C++ is pretty much negligible and it's really pleasant to use directly in the editor. Then if you ever run into a need to use C++ (huge loops and hundreds of thousands of game objects), you could code that part in C++. If you ever need to cross that bridge, the community could use a showcase of how to mix and match both GDScript and C++ in a project. :)

    • @shroomer3867
      @shroomer3867 6 หลายเดือนก่อน

      @@Gdquest Thank you, I wouldn't imagine you would answer. Thank you! :D

  • @PhenxRsng
    @PhenxRsng 8 หลายเดือนก่อน +2

    I choose rust

  • @Matojeje
    @Matojeje 8 หลายเดือนก่อน

    Please tell me more about the mascot characters in the thumbnail! Where did the C# one come from?

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +1

      We made all 3 of them. :) They're under CC by 4.0 licence, so as long as you attribute them to GDQuest, you can reuse them.

  • @zottden4970
    @zottden4970 5 หลายเดือนก่อน

    Hello, thank your for your video. What do you do consider performance-critical parts? online for example? or what? and Rust is worth it use it for games? Will they be faster?
    Greetings!

  • @Frazer213
    @Frazer213 6 หลายเดือนก่อน

    yea but how do i use C++ with gadot, it doesn't seem like an easy task like it is with gdscript or C# where I just pick it from a option.

  • @someuser4166
    @someuser4166 5 หลายเดือนก่อน

    I kinda want my code to compile so people cant steel it as easily.

  • @احمدتوكي-ع6ذ
    @احمدتوكي-ع6ذ หลายเดือนก่อน

    The app it's so good, but I'm just speak Arabic and it's hard to me to learn in English or other language. Can you please add Arabic?

  • @Edel99
    @Edel99 8 หลายเดือนก่อน

    I love GDScript!

  • @ttrev007
    @ttrev007 8 หลายเดือนก่อน

    how close to python is GDscript? i hear people say it is similar but its not clear how similar.

  • @Xethavosh
    @Xethavosh 8 หลายเดือนก่อน +2

    Just use C++. It's faster than the others. Interpreted languages have more overhead.

  • @BLUEBLY487
    @BLUEBLY487 8 หลายเดือนก่อน

    if any one wants to learn C++ you can yous mimo its free

    • @миииц
      @миииц 8 หลายเดือนก่อน

      Are you sure? I didn't see cpp there 🤨

  • @STD-OC
    @STD-OC 8 หลายเดือนก่อน

    We want C# for Godot mobile!

  • @whitneybarbie
    @whitneybarbie 8 หลายเดือนก่อน

    I prefer c# its more easy to read the code

  • @fuzzy-02
    @fuzzy-02 8 หลายเดือนก่อน

    Wait a second... SEE PLUS PLUS?!

  • @viktorhugo1715
    @viktorhugo1715 8 หลายเดือนก่อน

    Can u guys make a tutorial in using multiple languages with Godot 4?
    I'm kinda of a very very very beginner (the only almost complete project til now is pong and the enemy's ai sucks lol), but the projects I'm planning to do would require c++ (I think, Idk if there's any native form of doing the entirely of 2d procedural animation just with nodes), and I really don't know how to use multiple languages in only one project
    Sorry for the bad English

    • @viktorhugo1715
      @viktorhugo1715 8 หลายเดือนก่อน

      Also, there's any way of implement a system in order to the ball bounce with the Godot nodes/built-in phsycs system?
      I needed to implement it by myself when I tried

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน

      You can check our open source Godot 4.0 physics demo. It might help: github.com/gdquest-demos/godot-4.0-new-features/
      Note taken for using multiple languages in a single project. Not sure when we'll get to it though.
      Your English is perfectly understandable.

  • @tsunekakou1275
    @tsunekakou1275 8 หลายเดือนก่อน

    c slash c++... what is that programming language 😅

  • @darknetworld
    @darknetworld 8 หลายเดือนก่อน

    Well there is rust lang but where that? Since they have module.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +1

      Community support for rust is wip.

  • @rok_e
    @rok_e 8 หลายเดือนก่อน +2

    C# in my love))

  • @saulthetaxidriver6100
    @saulthetaxidriver6100 7 หลายเดือนก่อน

    No cpp?

  • @TazkoHoZabit
    @TazkoHoZabit 8 หลายเดือนก่อน

    C# for Godot is a lost path. The money should have been better invested in perfect visual scripting (something between blueprints and bolt and gamemaker with the possibility of custom functions with variables and multidimensional fields). C# in godot has unfriendly syntax, the best C# syntax has unity (like monodevelop). In Godot master gdscript.

  • @Armageddon2k
    @Armageddon2k 8 หลายเดือนก่อน +1

    I think you forgot to mention one major thing: not having a proper compiler is also a huge detriment. code completion features are way worse, therefore refactoring is much harder, and compilers will find many bugs without you even running the code. in GDScript youll have to run your game and navigate to a certain part of it to have a script executed just to see that you misspelled a variable name and do it all over again. so I dont think the "faster iteration speed" is really *that* relevant. I like GDS for learning the engine, but for full-fledged projects it wouldnt be my first choice.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +2

      You do get static checks if you use type hints in GDScript, and code does get compiled in the editor. Using types also makes a big difference with autocompletion. The errors like typos not being caught is more of a limitation of dynamic code. And that's why optional strong typing was added back in Godot 3.

  • @Christobanistan
    @Christobanistan 8 หลายเดือนก่อน +6

    C# is faster than GDScript, not slower. It's just not as much faster than you'd expect because of the context switches that need to occur due to the poor way Godot implements it.

  • @The3DSphinx
    @The3DSphinx 8 หลายเดือนก่อน

    Would you happen to know if someone made an add-on for Godot 4.0 to export .bmp. I really need this for a tool I am making and was bummed when I didn't see a save to bmp format image option.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +1

      I don't think I've ever come across one.

    • @The3DSphinx
      @The3DSphinx 8 หลายเดือนก่อน

      @@Gdquest Ahhh. After messing around it seems using save_png and just setting the extension as .bmp appears to work. Now trying to figure out how to set an image bit depth.

  • @Lansamatv
    @Lansamatv 8 หลายเดือนก่อน

    Please, do the courses have a section in Spanish?

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน

      At the moment they're in English only

  • @celsladroma8048
    @celsladroma8048 8 หลายเดือนก่อน

    I love GDScripts language not because it is easy to understand but you can save a lot of money because it doesn't compete with other making its has own personal language.. does not get more tax to the government

  • @penguininpajamas
    @penguininpajamas 8 หลายเดือนก่อน

    lets goooooo

    • @awfyboy
      @awfyboy 8 หลายเดือนก่อน +2

      Where are we going?!

  • @Meow_YT
    @Meow_YT 7 หลายเดือนก่อน +1

    I tried Godot, coming from Rider and Unity. The immediate integration of a poor editor threw me, and very quickly it made me give up... there's nothing that makes a long-term professional developer get coding fatigue, than a bad IDE, and the feeling they're gonna be trapped in an IDE when the argument everyone gives is "At least it's not Unity"... Especially when I really enjoy the Unity / Rider development combination.

    • @Gdquest
      @Gdquest  7 หลายเดือนก่อน +2

      You can use Rider with Godot. Here's the documentation: docs.godotengine.org/en/stable/contributing/development/configuring_an_ide/rider.html

  • @EdelmarSchneider
    @EdelmarSchneider 8 หลายเดือนก่อน

    The only thing holding me back from using Godot professionally is the lack of C# support for web target

  • @DerrickBommarito
    @DerrickBommarito 8 หลายเดือนก่อน +1

    You've made statements like "fully supported" and completely skipped over capability differences for different targets and built-in features. The way you've written this video makes it sound like the only differences are the language itself the compilation/iteration considerations with those. That leaves pretty significant gaps in consideration for many uses of Godot.

    • @Gdquest
      @Gdquest  8 หลายเดือนก่อน +1

      Sure, you mean you can't export to the web right now? Is there anything else?
      To me, web export is just a matter of time and the info would soon become obsolete. As the c# implementation is going to shift over to GDExtension and new .Net releases come out, the gap will bridge. The things we covered are those that won't change. I'll add a pinned comment to complete the current picture.

  • @Im_Ninooo
    @Im_Ninooo 8 หลายเดือนก่อน +5

    GDScript FTW

  • @mintx1720
    @mintx1720 8 หลายเดือนก่อน

    Crablang!