Publicación del código fuente de Descent 3
Actualización (2024/04/16)
- Gracias por el gran interés y la participación en la comunidad de Discord de desarrolladores de Descent. Ya existe una comunidad activa, así que pueden unirse en el siguiente enlace.
- Se esperan commits grandes próximamente, como trabajo en paralelo de otros desarrolladores o merges de código escrito después de que este código fuera archivado.
Dirección de desarrollo y decisiones
- En adelante se planea dar soporte a C++17.
- Se está usando
clang en modo LLVM para el formateo del código, así que por favor ejecuten clang-format antes de enviar un PR.
Lanzamiento inicial
- Este es el código fuente de la versión más reciente de Descent 3, e incluye el parche "1.5" escrito hace algunos años por Jeff Slutter y Kevin Bentley. En ese momento funcionaba en Windows, Linux y Mac.
- Se eliminaron algunas bibliotecas propietarias de audio y video de Interplay (formatos ACM y MVE). Ese código sí se conserva, así que se está buscando a alguien que ayude a crear un convertidor para que las cinemáticas antiguas vuelvan a funcionar. También hará falta trabajo para dejar ese código con stubs y permitir la compilación.
- La meta inicial es lograr que todo vuelva a compilar y, si es posible, agregar acciones de CI/CD. Después de eso, hará falta limpiar el código, por ejemplo eliminando comentarios viejos del sistema de control de versiones. La mayor parte del código fue escrita por un gran equipo, pero hay que considerar que en ese entonces eran mucho más jóvenes y tenían menos experiencia.
- Si quieren ayudar con el mantenimiento, por favor envíen un mensaje. De lo contrario, los PR también serán bienvenidos.
- Esta es la última actualización que muestra el juego corriendo en distintas arquitecturas. Perdón por no haber podido lanzar el parche 1.5. Algunos problemas logísticos lo impidieron.
- Gracias a Jeff Slutter por hacer gran parte del trabajo de modernizar código de los 90. ¡Hay mucha expectativa por ver qué hará la comunidad con esto!
Opinión de GN⁺
- La publicación del código fuente de un juego querido por más de 20 años probablemente atraerá el interés de muchos desarrolladores. Sin embargo, modernizar código antiguo requerirá mucho esfuerzo.
- La apertura del código fuente tiene valor por sí misma, pero para aplicarlo al juego real parece que todavía hay muchos obstáculos por superar, como resolver problemas de licencias, dar soporte a plataformas modernas y establecer un proceso de desarrollo.
- Para el desarrollo sostenible del proyecto de código abierto, parece necesario avanzar primero en una hoja de ruta clara, lineamientos para contribuidores y una estructura de gobernanza.
- Entre los motores de juego de código abierto, Godot y Cocos2d-x, entre otros, se desarrollan activamente. Haría falta analizar sus ventajas y desventajas, y pensar en formas de diferenciación.
- Existe la duda de si un juego de hace 20 años sigue funcionando hoy o si dará una sensación anticuada. Parece necesario modernizar elementos clave del juego como los gráficos, el sonido y la UI.
1 comentarios
Comentarios de Hacker News
Se presentan casos en los que la serie de juegos Descent tuvo un gran impacto en la vida de una persona: se casó con la esposa que conoció en un foro, les puso a sus hijos los apodos de amigos de Descent y asistió a bodas y funerales de conocidos.
El sistema de control de vuelo libre en 360 grados de Descent dio origen más tarde a la opción de invertir el eje Y en los juegos FPS. Un desarrollador recuerda que leyó el FAQ de Descent a los 12 años, aprendió IRC y que Descent influyó enormemente en que hoy sea ingeniero y desarrollador de juegos.
Entre los jugadores competitivos se usaba una técnica llamada "trichording" para maximizar la velocidad, que consistía en presionar varias teclas al mismo tiempo para moverse en los 3 ejes simultáneamente. No está claro si era un diseño intencional o un bug.
Los antiguos formatos de bibliotecas de audio/video de Descent 3 (ACM, MVE) fueron eliminados, pero se expresó la intención de compartir el código para desarrollar herramientas de conversión. Parece que FFMPEG soporta esos formatos.
Para un ingeniero, la serie Descent fue la puerta de entrada al mundo de internet. A los 10 años jugó D1 con amigos por conexión telefónica y en D2 vivió el matchmaking a través de Kali/Kahn. Conoció IRC e ICQ y se obsesionó con actualizar su PC. En D3, quedar dentro del top 100 mundial fue una experiencia memorable.
También hubo curiosidad sobre el proceso y el contexto de la publicación del código fuente de Descent 3, así como preguntas sobre la posibilidad de liberar el código fuente de Hardwar, otro juego de Interplay.