Miguel de Icaza: Swift Godot: Fixing the Multi-million dollar mistake #GodotCon2023
Godot Engine6 HN recommenders · recommended in 7 months, 2023-2026
27K views · 3 years ago · talk · evergreen
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.
22:51GopherCon 2015: Go GC: Solving the Latency Problem - Rick Hudson
Gopher Academy
22K views • 11 years ago
1:39:25CppCon 2016: Herb Sutter “Leak-Freedom in C++... By Default.”
CppCon
149K views • 10 years ago
39:03RustConf 2020 - Closing Keynote by Siân Griffin
Rust Programming Language
10K views • 6 years ago
1:55:24Ideas about a new programming language for games.
Jonathan Blow
530K views • 12 years ago
1:01:51Rant: Entity systems and the Rust borrow checker ... or something.
Jonathan Blow
304K views • 8 years ago
51:27Google I/O 2012 - Go Concurrency Patterns
Google for Developers
894K views • 14 years ago
1:29:27The Forgotten Art of Structured Programming - Kevlin Henney [C++ on Sea 2019]
cpponsea
245K views • 7 years ago
1:04:26CppCon 2018: G. Nishanov “Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)”
CppCon
40K views • 8 years ago
9:30Jonathan Blow on scripting languages
Jeru Sanders
185K views • 7 years ago
12:31OSCON 2010: Rob Pike, "Public Static Void"
O'Reilly
119K views • 16 years ago
1:02:49Reboot Develop 2017 - Jonathan Blow, Thekla Inc. / Making Game Programming Less Terrible
Reboot Develop
112K views • 9 years ago
1:00:40Dmitry Vyukov — Go scheduler: Implementing language with lightweight concurrency
Hydra
47K views • 7 years ago
1:22:21Introducing a Memory-Safe Successor Language in Large C++ Code Bases - John McCall - CppNow 2023
CppNow
18K views • 3 years ago
1:00:29Google I/O 2012 - Meet the Go Team
Google for Developers
108K views • 14 years ago
23:12dotGo 2015 - Rob Pike - Simplicity is Complicated
dotconferences
172K views • 10 years ago
1:15:46CppCon 2017: Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”
CppCon
178K views • 9 years ago
26:56The Implementation of Rewind in Braid
GDC Festival of Gaming
141K views • 9 years ago
58:24#Gamelab2018 - Jon Blow's Design decisions on creating Jai a new language for game programmers
Gamelab Conference
210K views • 8 years ago
24:32How We Solved the Worst Minigame in Zelda's History
Linkus7
1.1M views • 6 years ago
1:07:35CppCon 2015: Andrei Alexandrescu “Declarative Control Flow"
CppCon
102K views • 11 years ago
12 comments from Hacker News
Ah it's from 2023, Miguel de Icaza : Swift Godot: Fixing the Multi-million dollar mistake: ▶ this video Highly recommend.
Miguels work on Swift for Godot is really inspiring. Highly recommend this video for anyone looking for more context: ▶ 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
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.
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)
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
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
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
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
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