Miguel de Icaza: Swift Godot: Fixing the Multi-million dollar mistake #GodotCon2023
Godot EngineRecommended by 6 HN commenters across 7 months, 2023–2026
talk · intermediate · evergreen · 2023–2026 on HN
Miguel de Icaza's GodotCon 2023 talk on Swift bindings for Godot. He argues that garbage-collector pauses in C# are a persistent problem and that Swift's reference counting avoids them.
Frequently recommended for an experienced game-engine builder's view on why GC pauses are inevitable and why Swift's approach is appealing.
Up next
9 mo on HNCppCon 2014: Mike Acton "Data-Oriented Design and C++"
CppCon
Recommended 9× on HN · 2015–2026
10 mo on HNOverwatch Gameplay Architecture and Netcode
GDC Festival of Gaming
Recommended 16× on HN · 2019–2025
9 mo on HNRustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West
Rust Programming Language
Recommended 9× on HN · 2018–2023
9 mo on HNA Deep Dive into Nanite Virtualized Geometry
SIGGRAPH Advances in Real-Time Rendering
Recommended 7× on HN · 2021–2026
9 mo on HNHow Crash Bandicoot Hacked The Original Playstation | War Stories | Ars Technica
Ars Technica
Recommended 13× on HN · 2020–2026
9 mo on HNJonathan Blow - How to program independent games - CSUA Speech
Alexandre Franco
Recommended 9× on HN · 2015–2026
9 mo on HNIdeas about a new programming language for games.
Jonathan Blow
Recommended 7× on HN · 2014–2025
7 mo on HNExploring the Tech and Design of Noita
GDC Festival of Gaming
Recommended 7× on HN · 2020–2026
8 mo on HNCasey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025
Better Software Conference
Recommended 11× on HN · 2025–2026
7 mo on HNQuakeCon 2012 - John Carmack Keynote
QuakeCon Official
Recommended 6× on HN · 2012–2018
5 mo on HNCreating a Doom-style 3D engine in C
Bisqwit
Recommended 3× on HN · 2015–2019
6 mo on HNInteractive programming Flappy Bird in ClojureScript
Bruce Hauman
Recommended 6× on HN · 2015–2020
12 comments from Hacker News
Miguels work on Swift for Godot is really inspiring. Highly recommend this video for anyone looking for more context: ▶ this video
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: ▶ this video
Ah it's from 2023, Miguel de Icaza : Swift Godot: Fixing the Multi-million dollar mistake: ▶ this video Highly recommend.
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] ▶ this video [2] link
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) ▶ this video
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. ▶ this video
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. ▶ this video
> 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: ▶ this video
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. ▶ 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)
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: ▶ this video But if you really love C# nothing is stopping you. I prefer GDScript.
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] ▶ this video
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: ▶ this video