Yeah I think Unity just doesn't have the technical skillset anymore to make the migration to coreclr. It keeps getting delayed and their tech leads keep dropping out.
Might I suggest https://github.com/stride3d/stride, which is already on .net 10 and doesn't have any cross-boundary overhead like Unity.
Maybe they are making progress. But given that they first started talking about this in 2018, and then in 2022 they announced that they were planning to release a version with CoreCLR in 2023, and then in 2024 they said it would be in beta in 2025, and now in 2025 they're planning to release it as a technical preview in 2026, but they're still talking about an "internal proof-of-concept" as though it's something coming in the future...
As an outsider, it certainly seems like there's reason for skepticism.
I've seen similar things from the inside in other companies. Even existential threats (like lack of Apple Silicon support for performance-critical software), getting heavily delayed because the feature treadmill won't stop and the actually important thing is a pet project of some engineer. It is basically death by a thousand papercuts, where nobody can say what the focus is.
People complain about web development but working with native apps can be depressing sometimes.
Well they made some business decisions in the middle of that timeline that cut their funds quite a bit, not to mention probably scared off some good talent.
Not just probably scared off some good talent, they had xoofx leave over disagreements with higher management. xoofx was one of their most senior devs, the guy who started the CoreCLR migration and was leading it.
They'll get there eventually, but the current roadmap says experimental CoreCLR in late 2026, which then in the best case means production ready in 2027. Unity isn't going anywhere, but at least as a dev who doesn't care about mobile (which is Unity's real market), competing engines have gotten much more attractive in the last couple years and that seems set to continue.
The funny thing about his resignation is that xoofx had a CoreCLR prototype already working around 2016-ish, but the company had "other priorities" and only took it seriously until recently.
The guy should just have been left alone and shielded from company bullshit to do the migration, or empowered to fight.
I know this is one sided but: Whoever from high-management lost this guy is an absolute loser waste of space who didn't do his job and will blame xoofx for “not fighting harder” or some other bullshit. Fuck companies, and fuck loser managers.
I think 2016 is a bit too early but yeah, xoofx first wrote about CoreCLR in 2018 and said he'd made considerable progress with something like himself and two other engineers doing it as a side project. That is four years before Unity as a company announced the migration as a priority, which in turn is another four years before the current estimate for when they may ship it.
From my perspective, Unity seems very poorly managed in recent years. The editor experience isn't improving while they continue the usual pattern of shipping features in a poor state where they need another couple versions to become properly usable, and of course they make terrible decisions like the runtime fee, a total insanity that caused a huge loss of trust and boosted Godot development enormously.
Of course my perspective is biased by me not being Unity's main target market. I work on PC strategy games, which are on Steam. At our studio, we don't do mobile, advanced graphics features aren't very relevant, and we may have the most complex UI that ever shipped in a Unity game.
Godot is the only real open source competitor, their C# support is spotty. If I can't build to Web it's useless for game jams as no one should be downloading and running random binaries.
A real sandbox solution with actual GPU support is needed.
Writing C# in godot is a bad choice. Use GDScript and directly write c++ as a module. Skip "HD extension" completely. Godots build system is easy enough to use. Just add new classes to the engine using c++ if you don't want to use GDScript. The GDScript workflow is honestly great. Using C# is like the worst of all worlds.
GDScript is not very maintainable as the code base grows. It lacks proper refactoring tools (e.g. the ones from Jetbrains Rider), static type checking, flexible object system and many 3rd party libraries which might be needed
You likely won't need to do manual memory management nor think about undefined behavior. If your writing basic c++ to handle the simulation in a game, it's going to be pretty orthodox and these problems likely won't manifest.
The purpose of recommending c++ here is:
If GDScript is too slow, reach directly for C++.
I'm specifically recommending GDScript over C# for ease of use and c++ over C# for performance.
That's just the start. The C++ build system and package managers are the stuff if nightmares. Modern languages are significantly easier to use.
Don't get me wrong, if you offer a job with a 200k base salary and give me 6 months to learn C++ I'll do it. But I won't enjoy it, and I definitely won't do it as a hobby.
If you use an existing template (and are willing to use scons) GDExtension doesn't really have the standard build problems of rigging everything up with CMake/etc in my experience. The template is set up to handle the "set up the build" problem for you. Still have the header problem though cannot deny that one.
I write mostly backend stuff for a living, big chunk of it in Node/TS but also C# with modern .NET. I also have to dabble with Unity and Unreal both for work and a hobby project. I technically learned C++ in uni but really, I hate every single second I have to spend doing Unreal Engine work. I genuinely despise how obsolete and hard to write C++ is compared to modern languages. It didn't bother me in university because that was all I knew at the time but it's hard to justify existence of header files today. Add macros everywhere, really bad compilation errors, really hard to read syntax with a lot of unnecessary bloat and you get something that is just not likable. I'm sure you can get used to it given enough time spent in that ecosystem, but I can tell you as someone writing 4 different languages on day to day basis, C++ is difficult, and it's not because of pointers.
You only dabble in the c++ for the sliver of the project that needs it. 90% of game development is animating stuff and user interface development. GDScript is great for that.
I can tolerate Java. I've worked a Java dev role recently.
I think it's overly verbose and probably has a lot of unneeded legacy stuff, but in terms of making money so I can afford donuts, it's not bad.
My personal favorite language is probably Dart, but it's basically useless outside of Flutter and I don't have faith in Google to keep Flutter going.
I don't like low level programming. My dream language is literally an LLM that processes a markdown document where I sorta just describe what I want to happen. With options to call defined functions in a normal programing language
If I had money ( VC money) I'd be working on this.
"not having a JIT" is not a problem, it's you speculating that a JIT will improve performance, the real problem is "GDScript has poor performance", which in this context (me saying C# in godot sucks) is you speculating that C#'s performance is better than GDScripts. Do you have any data to back that claim up? Like real world data from a real product? Or are you just speculating with vibes?
If performance is a concern, skip C# and go straight to c++. Now your ripping at max speed with the smallest binary! That's my whole point. GDScript + c++ is my point. Ditch C# it's not worth the squeeze.
Are there technical reasons to prefer GDScript over C#?
GDScript is undoubtedly better integrated in the engine, but I would have expected C# compare more favorably in larger projects than the game jam sized projects I have made.
I don't see how this article could possibly support the argument that C# is slower than GDScript
It compares several C# implementations of raycasts, never directly compares with GDScript, blames the C# performance on GDScript compatibility and has an strike-out'ed section advocating dropping of GDScript to improve C# performance!
Meanwhile, Godot's official documentation[1] actually does explicitly compare C# and GDScript, unlike the the article which just blames GDScript for C#'s numbers, claiming that C# wins in raw compute while having higher overhead calling into the engine
My post could have been a bit longer. It seems to have been misunderstood.
I use GDScript because it’s currently the best supported language in Godot. Most of the ecosystem is GDScript. C# feels a bit bolted-on. (See: binding overhead) If the situation were reversed, I’d be using C#. That’s one technical reason to prefer GDScript. But you’re free to choose C# for any number of reasons, I’m just trying to answer the question.
At least in my case, I got curious about the strength of /u/dustbunny's denouncement of Godot+C#.
I would have have put it as a matter of preference/right tool with GDScripts tighter engine integration contrasted with C#'s stronger tooling and available ecosystem.
But with how it was phrased, it didn't sound like expressing a preference for GDScript+C++ over C# or C#++, it sounded like C# had some fatal flaw. And that of course makes me curious. Was it a slightly awkward phrasing, or does C# Godot have some serious footgun I'm unaware of?
Makes sense! I think dustbunny said it best: C# is “not worth the squeeze” specifically in Godot, and specifically if you’re going for performance. But maybe that’ll change soon, who knows. The engine is still improving at a good clip.
I think WebAssembly could become that sandboxed solution. .NET Blazor WASM is moving away from mono to CoreCLR (just like Unity, with an early preview in late 2026). WASM now has really good SIMD support, native GC, large memory support, and with WebGPU we could finally see some native WASM games running at native speeds.
It's still not JS-level/JS-compatible GC (yet?) and it is still quite low level (more about corralling buffers of bytes than objects, a bit closer to OS-level page management than JS or C# level GC), as it is intended to be lower level than most languages need so that different languages can build different things with it. It is also a tiny stepping stone to better memory sharing with JS APIs (and the eventual goal of WASM "direct DOM"), but still not quite finished on that front as more steps remain.
I've seen this issue before, they're making progress but theirs no firm release date.
Plus you then have to extensive testing to see what works in Web builds and what doesn't. I REALLY enjoy vibe coding in Godot, but it's still behind Unity in a lot of ways.
I'll add that C# have better performances than gdscript. It doesn't make a difference for most of the things you code in a game, but it comes in handy when needed.
For mathy stuff, 100% c# is going to be better. But if you need to round trip to the engine a lot getting stuff in and out of the dotnet heap can actually hurt performance. You also have to be _really_ careful because there are a lot of cases you generate accidental garbage (biggest one is when you use strings that are getting implicitly converted to StringNames every time you run a function, you can avoid this by pre-generating them as consts but I've run into a fair few people who never ran dotmemory or the like to see the issues).
Yes, it tooks me 2 years to see how much garbage strings conversion to String Names generates and how a fool I was calling something like Input.IsActionPressed("move_right") every frame (sadly it's the example given in the input documentation).
Yup. I remember running dotmemory on a whim and being confused by all the stringnames until I noticed what was in them. They really should put that in the docs to just make a const stringname somewhere. I use a global static class for anything I want in multiple files. But I also tend to just use statics instead of autoloads if I'm doing everything in c#.
> Yeah I think Unity just doesn't have the technical skillset anymore
It's not a technical skillset issue, it's a case of lacking resources, leadership changing priorities and changing requirements mid-development, causing a lot of work to be redone.
We still have highly skilled developers working in this area, if we can just actually be allowed to do (and keep) we work we have.
Imagine you have to communicate that rewrite and drop of support for bought "addons" to the people who went on that shopping spree. Who then would have to explain the "wecan"-value drop + cost of recovery of the same abilities to the shareholders and customers. The magpiesnest of bought companies tech is a tarbaby for any tech lead, the rewrite a career ender for the CEOs office.
its incredibly stupid to believe general intelligence is just a series of computations that can be done by a computer. The stemlords on the west coast need to take philosophy classes.
I don't think it's stupid to believe that the brain is somehow beyond turing computable considering how easy it is to create a system exactly as capable as a turing machine. I also don't think that anything in philosophy can provide empirical evidence that the brain is categorically special as opposed to emergently special. The sum total of the epistemology I've studied boiled down to people saying "I think human consciousness / the brain works like this" with varying degrees of complexity.
Who are these nazis you're talking about? People posting a mod that removes a trigger warning from a remake of a 20 year old game[1]? Some pretty weak-sauce nazis.
Don't forget the ultimate crime against humanity: changing a remade RPG's "body type 1" and "body type 2" character creation options back to "male" and "female" as they were in the original game.
Yes! Thank you! This is actually the perfect example, because that mod wasn't removed and the author was banned after he specifically said he was making the mod for the purpose of upsetting trans people. Even better with the context that he was linking to kiwifarms, a known hotspot for online harassment.
Nothing proves with more certainty that the GP of this thread has it backwards, the removed mods were uploaded with bad intentions.
Lmao that mod is clearly targeted at the worst kind of right-wing snowflakes. People who can't even see a trigger warning without getting incensed and try to legitimize their behavior by saying it's "misinformative," but then dog whistle who they're really talking to with the Pepe frog. Nazis are, by default, weak-sauce; not being able to tolerate something this innocuous is both weak-sauce and perfectly coherent with fascism's inherent insecurity.
You can't claim law of triviality when you rot were the ones that cared enough in the first place to change it. Changing settings back to match reality and original game settings is the only sane approach here, objectively.
How is any of this "objective" at all? The whole discussion from beginning to end is very subjective, both ways, but maybe I've missed out on new usage of this word.
> Nazis are, by default, weak-sauce; not being able to tolerate something this innocuous is both weak-sauce and perfectly coherent with facism's inherent insecurity.
I read stuff like this and I can't help but marvel at the irony when we're talking about people getting mad enough at an optional mod to get it banned.
Who's mad? I am not mad that their mod exists, I think they're sad snowflakes. I'm mad that people think removing intolerance from our communities is somehow hypocritical. The paradox of tolerance tells us that a community that tolerates intolerance turns into an intolerant community. Prune out the racists, the fascists, and the bigots at every opportunity or else they will ruin your society. Those who are intolerant should not be granted tolerance.
The trap a lot of the left has fallen into is often defining genuine disagreement over their ideas as "racist", "fascist", or "bigotry". This keeps those ideas from being challenged and refined thus making them ultimately unconvincing. "Tolerance" itself is a very loose concept here that has come to mean mostly the same as "political agreement". There's also no mechanism that I can see for correcting this issue. In this frame, the bar for what constitutes "fascism" keeps getting lower such that even mainstream political positions from 10-15 years ago are being labelled as "fascist" in some circumstances.
None of this seems healthy for the future of left wing thought and is already leading to a backlash (one naturally being called "fascist").
It's not a trap the left falls into. If anything, the left is overzealous in internal tone policing, to the point where activists and organizers wish it would become less of a distraction. You have organizations and individuals of prominence in the US political sphere who are openly and actively try to promote bigoted and fascist talking points and implement them in government, often using long-debunked arguments or outright lies, and the people insisting that these ideas are not bigoted or fascist are either being duped or arguing in bad faith. I do not and will not attribute good faith to reactionary, white-supremacist, ultra-nationalist right-wing movements as we have in the US.
Correct. We only enable fast previews for SELECT statements, which is the actual hard problem. This said, at some point we're likely to also add support for previewing a CTAS before you actually run it.
Gimme a break. Compare China's centralized economy's solar/wind/nuclear production to the entirety of the west's decentralized, privatized economy. not even close.
Well it really depends on who is control of the centralized decision making. In most states in the US it's fossil fuel interests that control utilities, and much of the government. Which means a very slow transition for nearly every state, when compared to Texas' decision to allow the cheapest energy to win.
In China, the government has the goal of deploying as much energy as possible as cheaply and fast as possible, and promoting their own industries too. Which means tons and tons and tons of renewables.
China's solar and wind production is extremely decentralized, and its nuclear production is not significant, except as usual from a proliferation perspective.
While (centralized, government) industrial policy has played a key role in making its renewable energy sector so utterly dominant, the sector thus created is more decentralized and privatized than in even the US.
China's share of of electricity production from coal is at 60% as of 2023[1] compared to 16% for the US[2]. That's down from 80% in 2005.
It currently generates 35% of its electricity from renewable sources as of 2023 compared to 41% in the US.
The US has been replacing coal with gas - gas was 19% in 2005 and 42% in 2023.
China first exceeded the US's annual carbon emissions in 2006 with both outputting about 6 billion tons. Since then the US has declined to a bit under 5 billion tons in 2023 while China has doubled to a bit under 12 billion tons[3] making it by far the largest emitter in notional terms per year.
While the Western world's carbon emissions have been in decline for years (with the US still the highest ex-China), China and India's emissions continue to climb at significant rates. It's true that China is building enormous amounts of renewable energy, but that can be further generalized to China is building enormous amounts of energy production across all sources, dirty and clean.
The reason I'm skeptical of that framing is it implies coal production is being replaced by clean energy, rather than total energy production being increased.
Coal production continues to climb[1] and construction of new coal plants hit a 10 year high in 2024[2]. China accounted for 95% of the world’s new coal power construction activity in 2023[3].
Lots of countries announce decarbonization goals, but I will remain skeptical until the data show progress.
> The reason I'm skeptical of that framing is it implies coal production is being replaced by clean energy, rather than total energy production being increased.
I wasn't intending to imply that. It's entirely possible China might get to 90% renewable energy production without shutting down a single coal plant.
> Lots of countries announce decarbonization goals, but I will remain skeptical until the data show progress.
Sure, but that doesn't conflict with having more and more of your energy production being renewable.
And they don't have access to cheap natural gas so the financial incentive to switch to renewables is even stronger. Even more so given the inability of coal to flexibly produce power throughout the day, so cheaper renewables just completely kill the economic feasibility of coal.
I think you have that flexibility backwards. Coal can be ramped up relatively quickly and operates in nearly all weather conditions, but wind and solar are at the whim nature. Unless you're only talking hydropower and nuclear power which China is also building, but those like coal have significant upfront capital investments and minimum scale.
Either way, the idea that coal is economically infeasible is contradicted by the fact that China is building huge amounts of it[1]. For China energy production is an "and" question, not an "or" question.
That's exactly what coal is bad at. Anything less than a day is bad news for coal. Which means that all this coal capacity is building is going to be for rarer seasonal events, and going to be mostly sitting unused.
To manufacture products exported to the west. It's always this argument... You need to look at emissions by country of final destination of the products, not by country of manufacture. In an age where a simple t-shirt is made in Bangladesh with cotton from Afghanistan it's ridiculous to use the latter measure.
You don't think domestic manufacturers will abuse labor and pollute?
The same party that wants to move manufacturing back to the US also wants to deregulate as much as possible, roll back labor rights and repeal environmental laws. The cost of moving manufacturing out of China and to the US is that the few Americans who can get work in a mostly AI driven and automated industry will eventually get treated and paid like Chinese labor.
I think that some domestic manufacturers will abuse labor and pollute, you will never have 100% compliance. However it is far easier to police things here then somewhere without our regulatory framework. If Nike could get away with child sweatshops in the US, why did they bother moving abroad?
Sure, they want to roll back all those protections but we don't have to. And more to the point, why doesn't the US party that champions labor rights and environmental regulations want to move manufacturing back to the US? It's very easy to say you support factory worker rights when you don't have any factory workers.
>Sure, they want to roll back all those protections but we don't have to.
But we're going to. You know that's the deal.
>And more to the point, why doesn't the US party that champions labor rights and environmental regulations want to move manufacturing back to the US?
Both parties are strongly pro-business and pro-manufacturing[0], and the Democrats did campaign on reshoring just because it's a no-brainer, but they seem more focused on preserving labor rights and a living wage than do Republicans.
Democrats just recently changed their stance based on Trump's win, which is great if it helps the avg. worker.
We need to figure out how to structure our economy to benefit everyone:
>And manufacturing in particular embodies something that seems to be disappearing in today’s economy: jobs with decent pay and benefits available to workers without a college degree. The average factory worker earns more than $25 an hour before overtime; the typical retail worker makes less than $18 an hour.
It's fun to look back at these articles talking about how retail is taking off....now all the big boxes are dying, we replaced storefronts with a few warehouses.
Sure, the amount of labor going into making something has shrunk but so has the amount of labor required to sell something. Honestly, it's not just going to be just an AI driven and automated manufacturing industry. Healthcare, education and everything else seems to be falling into the same dark spiral.
> If we stopped buying shit we don't need, they could easily turn off a good portion of their coal powered electricity plants if they wanted.
If they wanted. China has a policy of overproduction, especially in raw materials like steel. While the US subsidizes consumption, China subsidizes production. It is not clear they would elect to scale back (and take the economic hit) even if Western consumers decided to voluntarily cut back (which also seems unlikely).
No, but the US needs to actually compete with China. Instead the reaction from leadership has been to utter fail to compete and lambast China as an enemy instead of a competitor.
None of this serves anyone but the ruling class and deep state. War with China is going to be one that the US loses.
In order to build renewable infrastructure, you do need to expend a lot of energy: mining, processing, transporting. China is using coal to build up that infrastructure and converting that dirty energy into clean.
No, but when talking about whether a country is emitting more than its "fair" share of GHG for any reasonable definition of "fair" per capita is what matters, unless someone can make a convincing argument that some people have some kind of natural or divine right to contribute more to GHG emissions than others.
Its not just about population. The UK was the world's foremost manufacturing nation at the time, just as China is now. It was the centre of manufacturing of an empire so the relevant comparison is with the population of the empire. There were no real alternative sources of energy - no nuclear, no solar, no wind (in a form suitable for most industry).
The British Isles were not providing food, heating, cooling, electric light, raw materials etc for the population of the British Empire.
And if you want to count the population consuming industrial goods as the population that "causes" those emissions, then China looks even better, because they are producing goods consumed by literally billions of people.
Might I suggest https://github.com/stride3d/stride, which is already on .net 10 and doesn't have any cross-boundary overhead like Unity.