# SpaceEngine

SpaceEngine (también conocido como "Space Engine" y abreviado "SE") es un programa que actualmente es pagado que se encuentra en venta en la conocida plataforma Steam y que por bastante tiempo antes fue gratuito, este programa es de simulación intergaláctica en 3D y motor de juego desarrollado por el astrónomo y programador ruso Vladimir Romanyuk. Usando catálogos astronómicos reales y generación procesal, crea un planetario en tres dimensiones que representa al Universo completo. Los usuarios pueden viajar a través del espacio en cualquier dirección o velocidad (limitado a 100 megapársecs por segundo), y hacia adelante o atrás en el tiempo. SpaceEngine se encuentra actualmente en estado Beta, y es un freeware para Microsoft Windows. Utiliza un generador pseudo-aleatorio de números para crear procesalmente cualquier clase de sistema planetario, nebulosa o galaxia, entre otros objetos celestes.
Una de las características más destacadas del programa es su exactitud científica. Los objetos catalogados están basados en datos reales, mientras que los objetos procesales son construidos respetando dichos catálogos y usando algoritmos de generación realistas. Las propiedades de los objetos, como su temperatura, masa, radio, etc., son presentados al usuario en una ventana de información sencilla. Los usuarios pueden observar objetos tan pequeños como una nave espacial y tan grandes como los cúmulos galácticos. SpaceEngine incluye miles de objetos reales, incluidas estrellas del catálogo Hipparcos (con más de 120.000 estrellas), galaxias del Nuevo Catálogo General (con más de 7.800 objetos), algunas nebulosas bien conocidas, además de todos los Exoplanetas conocidos (hasta ahora más de 1.800) y sus soles.

## Navegación

Al utilizar SpaceEngine, el usuario puede explorar libremente el universo utilizando el teclado y el mouse, incluyendo las teclas WASD. Mediante una combinación de estos comandos, el usuario puede volar libremente a donde desee. Además, puede realizar un viaje específico a cualquier objeto en el universo del programa al seleccionarlo y elegir la opción Ir al objeto seleccionado, con lo cual viajará hacia el mismo automáticamente. Todos los comandos pueden ser modificados en la configuración.
Existen tres modalidades diferentes para el control de cámara. El modo Libre permite un movimiento sin inercia, y el usuario puede especificar una velocidad constante para viajar cuando la tecla de navegación esté presionada. Por otra parte, los modos Nave Especial y Aeronave activan la inercia, y el usuario deberá especificar una aceleración en lugar de la velocidad. Los usuarios pueden viajar a la velocidad que deseen sin ningún límite establecido en la física. La única diferencia entre ambas modalidades es que en el modo Aeronave, la dirección del movimiento debe seguir la orientación de la cámara mientras que el modo Nave Espacial permite una navegación más libre.
Los objetos pueden ser seleccionados tanto haciendo clic sobre ellos como buscándolos y seleccionándolos en la ventana de búsqueda.

### Wiki y localizaciones

Al programa tiene su propia base de datos "wiki", la cual proporciona información detallada sobre cada objeto celeste, permitiendo así a cada jugador darle un nombre personalizado a cada objeto junto con una descripción del mismo. Además, tiene otra propia base de datos en donde el jugador puede guardar las localizaciones de los objetos deseados junto con el tiempo en el que son observados para que sean guardados, de tal manera que sean fácilmente cargados en el futuro.

## Generación procesal

El objetivo principal de SpaceEngine es conseguir realismo científico máximo y la capacidad de reproducir cualquier tipo de fenómeno astronómico.
Este utiliza tanto catálogos estelares como generación procesal para recrear el universo. El uso de la generación procesal permite tener un universo explorable mucho más grande que en otros programas similares: millones de galaxias pueden ser exploradas, cada una con billones de estrellas y trillones de planetas y lunas.
SpaceEngine puede generar actualmente cualquier tipo de:
* Estrella.
* Sistema planetario, incluyendo varios tipos de planetas, lunas, asteroides, etc.
* Superficie planetaria, incluyendo montañas, cráteres, desiertos, mares, lagos, ríos, casquetes, volcanes, magma, etc.
* Nebulosa.
* Galaxia.
* Cometa y planeta en evaporación.
* Aurora.
* Agujero negro.
Las superficies de cualquier planeta terrestre son generadas utilizando un algoritmo basado en el ruido fractal. Todas las generaciones del programa están basadas en la misma semilla aleatoria, lo cual produce el mismo universo simulado en cada una de las computadoras en las que se ejecuta el programa, haciendo así posible que los usuarios compartan sus descubrimientos y localizaciones favoritas.
De igual manera, el programa analiza los datos de cualquier cuerpo que ha sido introducido en su base de datos y los completa para hacerlo realista. Esto quiere decir que, si se conoce la masa de un planeta mas no su radio, el programa seleccionará un radio automáticamente que esté dentro de los parámetros esperados para el tipo de planeta que sea seleccionado, y así cumplir con la densidad esperada. De igual manera, ciertos fenómenos como el anclaje gravitacional, la temperatura, el tipo de atmósfera, entre otros; cumplen con un gran realismo científico gracias a esta característica.

## Desarrollo

El desarrollo de SpaceEngine comenzó en 2005, con la primera versión pública lanzada en junio de 2010. El programa está escrito en C++. El motor utiliza OpenGL como su API gráfica y usa shaders escritos en GLSL. Su última versión es la 0.990.42.1830. Existen pruebas beta que permitirán que la próxima versión sea la más estable.
A medida que el desarrollo de una versión nueva progresa, el desarrollador comparte su estatus regularmente. Adicionalmente a la creación de la modalidad del programa para planetarios, el desarrollador ha expresado su intención de crear juegos usando este motor como base, y eventualmente comerciar con la licencia para que pueda ser utilizado por otros desarrolladores.
El objetivo a largo plazo es la recreación del Universo y la totalidad de todos sus fenómenos conocidos. Actualmente se observan algunos como vulcanismo, huracanes, planetas en evaporación, coronas estelares, entre otros; pero están planificados también mareas, lluvias de meteoros, colisiones de asteroides y planetas, movimiento estelar y galáctico, y muchas otras más.

### Addons

SpaceEngine es fácilmente modificable y permite una gran variedad de Addons. La comunidad online ha creado muchos addons para el programa, incluyendo texturas de alta resolución, traducción a varios idiomas, modelos de naves espaciales, shaders modificados, modelos de galaxias, efectos de destellos en los lentes de la cámara, y sistemas planetarios de ficción. Hay más addons disponibles en los foros de la página oficial del programa.