Live data from Hacker News

Godot 4.0 development enters feature freeze ahead of the first beta

godotengine.org

91–100 of 122 posts

Re: Godot 4.0 development enters feature freeze ahead of the first beta

#91

Earlier quoted context omitted.

gdscript is dynamically typed. If you have the large arrays of structs common in gamedev, then all data members are boxed, significantly increasing memory usage compared to something like C#.

C# objects are boxed too.

Boxing is taking a Value Type (struct, int, enum, etc) and converting it to an Object. So Objects aren’t boxed.

Re: Godot 4.0 development enters feature freeze ahead of the first beta

#92

Is there a reason you wouldn't use a game engine to create general purpose cross-platform apps? Is it cumbersome to create textual, structural interfaces (e.g. a twitter clone, google sheets clone, or an ecomm checkout flow)?

For desktop and mobile apps, it could work.

For example, here is kanban PoC made by someone:

https://github.com/alfredbaudisch/Godello

But for web, that could be too much for browsers to handle. Godello loading at webbrowser has only some time watching at spinner, when you have fast Internet connection, loading about 10 MB of code, WASM etc.

But when I tried to save Godot 3D game example to HTML5, and load it to webbrowser, Chromium etc browsers can not handle that much data.

Some webbrowser users have slow connections. If there are many users, they start to complain webpages loading too slowly. With Godot everything is browserside, and generated with save button, from that it's hard to move anything to serverside.

But if you instead code frontend and backend with Javascript, it's possible to move more of frontend Javascript code to run serverside.

Re: Godot 4.0 development enters feature freeze ahead of the first beta

#93

Earlier quoted context omitted.

If you're long on the games industry we are probably in the last generation of game console architecture. Everything is going to be Windows or Linux boxes with PC hardware next gen. I could see Nintendo bucking this trend but they have enough IP to be their own island. It might be smart for Godot to punt; it lets them go faster than Unity and catch up

I've been hearing that since the first Xbox came out (which used an x86 architecture before the Xbox 360 moved to powerpc) and it still hasn't happened.

Consoles are actively migrating their audiences onto digital subscription services so that the brand has an identity separate from the console. The future is selling hardware if you must, so you can make money selling PC games.

Microsoft's strategy is to sell PC games on Windows devices. They might call some of them Xboxes.

Valve's strategy is to maintain a Linux distro that can play PC games.

Sony also ran.

Re: Godot 4.0 development enters feature freeze ahead of the first beta

#94
My blunt review of Godot after using it for about 3 weeks, it's the community's Unity.

But it's just not there yet, things which take seconds in Unity take minutes in Godot. Or are just impossible.

It's not done yet, it's going to probably be done in either late 2023 or 2024. Godot 4 needs to come out, and they need to add mono. I've never been more frustrated with a programming language before I found Godot script, just why.

Why not use Python, why, why not use? I don't know, haxe.

Even Godot's creator tried to calm everybody down, you're comparing what's basically a souped-up hobbyist project by maybe two or 300 volunteers to professional products by multi-billion dollar companies of tens of thousands of people.

All that said, I am fighting through Godot right now and I'm having the most fun with game development I've had in years. I try to armory as well, which is not nearly as advanced as Godot, but has the most welcoming community I've ever seen.

I Feel like, back when I first learned a program when I work with Godot. With mono, which is on 3.5 which is very nice.

Too long. Read, if you want to make a commercial product, you're still stuck using Unity or Unreal,

However, if you want to just make games for the sake of making games.

Godot.

Re: Godot 4.0 development enters feature freeze ahead of the first beta

#95

Earlier quoted context omitted.

C# objects are boxed too.

Boxing is taking a Value Type (struct, int, enum, etc) and converting it to an Object. So Objects aren’t boxed.

Apparently we have different definitions of boxing. To me, and I've always used it (and seen it used) like this, a boxed value is a value that's stored on the heap and passed as a pointer. Maybe C# has a different definition?

Re: Godot 4.0 development enters feature freeze ahead of the first beta

#96

After quickly falling in love with Godot and several months of serious use I'm having to give up on it due to Godot's lack of funding to fix its more than 6000 open issues on Github: https://github.com/godotengine/godot/issues Every single time a Godot bug bites me I find that a bunch of other devs reported the issue more than a year ago but no one has had time/money to fix the issue. For example, I was just bitten b…

Out of curiosity, are you funding it?

