There are ten people working at Hello Games, managing director Sean Murray tells us, eager to dispel an often misquoted number of four. While that was the magic number for Joe Danger, it’s clear from the outset that No Man’s Sky is a much bigger task, and therefore requires a bigger development team. But ten is still not really big, is it? The game looks as though it might be more vast than anything before it – almost infinite in fact – and the fact that ten people are managing that is still quite incredible.
So, just how are they doing it? While showing us a preview of the gameplay Sean Murray told us that, due to its nature, it’s “the worst game in the world to demo” and instead took us on a tour of the depths of their engine – an engine of their own creation, this wouldn’t be achievable through Unity, UDK or another third party system – and went into detail about the procedurally generated foliage, enemies, worlds and universe of No Man’s Sky.
Upon reaching a planet, Sean tells us that “Everything that you see is being generated when you get there. Nothing exists on disk, or in the cloud, or anything like that.” Of course, these aren’t coming from nothing: Hello Games have many complicated formulas and algorithms in place, as well as “prototypes for certain types of trees, and certain types of creatures, and fish… and robots and things like that, and they exist on disk.”
“But most things don’t” continues Sean, saying that “they just kind of happen” when you reach a planet, and although they’re “thrown away” when you leave, they’ll be cached, so when you return they’ll be as you’d expect them, and you won’t return to an entirely different planet in the place of the one you had previously explored. It’s a very complex system, and more “like a formula” as Sean puts it. It’s a formula which will always come up with the same results, so there’s no need to store it locally, or even in the cloud.
Of course, you’d wonder that if there’s no help from servers or your local storage, how the game manages to load each planet as you approach at speed. It’s all about the detail: as we approach for landing, Sean says “This is the planet, and the entire planet is generated. The entire sphere, just really low detail.” The specific details aren’t quite there, they haven’t loaded yet, but upon landing and subsequently looking back up into the sky, we’re once again surprised, as Sean tells us:
“That’s the planet that we flew from – that’s the rainforest planet. You can still make out mountains and canyons, just like you would seeing Earth from space. And this whole planet that we’re stood on is generated to that level as well, so when I’m stood on a really tall mountain I could see the curvature of the earth.”
David from Hello Games presses a few buttons on the keyboard and takes us out of a full screen experience, into their debug view. “This isn’t the game, these are just the tools; no one’s ever going to see these” says Sean, which we can assume means “no one but us”, of course, and he can fly the camera around in free mode. “I can fly around and you can see this being generated around me. I can travel at a couple of thousand miles an hour if I press a button, and I can try to outrun it but I won’t be able to.”
It generates at a startling rate – the technology behind this is optimised phenomenally well. And although the detail hadn’t loaded fully as the ship descended, now that we’re floating just above the surface, zooming in reveals “tiny little rocks, bits of bushes, and stuff like that” with extreme detail.
Now, the next question on my mind is whether the procedural generation made development easier or harder for them. “It’s hard to create this system, but then once it’s created, we’re kind of freed from content. We don’t have to worry about levels, or building light boxes, or whatever.” says Sean. It definitely seems as though they’re over the biggest hurdle, then, but it seems as though there’s an even bigger one on the way: the testing of the game.
If everything is generated, and there are infinite combinations, then how are they going to test it easily? Well, Hello Games once again prove their ingenuity with a sublime solution: “So, what we have is actually a server, and a set of bots, basically. They fly around planets and take screenshots and animated GIFs, and then we have a little website – internally – and we can just look at these animated GIFs and it will just play it. You can zoom in and out from that: you can see the planet full screen, or zoom right out and see a hundred by hundred grid of planets.”
And then, if there’s “too much blue” in one of those grids, or “too many rocks”, or just something that looks entirely out of place, they can change that. They’re going to have to expand it as they go through development though: they’ll need to make these AI bots react like normal players, even to the point where they can fly ships, to test it properly. But they’ve definitely got a smart solution to a problem with their current system. They’re aware that people will try to break it – and someone will break it – but “that’s half the fun” in existing games of a similar vein, such as Minecraft and DayZ, Sean assures us.
The skies may be impressive in themselves, but the planets need to be filled with content. Starting with perhaps the most banal (yet still important) of items in trees, they explain how they manage that. While traditional artists would have to create several types of tree to populate a forest, and then more for a different forest, Hello Games don’t have to do that.
They compare their system to any MMO or RPG character creator. You know, the ones where “you have a whole bunch of sliders, and you change skin colour, weight, and facial features and all those sort of things”? Sean’s spent forever in those things in other games, and now they use them as part of theirs, but for every prop in the universe of No Man’s Sky. And it’s not by player choice, either – you won’t see them – it’s all randomly, procedurally generated in the background.
They show us a tree, click the button to bring up its variants, and thousands (perhaps millions) are created on the fly. It’s effectively based on a number of variable sliders then, but understands the structure of trees, “so it knows there’s trunk, and there’s bushes or foliage at the top, it knows that it can bend the trunk in various different ways.”
“A tree is a sort of boring way to show that” Sean concedes. “So, if we pick a ship… this is more interesting. You get effectively an infinite number of ships” continues Sean, interrupted by the colourful array of ships on screen. And at this point we’ve only been shown one model – there will be lots of different ones in the game, with an infinite number of variations, and they’ll naturally all be able to be piloted. Different models will have different attributes – bigger wings for better handling, a bigger engine for further or faster travel – and of course, it comes down to what individual players want their ship to look like, too.
Where it gets really interesting is with the creatures. Once again, Sean brings up another model. It’s a dinosaur this time, and hitting the “show variants” command reveals a huge selection of differently shaped, multi-coloured beasts. But all of them look acceptable – there’s nothing out of place here. Every time the team click onto another page of variants, they’ll find something that they haven’t seen before. They won’t just be dinosaurs, either: “there’ll be everything from really boring to really alien. So you can have males, females, or even little baby ones.”
A game which surprises the developers due to their own brilliance is really quite an exciting prospect. And Sean, taking a brief break from his usual humility, delivers one final line which highlights the true brilliance of No Man’s Sky, and the key point behind this infinite number of creatures, props and vehicles:
“It’s easy for us to do that. Well, not easy, but easier to do that, because we’re not constrained by content, which a lot of people are.”