We go behind the scenes of Squad's Kerbal Space Program as it readies for launch
The roots of Kerbal Space Program grew from a rather dangerous place. “The original concept for KSP came from this game I used to play as a teenager with my friends,” says lead developer and Squad founder Felipe Falanghe. “We’d take actual firework rockets and such, dismantle them, and put together these ‘spacecraft’; we strapped fins and struts to them, tried to pull off two-stage designs, and all the while we taped these little men made of tin foil to their duct-tape cockpits.” These intrepid little guys were called, perhaps unsurprisingly, Kerbals. “It wasn’t meant to be a video game back then – it was just something we did because we were bored and reckless,” he says, adding, “don’t try this at home.”
That was some 10 years ago. But the concept stuck with Falanghe as he made his way through college studying game design, and grew over time into a pet project. Now, Falanghe leads a team that has employed some 25 people all told, and is knee-deep in development on a game that allows players to create and manage their own space program, by building and flying spacecraft, and trying to help the beloved Kerbals fulfill their ultimate mission of conquering space. Suffice to say, it’s a long way from firing off explosives in the back yard.
Falanghe is aware that the project is an ambitious one, but isn’t perturbed. “I think the quality of the game isn’t something that’s necessarily related to the size of the team or the amount of resources,” he says. “It’s also not a matter of being a perfectionist. If I’ve learned anything about this, it’s that quality is something the project picks up over time. We go back, we tweak what we’re not happy with, and it ends up working or looking better than last time. I think working like this, as long as you keep up the pace and the enthusiasm, quality emerges naturally.”
He recalls that the first version of the game Squad published, “wasn’t nearly as good-looking – or even much good.” This was an essential part of the lesson, though: “I learned to accept that the game is an evolving thing, rather than an unfinished version of a final idea,” he says. “That’s something you need to embrace if you plan to release early, especially if you’re independent with loose or looser deadlines. You need to set goals to aim for and honor them, otherwise there will always be something else you can tweak to make it better.” Falanghe also points to the fact that the team managed its expectations for the game early on. “We had all these open decisions still to make, and it could have held us back much more if we’d been hard set on an unchangeable, ultimate vision for the project.”
To bring his ambitious project into existence, Falanghe and his team turned to Unity. “We chose Unity almost from day one,” he says. “We had already done some small projects with it, and we chose it at first for how quickly you can put something together, and how simple it is to deploy what you created.” He had worked mostly with Flash back in those days, and considered creating KSP in Flash at the start of the project. “But we quickly realized Flash could only have taken it up to a certain point, and since we were already contemplating the potential for growing the game if things turned out alright, we decided to go with Unity from the start,” he says. “I’ve been very happy with our decision. Once we familiarized ourselves with it, we loved working with it. The modular behaviors, for instance, are something we abuse a lot in KSP. C# is an awesome language to work with also. I’m a total convert now, definitely.” He says that Unity Asset Store packages like EzGUI, Vectrosity, AdvancedRagdoll, and SmartWater have saved the team a lot of time and effort.
Getting the idea rolling was a rather speedy process. Falanghe put the first version of KSP together in about a day, just to see something that vaguely resembled the concept on screen. “It was no more than a few stacked cylinders and some forces applied with some particle effects, set against a flat terrain plane and a skybox,” he recalls. There were no camera controls, or any other controls at all, and hardly any code for that matter. “I had set the parameters for the forces and joints just so that the cylinders that were supposed to be SRBs broke loose while the rocket was still in the frame. That was version 0.0.”
“Through all our updates, we’ve focused on having a playable game at all times,” says Falanghe. “This is a very important part of our development style – it would be very disheartening to have something unplayable. Besides, I can’t sleep if some script in the game won’t compile, so the game in an unplayable state for any amount of time could really affect my health!” There were moments during development where he says he was utterly stumped by one problem or another, and sometimes it did feel like they’d hit upon an unsolvable, project-sinking issue. He recalls one such case, when the team first got into making the physics transition into its two-body deterministic solver. “There were so many issues with disabling the PhysX rigidbodies mid-flight and putting the ship on rails, and then transitioning back out again, I felt we had taken a step longer than our own legs were that time,” he says. Despite the stress, however, they eventually found a way around each issue and picked their way out of the rut.
The initial idea for KSP was much less ambitious than the game Squad is now striving to develop. At its earliest phases, it was even going to be constrained to a 2.5D playspace. But along with new ideas, came new limitations. “The main one we’ve had an ongoing battle with is floating-point imprecision,” Falanghe says. “We stumbled upon those in pretty much every area of the game, but I think we were able to come up with some interesting solutions to those problems.”
So what were some of the game’s “eureka” moments? “When we started, there were several aspects of the game that were completely unclear to me, both technical and design issues,” says Falanghe. Take docking, for instance: The team had tried to do it once before, but the idea of managing multiple ships together started to snowball into an unsolvable tangle of cases they’d have to account for. They eventually scrapped it. But a few months later, Falanghe recalls the moment when he realized it would be possible to merge the ships together instead of keeping them as separate entities, which allowed for a far simpler implementation – one that was hugely more robust, as it used all the systems they had originally developed for ship construction.
If there’s one thing about KSP that has made Falanghe happiest, it’s when he hears players talk about how they learned about space travel through the game. “I spent a lot of time worrying about the orbital mechanics in the game being too complex, and put a lot of thought on the UI systems to make it as visual and approachable as possible, so to hear players tell of how they were able to learn it from the game is a huge deal for me,” he says. “It always makes my day. I guess I’m most proud of that – of how we managed to show a very complicated thing in a way that makes sense. And it’s been pretty cool to realize how many other gamers wanted to go on a rocket ride with slightly silly green men.”
You're so very special
An interesting and little-known Kerbal Space Program fact is that originally, the three initial Kerbals – Bill, Bob and Jebediah – weren’t supposed to be special at all. “They were just placeholders while we didn’t have a random character generation system in place,” recalls lead developer Felipe Falanghe. “We were completely surprised to see how attached people got to those three, and we decided then that those guys had to stay special.” Which explains why they’re the only ones in orange suits, while everyone else is dressed is blue.
Kerbal Space Program lead developer Felipe Falanghe has always been a fan of flight simulators (Microsoft Flight Simulator, Orbiter and IL-2, to name a few), and games that are more toys than goal-driven contests, like SimCity, The Sims and Minecraft. This is reflected in KSP, which has grown to become an ambitious, open-world universe simulator that specializes in modeling orbits, atmosphere, gravity and rocket physics. “All that got picked up along the way, and some of the ideas found their place in the game,” says Falanghe.