# Sobre el proyecto

Empecé Spacejunk como un proyecto para mi tiempo libre en 2005, luego de leer "A lo marciano" de Isaac Asimov. Inicialmente, quería hacer un juego sobre viajes de grandes distancias en un espacio con campos gravitacionales, compitiendo por juntar basura y usando distintas herramientas para facilitar la navegación.

En algún momento durante 2006, me enteré de la existencia de un concurso de videojuegos a nivel nacional en Uruguay (donde vivo). La industria de los videojuegos era incipiente, así que el concurso era una manera novedosa de probar la aceptación de Spacejunk.

Durante los preparativos para el concurso Fernando y Mario se unieron al proyecto aportando imágenes y sonido. Luego de un largo y estresante período, el juego fue inscripto sobre la fecha límite, y ganamos el segundo puesto!

Luego el proyecto quedó archivado un tiempo hasta que me decidí a publicarlo tras hacerle algunos retoques. Entre otras cosas cambié la historia, originalmente influenciada por "A lo marciano", al problema ecológico de la basura en el espacio, que descubrí luego de hacer el juego y me pareció mucho más interesante que la pieza de ficción que había escrito.

Mis agradecimientos para Fernando y Mario quienes me acompañaron con su trabajo y por su consentimiento para publicarlo. También debo agradecer a mi novia Lucía y a mis padres por su apoyo durante todo el proceso de creación de Spacejunk.

## Algunas notas sobre el diseño y la implementación

La primera funcionalidad implementada fue la simulación física. En el primer intento, el cálculo más simple de posiciones paso a paso no funcionó porque los errores numéricos hacían que los objetos giraran en espirales en lugar de elipses alrededor de un planeta. Tras algunos intentos más pude obtener elipses estables pero el método era demasiado costoso para ser calculado en cada paso de animación. La solución final fue calcular la posición de los objetos cada cierta cantidad de pasos de animación, e interpolar las posiciones de los objetos entre las posiciones computadas.

Luego de dominar la simulación física, me volví hacia el problema de cómo presentar el universo en la pantalla. Era evidente que iba a necesitar una vista limitada que se pudiera desplazar en un espacio más extenso debido a las grandes distancias en relación al tamaño de los objetos. Luego de jugar un rato también fue claro que el universo necesitaría ser observado a distintos planos de acercamientos para realizar distintas tareas (e.g. capturar una basura o pasar de la órbita de un planeta a la de otro).

Así que necesitaba una vista móvil. Pero Einstein, ¿qué cuerpo debería seguir? ¿Hay algún marco referencial ideal? ¿Qué tal si seguimos a la nave? Ese es el objeto que el jugador controla, no? Bueno, sí ... pero no es tan buena idea. Cuando se sigue una nave en órbita alrededor de un planeta, el planeta parecerá girar alrededor de la nave, todo lo demás que gire alrededor del planeta parecerá moverse por caminos caprichosos difíciles de entender. La solución en Spacejunk fue brindar la capacidad de cambiar el objeto a seguir. Este objeto se llama el Punto de Vista. En un momento dado, el mejor punto de vista puede ser un planeta, y en otro momento el Punto de Vista más conveniente puede ser la estrella alrededor de la cual gira el planeta.

Luego, el sistema para trazar la trayectoria de la nave fue desarrollado. Quise ofrecer más herramientas para asistir la navegación, pero resultó que trazar la trayectoria de la nave resolvía bastante bien el problema de capturar la basura mientras le dejaba al jugador algún margen para pensar. Trazar la trayectoria presentaba de vuelta el problema de seleccionar un marco de referencia. El camino de la nave visto desde un planeta cercano podría lucir como un círculo o elipse,

pero si se lo observa desde una estrella central podría lucir como una envoltura sinuosa.

Dada nuestra solución para la vista móvil, era muy natural trazar la trayectoria como se vería desde el Punto de Vista. Esto permite capturar basura seleccionándola como Punto de Vista y haciendo que la trayectoria de la nave la intersecte.

El sistema de puntuación está inspirado en el de Maelstrom, un juego de Andrew Welch. Spacejunk, sin embargo, intenta recompensar las misiones realizadas con economía de acciones y combustible más que el juego rápido.

Aquí hay algunas ideas que no fueron adoptadas para la versión más reciente del juego.

- Tener algunos objetos capaces de reciclar basura. Para completar una misión, el jugador debe enviar basura a estos recicladores lanzándola a través del espacio. Esto podría involucrar decisiones interesantes ante la presencia de naves competidoras, que podrían interceptar el envío y reclamarlo para sí mismas. Como hasta ahora no hay naves competidoras, esta funcionalidad no tiene mucho sentido.
- Darle a la nave un rayo atractor/repulsor. Esto estuvo implementado hace algún tiempo, pero complicaba la interfase del juego y no le aportaba gran cosa a la experiencia de jugarlo.
- Tener algunas estaciones de combustible de las cuales el jugador pueda cargar el tanque. Para obtener el combustible, la nave debe permanecer cerca de la estación sin chocar con ella. No es una maniobra fácil. Podría valer la pena experimentar algo como esto.
- Tener otras naves competidoras, que estén controladas por la computadora o por el jugador. Este es un emprendimiento difícil y no intentado.

Facundo Domínguez, Junio, 2009.