3 puntos por GN⁺ 2024-04-17 | 1 comentarios | Compartir por WhatsApp
  • El motor open source de Descent 3 fue publicado bajo la licencia GPL-3.0, y para usarlo hay que preparar por cuenta propia los archivos del juego por separado
  • Esta versión publicada incluye el parche “1.5” que Kevin Bentley y Jeff Slutter escribieron en el pasado
  • La comunidad de Descent llevó ese parche a un estado estable
  • Para los detalles de instalación se indica seguir USAGE.md, y para el proceso de compilación, BUILD.md
  • Los problemas de compilación o ejecución deben reportarse en el tracker de GitHub, y los parches de contribución deben enviarse por GitHub

Motor publicado y licencia

  • Se publicó el motor open source de Descent 3
  • La licencia es GPL-3.0
  • Este motor incluye el parche “1.5” que Kevin Bentley y Jeff Slutter escribieron hace algunos años
  • La comunidad de Descent lo llevó a un estado estable

Uso y compilación

  • Para usar el motor, el usuario debe proporcionar sus propios archivos del juego
  • Los detalles relacionados con la instalación están en USAGE.md
  • Para compilar el juego, se indica seguir las instrucciones de compilación de BUILD.md

Reporte de problemas y contribuciones

  • Los problemas que surjan durante la compilación o ejecución deben reportarse en el tracker de GitHub
  • Cualquier persona puede contribuir
  • La comunidad de desarrollo está en Descent Developer Network en Discord
  • Los parches deben enviarse en GitHub

