Die Welt des Game-Developments erlebt immer wieder bedeutende Fortschritte, doch selten trifft Innovation auf so viel Begeisterung wie bei der Vorstellung des Web .NET-Prototyps von Godot auf der GodotCon Boston 2025. Unter der Leitung von Adam Scott, dem Web-Team-Chef der Godot Engine, wurde während seiner Keynote „State of Godot and the Web“ eine Weltpremiere vorgestellt, die für viele Entwickler lange Zeit als unmöglich galt. Es geht darum, C# nahtlos im Browser auszuführen – eine Leistung, die den Weg für plattformübergreifendes Spielentwickeln mit Godot und .NET ebnen könnte.
Dieser Durchbruch wird zweifellos viele Entwickler und Fans begeistern, die auf eine Verbesserung der Web-Features von Godot gewartet haben. Der Weg zu diesem Erfolg war wahrlich kein leichter. Mehrere Ansätze scheiterten zunächst. Die Verwendung von dotnet.js, einem üblichen Web-Loader für WASM-Dateien, brachte keine Ergebnisse.
Auch der Versuch, NativeAOT-LLVM zu nutzen, blieb erfolglos. Selbst der vielversprechende Ansatz, Mono statisch zu verlinken, scheiterte anfangs. Erst eine erneute, sorgfältige Umsetzung durch den .NET-Teamleiter Raul Santos führte zu einer funktionierenden Lösung. Die zentrale Leistungsfähigkeit dieser Lösung besteht darin, dass nun C#-Code im Webbrowser ausgeführt werden kann, ohne auf zusätzliche Loader angewiesen zu sein.
Die technische Umsetzung des Prototyps verlangt jedoch genaue Übereinstimmung zwischen der C#-Projektkonfiguration und den WebAssembly-Features, die durch das Godot-Webtemplate unterstützt werden. Hierbei sind Aspekte wie der Threading-Modell, die Unterstützung von SIMD, sowie die Behandlung von Ausnahmen wichtige Eckpfeiler, die exakt aufeinander abgestimmt sein müssen. Ebenso spielt die Version des Target Frameworks der C#-Projekte eine entscheidende Rolle und muss mit der im Template verwendeten übereinstimmen. Dies erfordert von Entwicklern präzise Planung und Verständnis der zugrunde liegenden Technologie, um eine optimale Kompatibilität sicherzustellen. Ein weiterer noch nicht vollständig gelöster Punkt ist die Handhabung von Globalisierung: Aktuell wird der Prototyp lediglich im invariant mode betrieben, da keine Globalisierungsdaten geladen werden.
Für viele Entwickler ist dies jedoch kein entscheidendes Hindernis, da Godot selbst bereits leistungsstarke Funktionen zur Lokalisierung bietet und somit entsprechende Anforderungen gut abgedeckt werden können. Dennoch zeigt diese Einschränkung, dass sich die Technologie in einem frühen Stadium befindet, und noch Raum für Verbesserungen besteht. Ein besonders spannendes technisches Detail betrifft die Funktion zum Abruf von Funktionszeigern zur Laufzeit, eine Herausforderung, die man durch das Deklarieren von Stub-Methoden im C#-Projekt meisterte. Diese Maßnahmen garantieren, dass zur Laufzeit die benötigten Methoden im Mono Runtime verfügbar und abrufbar sind. Ohne diesen Workaround wäre die eigentliche Funktionalität stark eingeschränkt gewesen, da wichtige Teile der Laufzeitbibliothek sonst fehlten.
Im Gegensatz zu regulären Web-C#-Anwendungen, die häufig dotnet.js als Loader verwenden, um WebAssembly-Dateien und Support-Dateien zu verwalten, verfolgt Godot einen eigenen Weg. Die Mono-Runtime exportiert zwar JavaScript-Funktionen, die jedoch während des Build-Prozesses nur als Stubs vorliegen. In normalen dotnet-Programmen werden diese durch den dotnet.js-Loader mit echten Implementierungen ersetzt, was in Godot bisher fehlt.
Daraus resultieren Einschränkungen bei bestimmten .NET-APIs, insbesondere solchen, die auf Browser-APIs wie etwa für Kryptographie angewiesen sind. Dieses Problem ist aktuell ein wichtiger Punkt auf der To-Do-Liste der Entwickler. Ein weiteres Thema, das von vielen Entwicklern mit Interesse begleitet wird, ist die Dateigröße der Web-Projekte mit integriertem C#. Bei dem aktuellen Prototyp kommt es zu einem enormen Anstieg der .
pck-Dateigröße auf rund 72 MiB, was für Web-Anwendungen sehr groß ist. Glücklicherweise bietet die Nutzung von Brotli-Komprimierung eine deutliche Reduzierung auf ca. 23,8 MiB, was die Nutzbarkeit im Web deutlich verbessert. Dennoch ist dies kein Endzustand und es gibt bereits Pläne, durch neue Komprimierungsverfahren und Optimierungen den Umfang weiter zu reduzieren und so das Deployment im Web noch effizienter zu machen. Um dieser Herausforderung zu begegnen, hat Adam Scott auch eine neue eingebaute Precompression-Funktion vorgestellt, die bei der Kompilierung der Godot-Engine eingesetzt werden kann.
Diese Funktion ermöglicht das Komprimieren der Template-Dateien und auch der exportierten Projekte, um den Download durch Clients zu beschleunigen und Bandbreite zu sparen. Für Server, die keine Unterstützung für das Serving von vorkompilierten Dateien bieten, wird es zudem eine Fallback-Methode geben, die das Herunterladen der komprimierten Versionen sicherstellt. Diese Neuerung ist nicht nur relevant für das Web .NET-Projekt, sondern generell ein großer Schritt, um die Web-Performance von Godot-Spielen zu optimieren. Die Vision hinter dem Web .
NET-Projekt ist klar: Entwicklern soll die Möglichkeit gegeben werden, ihre mit C# geschriebenen Godot-Spiele direkt im Browser lauffähig zu machen, ohne Kompromisse bei Performance oder Funktionalität eingehen zu müssen. Die Unterstützung von WebAssembly ist hierbei der Schlüssel, denn sie erlaubt hohe Ausführungsgeschwindigkeit und eine breite Kompatibilität über verschiedene Browserplattformen hinweg. Zugleich ermöglicht die Integration von .NET eine attraktive Alternative für Entwickler, die bereits mit C# vertraut sind oder von den Vorteilen dieser Sprache und ihres Ökosystems profitieren möchten. Die Reaktionen der Community zeigen, dass dieser Schritt erkannt und gefeiert wird.
Die Godot Engine, die sich durch Offenheit und flexiblen Einsatz in unterschiedlichsten Bereichen auszeichnet, könnte durch diese Neuerung besonders in Sachen Web-Entwicklung an Bedeutung gewinnen. Die entworfene Lösung erfordert zwar noch einiges an Feinabstimmung und Stabilisierung, doch die Grundlagen sind gelegt und das Team arbeitet intensiv daran, diese Funktionalität in den nächsten Godot-Releases zu integrieren. Zukunftsweisende Ideen, wie beispielsweise die Verbesserung des Lademechanismus für Mono-Runtime-Komponenten im Web oder die Einführung weiterer Module zur Unterstützung von Browser-spezifischen APIs, stehen in der Roadmap. Die Entwickler sind sich bewusst, dass die Komplexität dieses Vorhabens groß ist, doch mit der starken Gemeinschaft und der Unterstützung der Godot Foundation ist die Wahrscheinlichkeit hoch, dass bald vollwertige C#-Webexporte möglich sein werden. Zusammenfassend lässt sich sagen, dass die GodotCon Boston 2025 mit der Präsentation des Web .
NET-Prototyps einen entscheidenden Meilenstein markierte. Noch sind einige Herausforderungen zu bewältigen, aber die Grundsteine für eine neue Ära der Web-Game-Entwicklung mit Godot und C# wurden gelegt. Entwickler können sich auf eine Zukunft freuen, in der ihre Projekte nicht nur plattformunabhängig auf Desktop und Mobilgeräten funktionieren, sondern auch in modernen Webbrowsern nahtlos und performant laufen. Die Kombination aus leistungsstarkem WebAssembly, einer bewährten Game-Engine wie Godot und den Möglichkeiten von .NET eröffnet aufregende Perspektiven.
Zudem sorgt die angekündigte integrierte Precompression für eine effizientere Lieferung der Spiele an die Nutzer. Die kontinuierliche Arbeit des Entwicklerteams verspricht, dass diese Vision schon bald Realität wird und Godot durch diese Innovationen seine Position als führende Open-Source-Engine weiter ausbauen kann. Für Interessierte empfiehlt es sich, die Entwicklungen aufmerksam zu verfolgen, denn jeder Fortschritt bringt praktische Verbesserungen für Entwickler und Endanwender. Die Veröffentlichung der Videoaufnahmen des Vortrags ist noch ausstehend, jedoch sind die Präsentationsfolien bereits verfügbar und bieten einen tiefen Einblick in die technischen Details und Hintergründe. Die Godot-Community ist eingeladen, aktiv mitzuwirken, das Projekt zu testen und Feedback zu geben.
Nur durch gemeinschaftliches Engagement können die bestehenden Probleme schneller gelöst und die Zukunft des Game-Developments im Web auf ein neues Niveau gehoben werden. Die Reise hat gerade erst begonnen, und die Entwicklergemeinschaft steht vor spannenden Zeiten voller Innovation und Herausforderungen.