Тёмный

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

Outside Realm
Подписаться 2,6 тыс.
Просмотров 257 тыс.
50% 1

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 :)

Опубликовано:

 

1 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 841   
@NOPerative
@NOPerative Год назад
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!
@ManUpNow1
@ManUpNow1 Год назад
This is a great idea
@jimmycat7774
@jimmycat7774 Год назад
no
@cerilious
@cerilious Год назад
Perfect time to make something like that! I love Godot. Would love to see it.
@NOPerative
@NOPerative Год назад
@@cerilious Absolutely.
@lubba64
@lubba64 Год назад
@@jimmycat7774 shut
@semikolondev
@semikolondev Год назад
Same as Blender. The more the community help each others and pursue FOSS the more we're gonna be free
@Bulsara777
@Bulsara777 Год назад
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 Год назад
Unless Adobe buys them all 💀
@st.altair4936
@st.altair4936 Год назад
@@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 Год назад
​@@st.altair4936Or it will be like with Audacity: everyone pretends everything is all ok.
@JustmeIguess
@JustmeIguess Год назад
@@daphenomenalz4100you do realize that adobe already donates to them every month
@Efra_EMX
@Efra_EMX Год назад
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 Год назад
Really ugly and confusing at first, but it's something I've grown to love the more I've used the engine
@explodeywolf3619
@explodeywolf3619 Год назад
You can also extend scripts!
@TurtleKwitty
@TurtleKwitty Год назад
@@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_ Год назад
​@@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 Год назад
​@@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 Год назад
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 Год назад
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 Год назад
Thanks for the feedback! I did indeed want to avoid tutorials for this very reason. I may check some out later on.
@olivierdulac
@olivierdulac Год назад
​@@outsiderealmgamesGDquest's youtube videos are a good source, imo. Welcome to Godot!
@PhyloGenesis
@PhyloGenesis Год назад
​@@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 Год назад
​@@PhyloGenesisvscode through an extension . . .
@LahceneBelbachir
@LahceneBelbachir Год назад
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 Год назад
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 Год назад
​@@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 Год назад
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 Год назад
Ain't no way any studio would trust them after this lol. They are not going to switch back
@Lyncin
@Lyncin Год назад
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.
@jsmxwll
@jsmxwll Год назад
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.
@CollCaz-2
@CollCaz-2 Год назад
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 Год назад
Thanks for the detailed reply! This is very helpful.
@piratesephiroth
@piratesephiroth Год назад
@@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 Год назад
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 Год назад
​@@thegardenofeatin5965C# used to be proprietary but it was open sourced
@ДаниилЧернышев-л5й
@@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...)
@Chevifier
@Chevifier Год назад
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 Год назад
This comment should probably he higher.
@pijcab
@pijcab Год назад
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 Год назад
@@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 Год назад
@@pijcab Also, just press F1 whenever in doubt.
@Chevifier
@Chevifier Год назад
@@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.
@jamesfifth7954
@jamesfifth7954 Год назад
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!!!
@shamstam
@shamstam Год назад
LOL
@ViktorsJournal
@ViktorsJournal Год назад
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 Год назад
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 Год назад
@@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 Год назад
@@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 Год назад
@@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 Год назад
@@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).
@pythonxz
@pythonxz Год назад
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 Год назад
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 Год назад
​@@squelchedotterI'm pretty sure you can create components in godot, with nodes put onto parents and a script.
@zaftnotameni
@zaftnotameni Год назад
the node system is really ellegant, it's a simple idea that solves so many use cases
@lshadowSFX
@lshadowSFX Год назад
​@@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 Год назад
@@squelchedotter nodes are components if you want them to be
@SkyLavend
@SkyLavend Год назад
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!
@kdevelopergw
@kdevelopergw Год назад
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
@jared7650
@jared7650 Год назад
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 Год назад
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 Год назад
@@RenderingUser yeah, agreed. That's one of those mind shifts I had to go through
@outsiderealmgames
@outsiderealmgames Год назад
Thanks, I'll give that a shot.
@kazii_the_avali
@kazii_the_avali Год назад
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
@Vegan_Kebab_In_My_Hand
@Vegan_Kebab_In_My_Hand Год назад
​@@RenderingUser And that is why I would say nodes are better, because you can use them as components too, that's great
@IronBrandon22
@IronBrandon22 Год назад
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!
@jonteguy
@jonteguy Год назад
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.
@rorychivers8769
@rorychivers8769 Год назад
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.
@Low_Fidelity_3D
@Low_Fidelity_3D Год назад
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 Год назад
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 Год назад
Godot's built in documentation is one of its best features for me
@Low_Fidelity_3D
@Low_Fidelity_3D Год назад
@@AlphaGarg ah, gotcha, thanks for the clarification 👍
@leonpijudo6875
@leonpijudo6875 Год назад
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 Год назад
im looking forward to using it
@kevinzawarrior
@kevinzawarrior Год назад
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 Год назад
@@kevinzawarrior Unreal Engine 5 wasn't really made for 2D game development, so it being a hassle is understandable.
@kevinzawarrior
@kevinzawarrior Год назад
@@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
@bigshrekhorner
@bigshrekhorner Месяц назад
@@kevinzawarrior Tbh, if you are willing to work for it, Godot is also capable of super good graphics. Look at PVKK for example, a game that's releasing soon and is made with godot.
@carneios08
@carneios08 Год назад
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.
@Chevifier
@Chevifier Год назад
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.
@roflman
@roflman Год назад
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.
@yatchan
@yatchan Год назад
It is moving slow because you're only moving it by delta pixels each frame, so about one pixel/s. The measurements in Godot 2D are in pixels, not in units (they're in units in 3D).
@TheDrsalvation
@TheDrsalvation Год назад
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 Год назад
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 Год назад
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 Год назад
@diligencehumility6971 its only 5 percent revenue with unreal after you make your first million dollars, so its not that bad.
@Lord_Thunderballs
@Lord_Thunderballs Год назад
@@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 Год назад
@@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.
@Martiriak
@Martiriak Год назад
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
@flashmutex
@flashmutex Год назад
30:00 "Will have to figure out how to do the multiple script thing later". Hint: No, you won't 😂
@dustlol5221
@dustlol5221 Год назад
technically you can, by extending with another script with class_name.
@takumimayama8507
@takumimayama8507 Год назад
@@dustlol5221 that would be great. but afaik you can only extend class derived from the node/object and attach it to a Node. The scene system was designed to work with the node system where you'll have seperate _Process, event listeners etc.. Maybe you can create another file an reference it but it cant override method and functions from the derived class directly.
@MatrixQ
@MatrixQ Год назад
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 Год назад
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 Год назад
Thanks, that's helpful!
@RenderingUser
@RenderingUser Год назад
@@ThotTee addendum: you can set the root node's filter method from the project settings
@ThotTee
@ThotTee Год назад
@@RenderingUseri found it. thanks.
@Sylfa
@Sylfa Год назад
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.
@jesustyronechrist2330
@jesustyronechrist2330 Год назад
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.
@soundrogue4472
@soundrogue4472 Год назад
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.
@nrg753
@nrg753 Год назад
When I changed from Unity to Godot I ended up just switching to gdscript as well. I love C# but GDscript is actually a really nice language and of course better integrated in to Godot.
@enochsadventures
@enochsadventures Год назад
Yes, I feel bad for how many people will fall into the C# trap. Godot only put the bare effort into it for MS funding. The engine's actual intention is to use GDScript and if necessary C/C++ for speed ups. An example would be for procgen. You might have to implement your own C code for speed up.
@BrandanLee
@BrandanLee Год назад
@@enochsadventures -- If you had some complicated serialization, taking XML or JSON files and packing/unpacking with something like Ceres to a binary... In C# that makes sense, but what about GDScript?
@enochsadventures
@enochsadventures Год назад
@@BrandanLee Godot has a JSON class
@draftingish4833
@draftingish4833 Год назад
@@BrandanLee You write the handler in C# and communicate with it in GD script , you can use both in the same project. So write what you need in C# but if you do most of the design work in GDscript it works well.
@TurtleKwitty
@TurtleKwitty Год назад
@@BrandanLee If it has to be external file type JSON if it can be internal filetype then godot has amazing built in serialization for resource types
@CellarPhantom
@CellarPhantom Год назад
This is weirdly inspiring even though it's such a simple first-try thing
@Booootsie
@Booootsie Год назад
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.
@Cluxiu
@Cluxiu Год назад
This the best time to switch tbh, unity cant be trusted
@henrypickledi
@henrypickledi Год назад
the X and the Y are basis vectors of the transform they are not the x and y components of the position , basically the transform has a position with xyz ,and three basis vectors X Y Z that describe the orientation. basically its the rotation vectors that you were accessing
@americankid7782
@americankid7782 Год назад
It’s weird that many devs have suddenly decided to leave Unity behind. I can’t imagine the reason…
@smokinjoe9415
@smokinjoe9415 Год назад
Godot is slow and buggy. Not to be used by serious developers. Also, why do you need an engine? Just write your own code in C++ and use SDL if you are clueless with DirectX or another render package.
@bezoro-personal
@bezoro-personal Год назад
I played around with Godot the past few days as well. Incredibly interesting and full of potential. For my needs its a little light on features, in particular 3D ones such as a Terrain editor and the ability to paint intanced objects for vegetation and the like. I would need to code quite a few tools to get myself up and running with it, but I am keeping my eye on it. I was particularly impressed with the performance, managed to get10.000 (instanced) objects on screen at over 3k FPS. Tried the new and improved Unreal 5 as well. Incredible visual fidelity and cutting edge tools, but MY GOD the overhead is crippling. I struggles to get 400FPS after stripping it as much as I could, on a blank scene. RTX 4080. So for me Unity is still the tool of choice. But I'm jumping over to Godot the moment they add more 3D features (they are so close).
@Teekeks
@Teekeks Год назад
They are working on a lot of 3D tooling but where quite lite on those recently since they switched their backend to Vulkan which was obviously a enormous undertaking.
@PillJoy
@PillJoy Год назад
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
@Forien
@Forien Год назад
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.
@MK-lk7nc
@MK-lk7nc Год назад
Thanks for this video. I'm in a very similar position of needing to explore other non-Unity options. Godot looks promising.
@AndreasEsau
@AndreasEsau Год назад
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.
@efkastner
@efkastner Год назад
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
@giancarlobonvenuto2701
@giancarlobonvenuto2701 Год назад
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!
@signalshift6676
@signalshift6676 Год назад
I would watch a series of that.. maybe I would start again trying to learn godot
@ZenoTasedro
@ZenoTasedro Год назад
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
@m4rt_
@m4rt_ Год назад
Note: GDScript isn't proprietary. It's included in the source code of Godot, which is licensed under the MIT license (which means that it's free and open source)
@trickster721
@trickster721 Год назад
I think what he meant to say is that it's a language specific to Godot.
@m4rt_
@m4rt_ Год назад
@@trickster721 that it is, but it's heavily inspired by Python, so if you know Python you'll probably know most of GDScript, and if you know GDScript you'll probably understand Python. The main differences I know of is: func (def in python) var (python doesn't have a keyword for this) const (not a thing in python) match (not a thing in python)
@mikelezhnin8601
@mikelezhnin8601 Год назад
honestly impressive how much you managed without looking up anything at all
@maxn6641
@maxn6641 Год назад
Awesome!
@xhivo97
@xhivo97 Год назад
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.
@itsKimi
@itsKimi Год назад
let's say it all together: STOP BEING STINKY UNITY
@sheepcommander_
@sheepcommander_ Год назад
Technically proprietary means privately owned / trademarked, but GDScript is just the in-house engine language & ofc open source :D
@jvsvogler
@jvsvogler Год назад
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.
@kristianstaalby8499
@kristianstaalby8499 Год назад
This blew up. A series would fund your next project. Haha, if only. Good stuff
@ag1015
@ag1015 Год назад
this was really painful to watch.. you cant put multiple scripts on one node but you can add other nodes as children to that node and give them scripts that work the same as if you were using that parent node but if you want to change the position of the parent node from the child node you need to do something like" var parent = get_parent()" and change it from there like "parent.position += delta" (at least how it is done with gdscript)
@lemangkuk
@lemangkuk Год назад
this will be me soon, 10+ years plus of using unity, now time to change, but not sure either unreal or godot.
@xhivo97
@xhivo97 Год назад
With 10 years of experience moving to either one will be easy, the best advice here is to test multiple engines and pick what is a good match in terms of workflow and features needed.
@VectorDev
@VectorDev Год назад
if u don't think about making so big games godot 4 is the best not in graphics but every tool every node you gonna use in godot is made for u for making the game easier and u can change or make what ever u want in godot like unity , unreal is for 3d ik there is alot of 2d games have made by unreal but godot is better for 2d than unity and unreal and for 3d 🤷🏻 its just a time if godot growth like how its growth RN in few years there is no reason to use unity and if u want AAA graphic for your game unreal the onlyone in the stage
@diligencehumility6971
@diligencehumility6971 Год назад
​@@VectorDevIMO Unity is King of 2D, but I cannot use Unity after recent events. So now Ill say Godot is the Best option for 2D, hands down. And Unreal is best option for 3D. Both should I learn both?
@shrobbyy
@shrobbyy Год назад
I really wish Godot to blow up. Especially because it has a native Linux version and it's a lot easier to make Linux supported games with Godot than Unity and UE. Linux gaming is getting more and more popular.
@colinwatt9387
@colinwatt9387 Год назад
"Children of the Root-node" one of the less successful Stephen King adaptations.
@dorestheo5314
@dorestheo5314 Год назад
note: on Godot, Up is -Y but Right is still +X
@pasta8026
@pasta8026 Год назад
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 Год назад
​@@pasta8026it's canvas coords. It's what makes sense in computers.
@pasta8026
@pasta8026 Год назад
​@@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 Год назад
@@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 Год назад
@@pasta8026 , GameMaker has the same, Up is -Y
@merthyr1831
@merthyr1831 Год назад
I'd consider trying to learn GDscript if you want to use Godot in the longer term. It builds so much faster than C# and doesn't require the bulky af Visual Studio to work in.
@roberts.wilson1848
@roberts.wilson1848 Год назад
basic logic: 1. Do you use unity for your products? Yes! 2. Migrate to another engine, never go near Unity again.
@chris_gamedev
@chris_gamedev Год назад
You can set the texture filter to nearest in the project settings for all sprites :)
@Kyt2024
@Kyt2024 Год назад
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
@hopelessdecoy
@hopelessdecoy Год назад
The console exe is for debug messages so users can report bugs better or you can Also NOTHING in Godot is proprietary, this definitely includes GDScript or at least nothing Godot built.... Not sure if they use non-open source things in their project.
@DevlogBill
@DevlogBill Год назад
Hi Outside, Question? If someone never used a game engine before but they have close to 2 years of coding skills. Are there huge differences between Unity and Godot? Lastly from your personal point of view which feels like would have an easier learning curve for 2D indie game development?
@idontwanttopickone
@idontwanttopickone Год назад
Hmmm.... I wonder why this is being recommended to so many people right now. 🤔 I'm sure it has nothing to do with good ol' John Riccitiello. I mean I'm sure a great guy like that would never ever commit a crime. I know lots of people are accusing him of insider trading by doing a Unity stock dump, followed by a dump on Unity customers with a ridiculous business model that would have been known to him for ages. But come on, never good old John. Such a wonderful saint like that would never break the law like that and surely won't be investigated for insider trading any time soon. The guy's too nice to ever break the law like that and sh*t all over his customers like that.
@kevinscales
@kevinscales Год назад
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()
@flashfire0375
@flashfire0375 Год назад
After the whole Unity drama, I got interested into game engines and downloaded Godot recently. I don't know what I'm doing but I'm down to stick around :D
@AdmiralBison
@AdmiralBison Год назад
A solution perhaps is to have a shift towards supporting and using open source and/or public owned alternatives. If there is increased demand for alternatives, I believe open source/public owned alternatives can outshine corporate offerings.
@U_Geek
@U_Geek Год назад
When I first saw the changes I thought it would be a dumpster fire but now it just feels like someone threw out a bunch of fireworks and it just exploded. Even my non gamedev friedns are pissed about it.
@MetiriPersonal
@MetiriPersonal Год назад
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 Год назад
Lots of classes don't inherit from Node, but yeah, anything you can add as a node inherits from Node
@MetiriPersonal
@MetiriPersonal Год назад
@@kevinscalesi guess i shouldve been explicit in that anything that attaches to a node is a node. its just a big tree.
@bigshrekhorner
@bigshrekhorner Месяц назад
Ye, I found it way more intuitive than other engines' way of handling this stuff. Like, UI, characters, worlds, levels, even components that don't even get rendered, like state machines or HTTP request handlers, they are all just nodes. Scenes are also just nodes (although I think this is a really bad naming scheme, because initially I thought a scene was the same concept as a level, but for Godot, scenes are more equivalent to templates). They are not arbitrarily distinct. In Unreal, for example, all these would be completely different concepts, so you'd need to learn how to interact with each of these, but in godot you just need to learn how to interact with one thing; all others are just extensions of that one thing.
@yesitsreallyOtter
@yesitsreallyOtter Год назад
liked this video just because Godot, as an open source engine, is fundamentally like good for the industry if it becomes a larger part of it. have not watched yet, will do
@michelcastilho6862
@michelcastilho6862 Год назад
Trying Godot for the first time while completely ignoring its awesome documentation that would cut this video down to about 5 minutes*
@BartiqDnB
@BartiqDnB Год назад
Hope a lot of other people are making this switch too. Godot has it's flaws, it's direction and management (partially) included, but the engine itself is starting to become very powerful and is subject to consistent updates. Time to show these large businesses that they can't just pull off anything, might cost me 3 years of developement but it's worth it nonetheless. I only chose Unity over Godot when I started because C# wasnt fully implemented in godot by then, but they got that covered now too. Sure, maybe Godot doesn't have the same functionality and all the features built into the engine that Unity has, but not having those and having to write something myself that suits the purpose, might just make me a better developer as a whole I feel like. Anyone with me on this?
@calmhorizons
@calmhorizons Год назад
Nice to see I am not the only one who can't help but be polite to ChatGPT when asking for things. :D
@MargudnRoboter
@MargudnRoboter Год назад
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
@PhoticsTV
@PhoticsTV Год назад
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.
@MargudnRoboter
@MargudnRoboter Год назад
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.
@Blekoh
@Blekoh Год назад
Godot nodes only support one script because it is a mostly object oriented design buuut you can do stuff like Option 1 (I prefer option 2): @export var scripts : Array[Resource] Which lets you attach resources to a a node and you could dynamically load them within the single script so with a little work you could make a system to add multiple scripts to a single node that inherits this “script loader” Option 2(I generally use this way): Alternatively a common way I’ve used a lot and seen done in Godot is that you make a custom node for each of your generic scripts you want to add to multiple objects and you add these as child nodes like components Like for example a movement controller that listens for wasd inputs would be a Node with a script attached to listen for inputs but instead of programming the script to move itself it moves it’s parent You then can add this component node to any node as a child and it will have movement controls
@Mark-vr7pt
@Mark-vr7pt Год назад
11:00 "I might need to look at some documentation" Who does that? You need to break something first:)
@rocker10039
@rocker10039 Год назад
idk if I should cry or be relieved here..... 10 years dayum.
@curlybrace6694
@curlybrace6694 Год назад
This video is a manifestation of the rule to read at least basic documentation or tutorial on new tech before trying to use it based on prev experience. Obviously godot is not unity and has its own unique concepts. But trying to do unity stuff will only frustrate in that case.
@Linealo
@Linealo Год назад
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.
@MrBishop077
@MrBishop077 Год назад
So .. right as you were opening Godot for the first time i got hit with an ad .. and it was so smooth Aannnd a game intro .. .. it took me a few seconds to realize it was a commercial and not some super fancy splash screen .. .. yep.
@WyMustIGo
@WyMustIGo Год назад
ChatGPT? Are you serious? LOL
@micmacha
@micmacha Год назад
In GDScript, you can actually change x, y, and z independently of the whole vector. I'm not sure if that carried over to C# or not, though. I remember Unity was very strict about writing the whole vector.
@NK-fh3st
@NK-fh3st Год назад
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.
@kaysta_dev
@kaysta_dev Год назад
in godot hold ctrl and hover over the class then it will highlight it and when you click it it will open up and in-engine documentation .
@BrokeZhongli
@BrokeZhongli Год назад
Unity unintentionally donated alot of people to godot
@AppMaker728
@AppMaker728 2 месяца назад
Godot make me want to create games again
@Chevifier
@Chevifier Год назад
_Physics_Process(double delta) is the equivalent of FixedUpdate in unity
@Zekium
@Zekium Год назад
In gdscript, changing the position is easy as : (script from that node) position.x += 42 (alternative script from that node) self.position.x += 42 (from a parent node) $NodeName.position.x += 42 It shouldn't be more difficult in C# (never used it on Godot).
@takumimayama8507
@takumimayama8507 Год назад
It maybe more easier. But it such a waste if we don't utilize the scripting skills we had from unity.
@Zekium
@Zekium Год назад
@@takumimayama8507 What do you call "scripting skills from unity" ? I just said it could be done in one line in GDscript and I hope it's the same in C# in Godot.
@Zekium
@Zekium Год назад
@@takumimayama8507 Just shown 3 differents lines doing the same operation.
@ERICROJO156
@ERICROJO156 Год назад
I pronounce it "goe" "dot" and I refuse to change
@MrNoTears
@MrNoTears Год назад
Godot is great. But it's still sad that what Unity is doing.
@SevastianYT
@SevastianYT Год назад
Ah the rhyming at the start 😌
@csongorszecska
@csongorszecska Год назад
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
@deathgirl420
@deathgirl420 Год назад
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 ❤.
@awsmeanthony
@awsmeanthony Год назад
To zoom the camera use the camera2D node.
@neolynxer
@neolynxer Год назад
There is Stride Game Engine. I don't know how ready it is for production. But it would be interesting to see a review on it.
@kaysta_dev
@kaysta_dev Год назад
its simple Go - dot not godoe or gadot
@elriano1
@elriano1 Год назад
Haven't watched yet but thanks for making this. Downloaded Godot yesterday and back on the learning grind. 💪💪💪
@triplezgames3882
@triplezgames3882 Год назад
I'm in the same situation... I might be remaking my game in another Engine. Could you please give suggestions about the Engine? I need a Game Engine in 2D for both Android and IOS, which is pretty performant due to the games competitive nature, which supports some kind of web socket connection. Is this possible with Godot?
@rameynoodles152
@rameynoodles152 Год назад
Yes
@The_Xeos
@The_Xeos Год назад
I've exported for Mac but never made mobile games so I don't know how solid the workflow is. I've heard some people complain about it, but technically it should work (maybe not with C# projects though). Other than that, the 2D engine is very solid with plenty of features, should be performant enough and it provides web socket functionalities.
@nieznajomyczowiek574
@nieznajomyczowiek574 Год назад
godot does have all of that. never made a game for IOS or one that connects to the internet but i know its possible
@triplezgames3882
@triplezgames3882 Год назад
@@The_Xeos Thank you! Godot 4 doesn't support C# for mobile yet, so I couldn't use websocketsharp for that purpose... But I'll have a look if there are other libraries for that
@The_Xeos
@The_Xeos Год назад
@@triplezgames3882 Depending on your needs you could use the functions integrated in the engine for that purpose, I've used web sockets in GDScript for several projects before
@isaacbunsen5833
@isaacbunsen5833 Год назад
To make the sprite bigger for "uneven" pixel art you can just just increase the scale of the base node2d. You can do a better job of this in project settings, display/window/ and setting stretch scale. If you want pixel perfect rendering, you can instead go to the same exact page in project settings, and set the viewport width and height to smaller values more in line with a retro system. Then set the stretch mode to 'viewport'.
@micmacha
@micmacha Год назад
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.
Далее
Лучше одной, чем с такими
00:54
Просмотров 532 тыс.
My Experience Moving to Godot from Unity
16:54
Просмотров 28 тыс.
4 Godot 4 Devs Make 4 Games in 44 Hours
25:19
Просмотров 524 тыс.
I Made My First Game in Godot in 3 Weeks...
26:21
Просмотров 373 тыс.
Giving Personality to Procedural Animations using Math
15:30
The Unity Drama (A Dev's Perspective)
10:20
Просмотров 124 тыс.
Unity vs Unreal vs GoDot? (Why did I pick ...?)
8:19
How to Make a Roguelike Card Game on Godot
2:10:19
Просмотров 58 тыс.
3 Hours vs. 3 Years of Blender
17:44
Просмотров 5 млн