this post was submitted on 28 Sep 2023
43 points (97.8% liked)

Godot

6020 readers
34 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

!roguelikedev@programming.dev

Credits

founded 2 years ago
MODERATORS
top 39 comments
sorted by: hot top controversial new old
[–] spark947@lemm.ee 3 points 1 year ago (1 children)

I'm going to say it (and eat the downvotes): Unity devs have become entitled, and kinda deserve the new Unity pricing structure.

Supporting more and more devices and functionality of c# on weirder and weirder runtimes. It is a mountain of dev work that Unity is paying for and subsidizing for your game. If there was an open source effort to make a unified c# runtime across all platforms that would be one thing, but it will always be front run by new features releasing to .NET so it will never exist.

Changing an existing agreement for pricing without any warning is gross. But something had to give eventually. I would have told you that 10 years ago.

[–] Lmaydev@programming.dev 3 points 1 year ago* (last edited 1 year ago) (1 children)

.net 7+ is an open source unified runtime.

Unity just needed to move to .net (previously .net core) to save a tonne of work.

[–] spark947@lemm.ee 2 points 1 year ago

From unity's perspective it is a bunch of wasted work. Thats the issue - they threw a billion dollars at developing their proprietary c# runtime and not recouping the cost of investment. But they can't wait around for Microsoft to make moves. And they probably don't want to open source their runtime either out of fear that a free game engine using it will make the rounds.

Godot ultimately has the right approach: offer support through universal bindings to it's underlying archetype and let devs decide what they want in their game's stack. Everyone wins.

[–] Smorty@lemmy.blahaj.zone 1 points 1 year ago (3 children)

Why are we using C# I stead of C++ for the in editor language again? Inst C++ more compatible with everything? (I know that GDMatice exists, buts that's a lot more work to use I feel)

[–] kevin3kon@mastodon.social 2 points 1 year ago (1 children)

@Smorty @mac I have been wondering this non-stop since I found out #godot uses C#!

I know the idea that C++ is the end-all-be-all is an oversimplification at best, but It's still a decision I'd like to know more about.

[–] Smorty@lemmy.blahaj.zone 1 points 1 year ago (1 children)

Godot is mostly written in C++, so it's such a weird decision to switch languages like that, and expose C# instead of C++ as a game logic programming language. I suppose it was done so that Unity devs would find it more attractive. Unreal uses C++, so yeah, why?

Also brand bad, so no C# for me, only GDScript and C++ GDNative.

[–] jack@monero.town 2 points 1 year ago* (last edited 1 year ago)

I think Microsoft made a big donation to Godot so they implement C#

[–] mac@programming.dev 1 points 1 year ago (1 children)

The main language is GDScript rather than either of them (although the engine itself is coded in C++). C# support was added on since microsoft gave them money to do it

[–] kevin3kon@mastodon.social 2 points 1 year ago (1 children)

@mac @Smorty 😨 Well that's not good! Microsquish (still) can't be trusted! 😰

[–] Smorty@lemmy.blahaj.zone 2 points 1 year ago (1 children)

Yeah. Embrace freedom and Foss. Reject Microsoft and C#. Debian User here.

[–] Lmaydev@programming.dev 0 points 1 year ago (1 children)
[–] spark947@lemm.ee 3 points 1 year ago

It is in a technicality But the reality is, it will always move at the pace and at the whims microsoft wants it to.

Thats not necessarily a bad thing honestly. But you can really get i to trouble making it a core dependency for something like a game engine. Unity's users didn't care that Microsoft hadn't posted the runtime to iOS, they expected their games to run on iOS. So Unity did a bunch of dev work that is now kind of a bad investment with .NET 8. This is the core of why they wanted to charge an install fee in the first place.

[–] spark947@lemm.ee 1 points 1 year ago

I get the idea of having flexible options for game devs. Support for systems language for engine internals (C++), hooks for a runtime machien based language (C#), and support for a dynamic scripting language (GDScript) makes sense architecturally. C# is also strategic because XNA to Unity has pretty much cemented its status for game devs. And then GDExtension to provide an api layer for whatever other language under the sun you want to use. It is a very sensible place for Godot to be in.

[–] proton_lynx@lemmy.world -4 points 1 year ago (3 children)

What I don't like about C# has nothing to do with the language itself, which is pretty good. Is the fact that is made by Microsoft and their tooling SUCKS. I'm having to build .NET projects at work and the dotnet CLI is pure garbage. I wish we had something better instead of using C# but the gamedev industry is pretty invested on it.

[–] lordxakio@lemmy.world 8 points 1 year ago* (last edited 1 year ago) (1 children)

Hi. I am not a game dev, but a c# one. What is it that frustrates you about the dotnet CLI?

Edit: I use C# for work, not a Microsoft employee who works on c# dev lol

[–] proton_lynx@lemmy.world 1 points 1 year ago (2 children)

Documentation is the worst offender. I remember one time that running dotnet restore and later running another command with --no-restore flag wouldn't work, but running the last command without the --no-restore flag would. Creating a sane CI/CD pipeline for C# apps is a PITA.

[–] Lucky@programming.dev 7 points 1 year ago

I've never had an issue with the dotnet CLI, including the commands you're talking about. Their documentation is a bit scattered at times but for the most part they have examples on everything and walk through most scenarios.

I'm not a Microsoft employee either, just a c# dev of 10 years.

[–] Lmaydev@programming.dev 0 points 1 year ago* (last edited 1 year ago) (1 children)

I do a lot of work with c# CI/CD and doing what you said absolutely does work.

Most of my scripts are

dotnet restore
dotnet build --no-restore
dotnet test --no-build
dotnet publish --no-build
[–] proton_lynx@lemmy.world 1 points 1 year ago (1 children)

It works, until it doesn't

[–] Lmaydev@programming.dev -1 points 1 year ago* (last edited 1 year ago)

Like everything. They likely got their configurations wrong.

[–] spark947@lemm.ee 3 points 1 year ago (1 children)

This is the major problem with c#. Godot project should target support of .net and mono runtime and THAT'S IT. If you want C# to run on iOS, Microsoft and Apple have to fix it. Let's not spend 1 billion dollars a year making sure whatever random iOS runtime is supported like unity did. That is the root cause of why they would like to charge I stall fees in the first place.

[–] Lmaydev@programming.dev 1 points 1 year ago* (last edited 1 year ago) (1 children)

.net (formally .net core) runs on all major OSs.

Mono and .net framework are super out of date and shouldn't be used anymore.

[–] spark947@lemm.ee 2 points 1 year ago

Well whatever - going down the proprietary imementation route for c# the way unity did is a no go for Godot imo.

[–] bunnyfc@kbin.social 2 points 1 year ago

Also, the dependency management, idk why but I can just shit each time I'm confronted with different .NET versions.