domingo, 27 de diciembre de 2015

Recursos gráficos y sonidos para hacer juegos

Hace tiempo comenté las fuentes que había usado para hacer el prototipo de Burning City, a estas fuentes:

Para los gráficos:
Vector Open Stock 
Vecteezy
Dryicons 
Free Vector

Sonidos:
Sound Bible

Me gustaría ir añadiendo otras, tales como:

Kenney un estudio que desarrolla unos assets muy interesantes.
GameDev Market que tiene sets de assets desde coste 0 al precio que queramos.
Open Game Art con una colección impresionante clasificada por etiquetas.
Assets store Unity3D son assets específicos para Unity.


Un ejemplo de lo que podemos hacer con estas fuentes es este escenario que he creado para un curso de Unity3D que acabo de comenzar. 

Escenario construido con Unity



viernes, 26 de junio de 2015

Sencillo y adictivo: agar io

Hace poco un compañero de trabajo me enseñó Agar.io este sencillo juego en red multijugador, con un manejo muy fácil (ratón y dos teclas) y con una estética y temática aún más sencillas. 

Se trata de una especie de célula que debe ir creciendo a base de alimentarse de pequeños puntos que aparecen en la pantalla y...(ahora es cuando viene lo interesante)...de otras células que son los otros jugadores. A medida que nos alimentamos, nos hacemos más grandes.

La competición se basa en que el grande se come al pequeño, pero la gracia está en comerse a los otros usuarios y evitar que te coman, porque es una guerra sin cuartel.

El juego no tiene gráficos, es simple hasta el límite, pero creo que el hecho de saber que estás compitiendo con gente real en lugar de con máquinas lo hace especialmente divertido.

Pantalla del juego

Menos es más, desde luego.


miércoles, 10 de junio de 2015

Actualización del método para hacer docking en el KSP

Decíamos en entradas anteriores que en la fase de aproximación orbital era muy complicado encontrar una órbita en la que nuestra sonda y la estación estuviesen cercanos.

Como ya comenté en artículo era la primera vez que conseguía una órbita tan buena a la primera. Era cierto... no me ha vuelto a pasar. Por ello es conveniente que actualice un poco el método para que recoja la mayoría de las situaciones que se dan habitualmente.

La estación está demasiado lejos

Supongamos que alcanzamos la órbita, la circularizamos e igualamos con el plano orbital de la estación. Hacemos la primera maniobra de aproximación orbital con toda la ilusión del mundo pero obtenemos esto:

Se puede ver la "Estación Kerbin" (por fin encontré cómo cambiar el nombre y el icono), los restos de la fase 1 de la sonda (trayectoria gris) y la nave que queremos acoplar a la estación (trayectoria azul). En este caso se trata de un deposito grande de fuel.

Cuando pasamos el cursor por los marcadores de intersección nos indica la distancia más cercana entre naves. En ambos casos es de más de 400 km por lo que necesitamos cambiar las trayectorias antes de pasar a la siguiente fase.

Mecánica Orbital

Como dijimos en la entrada anterior, un cuerpo que orbita más cerca de Kerbin tiene una mayor velocidad que otro en un órbita superior. Por tanto, la nave en la órbita azul se desplazará más rápido que la estación en la parte de "abajo" y a la misma velocidad en la parte de "arriba".

Nota pedante: he utilizado los conceptos de abajo y arriba para ilustrar la imagen ya que, en el espacio, por supuesto, no tiene sentido expresarse en estos términos.

El resultado es que en cada ciclo, la nave irá acortando la distancia de separación entre los puntos de intersección. Cada vez que la nave pasa por el marcador de arriba, el ordenador recalcula la intersección y vuelve a situar el marcador de abajo. El efecto final es que, con cada órbita completa los marcadores se van desplazando y se acercan.

El siguiente paso es acelerar el tiempo y esperar el número suficiente de órbitas hasta que aparezca una en la que las distancia de separación sean adecuadas. Hasta aquí nada nuevo.

¡Socorro! ¡Las intersecciones cambian demasiado!