I've been funding it (a small amount monthly) for a long time now. I wish it had existed about 15 years ago in college when I had lots of time on my hands for toying with game making.

Re: Godot 4.0 development enters feature freeze ahead of the first beta

#97
post #88

Earlier quoted context omitted.

Did I say, you can't make games in C#? Why do you feel the need to defend C#? You are arguing against a straw man. It is simply a fact that a large part of the professional gaming industry uses C++. That one might be better off using a language without automatic garbage collection for performance critical parts in many cases is pretty standard wisdom. Not sure what there is to argue about. > It's certainly easier for…

> So you have never used GDScript but feel qualified to have a strong opinion on that matter, why is that? I have, which makes me feel confident in stating that it's a language that didn't have to exist, doesn't have a healthy ecosystem backing it, which pulls focus from the actual good (or to be good) bits of Godot, which there are a lot of, and in the end makes people doubt that the language they would actually be…

> I have, which makes me feel confident in stating that it's a language that didn't have to exist

If you have, you should be aware of the history of the project and then I am perplexed why you would make this claim.

They tried using multiple different languages until finally settled for developing GDScript. It is not a decision they just made willy-nilly but something they decided after using different languages did not work out as they hoped it would.

> doesn't have a healthy ecosystem backing

What ecosystem? The ecosystem is Godot and GDScript is an integral part of it.

> in the end makes people doubt that the language they would actually be productive in is a first class citizen for the engine vendors

If you had proper experience with Godot you would know that GDScript is very well liked in the community and people are actually very critical about C# integration, seeing it as more of a distraction and waste of resources. (Of course people that don't like GDScript might simply not stay in the Godot community, so I admit some self selecting bias might be going it.)

The C# integration was only done because Microsoft paid them to do it.

Re: Godot 4.0 development enters feature freeze ahead of the first beta

#98

My blunt review of Godot after using it for about 3 weeks, it's the community's Unity. But it's just not there yet, things which take seconds in Unity take minutes in Godot. Or are just impossible. It's not done yet, it's going to probably be done in either late 2023 or 2024. Godot 4 needs to come out, and they need to add mono. I've never been more frustrated with a programming language before I found Godot script,…

> Why not use Python, why, why not use? I don't know, haxe.

Neither Python nor Haxe (presumably) have built-in types for vectors, quaternions, and matrices. Quite nice convenience features. Though I'd rather write in a lot of other languages than GDscript.

Re: Godot 4.0 development enters feature freeze ahead of the first beta

#99
post #88

Earlier quoted context omitted.

> So you have never used GDScript but feel qualified to have a strong opinion on that matter, why is that? I have, which makes me feel confident in stating that it's a language that didn't have to exist, doesn't have a healthy ecosystem backing it, which pulls focus from the actual good (or to be good) bits of Godot, which there are a lot of, and in the end makes people doubt that the language they would actually be…

> I have, which makes me feel confident in stating that it's a language that didn't have to exist If you have, you should be aware of the history of the project and then I am perplexed why you would make this claim. They tried using multiple different languages until finally settled for developing GDScript. It is not a decision they just made willy-nilly but something they decided after using different languages did…

> They tried using multiple different languages until finally settled for developing GDScript. It is not a decision they just made willy-nilly but something they decided after using different languages did not work out as they hoped it would.

This is a fair point and it was probably a good fit for their own needs, but I think that the person you're responding to seems to suggest that GDScript and the entire idea behind it basically suffers from NIH - Not Invented Here. So while it may seem like a good idea to them and even many other people out there, they are missing out on a large amount of great tooling (IDEs like Rider or even Visual Studio), lots of development tooling (which they have to write themselves), code style checks, static code analysis tools (I don't think GDScript is supported by SonarQube or has an equivalent to gofmt), as well as a lot of knowledge about design patterns and possibilities of the type systems, which will sometimes feel odd, like Godot's approach to Singletons: https://docs.godotengine.org/en/stable/tutorials/scripting/s...

That's not to say that this will matter for most people - it's likely that for most users it's perfectly sufficient to have a quick and simple language that can have its scripts be edited right there in the editor and is reasonably easy to learn, which is where GDScript shines. Plus, no compile times are really great as well, at least for smaller projects (anyone who has tried compiling large codebases will know how annoying iteration can be in them).

