Se publica el código fuente de Descent 3
(github.com/kevinbentley)- 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
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
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/
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
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
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
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
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
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
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.
¿Éramos los únicos que jugábamos así?
Descent, junto con Flight Simulator 95, también ayudó a arruinarme el cerebro. No puedo jugar sin inversión del eje Y.
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.
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ó :)
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...
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.
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.
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.
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();
}
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
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
“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.