Both of us came to Technica with minimal experience in using Unity, but when we saw the Oculus headsets we knew we had to do a virtual reality hack. Jessica had been interested in VR ever since she worked with augmented reality in her internship, while I wrote a book set in a future where nearly everyone lived in virtual reality. Besides,virtual reality. We cast around for the coolest thing we could do with virtual reality (that was also somewhat feasible) and landed on viewing space. There's just no way to properly experience the vast expanse of space in 2D and feel how tiny our little planet is in the grand scheme of things.

What it does

We decided this program needed two parts: explorer and survival mode. In explorer mode, the user can start and stop at will and, in the beginning, see the planets frozen in a straight line. In survival mode, the user wants to get from planet to planet, dodging asteroids along the way. Currently, our program is basically explorer mode with some asteroids added in preparation for survival mode. The player can fly through the solar system in its true proportions and now and then will see an asteroid. To help the player navigate, there is a minimap that shows the player's location compared to the sun. The player navigates through the solar system by using the arrow keys. The space bar allows the player to come to a complete stop. It also starts the planets' orbits and rotations.

How we built it

We used Blender to create our planets and Unity to put the whole program together. The images for the planet's textures were taken from NASA. In Unity, we added each planet, again using NASA to get distances and sizes (though we didn't include the orbits' tilts because it would be too difficult to find the planets), plus Earth's moon and a rotating sun. Then we made the camera controllable so that it could fly through. We chose to make the keys change the camera's acceleration rather than speed so that it would feel like the player was flying through space. After that was done, we added other touches, like freezing the planets in the beginning and the minimap. We started on adding the asteroids, scattering them around the universe randomly.

Challenges we ran into

It was difficult to figure out how to use Blender and Unity in the beginning simply because we were so inexperienced, but after muddling around for a couple of hours we got the hang of it. The hardest component to add was the minimap. We struggled to figure out how to orient the camera so that the entire universe could be seen in a reasonable time (not helped by our lack of experience).

Accomplishments that we're proud of

It was extremely satisfying to watch the planets orbit the sun and to watch them come in great detail toward us, and pretty cool to fly out to Saturn and barely be able to see the sun, so we're proud of the work we did to make it proportional. Making the minimap work took the most time and effort, so that's our proudest accomplishment. Watching the whole program come together was very exciting, however, and a lot of fun.

What we learned

In addition to learning how to use Blender and Unity, we learned some surprising facts about planet sizes. For example, Saturn's rings double the planet's radius. I also learned how to use C#, which was used to write our Unity scripts, and a bit of Javascript. We also learned that pulling an all-nighter is really hard.

What's next for SpaceEx

There are a lot of features we want to add. We definitely want to add an asteroid belt, the moons for all the other planets, and maybe some iconic comets (Halley's). It would also be cool to get the stars correct or add accurate cloud motion to the planets (especially Earth), but that's less of a priority. For the minimap, we'd like to add all the planets to make it easy to try to get to, say, Saturn, even in orbit. In Exploring mode, we want to make that even easier by letting the player select a planet, and/or by showing the elliptical orbits. We'd also like to include more information about the planets. A top priority is implementing Survival mode, where the player gets from planet to planet while dodging obstacles and completes missions on each planet. This game has a lot of potential to be fun without sacrificing educational value and we're excited to develop it more.

Built With

Share this project: