Sign in to follow this  

DCS: Blackshark y el modelo "orgánico" de programación


Guest

Nota: el término "orgánico" intenta reflejar un sistema como podría ser una entidad viva, donde cada órgano y su comportamiento influye en el resto del organismo. En el caso de un sistema complejo, orgánico indica un sistema altamente interrelacionado donde cada aspecto y elemento influye en el resto, y el resto en el primero, de un modo continuo y cíclico.

Kamov Ka-50

Simulación por scripts, el modelo clásico de programación.Este término es bien conocido en muchos juegos de ordenador, y se basa en la programación de eventos que suceden ante una o varias circunstancias concretas. Por ejemplo, en los juegos de acción, el personaje, al pasar por un punto concreto del mapa por el que se mueve, lanza un script, un pequeño programa. Este script no es ni más ni menos que un bloque de código que activa una secuencia de acontecimientos para realizar una o varias acciones. Veámoslo con un ejemplo de script, por supuesto totalmente inventado y usando lenguaje común, al que llamaremos “pasa por la puerta 3”, y que realiza acciones diversas cuando nuestro personaje se mueve a través de la puerta que hemos numerado con el 3.

Script “pasa por la puerta 3”

Inicio del script

Si el protagonista pasa por delante de la puerta 3 entonces...

   Abrir la puerta;    Colocar dos “malos” armados;     Apuntar al protagonista;     Hacer sonar por el altavoz el audio “morirás y no rescatarás a la chica”;     Apagar las luces y hacer sonar una alarma;     Hacer sonar por los altavoces “ese torito bravo” de El Fary;     Disparar al protagonista por parte de los dos “malos”;Fin del Script

Todo esto está muy bien, pero tiene dos pegas: primero, si jugamos cien veces al juego, en cada ocasión, es decir, las cien veces, cuando pasemos por la puerta, ocurrirá siempre exactamente lo mismo. Es un script, un guión cerrado, no hay posibilidad de sorpresa, siempre ocurrirá exactamente lo mismo al pasar por la puerta 3. La segunda cuestión es que, si por cualquier motivo el protagonista no pasa por la puerta (por ejemplo, va por un pasillo alternativo) ese script jamás se disparará, es decir, no ocurrirá nunca. Tendríamos que programar otro script por si el protagonista va por otro lado. Y así, tendríamos que ir creando infinidad de scripts para cada una de las situaciones del juego. De hecho, muchos juegos que obligan al jugador a “ir por un pasillo” tienen esa restricción para no tener que programar gran cantidad de scripts. De ese modo, puede encontrarse el jugador con un mundo enorme pero al que no puede acceder porque los programadores, para evitar problemas, obligan al personaje a moverse por una zona muy concreta plagada de scripts. 

Call of Duty 4Muchos juegos son espectaculares pero todo es predecible;Los Call of Duty y otros son ejemplos muy claros.

La película “El show de Truman”, donde una persona vivía en un mundo artificial para la tele, sería otro ejemplo. Cuando el personaje, Truman, se da cuenta de que algo pasa, se mueve por lugares donde la televisión no tenía en cuenta que pudiera estar el personaje, y encontraba que no ocurría nada. Sería un mundo de scripts en una fantasía cinematográfica.