Con cada ciclo tenemos que fijarnos en las distancias de separación entre marcadores (colocando el cursor sobre el marcador superior). En mi ejemplo me di cuenta que en una órbita la separación era 220 km en uno y 228 km en el otro (el color no importa); y al siguiente ciclo la separación había cambiado a 59 y 228 km. En una sóla órbita había experimentado una variación de 161 km. Si esperaba otra órbita corría el riesgo de tener que volver a empezar.

En esta situación sólo se puede hacer una cosa: acelerar progrado para que el lado opuesto de nuestra órbita (el lado rápido de abajo para entendernos) se acerque a la órbita de la estación. De este modo se igualarán las velocidades relativas y el acercamiento de los puntos de intersección se hará más lento. En la imagen se ve esta maniobra.

Tras ejecutarla esta es la situación:

Dejamos pasar el tiempo para que la nave complete una órbita más y el resultado es el ideal: en el trayecto tenemos una zona en la que la separación entre sonda y varía desde los 16 hasta los 3 km. Es el punto ideal para realizar la maniobra de acercamiento e igualación de velocidades relativas.

Aproximaciones finales

Y por fin tenemos Estación Kerbin a tiro...

Tras un aproximación exitosa hemos logrado subir otro depósito de fuel a la estación... y colorín colorado, este vuelo se ha acabado.

domingo, 31 de mayo de 2015

Docking a lo grande en el Kerbal Space Program (V)

Ya estamos en a parte final de nuestro viaje. Tenemos Estación Kerbin a la vista, vamos razonablemente despacio para cubrir los últimos 500 metros y además estamos apuntando con el lado bueno de la nave ¿qué podría ir mal?

Docking Port Alignment Indicator

Este mod es un "must have" absoluto. Si las naves son pequeñas y tienen formas normalitas (que se vean bien los docking ports) se puede intentar hacer el acoplamiento a ojo. Por ejemplo aquí, el amigo Scott Manley nos regala su docking tutorial a pelo. Pero claro, en el momento en que las naves empeizan a crecer de tamaño y se pierde de vista nuestro puerto de acoplamiento necesitamos tener una visión espacial hiper-desarrollada para no acabar de los nervios.

En esta página está el mod Docking Port Alignment Indicator junto con los correspondientes videotutoriales.

El mod de proporciona un instrumento de navegación específico para el acoplamiento que es muy sencillo, visual y fácil de manejar.

Acoplamiento fino

Encendamos el sistema RCS y preparémonos para el acoplamiento. El control de la nave ahora lo haremos de forma un poco diferente. Con las teclas"WASD" manejamos la orientación y con "IJKL" la traslación ("HN" para acelerar progrado/contragrado). También podríamos conectar el docking mode, aunque yo no suelo hacerlo.

50 metros y acercándonos...

Sólo falta 1 metro...

¡Tacháan! ¡El amanecer de una nueva era...! Me siento como en 2001 una odisea espacial.

Estación Kerbin

Prueba superada. Hemos subido el siguiente módulo de la estación. Ahora estamos preparados para recibir a nuestros esforzados pasajeros espaciales. Tan solo resta recuperar el fuel sobrante y deshacernos de los motores vacíos para poder disfrutar de esta maravilla tecnológica en toda su extensión.

Docking a lo grande en el Kerbal Space Program (IV)

En la entrada anterior conseguimos una maniobra por la cual la estación y la nave se acabarían encontrando en un punto a una distancia cercana. Esta es la situación que se ve en la imagen.

Durante el ascenso nos habremos fijado que la velocidad del cohete era relativa a la superficie. Si clicamos con el ratón en la velocidad nos calcula la velocidad orbital y si volvemos a clicar calcula la velocidad relativa respecto del blanco (target).

Según nos acerquemos al punto de mínima distancia vamos preparándonos para cambiar a la siguiente fase.

Acercamiento e igualación de velocidades relativas

