Juegos

Una entrevista con Joshua Ashton, desarrollador de DXVK, VKD3D-Proton y más

¡Es hora de otra entrevista de GamingOnLinux! Esta vez tenemos a alguien con quien muchos seguidores de Valve y Steam Play Proton estarán familiarizados: es Joshua Ashton.

GOL: ¿Puedes presentarte primero?

«¡Hola! Soy Joshua Ashton y me gustan las ranas. 🐸 También trabajo en DXVK, VKD3D-Proton y otras cosas relacionadas con los gráficos».

GOL: ¿Cómo se metió en la programación, qué despertó su interés en empezar realmente?

«He estado programando (o probando) de alguna forma desde que tenía alrededor de 7 años. Realmente no puedo recordar todos los detalles excepto algunos tutoriales de Hello World y GDI Pong, pero sigo jugando con probar Escribir cosas.

Empecé a tomarme las cosas más en serio y a verlo como lo que quería hacer cuando estaba en la escuela secundaria escribiendo mis propios pequeños motores básicos y mods para juegos.

También me gustaba mucho la actuación (estoy más calificado en Ciencias de la Computación / Ingeniería de Software) y todavía lo hago, pero no creo que sea sostenible como profesión, así que me quedo en espectáculos locales y teatro amateur. muestra como un hobby.

A partir de entonces, la mayoría de las veces solo corto piedras para estudiar; odio leer libros o algo por el estilo.

Hice DXUP y comencé D9VK como un proyecto personal mientras estaba en la escuela secundaria (los últimos dos años en la escuela secundaria para ustedes, los estadounidenses) y desde entonces siguió adelante «.

GOL: Eres el creador de D9VK (Direct3D 9 a Vulkan), que se transfirió a DXVK (ahora Direct3D 9/10/11 a Vulkan). ¿Y ahora también ayudas con proyectos como VKD3D-Proton? ¿Puedes contarnos un poco sobre el trabajo involucrado y cómo llegaste allí originalmente?

“Hmm, esa es una larga historia.

Originalmente comencé a trabajar en DXUP para jugar Just Cause 2 en Linux y traducir D3D10 -> D3D11. Luego, mi amigo Sam pensó que sería genial intentar que Blade Symphony y Source funcionaran en Windows Phone, pero eso solo admitía D3D11, así que comencé a agregar soporte D3D9 y a trabajar con algunos juegos, creo que dejé de hacerlo funcionar en Windows. Teléfono y fue un proyecto genial para ver qué podía hacer. También fue interesante en Linux para usar con DXVK.

Luego fui a una conferencia y hablé con algunas personas sobre la posibilidad de hacer un turno D3D9 -> Vulkan y me dijeron que era «una pérdida de tiempo» y que «no podía hacerlo y debería estar trabajando en otra cosa». «.

Eso realmente me molestó, y sé que era bastante joven entonces (17), pero me sentí tratado como un niño estúpido. Así que esa noche comencé D9VK en mi habitación de hotel como un proyecto de malevolencia.

Entré completamente a ciegas, tenía muy poco conocimiento de Vulkan aparte de hacer un triángulo con un tutorial.

El backend DXVK hizo mucho trabajo duro, pero aún así tuve que compilar todos los sombreadores, estados y todos los extraños casos de borde D3D9 yo mismo.

Después de un par de semanas, ejecutó algunas demostraciones básicas y, después de un par de meses, A Hat in Time.

Desde entonces se ha integrado en DXVK y el estándar en Proton durante algún tiempo.

Me alegro de que mi mezquina arrogancia se haya convertido en algo que ayudará a la gente algún día …

En cuanto a vkd3d-proton, mi trabajo allí comenzó resolviendo el traslado a Meson y construyéndolo como un PE (un .dll en lugar de un .so) durante mi viaje. No contribuyo allí con tanta frecuencia, pero de vez en cuando haré una limpieza o dos, investigaré problemas o implementaré funciones (como VRS o punto flotante de 64 bits en DXBC, etc.).

GOL: También hiciste DXVK-Native, ¿puedes contarnos un poco al respecto?

«DXVK Native es básicamente DXVK con soporte de compilación nativo en Linux, y está disponible ahora mismo en Portal 2 y Left 4 Dead 2 para -vulkan. Todos los ismos de Windows se eliminan o reemplazan con SDL. Por ejemplo, un HWND ahora es solo a SDL_Window Es muy fácil agregar una abstracción WSI a DXVK Native, podría crear fácilmente una para GLFW o directamente para X11 o Wayland, simplemente no tenía tiempo.

Tenía la intención de hacer lanzamientos adecuados con binarios integrados en Steam Runtime y una mejor documentación para ellos, pero todavía no tiene ningún cliente más que yo.

Si alguien está interesado en ayudar con sus propios puertos nativos, comuníquese con nosotros «.

GOL: ¿Cómo es trabajar para Valve con contratos? ¿Cómo pasó esto?

“Me gusta que puedo trabajar en muchas cosas diferentes, desde DXVK y VKD3D-Proton, trabajos de especificaciones de Vulkan, RADV, los juegos del catálogo anterior y más. Tengo grandes problemas para trabajar en una cosa durante mucho tiempo. moverme me ayuda mucho.

¡Me siento muy privilegiado de poder trabajar con mucha gente excelente y hacer grandes cosas que hacen feliz a la gente! «