Scripts en simuladores.En un simulador, ocurre lo mismo cuando se usa programación por scripts. Por ejemplo, si en una misión programada por scripts nuestro avión pasa a menos de 20 millas de un radar enemigo y el avión vuela a más de 1000 pies, entonces el script podría ejecutar diversas acciones, como que el radar detecte a nuestro avión y despeguen dos MIG-29 para interceptarlo. Podemos imaginarnos que si pasamos a 999 pies nunca nos detectarán, independientemente de cualquier otra consideración. Si pasamos a 1001 pies, nos detectarán seguro.Otro ejemplo de script, en este caso en un simulador civil, sería algo así como “si el avión es un 747 y la velocidad es superior a la máxima para ese modelo a la altura de vuelo y presión barométrica, entonces que haya un fallo estructural y una alarma. Las misiones que incorpora Flight Simulator X son ejemplos de este tipo de scripts, donde el piloto realiza una serie de tareas y suceden cosas del tipo “si pasa antes de 10 minutos por la meta, medalla de oro, si pasa antes de 12 minutos, medalla de plata, etc”.Podemos imaginar el script anterior como el del 747, y lo complejo que puede llegar a ser. Habría que programar todos los casos donde se puede dar un fallo estructural para cada avión, altura de vuelo, densidad y temperatura del aire, etc. Obviamente si no se programa un caso concreto, no habrá control sobre dicho caso y a lo mejor podemos encontrarnos con un 747 volando a Mach 2 sin problemas en una situación no controlada (estamos hablando de un caso hipotético por supuesto). Aunque muchos simuladores como disponen de una física que recrea la aerodinámica de la aeronave, sin embargo muchos de los elementos de control son scripts que se disparan cuando se lanzan situaciones concretas predefinidas. Ese es el problema: todo se encuentra predefinido; no hay lugar para la dinámica.Como puede verse, la programación por scripts es tediosa, y es fácilmente detectable en cualquier software porque siempre ocurre lo mismo en la misma situación, y no deja sitio a crear una sensación de realismo.En el mundo de la simulación, a este tipo de misiones con scripts se les suele llamar comúnmente “misiones enlatadas”, o incluso, “campañas enlatadas” en el caso de varias misiones sucesivas donde las condiciones para pasar a la siguiente misión están condicionadas por las anteriores. Además de que se requieren docenas, o cientos de scripts, para hacer creer al jugador que están ocurriendo cosas al azar, cuando no es así. Ni hay azar, ni hay leyes de la física, al menos no la física que podríamos esperar de un modelo en el que una acción tiene consecuencias debido a la propia acción física. Por ejemplo, en el caso del radar del ejemplo anterior, dicho radar no nos ha detectado, no hay un modelo de ondas electromagnéticas escaneando el cielo. Simplemente, hay un script que define exactamente qué va  pasar, cómo va a pasar, y cuándo va a pasar, y siempre de la misma forma. Si conocemos los scripts de memoria, podremos pasar una misión de combate con 100% de posibilidades de victoria. No hay sorpresas ni hay capacidad para la improvisación. Es un mundo rígido y totalmente predecible. 

Blackshark

Programación "orgánica".La programación "orgánica" se basa en un concepto que permite evitar todos o gran parte de los scripts, dejándolos como una herramienta accesoria y circunstancial a aspectos menores del simulador. Para decirlo de un modo sencillo, la programación orgánica pretende recrear un modelo físico simulado, activando y ejecutando las leyes de la física en un entorno 3D virtual, donde cada elemento actúa en consonancia a esas leyes. En este caso, no son los scripts los que actúan, sino el propio modelado de la física y las ecuaciones implicadas. ¿Qué diferencia fundamental existe entre ambos sistemas? La diferencia estriba en algo conceptualmente tan sencillo como implementar un mundo físico virtual donde las leyes de la naturaleza son las mismas que en el mundo real. En ese mundo virtual, la gravedad existe y actúa de la misma forma que en el mundo real, y el resto de fenómenos físicos se encuentran modelados tal como ocurre en la vida cotidiana. Obviamente, como el mundo real es uno, las ecuaciones tienen como finalidad reproducir el mundo y hacer que cada objeto virtual siga esas mismas leyes físicas que todos estamos acostumbrados a vivir diariamente.Agacharse y levantar un objeto en el mundo real es muy sencillo, pero las ecuaciones implicadas en una acción tan trivial son mucho más complejas de lo que cabría suponer. No tanto por el acto en sí, sino por toda la fenomenología que envuelve a dicha acción. En el mundo real, cada acción tiene connotaciones en otros ámbitos. Por ejemplo, podríamos estar de pie sobre una madera que soporte un peso de 85 kilos y que por debajo tiene un agujero, mientras que nuestro peso es de 75 kilos. Si recogemos un objeto de 11 kilos, probablemente la madera se rompa y caigamos. Pero no siempre es así; puede que la madera tenga algún tipo de apoyo adicional o esté colocada de una forma que la tensión permita soportar 10 kilos adicionales. Todo esto se debe calcular en un mundo virtual, y debe hacerse correctamente. La cuestión no es ni mucho menos trivial.Una vez implementado el modelo físico en un mundo virtual, donde las ecuaciones trabajan haciendo que los objetos, sean estos piedras, sillas, o motores de explosión, funcionen correctamente y según la física implementada, ¿qué podemos esperar? Lo mejor es realizar un experimento. Colocamos una piedra virtual a 5 metros de altura, que aparezca digamos espontáneamente, como si alguien la colocase ahí en el aire con sus manos y luego la soltase. ¿Qué sucedería? Efectivamente. Nuestra intuición diaria en la vida real nos permite saber que la piedra caerá con una aceleración debida a la gravedad terrestre virtual en relación al peso de la piedra. También se deberá tener en cuenta el rozamiento del aire según la densidad del mismo por la altura a la que se halla la piedra y por la temperatura ambiente. Todos estos elementos se conjugarán en las ecuaciones implementadas, y la piedra caerá. Naturalmente, deberemos tener en cuenta la rotación de La tierra para mejorar el experimento. Además, la piedra, al golpear el suelo, rodará o se comportará según su estructura, quizás se rompa si es blanda, o se sumergirá si cae en el mar. Por supuesto, recrear todos estos fenómenos requiere mucha potencia de cálculo y una correcta implementación de las ecuaciones físicas implicadas. Pero, a cambio, tenemos dos importantísimas ventajas: la primera, es que no hay que escribir ningún script. La piedra cae por las leyes de la física, y esas leyes dictan cómo cae la piedra y cómo se comporta en cada momento. Cada piedra caerá según las leyes de la física que conocemos a través de Newton, y tendrá un comportamiento mucho más realista que lo que cualquier script podría modelar nunca.Resumiendo, el comportamiento de la piedra será muy realista, y tendremos una sensación de estar viendo un fenómeno real, con un comportamiento que nos sorprenderá porque estamos acostumbrados a verlo en nuestra experiencia diaria. Por poner un ejemplo del asombro que esto produce, podríamos mencionar los primeros vídeos de muestra del juego Half Life 2, donde se movían objetos y se lanzaban unos contra otros o contra el agua, y esos objetos se movían como podría esperarse de su contrapartida real. Aquellos vídeos causaron sensación, y hoy en día cada vez más se busca recrear una física realista muy alejada de los scripts, si bien el camino todavía es largo por la complejidad de que un simple PC pueda tener en cuenta todos los detalles de cada fenómeno físico en un entorno virtual. Pero se están logrando grandes avances. 