Sin duda esta es la fase más compleja. Ahora la idea básica es apuntar hacia la estación y acelerar para reducir la distancia de separación a cero. Pero claro, no somos un misil y queremos llegar a nuestro destino con una velocidad relativa muy baja. Por ello, además de acelerar deberemos encontrar la forma de frenar cuando la velocidad relativa sea elevada. Por último, ambas naves nos movemos en órbita circular. Dicho de otra forma: la estación se mueve y tenemos que corregir la dirección de avance constantemente mientras nos acercamos. El último elemento a tener en cuenta es el consumo de fuel. Si corregimos demasiado nos quedamos secos.

No siempre es fácil combinar todos estos elementos. De hecho tuve que repetir esta misión un par de veces ya que la nave que llevamos es bastante pesada y alargada, lo que complica un poco las maniobras. Tened en cuenta que llevamos un depósito grande de fuel y a continuación un módulo de la Estación Kerbin. O sea, esto:

Dirección y velocidad

¡Vamos a por el acoplamiento! De momento estamos a unos 20 km de la estación. Ahora nos olvidaremos de las órbitas y nos preocuparemos únicamente de la dirección de la nave y de la orientación del vector velocidad.

Recordemos que la dirección del blanco (la estación en este caso) es el marcador rosa en el instrumento de navegación. En la imagen, el punto representa el sentido de acercamiento al blanco. Lo que hacemos es orientar la nave hacia el punto rosa de modo que el símbolo naranja y el punto rosa coincidan. Coloquialmente diríamos que estamos mirando hacia la Estación.

¿Qué ocurrirá cuando encendamos los motores? Pues que el vector velocidad (símbolo amarillo) se dirigirá hacia la dirección en la que mira la nave.

Para expresar esto metafóricamente, cada vez que aceleramos, es como si estirásemos con una cuerda el vector velocidad hacia la dirección en la que apunta la nave. Si apuntamos hacia el marcador rosa y "estiramos de la cuerda" (aceleramos) el vector velocidad se alinea en dirección hacia la estación. Con esto conseguimos incrementar nuestra velocidad relativa y, consecuentemente, disminuir la distancia que nos separa.

El problema es que ambos nos desplazamos a lo largo de una órbita alrededor de un planeta con lo que, al cabo de unos segundos, el vector velocidad se separa de la dirección de aproximación y comenzamos a alejarnos otra vez del objetivo. No no queda más remedio que repetir el procedimiento y estirar del hilo otra vez para volver a acercarnos.

En la imagen se observa que la dirección de la nave no apunta en la dirección actual de la estación (marcador rosa), sino que apunta al lugar donde estará la estación dentro de unos segundos. De esta forma minimizamos el número de correcciones a realizar durante la maniobra de aproximación. También vemos un nuevo problema... nos acercamos demasiado rápido y es hora de frenar.

Frenando

¡Maldición! ¡No hay pedal de freno! Sólo podemos hacer una cosa: dar la vuelta a la nave y acelerar en sentido contrario para reducir la velocidad.

Lo primero que vemos darnos cuenta es que al girar la nave, los marcadores han cambiado. El marcador rosa, que indica la dirección de la estación, se ha dado la vuelta. Es como si estuviésemos mirando el vector dirección por detrás. Si la nave estuviera alineada con la estación (esto es que el marcador naranja y el rosa coinciesen), significaría que estaríamos paralelos a la dirección en la que se encuentra la estación pero orientados en sentido contrario. Esto es bueno ya que pretendemos frenar.

Fijémonos en el vector velocidad (amarillo): también estamos viéndolo por detrás. Cuando la nave se orienta en el sentido de avance, o sea del vector velocidad, éste marcador consiste en un círculo con tres lieneas que forman ángulos rectos. Cuando nos orientamos en sentido contrario al avance, el marcador cambia a un aspa rodeada por un círculo y tres lineas oblícuas. En esta situación, cuando aceleramos en sentido contrario al avance, estamos disminuyendo nuestra velocidad. Si acelerásemos demasiado incluso podríamos invertir el sentido de la marcha.

