The IGOAL at NASA’s Johnson Space Center has been around since the mid 1980's. During that time, we’ve seen graphics progress from raster lines to near realistic renderings, and have been a part of the technology all the way. Over the years, we’ve built up a huge data base of assets, all of which needed to be updated for each leap in technology. 4096 Color look-up tables transitioned to Gouraud and Phong shaders. Texture maps and eventually normal maps were added. With the increase in processing speed and memory, additional details were added to existing models. Eventually, everything combined to create the stunning animations of space vehicles we produce today.
When the International Space Station Program approached the IGOAL to create educational applications for science concepts, the original thought was, “Great! We’ve got all the assets, it’s just a matter of putting them together and telling the story interactively.” At the time we had written our own rendering and modeling software and a few PC based applications for engineering purposes. The venture into a mobile market that focused on story telling at the 8th grade level proved quite a challenge.
Space Station research is very important to the world. Unfortunately, conveying these research concepts can be very difficult. Currently, web pages are used with descriptions, some videos, and some images. The text can be technically overwhelming to the general public and students, resulting in fostering a disinterest in the subject, rather than a desire to learn more. We had to work to overcome these hurdles. How could we make highly technical science understandable and interesting for our target audience? How could we do it with a small team of 8 and complete it in under a year, even with other obligations?
Our solution was to use as many of the assets in our database as possible and put the science into a game format using a game engine, rather than our home grown code. Using a game engine allowed us to easily deploy across platforms and take advantage of the work of many other programmers through the engine itself as well as add-ons from the asset store.
The game format provided a relevant story telling medium for our demographic.
In the game, you assume the role of a new astronaut on their first mission to the ISS. Your assignment is to help a fellow astronaut set up and run the plant growth experiment. Through tasks that mimic some of the steps astronauts have to do to set up the actual plant growth experiments, the user discovers the science behind growing plants in space without having to read pages of text. Once the experiment is ready, a mini-game is available for growing plants in space and assembling a salad for the crew. The size of the salad you grow determines your score. At any time in the game, you can choose to wander the ISS and discover fun facts and achieve mission patches.
The game plays in about an hour and a half if all the patches are earned. The main task line can be finished in an hour, which makes it work for a classroom lesson. Additional technical content was provided by way of links to more information and curriculum as well as some “do this at home” discovery points.
Re-using our existing assets proved to be a challenge on mobile platforms. One of the goals for our game development from a production standpoint was to maximize re-usability of both assets and code. A framework was created for the code that would make it easy to be reused for future Space Science Investigation (SSI:) games, not only to reduce the cost of development, but to provide continuity for the user.
Using our existing model assets resulted in less than 10 fps. The models were riddled with artifacts accumulated over the years. The geometry was vertex heavy and required huge amounts of draw calls. The solution was to keep what we could and rebuild what we couldn’t. Thankfully, instead of having to build models from blueprints and drawings, we now had some CAD models to start with. By removing unused parts and hidden geometry, the vertex count dropped from several million to less than 500K.
Draw calls were still an issue after the initial re-build. The original models had textures for each piece, some as tiny as a bolt, and many duplicates. The solution was to take advantage of atlases. Modules that make up the station now use a combination of common atlases and unique atlases. Common atlases include textures that are used in several of the modules, eliminating duplication. Unique atlases are module specific. When the final rebuild was complete, draw calls had been reduced to around 200 from over 1500 in the worst case scenario. The end result was a significant boost in performance and frame rates in the 60 fps range.
There are two other SSI: applications planned, depending on the success of SSI: Plants. In SSI: Human Research Program, you’ll discover the effects of microgravity on the human body. In SSI: Cells and Microbes, you’ll discover just what happens to things on a microscopic level.
This is a relatively new venture for our group at NASA, but hopefully one that will grow to new heights.