Back to Posts

Lessons Learned Running a Space Simulator

This is a repost of an article I wrote years ago that has since been removed from its initial location.

I recently attended a space simulator at the Christa McAuliffe Space Center in Pleasant Grove with some friends after hearing about the amazing experience they had years earlier as they piloted their own space ship. They flew across the galaxy, shot lasers at enemy ships, and were even boarded at one point during their simulated “Star Trek”-esque adventure. These are things of dreams! I had to go. A few quick phone calls later and we are suiting up for our space sim. Our mission was simple: escort a new secret weapon to a testing location and see if it works. What could possibly go wrong? Right off the bat, our warp engine was damaged by what we would later learn was a rogue member of our crew aboard our ship (non-player character which added to the story). The ships we were to escort left us to go to the testing location while we repaired our ship. Finally warping to the rendezvous spot, we found our allies with only minutes of life support left, having been crippled by an enemy ambush minutes before our arrival. Our options: leave our allies and pursue the enemy or stay behind rescue the crew of the ship. The clock was ticking. Eight minutes on a timer seems like eternity, but when you are juggling the fake lives of your allies in your hands, the pressure was immense. We asked our onboard computer for technical options (voiced and disguised by an actor running the entire simulation), things like how strong our tractor beam was, how quickly could we travel back to the base we embarked from earlier in the mission, etc. All this time, epic music ensued, we were intercepting messages from the enemy, red lights flashing above us as we were in Alert condition 1. As time drew close to 1-minute left, I knew action had to be taken. Against the judgement of my first officer, I (playing the role of the captain) asked our crew to tractor beam our ally ship warp back to base at 9.54 warp speed – a speed destructive enough to rip our ship apart. My heart beat as the time to death counted down. I smirked, realizing I was leading my crew in the obligatory reckless fashion as a certain James Kirk might. In the end, we were able to safely make it back, saving our allies. We quickly repaired damaged systems and shot off towards the enemy, eventually sneaking away the weapons they had stolen mid space transfer from one enemy ship to the other and returned home towards base barely escaping the missiles chasing after us from the enemy. I walked off that simulator 2.5 hours after starting with in insane sense of euphoria! We had just saved lives, fought off enemies, snuck up and spied on interstellar conversations, and above all, avoided certain death. I had to do it again.

That same night, I ran home and did a quick Google search. After a bit of digging, I came upon the website for the software this simulator uses called Thorium. I couldn’t believe my eyes! I downloaded the software and dove right into the docs which initially were not built out. Thorium for the last year or two has been utilized among small tight-knit circles. Those who knew the software had been running simulations forever and knew it inside and out. I quickly found a link to a Discord server dedicated just to Thorium and started blowing up channels with questions. After an incredibly welcoming group introduced me to the basics, I decided the best approach to learning would be to teach. After playing with a specific screen or role of the software, I wrote up the missing documentation page for it. I was so enthralled with this project I spent every waking hour not at work on learning the software behind the experience. It is vastly complicated, allowing for almost any combination of experience to be developed. The software is incredibly modular allowing for crews as small as 2 up to 20 if you’d like. I picked up the software quickly, learning its capabilities and limitations. Thorium does so much, and at the same time, allows what we call a “Flight Director”, or the actor behind the scenes, to really control all aspects of the simulation. I quickly asked a friend to come up with a mission we could go on. We wiped out an old Star Wars the Clone Wars scenery and got right to work programming it into Thorium.

Thorium allows you to customize each station with different screens. The pilot may have docking, navigation, and engine control while the mechanic may have switch boards and damage reports. After building out stations for the number of players we’d have attending at our mock simulation, we built out the systems that would be onboard our ship. These are complimentary to the screens each station gets. We added impulse engines and warp drive engines, adding in the specific speeds, power levels required, and heat that each system would use. We carefully selected music that would fit the changing scenario (fun upbeat music for the initial start of the mission, epic dramatic music when in combat, etc.) Finally, we went over our timeline making sure each piece fit well. We had everything in place, we invited the friends over, and we braced for impact. Murphy’s Law has a funny way of finding people.

