Skip to content
0:00 / 0:00

#godot#swift#garbagecollection

Miguel de Icaza: Swift Godot: Fixing the Multi-million dollar mistake #GodotCon2023

Godot Engine

115K subscribers • 2 videos on Hallway

YouTube
  • Recommended by 6 people: 6 on Hacker News.
  • Presented by Miguel de Icaza, creator of Mono
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

27K views2 years ago6 recommendations

Game developmentProgramming languagesSwiftUnity, Unreal and GodotMemory management

Miguel de Icaza discusses the history of C# in game engines and explains why Swift's reference counting is a superior alternative to garbage collection.

media.ccc.de/v/godotcon2023-57866-swift-godot-fixing-the-mul… In a previous life, Miguel worked tirelessly to get Unity and other game engines to adopt .NET as a runtime to execute their game code, as it blended beauty and speed. And he dreamed that one day the pauses introduced by the garbage collector could one day be solved, but after decades this dream seems further away with each passing day. Meanwhile, a language of equal beauty and ergonomics emerged without any of these downsides. This talk will discuss both the rationale of the Swift bindings for Godot, as well as a bold proposal to integrate Swift into Godot itself. Miguel de Icaza pretalx.c3voc.de/godotcon2023/talk/W89WUZ/ #godotcon2023 #Talks

Why it's here

6 people recommend this

What people say. Recommended for its insights into the latency issues of garbage collection in game engines and the benefits of using Swift with Godot.

jlundbergon Hacker News • Recommends

On “Embedded Swift on the Raspberry Pi Pico”

Looking forward to trying this out! Another place Swift seem to be getting traction in is godot. Miguel De Icaza’s talk on the topic is highly recommended: link to this video

jlundbergon Hacker News • Recommends

On “Xogot: Godot for iPad and iPhone”

Miguels work on Swift for Godot is really inspiring. Highly recommend this video for anyone looking for more context: link to this video

zengidon Hacker News • Recommends

On “Murder is a pixel art ECS game engine in C#”

Yes and here is a really great talk from Miguel de Icaza about some of the history of adding C# to game engines, and why he's excited about using Swift in Godot because he claims that Swift's reference counting avoids the issues of GC pauses. link to this video

Decabyteson Hacker News • Recommends

On “Apple hiring compiler developers for improving Swift / C++ interoperability”

Miguel de Icaza’s video^1 Swift Godot: Fixing the Multi-million dollar mistake got me interested in Swift. It starts around 12:30 1. link to this video

rescriptingon Hacker News • Recommends

On “Swift 6”

Something like this? link > SwiftGodot can be used to either build an extension that can be added to an existing Godot project, where your code is providing services to the game engine, or it can be used as an API with SwiftGodotKit which embeds Godot as an application that is driven directly from Swift. Miguel de Icaza gave a great talk on Swift + Godot (among other things) link to this video

perennialmindon Hacker News • Recommends

On “.NET 10 Preview 6 brings JIT improvements, one-shot tool execution”

Dotnet's GC has a real latency problem. Miguel de Icaza gave a nice talk on why noticeable pauses are inevitable in a stop-the-world tracing GC, proposing Swift's reference-counting GC as the viable alternative 1. Still, there are recent developments (Satori GC) with the promise to make the worst case far more palatable (e.g. 250ms -> 5ms) 2. 1 link to this video 2 link

KolmogorovCompon Hacker News • Recommends

On “Watching Go's new garbage collector move through the heap”

Ah it's from 2023, Miguel de Icaza : Swift Godot: Fixing the Multi-million dollar mistake: link to this video Highly recommend.

syndeoon Hacker News • Mentions

On “Swift 6”

Nope; no having to pause execution and clean up. Miguel de Icaza (the creator of Mono) explicitly mentions this as one of Swift's key strengths over GC languages like C# during a talk about Swift at GodotCon 2023: link to this video

willtemperleyon Hacker News • Mentions

On “Migrating away from Rust”

Java is incredibly productive - it's fast and has the best tooling out there IMO. Unfortunately it's not a good gaming language. GC pauses aren't really acceptable (which C# also suffers from) and GPU support is limited. Miguel de Icaza probably has more experience than anyone building game engines on GC platforms and is very vocally moving toward reference counted languages 1 1 link to this video

Eric_WVGGon Hacker News • Mentions

On “Godot 4.6 Release: It's all about your flow”

Miguel de Icaza of Mono fame has a whole video on how C# was a "multi billion dollar mistake," and is working on a Swift Godot package. link to this video link (I've had some fun dabbling with Swift Godot but all of the documentation seems to be a bit out of date)

cardanomeon Hacker News • Mentions

On “Godot 4.6 Release: It's all about your flow”

You can use C#. It is well supported except for the (currently) missing web target and Microsoft is funding C# support so it will not get abandoned. You can also use other garbage collected languages. I once tried the Lua bindings and they worked fine. The problem with C# is that its garbadge collection is not really suited for game dev. The creator of the Mono runtime actually calls using C# his Multi-million dollar mistake and instead works on swift bindings for Godot: link to this video But if you really love C# nothing is stopping you. I prefer GDScript.

cardanomeon Hacker News • Mentions

On “D Programming Language”

> The fact that C# is becoming the GC language in game dev is proving my point. That is just the Unity effect. Godot adopted C# because they get paid to do so by Microsoft. C# allows for far lees control over the garbage collection compared to D. The decision to use C# is partly responsible for the bad reputation of Unity games as it causes a lot of stutters when people are not very careful about how to manage the memory. The creator of the Mono runtime actually calls using C# his Multi-million dollar mistake and instead works on swift bindings for Godot: link to this video