La escena del desarrollo de videojuegos y aplicaciones web recibió una emocionante noticia durante GodotCon Boston 2025. Adam Scott, líder del equipo web de Godot Engine, sorprendió a los asistentes con la presentación de un prototipo innovador que implementa el soporte para C# y .NET en la plataforma web de Godot. Esta revelación, largamente esperada y considerada por muchos como un desafío casi imposible, marca un avance significativo en la evolución de la tecnología de desarrollo multiplataforma y abre un abanico de nuevas posibilidades para desarrolladores alrededor del mundo. Godot Engine se ha consolidado en los últimos años como uno de los motores de desarrollo de juegos más versátiles y accesibles, conocido principalmente por su sistema de scripting GDScript y su enfoque en la comunidad.
La integración de C#, un lenguaje de programación popular y robusto utilizado extensamente en la industria, representa un salto cualitativo que facilitará la creación de proyectos más complejos y la adopción del motor por parte de desarrolladores acostumbrados a herramientas basadas en .NET. El desafío principal para el equipo fue lograr que el ecosistema .NET, diseñado originalmente para entornos más tradicionales y no para el navegador, funcione de manera eficiente en el contexto web mediante WebAssembly (WASM). Durante la conferencia, Adam Scott explicó los múltiples intentos realizados para lograr esta hazaña, incluyendo pruebas con dotnet.
js y NativeAOT-LLVM. Ambas alternativas no ofrecieron resultados satisfactorios en términos de rendimiento y compatibilidad, lo cual alimentaba la impresión de que llevar C# a la web con Godot era un objetivo inalcanzable. Finalmente, la estrategia decisiva fue el enlace estático del runtime Mono, la implementación de código abierto de .NET, directamente en los templates web de Godot. Este enfoque, aunque inicialmente frágil y sujeto a limitaciones, permitió la ejecución de código C# en navegadores mediante WASM, marcando un hito importante para la comunidad.
Raul Santos, líder del equipo .NET, fue la mente tras este avance, superando los obstáculos técnicos para que el prototipo funcione. Uno de los retos técnicos que enfrentaron fue la recuperación de punteros a funciones, necesaria para la interacción entre el entorno Mono y el motor Godot. La solución involucró la creación de métodos dummy en C# que aseguraron que dichas funciones estuvieran presentes en la tabla de métodos generada durante la compilación, permitiendo su referenciación durante la ejecución en el navegador. Aunque esta solución no es definitiva, permitió avanzar significativamente en la prueba de concepto.
Otro aspecto crucial resaltado fue la diferencia en la gestión de las llamadas JavaScript exportadas por Mono. En una aplicación web tradicional de .NET, dotnet.js se encarga de cargar estas funciones y proveer las implementaciones necesarias, pero Godot emplea su propio sistema para el manejo de archivos y recursos web. Como resultado, las funciones exportadas permanecen como placeholders sin funcionalidad, lo que afecta a algunas APIs .
NET que dependen de ellas, como aquellas relacionadas con la criptografía y otras operaciones vinculadas al navegador. A pesar de estas limitaciones, el prototipo demostró que es posible ejecutar proyectos C# en un contexto web con Godot, incluso abriendo la puerta para futuras optimizaciones y mejoras. La propuesta añade una nueva dimensión al desarrollo con Godot, ya que permitirá a los creadores aprovechar las capacidades avanzadas de .NET manteniendo la flexibilidad y el rendimiento de WebAssembly. Un tema recurrente en la presentación fue el tamaño del archivo .
pck generado al incluir los ensamblados .dll necesarios para ejecutar C#. Actualmente, el tamaño de los archivos se considera elevado, alcanzando hasta 72 MiB sin comprimir, algo poco ideal para la experiencia web donde la velocidad de descarga y la optimización del tráfico son fundamentales. Sin embargo, gracias a técnicas de compresión como Brotli, el tamaño puede reducirse significativamente, alcanzando alrededor de 23.8 MiB, un paso alentador hacia la optimización.
Para abordar esta problemática, Adam Scott también reveló el desarrollo de una propuesta para compresión integrada, la cual permitirá comprimir archivos de plantilla y exportados durante la compilación del motor. Esta mejora ofrecerá opciones para que, durante la exportación, los archivos se compriman automáticamente, reduciendo el tamaño de los recursos entregados al usuario y mejorando los tiempos de carga. Además, se implementará un sistema de pre-carga que detecte si el servidor web soporta estos archivos comprimidos y en caso contrario, brinde un mecanismo de fallback para garantizar la compatibilidad. La integración de C#/.NET en la plataforma web de Godot junto con la optimización de recursos promete transformar la forma en la que los desarrolladores crean y distribuyen aplicaciones web y juegos interactivos.
Muchos profesionales del ámbito ya han destacado el potencial de estas novedades para llevar proyectos de alta calidad y complejidad a navegadores con facilidad. Aunque el PR para añadir soporte web .NET aún está en fase preliminar y requiere más trabajo, pruebas y refinamientos, la comunidad puede esperanzarse en que esta función llegará en futuras actualizaciones oficiales de Godot Engine. El entusiasmo es palpable entre los colaboradores, ya que esta funcionalidad ampliará el alcance del motor y su ecosistema. Los beneficios de contar con C# en la plataforma web no se limitan solo a facilitar la integración con proyectos existentes en este lenguaje.
También se extienden a una mayor interoperabilidad con librerías y herramientas del ecosistema .NET, lo que puede acelerar el desarrollo, aumentar las posibilidades creativas y promover un flujo de trabajo más fluido entre diversas plataformas. La capacidad de ejecutar código C# en navegadores con el respaldo de Godot cambiará la dinámica del desarrollo web, especialmente cuando se considera la popularidad creciente de WebAssembly como estándar para aplicaciones de alto rendimiento dentro del navegador. Las ventajas incluyen mejor rendimiento que JavaScript en ciertos escenarios, menor consumo de recursos y la posibilidad de portar aplicaciones existentes con menor esfuerzo. En paralelo, la propuesta también impulsa la creación de un entorno más cohesivo para proyectos multiplataforma, donde las mismas bases de código C# pueden ser exportadas tanto a escritorio, móvil, consola y ahora también a la web con Godot.
Esta convergencia será una ventaja competitiva para desarrolladores e instituciones que buscan ahorrar tiempo y recursos manteniendo un solo código fuente. El enfoque actual para el soporte .NET en web representa una base sobre la cual se construirán nuevas mejoras en el futuro. Se esperan avances en la integración de características como el manejo de la globalización, el soporte de threading y la interoperabilidad con los distintos modelos de excepción que usa el motor y Mono. Cada una de estas áreas contribuirá a una experiencia más robusta y estable en el desarrollo profesional.
La comunidad de usuarios y desarrolladores de Godot juega un rol crucial en este proceso. La disponibilidad del código fuente en GitHub, el seguimiento activo de pull requests y la participación en foros y discusiones técnicas aseguran que los aportes y correcciones de bugs llegarán con rapidez y en estrecha colaboración con los creadores originales. Este movimiento hacia un soporte efectivo de C# en la web a través de Godot también podría atraer a nuevos usuarios que provenían de otras plataformas, gracias a la familiaridad con .NET y a la experiencia que ya poseen con ese ecosistema. En definitiva, es un paso que fortalecerá la posición de Godot como una plataforma viable y competitiva para proyectos web avanzados.
Finalmente, la tecnología web está en constante evolución y la comunidad de Godot parece decidida a mantenerse a la vanguardia, ajustando sus herramientas para aprovechar las últimas innovaciones y estándares. El prototipo .NET presentado en GodotCon Boston no es solo el inicio de una nueva etapa, sino también un reflejo del compromiso con la innovación, la apertura y la mejora continua. A medida que continúe el desarrollo y se implementen las optimizaciones necesarias, es muy probable que podamos ver en poco tiempo proyectos complejos creados en C# corriendo fluidamente en navegadores a través de Godot. Esto permitirá que más creativos y desarrolladores puedan llevar sus ideas a la web sin sacrificar potencia ni flexibilidad.
En conclusión, la presentación del prototipo .NET para la web en Godot Engine es un avance histórico que evidencia el empeño y talento de su comunidad. El futuro del desarrollo web con Godot se muestra más prometedor que nunca, con herramientas capaces de aprovechar la potencia de C# y la eficiencia de WebAssembly para ofrecer experiencias digitales excepcionales y accesibles desde cualquier dispositivo con un navegador moderno.