El problema que nos ocupa ahora consiste en disminuir la velocidad de aproximación a la vez que continuamos acercándonos a la Estación Kerbin. Si antes nos alineábamos en la dirección de la estación y acelerábamos (estirar del hilo) ahora haremos lo contrario. Nos alinearemos en sentido contrario a la estación y aceleraremos suavemente.

Para ilustrar esta maniobra emplearemos otra metáfora visual. La idea es meter una bola en un agujero pero no podemos tocarla, debemos hacerlo soplando. El papel de la bola lo juega el vector velocidad visto por detrás y tenemos que soplar (acelerar suavemente) dirigiéndolo hacia el agujero (al marcador rosa visto por detrás).

Nuestro problema ahora es que hemos frenado demasiado. 0,3 m/s para cubrir 1,5 km que todavía nos falta por recorrer es demasiado. Vamos a dar la vuelta y estirar del hilo un poco más.

Casi lo tenemos. Nos acercamos a buen ritmo a la estación en linea recta (marcador rosa y amarillo coinciden). Tan solo nos separan 500 y poco metros. Estamos preparados para pasar a la siguiente fase de acoplamiento fino.

Pero antes un último comentario. Si os fijais estos impulsos finales no los estamos haciendo con el motor principal sino con los propulsores 'O-10 "Puff" MonoPropellant Fuel Engine' lo que nos permite una mayor precisión en las maniobras. Además, funcionan con monopropelente lo que a estas alturas es una suerte debido a que habremos gastado casi todo el fuel.

Docking a lo grande en el Kerbal Space Program (III)

En las siguientes entradas vamos a analizar con detalle las cuatro fases del acoplamiento:

  • Igualación de planos orbitales
  • Aproximación orbital
  • Acercamiento e igualación de velocidades relativas
  • Acoplamiento fino

Igualación de planos orbitales

Esta es la situación de partida. La trayectoria azul es la nuestra y la amarilla es la de la Estación. Ambos planos orbitales están formando un cierto ángulo distinto de cero.

Para corregir esta situación tenemos que realizar una maniobra muy sencilla que consiste en realizar un impulso en el eje normal aplicado en cualquiera de los dos nodos (ascendente o descendente). Con la herramienta de planificación de maniobras es algo trivial.

Finalmente lo que hemos logrado que nuestra nave describa una órbita de menor radio dentro del plano orbital de la estación.

Aproximación orbital. El caso ideal.

Ojalá se pudiera apuntar hacia la estación quemar fuel como si no hubiese mañana. Desgraciadamente, cuando estás en órbita, las cosas no son tan sencillas.

Nuestro objetivo es conseguir que las órbitas de los vehículos interseccionen y que en ese punto coincidan estación y nave al mismo tiempo. Para ello, seleccionamos como objetivo a la estación (set as target en el mapa). Después, con la herramienta de planificación, elegiremos un punto de nuestra trayectoria y daremos un impulso en dirección progrado. Lógicamente, el extremo opuesto de la trayectoria se alargará hasta coincidir con la órbita de la estación. El punto donde situemos la maniobra no es importante de momento. Justo antes de que las órbitas interseccionen aparece una pareja de marcadores de color sobre las trayectorias.

Esto significa que cuando la estación esté en el marcdor de arriba, la nave se encontrará en el de abajo. Si colocamos el ratón sobre ellos nos indica la distancia que separará las naves cuando se encuentren en esa posición. En esta imagen, la distancia era de alrededor de 20 km, lo que está muy bien.

Aproximación orbital. El caso real.

Para ser sincero, es la primera vez que consigo una maniobra de aproximación tan precisa a la primera. Normalmente las órbitas son más elípticas o están inclinadas algunas décimas de grado, lo que hace que las maniobras tengan esta pinta más fea. Aquí todavía tenemos suerte y en una de las intersecciones las naves están cerca.

Habitualmente la situación es peor: todos los puntos de aproximación están muy alejados como los morados de la imagen. Esto se soluciona desplazando la herramienta de maniobra a lo largo de la trayectoria, o haciendo ligeros cambios en el impulso progrado/retrogrado.