But when you want to hire developers in the industry and take advantage of the existing C#/C++ knowledge, then using either of those and building the whole engine/documentation around them is probably the better choice. If you don't, your efforts might be split a bit thin, e.g. how C# documentation might not be as fleshed out in comparison (a bit like Boo used to be in Unity, which was deprecated eventually), or how C++ might be way lower level (which Unreal Engine also suffers from, because of which they offer their Blueprints system).

> What ecosystem? The ecosystem is Godot and GDScript is an integral part of it.

With time, Godot will probably have lots of possibilities around game development related topics, albeit in a focused manner - there was a terrain plugin written in GDScript, some efforts to get dynamic rendering scales up and running, probably some game logic related stuff and libraries for working with splines and whatnot. That said, many of these will feel a bit barebones and underdeveloped, because Godot doesn't have a large (or any) paid assets scene, which in turn means that the majority of packages will be volunteer efforts, for example: https://godotengine.org/asset-library/asset/231

That said, GDScript absolutely does not have a large ecosystem around general purpose computing tasks. Suppose I want a file server embedded in my multiplayer game, to allow users to fetch asset packages dynamically, like Half Life community server maps, which might turn out a bit difficult with GDScript. Similarly, if I want a WebSocket connection to subscribe my game to announcements from a central server, that might be difficult to get working. Similarly, if I want gRPC calls or to consume messages from RabbitMQ, there might also be no support from that. Talking among multiple other peer servers with PKIX or JWT? Probably not too easy to do. OAuth2 flows or something like OIDC? Connecting to a database from a server, to fetch player profiles? Nope, still need an additional separate API app that will talk through a RESTful API that GDScript might allow me to consume - even when I know that I will only be running the servers myself and don't need to think about the n-tier architecture. Of course, I think there were attempts at getting SQLite support working, which was pretty cool!

Of course, most of what's mentioned are just ideas around larger projects that might need some sort of a networking implementation, but the same might apply to image processing, audio processing, parsing data formats etc. That's not to say that Godot won't get around to at least some of those eventually, but in the case of C# and .NET/Mono in general, it might just mean pulling a NuGet package and reusing some of your old code from Unity/Stride projects (at least the non game engine specific parts).

That's not relevant for like 98% of the games out there like single player platformers, shooters etc., but you'd be surprised about how many cool ideas people have around general purpose computing in games!

> If you had proper experience with Godot you would know that GDScript is very well liked in the community and people are actually very critical about C# integration, seeing it as more of a distraction and waste of resources.

This is definitely a pain point and an issue that will cause division - since most game engines won't fare too well supporting multiple languages, especially if already spread thin without the support of a million/billion dollar org behind it all.

That said, you can hire C# developers and C# game developers, with experience in other engines. In that regard, GDScript might be a tough sell. The current community doesn't care much about that, or the things I've mentioned before, because they're largely hobbyists who generally develop games due to their own passion, instead of what a Gantt chart says. Thus, there might be a bit of a self-selection going on.

Either way, here's hoping that Godot will have a bright future ahead of it, currently still considering using it over Unity due to its open nature, albeit primarily using C# with engine agnostic code libraries. I do hope that C# support doesn't fizzle out, because personally I find it to be a pretty great language with a nice ecosystem around it.

Re: Godot 4.0 development enters feature freeze ahead of the first beta

#100
post #28

Earlier quoted context omitted.

Except that we have releases of Adobe and Unity and things multiple times a year. Creatives value consistency but they also value ease of use. Improvements to UX and workflow should be allowed to break the mold of "don't touch it if it works". What they don't do is dictate the release cycle. Many patches end up in committee to be pooled together (or paywalled) into a vX.N.0 patch released when the business decides to…

Everyplace I've worked that's used Unity has locked into a version at the start, and only upgraded (other than minor versions/bug fixes) between projects. New projects today would use last years version. Adobe is less an issue because the new version of Photoshop isn't going to break your PSD.

> Everyplace I've worked that's used Unity has locked into a version at the start, and only upgraded (other than minor versions/bug fixes) between projects.

Having used Unity for a few years, this feels like the only sane approach. It might sometimes be possible to update a project or even follow the best practices with package updates, but in practice there's just too much brittle stuff that breaks (e.g. all of the materials in a project breaking and becoming invisible or other weird things, like scripts suddenly throwing plenty of runtime exceptions).

Just pin to whatever the latest LTS version is and then conservatively update packages as necessary.

Thankfully most games aren't too integrated with network solutions and don't have to worry about security related topics, like how a typical .NET or Spring Boot webapp would have to.

Post reply on HN