#thread because I still want to make my case but there's a real conversation
1 messages ยท Page 1 of 1 (latest)
position.x += speed * delta is much more readable, position in Unity is a struct - you can't do transform.position.x += speed * Time.deltaTime, and that confuses people
extends Node3D is much easier to intuitively grasp than : MonoBehaviour
@export again makes more intuitive sense than [SerializeField] or public
to unity's credit, update does make a lot more sense than _process, what the hell were godot thinking with that one lmao
I still think GDScript is easier to grok than C# and I will die on this hill ๐
anyways my point is - this is all pretty much one-to-one
there's no "weird extra bits" that come up, they'd be complained about if they were there lol
of course the example code isn't one-to-one, but that's more of how the unity library is designed
if we were to compare the languages, i'd opt for something that more closely match semantically even if it's not valid semantically, so something like:
class Move : MonoBehaviour {
[SerializeField] float speed = 5;
void Update() {
transform.position.x += speed * Time.deltaTime;
}
}
```vs```py
extends Node3D
@export var speed: float = 5.0
func _process(delta: float) -> void:
position.x += speed * delta
```i think it's more clear here that it's nearly one-to-one
the main discrepency is the `class`, which gdscript just has as the entire file, so it's not something that c# just has extra, it's just not stated in the gdscript version
transform.position.x += speed * Time.deltaTime;```
you can't do this though!
i know, i mentioned that
oh missed that
curly braces and semicolons also aren't a thing people who aren't familiar with programming immediately grok
extends Node3Dis much easier to intuitively grasp than: MonoBehaviour
i think neither would be intuitive to a beginner, without the context of OOP as a whole, so even though you can read the first one it's kind of a moot point imo
For this specific example, you could make it even shorter by using => instead of {} for Update
not gonna do that for parity to properly compare the languages
separate points on braces and semicolons
for braces:
yeah, i'd agree with that, especially with pseudocode typically using indents
but it really isn't much to explain that braces specify grouping
no but it's just another thing to learn
which ok you kinda have to learn in godot too
for semis: absolutely agree with that, but it's such a minor thing that i don't think it makes a real difference
I've only taught maybe a dozen people, all under 15, but I can say that semicolons in particular make a difference ๐
yeah i made that point in my head whoops - in colon+indent languages you get the natural reading, but you still have to learn to be consistent in writing
frustration for "why won't it run oh right I forgot the thing gah"

I would maybe even make a slight counter argument to this, it's much easier to make a logical mistake with indents than {} and ;, especially since those are reported as errors if you have a decent ide
yeah but people who are just starting out hate errors ๐
I really have to fight to prove the point that errors are better than things just not working quite correctly lmao
we love errors, errors tell us what to do
to be clear I really do prefer unity and C# lmao
I just have an easier time getting non-programmers on board with gdscript
oh, yeah, the intimidation aspect is definitely a thing
i have taught people before in a personal context, and semis have never really been a specific painpoint?
a common mistake sure but it's really easy to resolve and with a few tries you start to self-diagnose so it never became an actual issue
I think for me it has just been exasperation on the part of the person learning, a feeling of "this is an alien language". I guess it hasn't been a problem problem, they haven't given up
-# to me the main pain of semis is switching between languages that use it and ones that don't and frying my muscle memory lol
counterpoint to all of this:
if someone making a game chooses an engine because they struggle with semicolons, or braces, or really any of these points above, they shouldnt be making a game yet. They're going to struggle with logic in any language. They likely aren't going to publish an actual game either.
I havent seen comparisions about godot vs unity in awhile, so I dont know what it does in modern day, but from what i know its a lot more limited or isnt as good for 3d.
I fight that every time it comes up, learning the fundamentals in a boring terminal setting puts people off and is quite a high barrier. Learning fundamentals while making a game is fun
10 years ago you're absolutely right
no questions. Current attention span is zero though
kids these days shakes fist
people can and do learn by doing
can confirm, all the knowledge I gained so far was by working on a project/tool
not for the lack of attention span tho, I simply prefer working on something I need and figuring things out as I go
however, I do agree with bawsi's take too, if the main reason you'd chose an engine is {} or ;, then you are worrying about wrong things
learning an engine because of that wasn't my whole point ๐
it's just a way to get into making a thing with slightly less friction
godot also has fewer features - which means it can do less, but that's actually a good thing in this case
it's tiny, <250mb on my mac - where Unity is what, 8gb min?
honestly, I think that when choosing the engine, the single most important thing is how that engine functions, as in how you make stuff work (e.g. game objects+components in unity)
doesn't godot have the same model?
I found it extremely easy and intuitive to get a hang of the unity architecture, while even with a few years of unity experience I couldn't figure godot out
just unreal where you script on objects directly
I think it's similar, iirc 1 component per object and you have to nest them or something, could be wrong tho
not quite! It's different enough to be a pain in the ass for me to use with a decade of unity muscle memory ๐
some people say it feels much more "streamlined" than unity, I disagree and think it has clunky FOSS UX but a significant amount of people tell me it's really nice to use
I am certain I have unity stockholm syndrome so I'm inclined to believe them xD
I am a huge foss fan but I still have to admit that godot ui is messy and ux is not the best(my opinion tho)
The size of the engine really doesn't matter though on any modern computer. People might have pieces of junk and yea in that case godot works better.
a lot of kids learning game dev are on their crappy old laptop with 128gb storage
We'd be talking super cheap laptops
or a school computer
or on a metered internet connection
(or anywhere in australia lmao)
to be completely fair, dom is right here, godot seems to have a much more optimized editor
yes, the 6gb editor size won't make a diff for most people but that doesn't mean it's not worse than what godot offers
I doubt I could even find a laptop with 128gb storage these days. Modern day computers can handle unity.
We're really talking about a small small subset of the population here. We see lots of school students in here who simply are using their own pcs and often people who are literally in school and asking us questions. Because they take pictures of their school computer monitor
the real big sell of godot for beginners is that you can't do anywhere near as much with it, the point about storage size was a minor one at best ๐
I am from serbia(poorly developed country), and can assure you that 128gb on a school computer is luxury, and running unity is an impossible task
the main difference between a 6gb engine and a 250mb one is many many features that you have to learn
my usual advice to beginners is to try both and see which you prefer
they really shouldn't be making actual games at that point anyway
I'm not saying that godot isnt easier, or has less to learn. I'm saying a lot of these points just dont apply to many people.
Sure people might pickup godot instead of unity because of language, or because its lightweight. Though a ton of people basically flip a coin, pick an engine and stick with it for awhile. I did see a bit of the start of the conversation, and it did develop purely into a language vs language thing. This is what beginners are reading, thus they think its best to consider the language when choosing an engine.
Also beginners really arent going to try both.
They would have little reference for even knowing what to compare in both