1 comentarios

 
GN⁺ 2024-04-17
Comentarios en Hacker News
  • Realmente amaba este juego. Nunca entendí por qué esta idea no logró consolidarse como un género
    No había un arriba real, podías moverte con libertad total de 360 grados, y los enemigos eran lo bastante inteligentes como para hasta francotirarte. Le dediqué una cantidad enorme de tiempo en su momento y de verdad quiero volver a jugarlo ahora

    • Nadie lo preguntó, pero entre los juegos modernos populares que usan un esquema de control parecido, en la práctica solo está Outer Wilds. No es un shooter, pero sí una aventura bastante excelente
      https://store.steampowered.com/app/753640/Outer_Wilds/
      Aunque como sucesor directo de este subgénero, está Overload
      https://store.steampowered.com/app/448850/Overload/
    • Elite Dangerous sí transmite de verdad la diversión de pilotar con 6 grados de libertad
      https://youtu.be/T2-IHgNYaKA
      https://old.reddit.com/r/EliteDangerous/comments/16xi20a/dua...
      https://youtu.be/9U0KNVQmlcM
      Extraño este juego
      Sobre eso de no entender por qué esta idea no se volvió un género, yo diría que es porque los simuladores de vuelo espacial, tristemente, siempre fueron un género de nicho. Incluso más de nicho que los simuladores de vuelo normales
    • En 2009 hubo un shooter multijugador en gravedad cero llamado Shattered Horizon: https://www.youtube.com/watch?v=xWsHxTFPxSE
      Tenía una mecánica interesante: podías apagar la energía del traje para entrar en modo sigilo, y entonces se desactivaban todos los elementos del HUD, así como la mayoría de los sonidos del juego, como explosiones o balas pasando cerca
      Dentro del mundo del juego, la idea era que todos esos sonidos eran generados por la computadora del traje, y que el espacio en realidad es silencioso
    • Freespace fue algo cercano a un sucesor, oficial o no. Freespace 2 fue increíble y creo que todavía se sostiene hoy en día
      Hoy existe la versión moderna de Elite Dangerous, pero su física de vuelo se parece demasiado a la de un avión como para compararlo fácilmente con Descent
    • Me acuerdo de la parte de “los enemigos eran inteligentes y hasta te francotiraban”
      Jugué Descent 1 en PS1, y recuerdo que en la caja decía que los enemigos se adaptaban al estilo de juego del jugador. Ya de grande, después de estudiar aprendizaje automático y algunas técnicas de IA, siempre me quedó la duda de qué significaba exactamente eso
      Mi PS1 claramente no estaba corriendo descenso por gradiente, así que ¿qué truco había detrás de esa afirmación de que los enemigos aprendían del jugador y se adaptaban?
  • Mi esposa y yo nos conocimos en el foro de Descent, y los nombres de nuestros tres hijos vienen de amigos de Descent: KoolBear, Jediluke y Mark392. También fui a bodas de amigos de Descent y, tristemente, también a funerales; que descanse en paz JinX
    Consideraba que D3 era la entrega más floja de la serie Descent, pero esta noticia de verdad me alegra mucho. Gracias, Kevin

    • Después de años de solo leer sin comentar, al final me hice una cuenta solo para escribir esto. Recuerdo cuando tú y Drakona se casaron. Felicidades de nuevo
      Han pasado bastante más de 15 años desde la última vez que participé en la comunidad de Descent. Cuando desapareció mi correo de PlanetDescent, también perdí acceso a mi cuenta de ICQ, y ya no uso el nombre DCrazy en internet. También porque quería tomar distancia de quien era a principios de mi adolescencia en esa época
      Aun así, Descent, y en especial D3, influyó muchísimo en que terminara entrando a la ingeniería de software, y siempre voy a agradecer esos recuerdos
    • ¿KoolBear, Jediluke y Mark392? ¿Esos son los nombres de sus hijos?
    • Me acuerdo de KoolBear de la época en que jugábamos en Kali. Qué buenos recuerdos
    • Me encanta demasiado la idea de que uno de sus hijos literalmente se llame “koolbear”
  • A los 12 años conocí IRC leyendo el FAQ de Descent, y con un módem de 14.4k configuré IHHD para poder jugar. También hice niveles con DEVIL
    Ahora soy ingeniero y desarrollador de juegos. Gracias por darle Descent al mundo. En lo personal, tuvo un impacto enorme en mi vida

    • A menudo pienso que antes podías aprender muchísimo solo tratando de hacer que un juego corriera. Arreglar problemas para poder jugar era una motivación enorme, y si el juego pedía más memoria, hasta te tocaba hacer cosas como optimización de memoria en MS-DOS
      Conseguir el juego en sí normalmente también era toda una travesía
      Hoy los niños tienen una cantidad infinita de juegos en el teléfono. Casi nunca necesitan conectarse con el sistema que hay debajo ni hacer ningún esfuerzo. Solo lo descargan y juegan el siguiente que se vea decente
      Creo que esta generación se está perdiendo de algo
  • El esquema de control de Descent fue lo que me dejó para siempre la inversión del eje Y en los juegos en primera persona.
    Mi cerebro encajaba perfectamente con la forma de pensar en 6 grados de libertad, y desde entonces todos los FPS tenían que ajustarse a eso, aunque no estuvieran basados en vuelo.

    • ¿Jugabas Descent con mouse? Nosotros jugábamos con ambas manos sobre el teclado. Usábamos el teclado numérico para mover la vista, desplazarnos lateralmente y girar, y las teclas de la izquierda para movernos y disparar.
      ¿Éramos los únicos que jugábamos así?
    • ¡Jugadores con eje Y invertido, únanse!
      Descent, junto con Flight Simulator 95, también ayudó a arruinarme el cerebro. No puedo jugar sin inversión del eje Y.
    • Me acostumbré tanto al eje Y invertido que no puedo jugar ningún FPS con la configuración predeterminada, así que es lo primero que cambio en las opciones.
      Ojalá el valor predeterminado en todos los juegos fuera la inversión del eje Y. No sé cuándo me acostumbré, pero probablemente fue jugando X-Wing o Quake.
    • Todos los juegos viejos venían por defecto con lo que hoy llamamos inversión del eje Y.
      Supongo que venía del esquema de control de aeronaves, donde tirar hace que la nariz suba. Así funcionan el stick, el joystick y el yoke. Counter-Strike lo arruinó :)
    • Me pregunto si fui el único que quiso invertir ambos ejes al jugar juegos en tercera persona con gamepad.
      Al final sentí que en realidad ninguno de los dos esquemas era igual de intuitivo, y supongo que me tocará esperar hasta que alguien haga que un Zelda moderno funcione bien con mouse.
  • Unos amigos y yo jugábamos Descent de forma competitiva, y me sorprendió descubrir el llamado tricoding. Para maximizar la velocidad, tenías que presionar varias teclas al mismo tiempo y moverte en los tres ejes a la vez; por ejemplo, adelante/derecha/arriba.
    Los mejores jugadores recorrían los mapas en diagonal a toda velocidad.
    Siempre pensé que esto era como el ski de Tribes, un caso en el que un bug terminó convirtiéndose en funcionalidad. Acabo de revisar el repositorio buscando pistas, pero al final no encontré comentarios relevantes alrededor de la línea de código donde ocurre esto.
    https://github.com/kevinbentley/Descent3/blob/142052a67d4318...

    • Hasta donde sé, se podía hacer algo parecido en muchos juegos de disparos. Si avanzabas mientras te movías de lado y corrías en diagonal, probablemente obtenías una velocidad sqrt(x^2 + y^2) por un descuido de diseño, porque la velocidad de movimiento en cada dirección era la misma.
      En Descent, además se sumaba el eje arriba/abajo, así que terminabas moviéndote a unas 1.7 veces la velocidad de ir solo hacia adelante.
      Descent 2 y 3 también tenían un afterburner que aumentaba la velocidad hacia adelante; tenía energía limitada, pero se recargaba bastante rápido, y el boost era mayor con 100% de energía, perdiendo eficiencia a medida que bajaba hacia 0%.
      Por eso la gente aprendió a activarlo y desactivarlo varias veces por segundo, dejando que se recargara entre usos muy cortos, para mantenerse cerca de 95% en lugar de caer a valores bajos.
      Si de verdad querías ir rápido, tenías que moverte en diagonal en 3D mientras pulsabas el afterburner varias veces por segundo como si fueran pulsos.
    • Originalmente los diseñadores no lo veían ni como bug ni como funcionalidad; más bien, simplemente no lo pensaron mucho.
      Después de que se descubrió, algunos diseñadores lo veían negativamente y otros positivamente, y siguió siendo tema de debate incluso años después de dejar Descent, cuando el equipo se reunió otra vez para hacer Overload.
      Mi esposa y yo modificamos D1 para probar algunas alternativas, e hicimos una demo frente a Mike/Matt/Luke/Dan y la gente que estaba en el estudio ese día. Al final llegamos a la conclusión de que “la independencia vectorial simplemente se siente bien”, así que Overload terminó incluyendo una opción para alternar entre un modo de vuelo normalizado, con vuelo 1D más rápido, y un modo tricoding.
    • En 2D, la diagonal de un cuadrado de 1x1 es más larga que su lado.
      Una implementación ingenua que simplemente suma los vectores x e y produce un vector resultante de la longitud de la diagonal, es decir, 1.41 veces más rápido. En 3D es todavía mayor.
      Este fue un bug-hecho-funcionalidad muy común en muchos juegos viejos.
      Quake tuvo esto en cuenta al caminar, pero no mientras saltabas, y de ahí salió una técnica más compleja para ganar velocidad: el strafe jump.
    • Viendo los cálculos, parece que se suman las entradas de control y luego no se vuelve a normalizar el vector final de empuje. Si lo simplificas a un juego 2D, sería algo así:
      var playerX_input = Input.GetHorizontal(); // float in range -1 to 1
      var playerY_input = Input.GetVertical(); // float in range -1 to 1
      var playerVelocity = new Vector2(playerX_input, playerY_input);
      Así, el jugador puede moverse 1 unidad/frame en X y 1 unidad/frame en Y, y si se mueve en diagonal la magnitud del vector de velocidad pasa a ser sqrt(2), la longitud del vector (1,1), o sea aproximadamente 1.41.
      Para corregirlo, podrías hacer algo más o menos así:
      if(playerVelocity.length > 1)
      {
      playerVelocity = playerVelocity.normalized();
      }
    • Algunos de los mejores jugadores en el ladder competitivo usaban rotación durante el tricoding para “dirigir” con trayectorias curvas.
      Eso hacía que fuera realmente difícil acertarles cuando ibas detrás de ellos.
      Jugué contra algunos jugadores del ladder y me sorprendió lo completamente diferente que era su nivel.
      Una de las razones por las que esos juegos originales me resultaban tan atractivos era precisamente que prácticamente no tenían techo de habilidad.
      Habría sido increíble poder ver esas partidas en plataformas de streaming.
  • Como referencia para la parte de “alguien preguntó recientemente si se iba a publicar el código fuente de Descent 3”: https://news.ycombinator.com/item?id=40009248
    Está buenísimo, gracias.

  • Por la parte que dice “se eliminó parte de las bibliotecas propietarias de audio y video de Interplay. Son los formatos ACM y MVE. Si alguien quiere ayudar a hacer conversores para que vuelvan a funcionar las cutscenes viejas, tengo ese código. Hacer stubs de ese código para que compile va a requerir algo de trabajo”, por cierto, parece que FFMPEG sí soporta esos formatos.

  • Me pregunto qué hizo falta para conseguir la aprobación internamente. ¿Podrías explicar un poco el proceso de decisión? Es algo bueno, pero hoy en día es demasiado raro

    • Seguía teniendo el código y, hace unos 15 años, estaba trabajando en arreglar algunos bugs antiguos
      Ya se hablaba de publicar el código en ese entonces, pero primero quería sacar los parches y encontrar un reemplazo para el decodificador MVE
      Hace unos días vi un comentario en otra publicación aquí y le mandé un correo al dueño para preguntarle si podía quitar el código que no se podía publicar y simplemente seguir adelante, y me respondió que “sí, adelante”
  • Encontré esta joyita en la página de Wikipedia[0]
    “Un estudio publicado en 2002 usó Descent 3 para investigar la actividad de vuelo de la polilla esfinge. Usando el módulo de edición del juego, los investigadores crearon un entorno virtual compuesto por un plano liso con pilares rectangulares, y el animal logró navegar dentro de él con éxito”
    [0] https://en.wikipedia.org/wiki/Descent_3#Other_uses

    • Es un trabajo bastante loco. Una escena tipo Clockwork Orange con una polilla sujeta a una máquina de VR y hasta con un dispensador de feromonas y electrodos pegados
      “Este artículo describe el diseño de un nuevo simulador de vuelo de insectos que combina entornos visuales realistas e interactivos con estímulos mecanosensoriales y olfativos, junto con técnicas modernas de registro neurofisiológico multicanal. Este sistema aprovecha la tecnología informática actualmente disponible y técnicas de fabricación MEMS, y se usa para investigar en paralelo la actividad de múltiples neuronas del sistema nervioso central durante un vuelo realista en bucle cerrado de la polilla esfinge Manduca sexta”
      https://www.sciencedirect.com/science/article/abs/pii/S01650...
  • Había oído que a mucha gente le encantaba Descent y además se veía excelente. Incluso parecía una mezcla de X-Wing y Quake
    Pero nunca pude jugarlo más de unos minutos, y puede que haya sido el primer juego que abandoné tan rápido en toda mi larga vida de jugador. Tiene una sensación inquietante, como si estuvieras tratando de manipular imanes con guantes de boxeo. Incluso viendo videos de gameplay me da la misma sensación.