Everyone brought their own laptop to make things simple. Thorium can run in a browser so there wasn’t any configuration needed! It was going to be the easiest lan party ever. After connecting to my wifi network which has an incredibly lengthy password, we booted up to the ip for Thorium and I started assigning roles. Lesson 1, make sure you know your set. Name your clients appropriately, otherwise you’ll be assigning stations to the wrong computers. It’s easy when you’re only testing 2-3 windows on one machine, try eight of your friends and a viewscreen and a sound player, difficult to keep them all straight. We had one buddies laptop die on us, luckily my friend who was doing the acting part (we call them “Second Chair”), had one he could borrow. Lesson 2, Thorium isn’t a super intensive program, but to provide an incredible and seamless experience to your users, make sure the hardware is solid. There are a few animations such as on the Reactor screen that can be demanding. Thorium has an awesome training piece built right in which teaches the users how to use each screen they have assigned to them. We let them loose on the training while we finished last minute details. Lesson 3, although Thorium does an awesome job of stating how to use the screens (which buttons to press, etc), there is no contextual training. The lesson is to make sure to give adequate time to train or answer questions before starting the mission. Sending a crew off on a mission while they still have questions can be detrimental. Unlike the simulations I’ve been to before where the captain gets a multipage manual as their training on the responsibilities of their crew and the capabilities of their ship, we did not have the luxury of time on our hands and therefore did not prepare a captains training. Lesson 4: Make sure to help the captain understand their role as much as possible. As the decision maker and hopefully the ultimate driving piece of the story (on the user’s side), it’s important they know what to do and what they can do. We let them loose on the start of the mission to the epic pounding of the title screen music of Star Wars A New Hope. As we were pressed for time, we opted to brief the crew on their mission via an inflight actor (the fleet commander) instead of briefing them before they got to the ship. Lesson 5: Don’t overwhelm the crew with flight controls just to then overwhelm them with mission objectives. It was harder to understand the mission from an inflight actor because we tried to build it into the story. As there was no prior direction given on what to do before the flight started, after “briefing”, they were still confused. Our mission we crafted for the crew was pretty simple - or so we thought. We were to go to the last known location of a missing ambassador’s ship. So they crew took to blasting off into nowhere… they forgot to calculate their course before throwing the ship into warp speed 7. Comically, the onboard 2nd officer (actor) jokingly asked where we were going. Lesson 6: Have some humor, it was fun laughing with the crew when they made a mistake and we could easily incorporate that as a story element. When they finally arrived, the fleet was blasted with an ion cannon destroying all the bigger ships and critically damaging the ship the crew was on. As they were a smaller ship, they were for a time undetected by the enemy fleet destroyer. What ensued was mass hysteria. With multiple systems damaged, warning sounds and epic music playing, the crew dove into alert condition 1. Initially, it was a beautiful site to see as the crew started working together to repair the ship, work on saving members of other crews in escape pods via tractor beam and doing recon on the enemy ship to try to find a weakness. Certain things sat on the users end for what seemed eternity. After the initial damage reports were requested, other damage reports sat there – damage teams got sent off without instructions, the tractor beam was neglected and other crews died, and there was a lot of sitting around as the captain couldn’t decide a best course of action to take – probably due to the lack of training and direction given. Lesson 7: In these simulators, you may need to do a lot of hand-holding depending on the crew and/or mission. Find a creative way to use an actor, onboard computer, or story element to move things along. There was a decent amount of dead space as we sat there trying to determine what the crew was doing, and the crew sat there trying to determine what we were doing. Feel free to make up some dramatic piece of the story that only touches one or two people to keep them engaged. The sim we went on that inspired me to try out Thorium was awesome for everyone except the Tactician who finally was able to participate after 2 hours at the very end of our mission. Get everyone involved in unique ways. The better the story, the more immersive, the better the experience. In the end, we realized it was a bit chaotic. They finished the mission with many more hiccups than I could possibly describe here, but we had an incredible time learning how the system worked and how each station interacts with each other. The human aspect makes every single mission unique. Lesson 8: Murphy’s Law – everything that can go wrong will go wrong. Aside from our logistical setup (which for obvious reasons is vastly different than a dedicated space center), prepare to be surprised at the actions any crew member may take which will slightly alter the story making the Flight Director think a bit on their feet. Thorium was built so that anything can happen. It’s an incredible piece of software that helps facilitate great stories. That’s the key words though – help facilitate. It is up to the Flight Director to craft and tell an amazing story that will immerse the crew of the ship to the point they forget they are in a trailer or in a school and think, “I’m actually flying a mission in space.” If you can crack the code on what makes a great story, get a few awesome voice actors together, and run your simulator on Thorium, you’ll be in the perfect place to give people an experience that is sure to be out of this world.

Justin Hammond
I love all things tech. I've been programming since the age of 12, repairing iPhones since 16, and founding tech companies since 20. I'm an open source fanatic, Apple fanboy, and love to explore new tech. I spend my time coding open source projects, tinkering with electronics and new tech products, and consulting teams on how to get things done.


Please login to leave a comment.