Pero a veces, ni por esas. Los puntos de intersección permanecen alejados hagamos lo que hagamos. En esas situaciones (las más frecuentes) solo podemos hacer una cosa: esperar.

Pues si. Como sabemos, la velocidad de un cuerpo en órbita depende de su radio. Cuanto más cerca estamos de la superficie de Kerbin, mayor es la velocidad de la nave. En los puntos donde la órbita intersecciona, los vehículos van a la misma velocidad. Por ello, si recordamos el primer ejemplo, nuestra nave irá más rápida que la estación en la parte baja de su órbita. De este modo el cohete recortará distancia a la estación con cada revolución. Después de unos cuantos giros su distancia de mínima aproximación puede que sea del orden de los 20 km.

El método también funciona si se hace al revés. La nave en una órbita mayor que la estación. La única diferencia en este caso es que la que avanza más rápido es la estación.

Esta fase termina cuando las naves se encuentran a una distancia suficientemente cercana: entre 25 y 30 km. Cuando estén así de cerca iniciamos el acercamiento.

Antes de pasar a la siguiente fase queiero comentar el motivo por el que es necesario que la estación esté orbitando a más de 120 km de altura. A distancias menores no se pude hacer avanzar el timpo demasiado rápido, con lo que tenemos que ver pasar todas las revoluciones casi en tiempo real. Por encima de esa distancia se puede acelerar el tiempo lo suficiente para que los 300 giros que a veces son necesarios se hagan enseguida.

Segundo computer game en Python: Ofrenating

Ofrenating es el segundo juego en Python que hemos iniciado, para ello, hemos comenzado con la definición de la mecánica y la dinámica como ya hicimos con Burning City. Hemos empleado la plantilla para diseñar juegos como documento para compilar la información y compartirla. 

