Trying Godot for the first time, after 10 years of Unity

Sdílet
Vložit
  • čas přidán 12. 09. 2023
  • After a decade of working with Unity, I'm going to try some other options. And, I wanted to use this opportunity to upload my unfiltered first impressions of using these new (to me) tools. I'll start with Godot and then try Unreal. Get ready to yell at the screen as I do the wrong things :)

Komentáře • 841

  • @NOPerative
    @NOPerative Před 9 měsíci +2453

    Might be time to shine.
    Start a migration guide series for your Unity fellows, maybe even collab with them and develop a series to ease transition.
    Welcome to the Godot side of the fence - enjoy!

    • @xycho6380
      @xycho6380 Před 9 měsíci +51

      This is a great idea

    • @jimmycat7774
      @jimmycat7774 Před 9 měsíci +1

      no

    • @cerilious
      @cerilious Před 9 měsíci +39

      Perfect time to make something like that! I love Godot. Would love to see it.

    • @NOPerative
      @NOPerative Před 9 měsíci +10

      @@cerilious Absolutely.

    • @lubba64
      @lubba64 Před 9 měsíci +25

      @@jimmycat7774 shut

  • @semikolondev
    @semikolondev Před 9 měsíci +485

    Same as Blender. The more the community help each others and pursue FOSS the more we're gonna be free

    • @Bulsara777
      @Bulsara777 Před 9 měsíci +71

      Yup, hope that with Unity fumbling the bag, Godot can grow to become the Blender of Game Engines. UE5 is a good and powerful option too, but we need competition, not monopoly.

    • @daphenomenalz4100
      @daphenomenalz4100 Před 9 měsíci +2

      Unless Adobe buys them all 💀

    • @st.altair4936
      @st.altair4936 Před 9 měsíci +27

      @@daphenomenalz4100 Won't matter; the community would just fork them and move to those instead. That's basically what happened to Emby with Jellyfin
      They'd just be giving the founders free money, which they do deserve.

    • @Cinkodacs
      @Cinkodacs Před 9 měsíci

      ​@@st.altair4936Or it will be like with Audacity: everyone pretends everything is all ok.

    • @JustmeIguess
      @JustmeIguess Před 9 měsíci

      @@daphenomenalz4100you do realize that adobe already donates to them every month

  • @Efra_EMX
    @Efra_EMX Před 9 měsíci +336

    29:20 Each node can only hold one script
    In order to attach multiple scripts inside an object, you need to add multiple nodes inside said object, each with their own individual script. At that point, these children nodes become Unity's equivalent of "components"
    That's exactly how it works here

    • @FlooferLand
      @FlooferLand Před 9 měsíci +47

      Really ugly and confusing at first, but it's something I've grown to love the more I've used the engine

    • @explodeywolf3619
      @explodeywolf3619 Před 9 měsíci +14

      You can also extend scripts!

    • @TurtleKwitty
      @TurtleKwitty Před 9 měsíci +9

      @@simonlow0210 It's pretty much the equivalent, you have the orchestration script that handles sub scripts either through children or through an export, but yes

    • @sheepcommander_
      @sheepcommander_ Před 9 měsíci +16

      ​@@FlooferLand It was ugly and confusing to you? That's interesting, I found it really intuitive if you think of it as _nodes_ ;
      atomized/modularized components

    • @FlooferLand
      @FlooferLand Před 9 měsíci +6

      ​@@sheepcommander_ I just found the whole concept really confusing at first, turned me away from learning Godot in the beginning because I really loved ECS and still do.
      Over time I got used to it however and realized both ECS' and Node systems suck in their own ways XD
      Also learned you can basically emulate ECS using Godot's node system, so that's fun

  • @simeontodorov9353
    @simeontodorov9353 Před 9 měsíci +209

    Its very interesting to see the perspective of someone who hasnt seen any tutorials yet. Gives some insight on how self-explanatory and intuitive the Godot UI and systems actually are for beginners, even though you're not really a beginner in game dev as a whole.
    PS: 16:20 the GDscript syntax is basically like Python. Its extremely easy and clean to use, and most tutorials use it.

    • @zaftnotameni
      @zaftnotameni Před 9 měsíci +25

      and the C# support overall has gotten MUCH better, but still has a lot of kinks (sadly) compared to gdscript, I'd highly suggest starting with gdscript and moving to C# later (if that's what you prefer)

    • @outsiderealmgames
      @outsiderealmgames  Před 9 měsíci +43

      Thanks for the feedback! I did indeed want to avoid tutorials for this very reason. I may check some out later on.

    • @olivierdulac
      @olivierdulac Před 9 měsíci +2

      ​@@outsiderealmgamesGDquest's youtube videos are a good source, imo. Welcome to Godot!

    • @PhyloGenesis
      @PhyloGenesis Před 9 měsíci +1

      ​@@zaftnotameniWhen I try GDScript the in-Godot editor is atrocious and debugging barely works. I thought GDScript was brand new. Where do people normally edit and debug their GD Script?

    • @dawsonpate7385
      @dawsonpate7385 Před 9 měsíci

      ​@@PhyloGenesisvscode through an extension . . .

  • @CollCaz-2
    @CollCaz-2 Před 9 měsíci +426

    Ah welcome to Godot! hope you like it.
    here's some answers to questions you brought up.
    1. You can set the "default texture" in the import tab above where the root node is.
    2. Yes you can mix GDScript, C# and probably other languages too if you have their GDExtenstions installed,
    3. This was probably just a slip of the tongue but GDScript isn't propriety, It's also opensource.
    4. You can have Godot open the scripts in your editor of choice automatically, skipping the built in editor.
    5. Nodes are all Classes, So "inherents" in attach script window does refer to inheritance in an OOP context.
    6. You can "extend scripts" but not add new ones, Usually you would instead add Node Children, and attach scripts to them, those would act as components that you could also instance as children in other scenes.
    Also in GDScript, you don't have to close the game window when editing code or the scene tree, most changes will get loaded live.

    • @outsiderealmgames
      @outsiderealmgames  Před 9 měsíci +116

      Thanks for the detailed reply! This is very helpful.

    • @piratesephiroth
      @piratesephiroth Před 9 měsíci +24

      @@outsiderealmgames and although scripts are usually attached to nodes, you can also add loose ones if they define their own global classes.
      The editor will always load them automatically.
      (this is for gdscript, I don't really know how it works for c#)

    • @thegardenofeatin5965
      @thegardenofeatin5965 Před 9 měsíci +2

      On #3, GDScript is "unique" to Godot, let's say. While I use and like Godot, I can definitely understand people wanting to use the more widespread C# (Which I believe IS proprietary to Microsoft) especially if they're already familiar with it.

    • @ShivaJormungandr
      @ShivaJormungandr Před 9 měsíci

      ​@@thegardenofeatin5965C# used to be proprietary but it was open sourced

    • @user-un5kp9qr8o
      @user-un5kp9qr8o Před 9 měsíci

      @@thegardenofeatin5965 well, the C# has been open source for years too. I've been pleasantly surprised that Godot 4.0 now supports Net 6, which is far more up to date while Unity is still struggling with Net 4.7 (it's a pain sometimes, really...)

  • @ViktorsJournal
    @ViktorsJournal Před 9 měsíci +121

    Some answers to questions in the video, might be helpful to someone checking the video :0.
    1. Import is where you can set the filter options for your sprite per file rather than what you did per instance (or in settings you can set defaults per resource type to begin with ;)) - Where you add child nodes at the top there's Scene tab and Import tab, click on Import and then in your FileSystem click on TestSprite.png.
    2. In the export, at the bottom after pressing on export project you exported a debug build, for release build uncheck that so you can make a better comparison.
    3. Inheritance works just as usual, but if you input a random string as a class name and that class doesn't exist then godot is going to complain ;-).
    4. Godot uses net with generators, this led to need for the partial classes.
    5. Godot script editor is built only for gdscript (and shaders) so use external editors for c# (but set up your IDE of choice in godot's settings so godot starts the editor for you when you attach a script or open a new one, this also allows better debugging and such since everything is already connected from the get go - seamlessly works while launching on your own can sometimes cause issues, if you used Unreal Engine it's the similar thing).
    6. _physics_process(): method is the FixedUpdate from unity basically
    7. In general godot also uses floats but for specific implementation reasons the deltas are doubles, you need to cast them to floats when you use them though since godot's api will expect floats (you can build godot on your own with double precision though if you ever needed to) - though I think there's a draft or already a PR to change this.
    8. Transform is local space transform, GlobalTransform global space, Transform.Origin (position), Transform.Basis (is the basis obviously ;)), you can also just use Position or GlobalPosition instead of transforms straight (internally it uses transforms so it's just a comfortable shorthand).
    9. Unity's RigidBody equivalent is Godot's RigidBody2D/3D ;).
    10. Holding right click and WASDEQ allows fps style movement in 3D viewport (mouse wheel to speed up/down).
    11. Clicking on 3d/2d opens related window but if you want you can combine 2d and 3d (3d in 2d or 2d in 3d, or mix it even more).
    12. One script per node, you can use other nodes and attach scripts there when needed.
    13. Offset in sprite basically helps if you needed to have a pivot point.
    14. ChatGPT doesn't have info about Godot 4.0 or later unfortunately. :'/
    15. To move in a simple way you can for example Position += Vector3.Right * (float)delta * _yourSpeedVar;
    16. Using `this` keyword is not necessary in godot unless you get to a situation you need it for c# reasons (could be just preference I know ;)).
    17. Camera2D is a node too.
    18. You can change scaling and such in settings.
    Cool to see you checking it out. :)

    • @legendarydragoon
      @legendarydragoon Před 9 měsíci +1

      This is super helpful! I'm also a long time Unity dev taking a look at other options like Godot.
      I was curious about the camera which you mention is a node; if you do not specify or add a Camera Node explicitly, is there a way to access the default one that the Engine seems to be using?
      In Unity each scene has a camera added by default that you can either replace, add more, extend, etc. While it's typically best to cache your camera reference if you plan to access it, you have the option to access the current main camera statically through variables like: Camera.main, Camera.current, Camera.allCameras. Wondering if there was some kind of equivalence.

    • @ViktorsJournal
      @ViktorsJournal Před 9 měsíci

      @@legendarydragoon Hm, I think you need to add a Camera2D for that but I work mostly with 3D so maybe you can find something more. You can get some basic info form the viewport though for example width, height if that's what you need but in general you always add a camera be it in 2d or in 3d (3d won't even render anything without a camera in the scene unlike 2d). I wish I could help better.

    • @nadie9058
      @nadie9058 Před 9 měsíci

      @@legendarydragoon As far as i know there's no way to access the default camera, i don't even know if there's such a thing as a default camera, however it's trivial to add one, just add a Camera or Camera2D node anywhere in the scene and check the enabled property (it's checked by default) and it turns into the current one. If you want the camera to move in any way you would add a camera in any case, and it's easy too, just add the camera as a child of the player and it follows it around, or put it as a sibling and add a RemoteTransform node as child of the player, with the remote path as that of the camera.

    • @410_Gone
      @410_Gone Před 9 měsíci

      @@legendarydragoon In 3D you explicitly need to create a camera, in 2D you implicitly have a camera, but can use ones you add yourself.
      You can access the default camera through Viewport.get_camera_2d/3d(), I don't know what's the c# equivalent, but I'm sure it's similar.

    • @hunteriv4869
      @hunteriv4869 Před 9 měsíci

      @@legendarydragoon There isn't a "default camera." If you don't add a Camera2D, it is painting directly to screen. Unlike Unity, the 2D engine is independent from the 3D one, so it doesn't need an orthographic camera in the background to show the 2D content. The Camera2D node is actually "faking" movement by moving and transforming the canvas in a more natural way, whereas the Unity camera is an actual 3D camera (which is why Unity has no problems if you toss 3D objects on your 2D scene, whereas Godot won't allow it).

  • @LahceneBelbachir
    @LahceneBelbachir Před 9 měsíci +539

    It's so sad, watching this mass exodus, hopefully this will make them reconsider or help other engines like Godot get even better.

    • @waron4fun597
      @waron4fun597 Před 9 měsíci +230

      even if they fully revert the changes, heck even if they somehow backtracked further then that, the damage is done... People will never trust Unity again

    • @triplezgames3882
      @triplezgames3882 Před 9 měsíci

      ​@@waron4fun597 I'd need some kind of guarantee that they will and can't do anything like that in the future again, if they really roll back and want us to trust them again...

    • @CD-vb9fi
      @CD-vb9fi Před 9 měsíci +118

      I like it. I abandoned Unity when they let that scumbag EA executive join and started turning Unity into an Ad driven wasteland. I saw the writing on the wall a couple of years ago... I am only sad it has taken this long for everyone else to get a clue. Unity has made it clear how sinister their evil is for a while now.

    • @normalname3623
      @normalname3623 Před 9 měsíci +35

      Ain't no way any studio would trust them after this lol. They are not going to switch back

    • @Lyncin
      @Lyncin Před 9 měsíci +65

      Unity's CEO said "What if battlefield players paid a dollar per reload?" and he was fully serious. Also, he did this to make his AAA friends happy, since AAA games are being challenged by indies more then ever.

  • @Chevifier
    @Chevifier Před 9 měsíci +382

    The X and Y on the Transform is actually its Basis the origin is what you want to change. But you can actually get and change its position by just getting it position i.e Position or GlobalPosition

    • @cerilious
      @cerilious Před 9 měsíci +12

      This comment should probably he higher.

    • @pijcab
      @pijcab Před 9 měsíci +5

      so it's Transform.Position.X that you set and get? (makes sense since Transform has more attributes and functionality in it than just Position?)
      edit: answered my own question by watching the video fully, Transform has Position, Scale, Rotation and Skew attributes or components (not sure what they're called here).

    • @JebacPresretac101
      @JebacPresretac101 Před 9 měsíci

      @@pijcab No, you don't use this.Transform, it's a 2 dimensional matrix, you just use the exposed direct values, this.Position, this.Scale, this.RotationInDegrees instead. If you MUST use a transform (you literally never do), you can do this.Transform.Origin instead... (that is the equivalent of this.Position)
      Transform2D and Transform3D are really fancy names for Matrix2D and Matrix3D, specific version of them used in OpenGL/DirectX/Vulcan for location/rotation stuff, used generally in graphics math. You are not supposed to use Matrices unless you know what they are.
      P.S. I use GDscript, not C#, so i use self.position, self.rotation_in_degrees, self.scale when i need to, i might have gotten the capitalisation wrong. I don't use self.transform.origin anymore cause, you dont' need to, and it's actually hard to edit (you have to create a whole new transform and set it as a reference because the values of a transform are read only, video creator already knew about that problem which is why he got stuck, like we all do at the start).

    • @JebacPresretac101
      @JebacPresretac101 Před 9 měsíci

      @@pijcab Also, just press F1 whenever in doubt.

    • @Chevifier
      @Chevifier Před 9 měsíci +5

      @@pijcab Transform has origin rotation and basis. In 2D basis is 2 Vector2s X and Y, in 3D Basis is 3 vector3s X Y and Z. The basis determines how move an object was rotated for its initial transform Its useful for getting camera relative velocity for example.

  • @jsmxwll
    @jsmxwll Před 9 měsíci +39

    if i'm not mistaken, unity's 2D is really 3D with a camera pointed at a plane. godot's 2D engine is a true 2D engine. that's why you can't see anything in the 3D view. the in-editor documentation for gdscript is outstanding. i primarily use c# but i use gd script to explore things sometimes. also the names of things are usually the same as the name in the inspector. so this.Position this.Rotation this.Scale etc many properties come with methods like rotation_degrees for rotate as well.

  • @captainwasabi
    @captainwasabi Před 9 měsíci +50

    So scenes.... Everything can be a scene and you can have scenes within scenes. This is an extremely powerful feature that you need to play with.
    This is actually great usability testing, hope the Godot devs watch this. It can really give you a great idea of how Unity devs will interact with Godot, what feels intuitive and what doesn't.

    • @Syeno
      @Syeno Před 9 měsíci +1

      I wish theyd rename it to assembly it would be so much easier to grasp at first glance. Or prefab

    • @trauma._
      @trauma._ Před 9 měsíci

      ​@@Syenowdym it is literally scenes... you have a new chapter in your game, load the new scene, and the game continues there, go back to the other scene and you're there
      it's not just importing or setting up but a runtime thing

    • @stephenharperisgay
      @stephenharperisgay Před 8 měsíci

      ​@@trauma._the name Scene gives the impression that it has to be a level but a scene is just a collection of nodes that you can then instance like a prefab. Or it can be a level. Or a bullet. It doesn't matter, it's completely modular.
      Took me a while at first to grasp that scenes weren't like scenes in a movie, or levels in a game.

  • @gameworldjt
    @gameworldjt Před 9 měsíci +41

    As someone who switched from unity to godot a year ago, i wish you good luck! personally it didn't take me long to get used to the engine, only about a week actually, but i heard a lot of people have troubles with it

  • @jamesfifth7954
    @jamesfifth7954 Před 9 měsíci +78

    Thank you UNITY!!! I've been stuck in "Game Engine Choice Hell" for a while now, and just when I needed to make a decision, you made it for me!!! Thank you!!!

  • @Martiriak
    @Martiriak Před 9 měsíci +10

    This might be one of the most helpful videos for the engine's developers; you're basically giving them feedback on the UX of the editor, I love it

  • @carneios08
    @carneios08 Před 9 měsíci +25

    These types of raw videos are amazing, if I'm being honest. It lets the viewer follow along with the presenter's thought process, while allowing them to generate their own thoughts. Personally, this type of video is more useful for me than a tutorial.

  • @pythonxz
    @pythonxz Před 9 měsíci +366

    I really like the node system in Godot. If you take a look at the documentation they go into minute detail about that system. I think it's better than game objects.

    • @squelchedotter
      @squelchedotter Před 9 měsíci +39

      I think it's more intuitive for beginners, but if you're working with more complex things where the hierarchy isn't entirely clear, the ECS/component style quickly becomes an advantage.

    • @fireninja8250
      @fireninja8250 Před 9 měsíci +30

      ​@@squelchedotterI'm pretty sure you can create components in godot, with nodes put onto parents and a script.

    • @zaftnotameni
      @zaftnotameni Před 9 měsíci +30

      the node system is really ellegant, it's a simple idea that solves so many use cases

    • @lshadowSFX
      @lshadowSFX Před 9 měsíci +30

      ​@@squelchedotter it's a matter of perspective only, but it is there. The scenes act as components. Each escene with their own nodes which serve a specific purpose can be reused in the main tree as components. So, for example, you don't create one scene with map, player, enemies, ui, objects, etc. you would create as many scenes as you can for re-usability and you would add the scenes to the main scene. So it's a naming thing only but they are essentially components / objects.

    • @kevinscales
      @kevinscales Před 9 měsíci +15

      @@squelchedotter nodes are components if you want them to be

  • @rorychivers8769
    @rorychivers8769 Před 9 měsíci +18

    A closed source proprietary game engine capturing most of the indie game market was never going to end well. Sooner or later, there was always going to be someone come along and get the bright idea to treat their customers like cattle.

  • @IronBrandon22
    @IronBrandon22 Před 9 měsíci +36

    Small tip for using Godot's docs: When using Godot's in-engine script editor, Ctrl + Left Clicking on any built-in class variables will bring you to that document within the editor. For example: Using it on the text "Sprite2D" would open the document for Godot's Sprite2D Class.
    P.S. I hope you enjoyed using Godot!

  • @SkyLavend
    @SkyLavend Před 9 měsíci +75

    Watching someone new to godot just opened my eyes
    it's like a baby walking lol
    I hope you find a engine that's best for you with this unity "crisis" goin on!

  • @roflman
    @roflman Před 9 měsíci +22

    The node system is weird at first but once you get it it's really powerful, for example if you're making a car game, you can have the car body as the parent node and then the wheels, engine etc as child nodes and now all you have to do is swap out the mesh files of the children and you have instant car customization without having to reposition all of the different parts manually.

  • @deathgirl420
    @deathgirl420 Před 9 měsíci +11

    I've been working in Godot for about 2 years now and it was really cool to see you just start figuring things out. Welcome to team open source ❤.

  • @soundrogue4472
    @soundrogue4472 Před 9 měsíci +5

    As someone who only has 22 hours of coding in Godot; Godot is WAY easier to get a hold of and learn Godot than Unity. In 22 hours of using this game engine I have been able to do the following;
    1. different animation states
    2. Reloading
    3. Shooting
    4. Wall sliding, wall jumping/ kicking
    5. Melee attacks
    6. Change the hit box and hurt box
    7. Add enemies
    8. Sound play
    9. Animation pauses
    10. change inputs types/ add inputs
    11. add combos
    etc.
    Meanwhile in Unity I was f-ing stuck worse than anything I have ever been stuck in. Godot has to be my favorite game engine so far.

  • @Low_Fidelity_3D
    @Low_Fidelity_3D Před 9 měsíci +39

    20:06 -The Godot editor does have built in documentation, if you right click a node and select "open documentation" it will, essentially, tell you everything you can do with it.
    22:51 -Godot does have a _Physics_Process function, that sounds like what you were looking for.
    25:04 - ... That's weird. May be a C# thing, when using Godot's editor, the X variable of a transform is a float. This may be an issue with the visual basic
    29:19 -Only one script per node, yeah. Most what you would call "Objects" in godet are trees of nodes, a node can double as both an entire object or simply a component of one, depending on how the hierarchy in the scene tree is organized. You wont really need multiple scripts on one singular node.

    • @AlphaGarg
      @AlphaGarg Před 9 měsíci +10

      25:04 is because the transform there isn't the transform section of the node (or whatever it's called in Godot), it's the transformation matrix of the node. So X is actually M00->M03 - it's the first row (or column, depending on which one is major in Godot).

    • @cl4655
      @cl4655 Před 9 měsíci +6

      Godot's built in documentation is one of its best features for me

    • @Low_Fidelity_3D
      @Low_Fidelity_3D Před 9 měsíci +1

      @@AlphaGarg ah, gotcha, thanks for the clarification 👍

  • @CellarPhantom
    @CellarPhantom Před 9 měsíci +14

    This is weirdly inspiring even though it's such a simple first-try thing

    • @Booootsie
      @Booootsie Před 9 měsíci +4

      From a game dev hobbyist perspective, I was just thinking about how well this shows off his critical thinking skills. “Oh, I noticed this feature I’m used to having in Unity doesn’t seem to be present here. Maybe it’s somewhere I’m not looking or called something different,” shows immense maturity and wisdom as a developer imo. All too often, I feel like people will immediately assume that if something they actually already know is framed in a different context from what their used to, it’s not actually there and they’ll panic and immediately search for tutorials instead of putting in a little more effort to just figure it out.
      I found this vid really inspiring, not just as someone who wants to get better at game dev, but also as someone who values and wants to get better at critical thinking and problem solving.

  • @giancarlobonvenuto2701
    @giancarlobonvenuto2701 Před 9 měsíci +4

    Wow, I've just met your channel and I loved the video. Differently from other channels, you actually describe what your experience really is, explaining what calls your attention, what seems confusing, familiar, etc.
    I wish more channels made "Trying out" videos as descriptive as you just did!

  • @badelmo7021
    @badelmo7021 Před 9 měsíci +1

    Love seeing you experiment and figure things out on the fly, would love to see some more of this

  • @misiranuhito01
    @misiranuhito01 Před 9 měsíci +6

    honestly watching this from someone also new at godot but not new to game dev is way more informative and helpful than a regular godot tutorial

  • @leonpijudo6875
    @leonpijudo6875 Před 9 měsíci +59

    i tried Game Maker , Unity, Gdevelop, Ue5 ,etc, and for me 2D Godot its the best so far, intuitive node system, you can use a component approach like Unity or OOP, the UI nodes are better, you can animate ANYTHING with Animation Player , much better than the Timeline in Unity

    • @evilgabe
      @evilgabe Před 9 měsíci +1

      im looking forward to using it

    • @kevinzawarrior
      @kevinzawarrior Před 9 měsíci +8

      personally I switched to UE5 from unity a while back but for 2D UE5 is a hassle to work with, unless you want super good graphics id go with GODOT as well.

    • @HakoTaco1
      @HakoTaco1 Před 9 měsíci +5

      @@kevinzawarrior Unreal Engine 5 wasn't really made for 2D game development, so it being a hassle is understandable.

    • @kevinzawarrior
      @kevinzawarrior Před 9 měsíci +6

      @@HakoTaco1 yeah it really isn't, I'm working on a retro fps so it uses both 3d and 2d elements so it's really annoying lol

  • @MatrixQ
    @MatrixQ Před 9 měsíci +147

    When you import anything, you can select the file down left in the file explorer and then go to "import" on the upper left. You can then select the options you want the file to be imported as. For Pixel Art, you can select the Preset "2D" and it works well.
    When you add a script to a node, you're basically changing the node type to a new type that inherits from the original node type. You can't add multiple scripts like you do in Unity, because the script is the node, not a component of the node. Everything is done through child hierarchy. For example when you have an Area2D, you add colliders as a child node to it, and the Area2D uses those colliders to determine its area.
    Every node has a position property, which you can use instead of the transform. Same for rotation. It's better to use those instead of transform,

    • @ThotTee
      @ThotTee Před 9 měsíci +8

      The filter option is available on import tab just in godot 3.x. In godot 4, you can set filter option / node (like in 3d / material), and you need to set your main canvasitem node (Node2D) for inherits to all other children.

    • @outsiderealmgames
      @outsiderealmgames  Před 9 měsíci +31

      Thanks, that's helpful!

    • @RenderingUser
      @RenderingUser Před 9 měsíci +7

      @@ThotTee addendum: you can set the root node's filter method from the project settings

    • @ThotTee
      @ThotTee Před 9 měsíci +1

      @@RenderingUseri found it. thanks.

    • @Sylfa
      @Sylfa Před 9 měsíci +7

      To be specific, in Unity each node (GameObject) is a container of leaf nodes (MonoBehaviour). When moving over to Godot you just have to lift the "main" behaviour up in the hierarchy as all nodes can be both leaves and branches.
      So instead of having a GameObject that is both a sprite, a rigid body, and a collision shape you pick what the main feature is for this, presumably the rigid body, which then has a sprite as a child, etc.
      It's more straightforward this way, in my opinion. The unity method differentiates between Scene, GameObject, and MonoBehaviour, making one valid as root only, and one valid as leaves only. In Godot your scene can be any type of node, say a rigid body. More straightforward implementation of a tree data structure.
      The transform seems to be the Matrix that is used, not a separate component like it is in Unity. It did have functions for translating it it seems, but it makes sense to use the position property instead of reinventing it's implementation.

  • @efkastner
    @efkastner Před 9 měsíci +6

    As someone with only a passing familiarity with Unity and no exposure to Gadot, this was very interesting to watch! Thanks, can’t wait to see what’s next

  • @voidboi0
    @voidboi0 Před 9 měsíci

    This was such an awesome video. Very interesting watch. Congrats on the recent success too!

  • @MetiriPersonal
    @MetiriPersonal Před 9 měsíci +5

    one thing that really helped me understand godot was the realization that everything is a node. Every class inherits from node, and everything in your game will be a node. Scripts are attached to nodes and you attach those nodes to other nodes in a tree structure to give them functionality. In unity theres components, think of a node as a component. Attach a script to a node, save that node and drag it into another node to add that "component" to your other nodes.
    good luck in your godot journey, the community is great and with unitys fumbling with their pricing model, hopefully our community will grow

    • @kevinscales
      @kevinscales Před 9 měsíci

      Lots of classes don't inherit from Node, but yeah, anything you can add as a node inherits from Node

    • @MetiriPersonal
      @MetiriPersonal Před 9 měsíci

      @@kevinscalesi guess i shouldve been explicit in that anything that attaches to a node is a node. its just a big tree.

  • @MargudnRoboter
    @MargudnRoboter Před 9 měsíci +1

    I am impressed of how good of an "think a loud" you did here. Like UI/UX people would probably love to have you as a tester.

  • @nickcrawwwford
    @nickcrawwwford Před 9 měsíci

    Great vid! My fav part was hearing your surprise around Godot's build speed

  • @XAnimacraftX
    @XAnimacraftX Před 9 měsíci

    this is super interesting to watch, definitely make more of these~

  • @csongorszecska
    @csongorszecska Před 9 měsíci +3

    I don't need tutorials for Godot. I NEED THESE VIDEOS. This video singlehandedly taught me more about godot than any tutorial could've done ever

  • @rocker10039
    @rocker10039 Před 9 měsíci +1

    idk if I should cry or be relieved here..... 10 years dayum.

  • @jared7650
    @jared7650 Před 9 měsíci +82

    Try adding a camera2D as a child to the node you want to zoom in on.
    The node structure takes a bit to get used to but I don't miss the component structure anymore especially since I feel the scene system is a lot better integrated then the prefab system I constantly had problems with back when I was using unity full time

    • @RenderingUser
      @RenderingUser Před 9 měsíci +18

      Honestly, I still use nodes as components. Heck, godot uses nodes as components by default sometimes. Like how it asks you to add collision shape nodes to physics bodies. I've recently taken to more composition based project organisation.

    • @jared7650
      @jared7650 Před 9 měsíci +2

      @@RenderingUser yeah, agreed.
      That's one of those mind shifts I had to go through

    • @outsiderealmgames
      @outsiderealmgames  Před 9 měsíci +8

      Thanks, I'll give that a shot.

    • @kazii_the_avali
      @kazii_the_avali Před 9 měsíci +5

      another tip on this is dont be scared to have hundrids of small scenes. it makes working with things a lot easyer and you can put a seen in the node tree

    • @VeganKebabDoRuky
      @VeganKebabDoRuky Před 9 měsíci +4

      ​@@RenderingUser And that is why I would say nodes are better, because you can use them as components too, that's great

  • @jonteguy
    @jonteguy Před 9 měsíci +4

    I personally would use UE as I don't think Godot is ready yet, it's a great product but it still needs some time in the oven, this is my sincere opinion and thoughts about it.
    I understand that UE is much harder to learn though since it has so much and it also uses cpp, which is a harder language. (Has BP though but I personally do not use that for heavier calculations)
    A mix of cpp and BP is the way to go I think, with cpp doing the heavy lifting.
    *That being said,* Godot definitely has a future and I think after this Unity debacle Godot will improve fast because they have an opportunity to fill a void.
    And honestly people who say UE is bad for indie or "2D" are just wrong. That is such an old take. You do need patience though because UE is heavy, so many features.

  • @NK-fh3st
    @NK-fh3st Před 9 měsíci +3

    As a sucker for Godot, thanks for giving it a shot! Always lovely to see people trying out other engines and giving them a spin.. not the least for one I'm pretty passionate about! Darn freaking shame about the circumstances.

  • @BeetleG
    @BeetleG Před 9 měsíci +1

    This was a cool video, it's really interesting seeing how other people interact and explore. Thanks for posting this! I'm also just starting to look into Godot and the differences to unity are intriguing!

  • @sammypanda
    @sammypanda Před 9 měsíci

    this was awesome to watch, i'm glad the discovery process and thought processes were mostly unedited even if mistakes happened, it helped me learn how to think through things better :)

  • @ferna2294
    @ferna2294 Před 9 měsíci

    I´ve never seen such a fast change after a new measure, and I couldn´t be more proud.

  • @Chevifier
    @Chevifier Před 9 měsíci +27

    Welcome to Godot. Theres plenty of tutorials around to get your feet wet. I have a playlist as well covering how to use GDScript if you want to try out the builtin language. Its all centralized within the editor. Even each classes documenting is all builtin offline.

  • @vinnieyang5422
    @vinnieyang5422 Před 9 měsíci

    This was a really fun watch to see an experienced developer test out new tools!

  • @jvsvogler
    @jvsvogler Před 9 měsíci +3

    Welcome! I hope you like it, bro! Godot is really underrated in my opinion, and even though I think they are already doing well on features and always improving, I belive that their core values do matter a lot too. You can really tell that you're using a tool made out of passion from users to users, instead of pure greed.

  • @ETdu38
    @ETdu38 Před 9 měsíci +1

    Actually a pretty good tutorial video. I am not coming from a game dev background and didn't actively look for tutorials but i found it widely interesting to have the insight of someone with solid overall understanding of game engines

  • @ichoupettev4661
    @ichoupettev4661 Před 9 měsíci

    Good luck for your transition

  • @SauceyRedHN
    @SauceyRedHN Před 9 měsíci

    I would definitely love a part two of learning Godot, very entertaining and fun.

  • @TheDrsalvation
    @TheDrsalvation Před 9 měsíci +33

    I've also been with unity for over a decade... I hear Godot is looking nice this time of the year... Maybe unreal wants to have a chat with me too.

    • @Lord_Thunderballs
      @Lord_Thunderballs Před 9 měsíci +6

      I mainly use Unreal and dabbled a bit in Godot. Both are good. But I'm so far deep into learning Unreal, I just can't switch engines. Maybe once I create and release a game in Unreal, I might dabble more in Godot.

    • @diligencehumility6971
      @diligencehumility6971 Před 9 měsíci +1

      Me too. Looking into Godot and Unreal right now. Not sure what to pick. Godot is 100% free but lacks lots of features, and Unreal has all the features but coat 5% of revenue. Honestly not sure, both have pros and cons

    • @recodegamesstudio
      @recodegamesstudio Před 9 měsíci

      @diligencehumility6971 its only 5 percent revenue with unreal after you make your first million dollars, so its not that bad.

    • @Lord_Thunderballs
      @Lord_Thunderballs Před 9 měsíci

      @@diligencehumility6971 The 5% royalty only kicks in after you make $1 million dollars. The learning curve is massive and it's just information overload for 1 person. You've got so many tools and it's all very powerful and you can do so much. The huge issue I have is the Epic Games launcher, it's garbage.

    • @razorgmyt6772
      @razorgmyt6772 Před 9 měsíci

      @@diligencehumility6971 No, it covers that 5% if your game generates 1,000,000 dollars, if you don't get here they don't charge you.

  • @micmacha
    @micmacha Před 9 měsíci +1

    Welcome to the community, man. I personally gave up on Unity close to a year ago, when it started feeling like I was fighting the engine for basic stuff. Godot 4 blew my mind.
    Wait until you get a load of the new physics nodes. It's got in-engine support for soft body collisions. It's amazing that it's unconditionally free.
    The biggest thing I needed to get used to was Godot's child nodes serving the same purpose as Unity's sibling MonoComponents. Instead of tacking another script onto the same node (which isn't possible), just add a child and tack it onto that, which is what the internal nodes use; or find a way to merge the functionality into the same script. Also note that resources (textures, sounds, models, etc.) are kind of their own thing, and sometimes you need to change their metadata (under the Import tab) to get them to do things, like loop. Lastly you can think of scenes as being _kind of_ like prefabs.

  • @elriano1
    @elriano1 Před 9 měsíci +1

    Haven't watched yet but thanks for making this. Downloaded Godot yesterday and back on the learning grind. 💪💪💪

  • @TristinDontKnowYou
    @TristinDontKnowYou Před 9 měsíci

    I love this vid bro.Nice vid idea keep the great work up 🎉🔥🤝

  • @Linealo
    @Linealo Před 9 měsíci +2

    I hope you explore this further.
    I just finished my first project with Godot and am thoroughly happy with it. I dabble in Unreal for Animation and Rendering and it certainly is waaay more taxing and complex. It has all right to be that way, it's a powerful engine, but it also makes simpler stuff, like 2D, that much harder to get into and run. The editor sample projects alone can set your machine on fire with the raw processing power it can require.

  • @slothinahat
    @slothinahat Před 9 měsíci

    The node system is something you come to love while working with Godot

  • @Youmu_Konpaku_
    @Youmu_Konpaku_ Před 9 měsíci

    Thanks for the amazing video, I'm now inspired to start my journey of game development because of pf this

  • @Shalfatk01
    @Shalfatk01 Před 9 měsíci

    i am so happy for you to try anything but unity... good luck ! and a lot of patience. it will be good

  • @patrickrainer2507
    @patrickrainer2507 Před 9 měsíci

    The change is quite hard. I did that 2 years ago. But as soon you have it, you will love it.

  • @shanofsabro
    @shanofsabro Před 9 měsíci

    This is the most Non Tutorial tutorial yet is going to be the best tutorial out there about Godot.

  • @vonpotatostein
    @vonpotatostein Před 9 měsíci

    Good luck with the transition to a new engine! I hope the move is as painless as possible!

  • @AndreasEsau
    @AndreasEsau Před 9 měsíci +4

    You can set the interpolation type for your parent node. By default each child node will inherit this setting.
    So by setting nearest neighbour to your parent scene, all children will use that setting. Quick and easy. Basically you could apply this setting to the very root node and it is set for your whole game.

  • @dustlol5221
    @dustlol5221 Před 9 měsíci +1

    Welcome to Godot! I hope when you learn the engine you like it and get better at it, Godot has so much potential and i love this engine, I've had a better reception/experience on Godot than Unity for me, personally.

  • @ZenoTasedro
    @ZenoTasedro Před 9 měsíci +4

    My favorite thing about godot is how often it follows the principle of least surprise. Things are very often where I'm expecting them to be

  • @rohitmishra4029
    @rohitmishra4029 Před 9 měsíci

    congrats for the banger G

  • @aimpizza6823
    @aimpizza6823 Před 9 měsíci

    I waited for a video like that!

  • @BrandanLee
    @BrandanLee Před 9 měsíci

    The best way to see if it's viable is to try it! Was a good watch.

  • @xhivo97
    @xhivo97 Před 9 měsíci +4

    I really liked the video, this concept is super cool. Since I think that the Godot documentation is really great and that GDScript is easy to learn I'd love to see you blindly jump into the documentation and GDScript and see if you can do the same.

  • @AgraxGaming
    @AgraxGaming Před 9 měsíci

    Good luck finding the engine that's best suited for you and i hope you liked Godot!

  • @real_Artemis
    @real_Artemis Před 9 měsíci

    ngl, i watched this with popcorn. I love watching stuff like this. reminds me of that video where that animator tries blender for the 1st time.

  • @kristianstaalby8499
    @kristianstaalby8499 Před 9 měsíci +1

    This blew up. A series would fund your next project. Haha, if only. Good stuff

  • @Gem69420
    @Gem69420 Před 9 měsíci

    as a Godot User it's really fun to see you stumble your way around, Great Video :)

  • @MK-lk7nc
    @MK-lk7nc Před 9 měsíci +1

    Thanks for this video. I'm in a very similar position of needing to explore other non-Unity options. Godot looks promising.

  • @DoppCreations
    @DoppCreations Před 9 měsíci

    This showed up in my recommends and I clicked on it in light of the recent controversy. I immediately recognized your voice. This video has some reach!

  • @gingeral253
    @gingeral253 Před 9 měsíci

    The Unity videos have been popping off in the algorithm.

  • @tirs0d
    @tirs0d Před 9 měsíci

    I love the concept of this video. I was literally trying out Godot for the first time yesterday, too. Spent a lot of time playing with the Material parameters lol.

  • @PhoticsTV
    @PhoticsTV Před 9 měsíci +2

    It was fun watching this, as I hit a lot of the same problems when I first tried Godot 4.
    Although, I just used GDScript. Since I was able to translate what I wanted to do, that seemed to be the easiest route.

  • @Pink404
    @Pink404 Před 9 měsíci

    A great first look. Thanks for showing us. I've only ever played with Unity and played with Godot but I have made working things in both. It took me a little while to convert my thinking over to the Godot way of doing things but I generally prefer it. In some things it's better than Unity, in some worse, but mostly it's just a slightly different way of thinking about things. It took me a while to work out how to get full Visual Studio integration with running and debugging working from within VS in V4 (well documented for V3) but it is possible. As others have mentioned, the integrated documentation in the Godot editor is well worth investigating. Also V4 of the engine is relatively new and a pretty heavy overhaul so there are a few things that are a little clunky in places in V4 and more stable in V3. But it's improved every time I've updated a point release.

  • @hunteriv4869
    @hunteriv4869 Před 9 měsíci

    This was entertaining to watch for sure! There are a couple of differences between nodes/scenes and Unity GameObjects/scenes. A scene in Godot is just a collection (or prefab) of nodes with a root node as part of a scene. As such, you can instantiate scenes within scenes however much you want, and each scene is just a tree of nodes (or smaller scenes).
    The reason why you didn't see a camera in 2D mode (although there is a 2D camera node) is because the 2D and 3D engine are actually separate. Unity basically draws 2D on top of a 3D background (which can be empty) but doesn't fundamentally distinguish between 2D and 3D outside of specific object types. Godot 2D is a full 2D system, complete with its own lighting and physics implementations, which is why you have separate 2D and 3D nodes for most things. You only had the X and Y on your 2D scene because it doesn't have a Z axis at all, and it's "pixel perfect" because that's the default. If you want to do pseudo-3D in 2D mode you have to fake it with cameras and parallax.
    You can only have 1 script per node. That being said, you can have as many "empty" nodes with attached scripts as children of another node. A common design pattern is to create a Node (the type, which is the most basic object you will normally mess with) that just has a script attached as a "component" that runs various functions on the parent. Note that you can also have "autoload" scripts that run independently from any nodes (Project Settings -> Autoload). This is commonly used for "Game Manager" scripts or global functionality. It's also a common place to handle signals between objects in an encapsulated way (signals are very important, somewhat similar to events).
    Hope that helps!

  • @mikelezhnin8601
    @mikelezhnin8601 Před 9 měsíci +1

    honestly impressive how much you managed without looking up anything at all

  • @pamounier
    @pamounier Před 9 měsíci

    Let's go! Good for you!

  • @MargudnRoboter
    @MargudnRoboter Před 9 měsíci +1

    Some little tips:
    - with F1 you can get the in editor documentation open.
    - In the script Editor crtl + left click on a class opens up the documentation of the class

  • @neomaxp
    @neomaxp Před 9 měsíci

    I was also thinking to switch to Godot for the same reasons, thank you for this video

  • @GTron13
    @GTron13 Před 9 měsíci

    I was reading the documentation for Godot and then stumbled across this video and decided to watch it first. Thought maybe seeing someone play around in the engine will make the documentation make more sense.

  • @igz
    @igz Před 9 měsíci

    Growth mindset in action right here!

  • @jvstbecause
    @jvstbecause Před 9 měsíci

    I think Godot's popularity will grow in the next time significantly. Looking forward to it

  • @ajmgdaj
    @ajmgdaj Před 9 měsíci

    Its so funny to see the splash-screen sensitivity of unity converts ^^. It is just a check mark. And it will not charge you anything ^^ All good bro, you will unlearn certain anxieties pretty quickly.

  • @maxn6641
    @maxn6641 Před 9 měsíci +8

    Awesome!

  • @Forien
    @Forien Před 9 měsíci +4

    8:00 in settings you can set default render mode for textures and you can change that to `Nearest`. That's why Sprite2D has "Inherit", it inherits from configuration.
    Also, think of Nodes in Godot as of classes that have hierarchy. So Sprite2D extends Node2D, and Node2D extends Node etc. So Sprite2D is ALSO a Node2D so it has properties of both.

  • @GEB_Rosee_PPS
    @GEB_Rosee_PPS Před 9 měsíci

    love that youve put "please" before asking chatGPT to write the code

  • @aeroperea
    @aeroperea Před 9 měsíci

    This is very informative thank you

  • @Polygarden
    @Polygarden Před 9 měsíci

    Great video! Subscribed! You can change the filtering also in the import settings of the texture. Then it's applied to all objects which inherit the filtering.

  • @nikharrison
    @nikharrison Před 9 měsíci

    Following! You should keep making these.

  • @gameclips5734
    @gameclips5734 Před 9 měsíci

    thanks a lot for making this!

  • @scififan698
    @scififan698 Před 9 měsíci

    Coming here after the psychopath unity Ceo move to start charging for installs.. i guess we'll have a lot of new faces on Godot. Let's learn together. Thsnks a lot for your video, it's pure gold

  • @unhott1893
    @unhott1893 Před 9 měsíci

    Godot is great. Keep it coming please!

    • @unhott1893
      @unhott1893 Před 9 měsíci

      btw a 'prefab' equivalent in Godot is a scene.
      If you want to attach multiple scripts to an object, I think you can just attach a 'node' object with a script and find the parent to act on it.

  • @jesustyronechrist2330
    @jesustyronechrist2330 Před 9 měsíci +2

    Honestly, as Godot is open source, having this mass exodus might do to Godot what has happened to Blender as the community comes together to create the superior product.

  • @kevinscales
    @kevinscales Před 9 měsíci +2

    Nodes in the scene tree (left) and properties in the inspector (right) you can right click -> Open Documentation
    Within Godot's code editor, hold control and click on an variable/type/function name within a script to jump to the documentation or where it is defined in your code (at least this works with GDScript). You will sometimes have to do strict typing e.g. var MyVar: String to get auto complete/documentation when doing something like MyVar.format()

  • @chris_gamedev
    @chris_gamedev Před 9 měsíci +9

    You can set the texture filter to nearest in the project settings for all sprites :)

    • @Kyt2024
      @Kyt2024 Před 9 měsíci +4

      Yup, can also deal with the camera issue there too by using the window and viewport settings. I like to use 320x180 and set my viewport to 1280x720 for pixel art games

  • @mbunds
    @mbunds Před 9 měsíci

    I'm sorry you had to do this. I've loved Unity for years, and I hope they get things straightened out.

  • @dorestheo5314
    @dorestheo5314 Před 9 měsíci +21

    note: on Godot, Up is -Y
    but Right is still +X

    • @pasta8026
      @pasta8026 Před 9 měsíci +3

      but.. why? Is there a way to change that through settings? Don't wanna invert every Y axis cos im so used to Unity

    • @RenderingUser
      @RenderingUser Před 9 měsíci +6

      ​@@pasta8026it's canvas coords. It's what makes sense in computers.

    • @pasta8026
      @pasta8026 Před 9 měsíci +2

      ​@@RenderingUser so theres no way? it's just that every engine and modding software I have experience with use +Y as Up. this will take some time to get used to

    • @RenderingUser
      @RenderingUser Před 9 měsíci +1

      @@pasta8026 it's +y up in 3d in godot
      But canvas coords always put - y up in 2d
      I've seen some game engines use that a lot. The ones that deal with 2d.
      It's sort of fine in godot cause you can just use the enums for vec 2
      eg: Vec2.UP
      It will generate Vec2(0, -1)

    • @proKaps
      @proKaps Před 9 měsíci

      @@pasta8026 , GameMaker has the same, Up is -Y

  • @0AThijs
    @0AThijs Před 9 měsíci

    Took me about 8 minutes to notice and understand why you made this video 😅
    Good luck!