Blackshark CockpitTodos los sistemas de la aeronave son totalmente operativos e interactúan entre sí

Programación orgánica en DCS: Blackshark.El nuevo simulador de Eagle Dynamics, DCS: Blackshark, no inventa nada cuando hace uso de la programación orgánica. Otros simuladores recrean actualmente modelos de física convincentes, algunos muy valorados como el de X-Plane o el la saga IL2, o el mismo de Lock On. Pero en Blackshark la programación está yendo un paso más allá. Y la razón es la siguiente: cuantas más precisas sean las ecuaciones, y cuantas más ecuaciones interactúen para recrear un mundo real, más realismo se conseguirá en un simulador. Blackshark toma estos conceptos y los lleva a un nivel que está dando unos resultados espectaculares.El problema no es tanto recrear un mundo virtual con física realista, que es algo que ya existe y se encuentra disponible. Pero siempre, debido a las limitaciones técnicas, se ha tenido que sacrificar realismo simplificando las ecuaciones, ya que se necesitaría un superordenador para ejecutarlas así como sus interacciones, si lo que se pretende es recrear cada aspecto físico del mundo real en el mundo virtual.Blackshark va a exprimir la potencia de cálculo de las actuales CPUs para conseguir una física convincente. Y lo hace de dos formas básicas: por un lado, tiene en cuenta la estructura de la aeronave, en este caso del helicóptero de combate Kamov Ka-50 Hokum, de tal modo que divide toda su estructura en áreas. Cada área tiene un tratamiento específico del comportamiento de dicha área en relación a su entorno. Vamos a  verlo traduciendo de forma libre la explicación que, en la web oficial de Blackshark, Eagle Dynamics da a la física de algo tan elemental en un helicóptero como es el comportamiento de los rotores y la física implicada en su modelado. Este modelo no es nuevo, ya lo hemos visto en otros simuladores, quizás X-Plane es el más significativo, pero sí es cierto que se está yendo muy lejos en esta ocasión, ya que se dispone y se trabaja con la empresa matriz que ha creado la aeronave, dando como resultado un flujo bidireccional de información donde se perfila un modelo de vuelo como nunca antes se había visto. Los vídeos dejan claro que, si bien la reproducción de un modelo de vuelo de una aeronave de alas rotatorias es muy compleja, sin embargo se está consiguiendo reproducir el modelo de vuelo del Ka-50 con una perfección que no habíamos visto nunca en anteriores simuladores.

Blackshark modelo físicoEn DCS: Blackshark cada elemento, y cada fuerza, interactúa con el resto

X, Y, Z – ejes de referencia; V – vector de velocidad; Fmg – gravedad; FFUZ – fuerza aerodinámica del fuselaje; FRW – fuerza aerodinámica del ala derecha; FLW – fuerza aerodinámica del ala izquierda; FRS – fuerza aerodinámica del estabilizador derecho; FLS – fuerza aerodinámica del estabilizador izquierdo; FF – fuerza aerodinámica del estabilizador vertical; F1BL1...F6BL1 – fuerzas resultantes de las palas; T – fuerza tractora resultante de los rotores, T = Fuerza tractora resultante de los rotores

Del mismo modo, los daños son orgánicos, en tanto en cuanto se producen de forma asociada a la física inherente al sistema y aviónica de la aeronave. Por ejemplo, algo como una pérdida de fluído hidráulico provocará daños y pérdida de funcionalidad en aquellos sistemas asociados, mientras que estos daños a su vez modificarán aspectos secundarios en los sistemas implicados. Luego si hablamos de que A afecta a B, luego B puede afectar a C, y éste a otros sistemas, en una cascada que reproduce los efectos de los daños reales. Puede el lector imaginarse la tremenda complejidad que supondría programar toda esta serie de causas y efectos de forma programática mediante scritps. Prácticamente sería imposible y de tanta complejidad que sería absurdo hacerlo operativo de forma eficaz. El modelo orgánico, sin embargo, actúa directamente en los sistemas asociados cuando uno de ellos falla, y ello da lugar a un comportamiento realista y muy eficaz. Se podría preguntar por qué no se ha usado este sistema antes. De hecho sí se ha usado, aunque probablemente no con la intensidad y definición que vemos en DCS: Blackshark. La respuesta es ciertamente que no había hasta ahora potencia de cálculo suficiente como para recrear un sistema orgánico de forma efectiva. De ahí que nuestra afirmación sobre el uso intensivo de la CPU sea más real que nunca. Nosotros recomendamos el empleo de CPUs modernas y potentes en la medida de que, para este simulador, este elemento va a ser probablemente tan importante como lo es la GPU, es decir, la tarjeta gráfica. Las nuevas generaciones de procesadores con dos o más núcleos son especialmente aptos para este tipo de tareas, ya que, incluso si el simulador sólo usa un núcleo, otro de los núcleos queda libre para el resto de procesos del ordenador.Resumen: un decidido paso adelante.Posiblemente DCS: Blackshark inaugure una nueva era en el mundo de la simulación, si nos atenemos a los datos que hasta ahora han aparecido. Aunque esta frase sea muy sonora, no podemos negar que, desde la salida de Falcon 4, no se veía un simulador con un nivel de detalle tecnológico como éste. Podríamos hablar de la saga IL2, pero al ser aviones de los años treinta y cuarenta estos aspectos técnicos quedan mucho más escondidos, y es evidente que el modelo de vuelo y la aviónica de DCS: Blackshark es hoy por hoy un exponente de un nuevo futuro en el mundo de la simulación.Pocas personas podrán apreciar el nivel de este producto como corresponde, ya que va a ser sin duda un simulador minoritario, a millones de años luz de los arcades de aviones que se desarrollan hoy en día por parte de algunas empresas, que se venden como simuladores cuando un niño de teta podría derribar veinte aviones en dos minutos y con una mano. No estamos en contra de los arcades, por supuesto que no; pero sí de que se intente que el usuario crea que eso es un simulador. Lejos de esa sencillez, DCS: Blackshark va a exigir un estudio y conocimientos profundos de la aeronave y sus sistemas, de la dinámica de vuelo de los helicópteros, y de los aspectos tácticos de combate de estas aeronaves. Precisamente, lo que sueña cualquier aficionado serio a la simulación. Y otro ejemplo más de cómo los simuladores se alejan, cada vez más, del concepto de videojuego tradicional. En el E-69 vamos a hacer un seguimiento completo de este simulador, que esperamos con impaciencia y del que daremos todos los detalles en cuanto los tengamos disponibles. En el foro, ya disponemos de información actualizada que nuestro compañero Amalahama va introduciendo para nuestro conocimiento. Sin duda, DCS: Blackshark y los futuros añadidos van a dar mucho que hablar y que disfrutar a la comunidad de simulación.


En este enlace puedes ver información técnica detallada sobre el modelo de Blackshark. 

 

Sign in to follow this  


User Feedback

Recommended Comments

There are no comments to display.



Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.