También seguimos con temas locales, en este caso la Ofrenda de Flores a la patrona de Valencia

 
Ofrenda de flores (Fuente:http://www.lovevalencia.com)


Así, el Theme es el siguiente: 

Como organizador de la ofrenda de flores de Valencia tienes mucho trabajo que hacer. Hay que ordenar la llegada de las comisiones, gestionar la cola de autobuses, hacer que las comisiones vayan hacia la plaza, hacer que dejen las flores en el sitio adecuado y asegurarse de que todos vuelven a casa. Todo ello, sin dejar ninguna comisión fuera de juego ni hacer que se enfaden por esperar demasiado. Para ello, debes gestionar en tiempo real a los autobuses y las comisiones para que cumplan su función. Selecciona con el ratón a los autobuses y las comisiones y dales las órdenes adecuadas para cumplir la misión. Las órdenes se dan seleccionando de un menú contextual las posibles opciones, que dependen de la zona en la que se encuentren los autobuses y las comisiones. 

La dinámica del juego es del tipo razonamiento espacial:

Impedir que se choquen las comisiones, que los autobuses se acumulen o que las comisiones no dejen las flores en el lugar adecuado.

La mecánica es similar a la de los juegos de point & click como el “Airport Madness” aunque con dos elementos: los autobuses y las comisiones en lugar de sólo uno. 
 
Airport Madness
Al comenzar la programación de Ofrenating hemos descubierto algunos problemas que no tuvimos con Burning city: 

  • El primero es que Burning city era tremendamente sencillo, de modo que con un boceto de la idea ésta podía plasmarse en la programación. Esto no sucede con Ofrenating. Los bocetos sencillos que acompañan a la idea original no dan suficiente información a la hora de programar, de manera que hace falta volver atrás y definir en detalle los elementos del juego y sus funciones.  
 
Boceto demasiado sencillo de Ofrenating. Vale como concepto pero no para implementarlo en la programación
  • El segundo de los problemas ha tenido que ver con el movimiento de los elementos del juego en la pantalla. Reaprovechando código, hemos comenzado por mover los elementos del mismo modo que en Burning city. Esto es, añadiendo x píxeles a la posición del sprite. El inconveniente radica en que Pygame emplea para mover el objeto, las coordenadas del pixel superior izquierdo. Mientras el movimiento es lineal no hay problemas, pero para giros (como es el caso) es distinto. Así que, tras darle algunas vueltas: 
Para el giro respecto a sí mismo hemos reutilizado esta función que permite rotar respecto al centro, manteniendo centro y tamaño: 

def rot_center(image, angle): 
"""rotate an image while keeping its center and size""" 
orig_rect = image.get_rect() 
rot_image = pygame.transform.rotate(image, angle) 
rot_rect = orig_rect.copy() 
rot_rect.center = rot_image.get_rect().center 
rot_image = rot_image.subsurface(rot_rect).copy() 
return rot_image 
  
Para mover los Sprites tomando las curvas hemos empleado getRect para conocer la posición del Sprite y, posteriormente, hemos modificado la posición del centro del Sprite:

self.image = image 
self.rect = self.image.get_rect() 
self.rect.centerx= INICIO_BUS[0] 
self.rect.centery = INICIO_BUS[1] 
(...) 
self.rect.centerx = self.rect.centerx + self.vel[0] 
self.rect.centery = self.rect.centery + self.vel[1] 

El movimiento y el point and click ya están implementados, pero hemos de volver al documento de definición para aclarar qué es lo que hace exactamente cada Sprite en función de su posición antes de volver al código. 




sábado, 30 de mayo de 2015

Fantastic Maps. Maps of real and fantasy worlds

Juanma me ha pasado el enlace de esta página donde podréis encontrar consejos para hacer mapas tanto de paisajes como de interiores. Muy útil tanto para diseñar juegos como para ambientarlos.

La página se llama Fantastic Maps y, como curiosidad, os diré que el autor de la misma es quien ha realizado el mapa Oficial de Juego de Tronos, no solo los mapas del mundo completo sino mapas parciales de ciudades y áreas descritas en la novela pero nunca antes plasmadas en mapas.

Incluye un apartado de tutoriales y otro sobre herramientas recomendadas, que sin duda usaré para futuros intentos de juego.

Mapa oficial de Juego de Tronos

Docking a lo grande en el Kerbal Space Program (II)

Ya tenemos el embrión de nuestra Estación Kerbin en órbita. Es hora de hacerla crecer añadiendo otro módulo con más puertos de acoplamiento.

La estación

He diseñado la estación de forma que permita el crecimiento añadiendo otros módulos iguales en caso de que necesitase pueros adicionales. También vamos a subir un remolcador espacial por si nos hiciese falta reconfigurar algún módulo de la estación.

Aquí se puede ver el detalle del remolcador. No es más que unos depósitos de monopropelente con impulsores RCS, focos, electricidad y demás parafernalia. Dado que su misión es desplazarse cerca de la Estación no hace falta que tenga motores con fuel y oxidante.

El conjunto se pone en órbita con un montaje en espárrago igual que el anterior.

La órbita de partida

Esta información que MechJeb proporciona durante el ascenso es muy útil. Sólo por ella vale la pena instalarse el mod.

Alcanzamos una órbita estable

La situación habitual de partida es esta: queremos acoplar dos naves que orbitan en planos distintos, que se mueven a velocidades distintas y que están lejos una de otra.

La maniobra de acoplamiento completa

Uno podría pensar que con apuntar nuestro cohete hacia el objetivo y acelerar sería suficiente. Pero no. La dinámica de los cuerpos en órbita hace esta aproximación inviable. La maniobra de acoplamiento deberá constar de cuatro fases:
  • Igualación de planos orbitales
  • Aproximación orbital
  • Acercamiento e igualación de velocidades relativas
  • Acoplamiento fino

Igualación de planos orbitales. Pues eso. Tenemos que conseguir que la órbita del cohete esté en el mismo plano que la de la estación. Es una maniobra muy sencilla.

Aproximación orbital. Con esta maniobra queremos que las órbitas de los vehículos interseccionen pero cuando ambos lo más cerca posible. Las condiciones iniciales de las naves influyen de forma determinante en la complejidad de esta fase.

Acercamiento e igualación de velocidades relativas. En una órbita aproximadamente circular, la velocidad de un cuerpo depende del radio de giro (la altitud para entendernos). Por tanto, la velocidad de las naves se igualarán cuando estén recorriendo la misma órbita. En esta fase trataremos de lograr este objetivo.

Acoplamiento fino. Cuando las naves estén cerca, es momento de encender el RCS y activar el "Docking Port Alignment Indicator" para acoplarnos de una manera suave. No queremos entrar como un elefante en una cacharrería.

En entradas posteriores veremos cada una de estas fases con detalle.

Docking a lo grande en el Kerbal Space Program (I)

Es que el docking es muy difícil.... es que no me sale.... ¡Nenazas! Dejad de lloriquear y mirad cómo se hace a lo grande.

El docking, también conocido como "acoplamiento" en nuestra amada patria Hispanistán, consiste en la unión de una nave a otra que ejerce de remolcadora o nodriza. Dicho así no parece difícil, pero si uno de los vehículos está orbitando a 150 km de la superficie de Kerbin y el otro viaja a una velocidad de 2000 m/s, la cosa se complica un poco.

Consideraciones previas

En primer lugar uno debe disponer de dos naves (lo intenté muchas veces con una sola pero inexplicablemente nunca me acoplaba). Además, ambas, deben disponer de una pieza llamada "docking port" del mismo tamaño y colocadas en una posición que permita su unión física. Es muy desagradable descubrir a mitad de un lanzamiento que se te olvidó colocar el docking port.

Es muy conveniente instalar el mod "Docking Port Alignment Indicator" ya que es de gran ayuda en las delicadas maniobras de aproximación. La alternativa es acoplar las naves a ojo de buen cubero. Yo mismo lo he hecho alguna vez, pero no es recomendable.

Aunque parezca un contrasentido, es mucho más fácil hacer prácticas de acoplamiento en la órbita de Mun que en Kerbin. Esto se debe a que las naves son mucho más pequeñas y fáciles de controlar. Además las velocidades de los vehículos son un orden de magnitud menores que en Kerbin, lo que facilita el manejo de los motores y la maniobrabiidad en general.

Pero como soy muy machote, para practicar, vamos a ensamblar una estación espacial en Kerbin... Con un par!!

Primero: la estación

Vamos a montar la "Estación Kerbin". Consta de un módulo para el personal; otro módulo para las baterías, los paneles solares y unos depósitos de monopropelente pequeños; y como guinda la cúpula desde la que se ve el espacio y se puede pilotar la estación.

Nótese el módulo con los puertos dispuestos en una estructura con brazos en cruz. En la parte de abajo hay un quinto puerto que permitirá el crecimiento de la estación en el futuro. He colocado muchos focos de forma que iluminen los puertos cuando no hay luz solar. Parece una tontería, pero es un detalle importante cuando estás allá arriba.

Segundo: el cohete

La estación se pone en órbita con un montaje en espárrago (el espárrago es una técnica de construcción de cohetes, malpensados). La idea de este diseño es que el combustible se consuma primero de los depósitos más externos para, cuando estén vacíos, desprenderse de ellos y aligerar el conjunto.

Con este diseño se consigue poner en órbita naves moderadamente pesadas de una forma rápida y eficiente.

Tercero: puesta el órbita

Tras un ascenso sencillo, llegamos a la órbita deseada y colocamos allí la estación. He elegido una órbita que esté en el mismo plano que Mun ya que espero algún día utilizar esta estación como trampolín para futuras excursiones munares.

En el recuadro rojo se ve que estamos en una órbita aproximadamente circular de 148 km de radio. Este detalle es muy importante ya que, si colocamos la estación a menos de 120 km, no podremos hacer "time warps" a velocidad suficiente. De este modo las esperas serán demasiado tediosas en las operaciones de acoplamiento.

Finalmente, he colocado el depósito en uno de los puertos laterales para permitir el crecimiento de la estación. Hela aquí en toda su gloria.

Como podéis ver, los mods que estoy utilizando son el "Docking Port Alignment Indicator" y el "MechJeb". Este último sólo lo utilizo para obtener información dirante el vuelo. En realidad es un piloto automático, pero nunca lo he utilizado.

Ya está todo preparado para el docking.

viernes, 29 de mayo de 2015

Operación Mun (I)

Ya sabemos hacer cohetes reutilizables. Vamos a darles uso. El objetivo es realizar la misión de explorar Mun.

La haremos en dos fases: en la primera haremos la órbita y recopilaremos datos; en la segunda tocaremos tierra y recogeremos más datos. En esta entrada hablaremos de la primera fase.

El primer paso consiste en construir un cohete pequeño capaz de llegar a la luna desde una órbita baja en Kerbin cargado de instrumentos para recopilar toda la ciencia que podamos. La nave lleva duplicados el "SC-9001 Science Jr", el "Mystery Goo Containment Unit", el "PresMat Barometer" y el "2HOT Thermometer" ya que podemos tomar datos en las órbitas alta y baja de Mun. En realidad, no podemos medir la presión y la temperatura sólo se puede leer en la órbita baja. Aún así he incluído los instrumentos por completitud. A este cohete le añadiremos una fase que se encargará de poner el conjunto en órbita.

Es momento de comentar que he instalado un mod: el famoso (o infame, según algunos) MechJeb. Este addon me muestra una información vital durante el ascenso. Durante el vuelo puedo tener a la vista la altitud del cohete, su velocidad, la altitud del apogeo (o apoaxis) y el tiempo que falta para alcanzarlo.

Alrededor de los 10.000 m inciamos el llamado giro gravitatorio (inclinar el cohete a 45 grados en dirección este), que nos permite aprovechar la rotación de la tierra para alcanzar la órbita de manera más aficiente. Debo mencionar que en el diseño de la nave incluí dos grupos de acción. Con la tecla "1" puedo conectar o desconectar el motor principal y con la tecla "2" puedo desconectar los motores auxiliares. La tecla "3" la reservo para otra cosa que explicaré más adelante.

Durante el ascenso voy desconectando el motor principal, lo que me permite ahorrar mucho fuel. En caso contrario el efecto de frenado del aire haría que quemase un combustible muy valioso cada vez que alcanzase la velocidad límite en la atmósfera. Cuando la velocidad baja por debajo de 100 m/s conecto el motor un poco y lo paro enseguida, realizando la subida con los auxiliares exclusivamente. A la altitud de 23.000 metros ya no hay suficiente aire para los motores auxiliares por lo que los apago y conecto el principal.

Cuando el apogeo alcanza la altitud de 70.000 m corto potencia y espero a que queden unos 20-25 segundos para alcanzarlo. Oriento en dirección pro-grado la nave y conecto el motor principal.

El objetivo de esta maniobra es elevar la altitud del perigeo (o periaxis) por encima de 70.000 m para conseguir la órbita. Esto lo voy controlando gracias a MechJeb. Al diseño original de la nave (inspirado en el de Scott Manley que vimos en el post anterior) añadí depositos de monopropelente y los motores "O-10 MonoPropellant Engine" que me permite realizar los ajustes finos en las órbitas. El ancendido y apagado de estos motores lo he asignado a la tecla 3. De esta forma conseguimos una órbita fea, pero estable.

El paso siguiente es hacer la órbita más circular (esto no es necesario, pero queda bien) y hacer coincidor los planos orbitales de Mun y de la nave, que difieren en 0,4 grados (tampoco es necesario, pero no hacerlo es de chapuceros).

El siguiente paso consiste en desacoplar el satélite e iniciar las maniobras para la reentrada de la fase 1 reutilizable.

Programamos una maniobra que lleve la trayectoria de la nave cerca del Centro Espacial para que la recuperación sea más barata.

Ya tenemos por fin la "sonda munar" en órbita alrededor de Kerbin preparada para iniciar su viaje. Pero eso será otra historia que contaremos otro día.