Computer Science

Shuttle Crash – NASA International Space Apps Challenge Responce

Last weekend (20th-21st) was the NASA International Space Apps Challenge – the galaxy’s largest Hackathon.  Over 9000 people took part in the event from all across the globe, including myself.

The night before the event, Andrei Zisu and I were looking through the challenges (of which there were very many) trying to decide which one to do.  Eventually we decided on a response to ‘Reach For The Stars’ in the form of a Space Shuttle Flight Simulator game.  My preferred programming language for something like this would be Objetive-C (to make an iPhone app) but Andrei insisted on JavaScript so it could be completely cross platform compatible, resulting in me taking a crash course in JavaScript that night.

The idea of the Space Shuttle Flight Simulator (ironically dubbed Shuttle Crash) was to get the younger generation more interested in NASA and Physics.  They would be given a distance that the space shuttle had to travel from the International Space Station back to Earth, and would initially be able to change a parameter of the Space Shuttle to allow them to travel this distance.  As the game progressed, more and more parameters would become available until the game structure looked something like below (which used a lovely user interface – pairs of keys on the top alphabetic line of your keyboard adjusted individual variables – e.g. ‘q’ decreases Ship Length, ‘w’ increased it, and ‘e’ and ‘r’ did the same for Wing Span etc.

Shuttle Crash - Game Play Photo - Shows shuttle at IIS about to launch to Earth with parameters along the top.
Shuttle Crash – Nasa App Challenge

Having arrived at the department building (it was been held in our Computer Science building) and having picked up our awesome T-Shirts, we got to work choosing a JavaScript game engine that would allow us to make a canvas to work on.  We finally selected JSGameSoup because it had everything we needed (event management, entity management, sprites, collision detection, a state machine and of course canvas functionality), or so we thought, since we realised near the end of the challenge that we were going to have to program parallax effect ourselves!

Once we’d selected JSGameSoup, we worked through until about half-past midnight (albeit with numerous breaks for pizza, sandwiches, tea/coffee, nerf gun fights and for sending amusing messages via the live video feeds to other locations), by which time we had most of the basic functionality up.  During the evening we also had a Google Hangout with Tallahassee (organised via messages on sheets of paper held up to the live video cameras) which was awesome.

On Sunday Morning, we had only fractionally over 6 hours to finish the project (having started quite early).  Various problems (such as finding appropriate images of the IIS, flipping the writing on our shuttle, introducing a state machine and adding more fire to the Shuttle’s exhaust) sucked up way more time than we thought.  We also found out we had to give a presentation on our project, which we used as an opportunity to show how more fire and explosions would, when implemented, make our game much more fun, with a 5 second clip of a rather fiery video!

We did get a demonstrable game for the presentation, which we are going to keep on working on, probably after exams or at next years event.  All the code is open source on GitHub, and you can view the original project page here on the Space Apps Challenge website.  You can also play the game here.

Unfortunately, we didn’t come in the top 3 at the event, partially because our project wasn’t all that ‘eye-catching’ because we concentrated more on the back end rather than the front end.  Perhaps that’s something we should do differently next time.  Anyway – some of the other projects were pretty good and equally deserving – one group made an incredible cross-platforms app to help you spot the IIS.  Whether it was the social aspect, nerf-gun aspect or the creative aspect that I most enjoyed, I can’t wait for next year!

Leave a Reply

Your email address will not be published.