GOL: También eres responsable de que Vulkan acceda al Portal 2 a través de DXVK. ¿Quién se acercó a quién para que esto sucediera? ¿Qué se siente al conectar una API nueva a un motor más antiguo?

“DXVK Native había existido de alguna forma durante más de un año en este momento, pero realmente no había ninguna prueba real en ninguna parte.

La mayor parte del trabajo ha sido mantener la compatibilidad con ToGL (la capa D3D9-> GL que el juego estaba usando anteriormente) al mismo tiempo.

ToGL tiene un montón de hacks sobre hacks en D3D9, por ejemplo, para determinar si una textura es una sombra, una distorsión de profundidad, etc. o algo más que hacer en algún lugar del motor o en el código del juego.

Si el juego me fuera transferido sin ToGL, en teoría sería más fácil al final, ya que DXVK Native es completamente incorporado y simplemente funciona, ya que no se requiere ninguna de estas soluciones «.

GOL: También ayudaste con otros juegos como el próximo Portal 2: Desolation. ¿Puedes contarnos un poco sobre lo que puedes esperar y lo que implica tu trabajo allí?

«Creo que soy el programador principal para esto, junto con Josh Dowell (Slartibarty) y Sam Pavlovic. Trabajo principalmente en gráficos allí, tenemos nuestro propio DXVK nativo personalizado con una serie de interfaces avanzadas con funcionalidad adicional, tanto para el rendimiento como para así como también fidelidad visual.

Es un proyecto bastante ambicioso, creo que nuestro objetivo es alrededor de 50 años de pruebas para su lanzamiento, así como una historia muy apasionante y conmovedora. Todavía queda un largo camino por recorrer, principalmente por el tamaño, por lo que definitivamente no hay una fecha de lanzamiento específica establecida en este momento; ¡pero siempre hay progreso!

Tenemos un «catálogo de consumidores» en la tradición que también puede leer en línea: https://emberspark.games/desolation/catalog/

Para GOL también tengo algunas imágenes de adelanto de las últimas 3 capturas de pantalla de Steam que tomé 🐸: «

GOL: Para nosotros, los programadores que no somos de escritorio, todos hemos escuchado que Vulkan es mucho más difícil que OpenGL. ¿Qué tan difícil es trabajar con Vulkan?

«Bueno, es un enfoque completamente diferente para la programación de gráficos: en Vulkan, usted define explícitamente todos los diferentes bits del estado de la tubería, todos los descriptores y búferes de instrucciones que se ejecutarán (y toda la sincronización), mientras que en GL básicamente solo le dice al «OpenGL -Machine» es lo que quieres hacer. Es como la diferencia entre conducir un coche y seguir recto y girar a la derecha, montar el coche tú mismo para que vaya recto y luego gire a la izquierda.

Hay una curva muy empinada al principio, pero una vez que entiendes que la especificación es tu amiga, no tu enemiga, y superas toda la molestia de comenzar a renderizar un triángulo, las cosas se vuelven mucho más fáciles.

Dicho esto, definitivamente no es (directamente) adecuado para todos o para todos los casos de uso. Portar bases de código más antiguas para usar Vulkan directamente es una tarea ardua si desea hacerlo bien y obtener los principales beneficios de Vulkan.

Definitivamente recomendaría GL / DX11 para las personas que quieran aprender gráficos, simplemente porque es muy fácil acostumbrarse.

Realmente no soy un gran entusiasta de GL, solo creo que es un montón desordenado de «¿Cómo podemos agregar la función X a la API sin afectar la compatibilidad con versiones anteriores?». En mi opinión, las versiones GL deberían haber sido interfaces completamente diferentes, no solo el mismo diseño terrible que se extendió para siempre mucho antes de que yo naciera «.

GOL: ¿Qué opinas de tecnologías como el trazado de rayos, el DLSS de NVIDIA y el reciente anuncio de la súper resolución de AMD?

“Creo que DLSS es genial y definitivamente una maravilla técnica, pero si bien ofrece resultados realmente impresionantes, hay una parte muy dentro de mí que se siente mal por la que deberíamos confiar en él en el futuro. Creo que es una muy buena solución provisional hasta que encontremos mejores soluciones para hacer que el trazado de rayos en tiempo real sea más poderoso.

FSR es bastante bueno y tiene resultados impresionantes porque no es temporal, pero según tengo entendido no resuelve los mismos problemas que DLSS, solo se ocupa de la parte de ampliación, por lo que todavía tiene que traer su propio AA (que puede muy será temporal), lo cual no tiene que ver con DLSS «.

GOL: ¿Pensamientos sobre la plataforma Steam Steam?

«Me alegro de que finalmente esté disponible y tengo muchas ganas de tocar cosas en él: DI he querido algo como esto personalmente durante tanto tiempo. Tengo un catálogo bastante grande de pistas antiguas que quería reproducir, tal vez me den esta oportunidad de sobrevivir a esto.

¡Estoy muy orgulloso de trabajar con mucha gente excelente en la tecnología que hay detrás! «

GOL: ¿Algún plan de futuro divertido?

«Definitivamente, pero no estoy seguro de lo que puedo decir específicamente: PI está trabajando en algunos proyectos secundarios personales diferentes, pero nada que realmente quiera compartir. De lo contrario, ¡continúe! 🐸»


¡Muchas gracias a Joshua Ashton por tomarse un tiempo para responder nuestras preguntas!

Artículo tomado de.

.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba