Development of No Man's Sky

No Man's Sky is a 2016 video game developed by the British development studio, Hello Games. No Man's Sky allows the player to partake in four principal activities&mdash;exploration, survival, combat, and trading&mdash;in a shared, deterministic, procedurally generated open universe, which contains over 18 quintillion (1.8×) planets each with their own unique environment and flora and fauna.

The concept of No Man's Sky is based on a long-time desire by Hello Games' founder, Sean Murray, to create a space exploration game that captured the vision and optimism of science fiction writings and art of the 1970s and 1980s. Seeing the game as a landmark title for the studio, Murray led Hello Games towards financial stability with their Joe Danger titles and then began working on the game with a small team of four. The game was formally revealed during the 2013 VGX Awards, following which Murray brought on more staff to complete the title over the next three years.

Much of the game uses parametric mathematical formulae that can simulate structures found in nature to craft nearly all aspects of the game's universe. Flora and fauna are crafted from similar routines that combine human-supplied art and pre-defined structures into new lifeforms. The audio and music in the game is also procedurally generated, with routines and audio created by Paul Weir and music provided by the band 65daysofstatic.

Concept and inspiration
The onset of development for No Man's Sky arose from Hello Games' co-founder Sean Murray sometime during the development of Joe Danger 2 (2012), which he compared to a mid-life crisis for himself. Murray, a former developer at Criterion Games for the Burnout series, worried the studio would be falling into a rut of producing sequel after sequel as was the case at Criterion. When Hello Games had problems with an American publisher, Murray realized they had an opportunity to create a completely new title based on a concept he had since he was a child, when he had aspirations of being an astronaut, envisioning oneself as being the first human to step onto an alien planet.

No Man's Sky was an attention-getting concept that the studio had since inception. Murray described that in bringing on board Dave Ream, the team's creative director, that Murray described how there are skyscrapers in the world that are well visible but built on standard designs, and then there are smaller, minimalist architectural designs, which is the direction that Murray wanted to take the studio. Ream agreed, but insisted that the studio at some point would make the game equivalent of a skyscraper, a game they could develop without any limitations. This proverbial game, "Project Skyscraper" was kept in mind as the studio began to expand and acquire the necessary finances to pursue other titles besides Joe Danger. Murray wanted to re-create the feelings of space exploration seen in older procedurally generated games, including the galaxies of Star Control II, Elite, and Freespace. Elite was a memorable part of Murray's childhood, as a similar open-world space exploration game. He realized that real exploration meant "seeing something that no-one's seen before and for your experience to be unique", rather than pre-planned content and puzzles. His concept for No Man's Sky was also influenced by the "simplicity and elegance" of Journey' s game design.

Murray's tone for the game was influenced by science fiction works of the 1970s and 1980s. Murray attributes ideas from the "Big Three" science fiction authors—Isaac Asimov, Arthur C. Clarke, and Robert Heinlein—whose stories he considered "fantastical - it's vibrant, exciting and the unexplored". Murray also considered Frank Herbert's Dune influential as it "paints this picture of a world that’s so believable". Another avenue of influence was the state of current science fiction media, which Murray compared to similar commentary from Neal Stephenson on how most mainstream works focus on a dystopian story; for Murray, he wanted No Man's Sky to be much more optimistic and uplifting.

Murray was also inspired by the cover art paintings on these science fiction works from the period, which typically were done by freelance artists and bore little connection to the story within but made for visually alluring scenes. Duncan credits much of No Man's Sky' art influence from the work of Chris Foss, who drew covers for many science fiction books and magazines and had a significant influence in science fiction film and video games. Duncan noted that "he created this kind of art when everyone else was creating black starfields, grey dull monolithic spacecrafts". Other art influences included John Harris, another book and video game cover artist; Jean Giraud (aka Mœbius), a science-fiction and fantasy cartoonist; and Ralph McQuarrie, a concept artist for several major Hollywood films. Duncan also cited the films of Ray Harryhausen as an influence in terms of the exploration of the unknown. Murray noted the iconic "binary sunset" shot from the original Star Wars film, which featured two suns rising on the planet Tatooine as the "perfect alien image" that captured the nature of science fiction.

Production
With the success of Joe Danger and its sequels, Murray was able to spend a few days each week for about a year to develop the core engine of No Man's Sky in secret from the rest of the team. Once the engine was completed, Murray brought in a small four-person team to work on the game directly, while Joe Danger 2 was being developed by the rest of the company. They worked in a spare room, lining the walls with science fiction imagery to help inspire them. Their work was kept in secrecy from the rest of the development team, leading to some tension within the offices, though Murray had done this specifically after seeing how small exploratory groups did not work well at Criterion Games. Further, Murray was concerned about describing the game too much, and fears that even teasing about the title would lead to misconceptions about the scope and nature of the game. Ultimately, Murray was encouraged by Geoff Keighley to premiere the title at the 2013 VGX awards, and in preparation, created the short teaser which they shared with the rest of studio days before the awards show. As development continued, more of the team was brought on board to help complete the game, with the final team being composed of thirteen members.

This VGX teaser brought much attention to the title from the gaming press. Duncan noted that following the reveal, he found it "incredible how many developers came up to us afterwards, and they were all saying this is the game I always wanted to be making, or I started working on a game like this".

A flood wiped out most of their Guildford office and equipment on Christmas Eve 2013 but they were able to recover the work they had done already and resumed development shortly thereafter. Murray later acknowledged that he had been tempted to cancel No Man's Sky at this point, but the flooding helped re-solidify the Hello Games' team, as prior to the flood, the team was still split between those working on No Man's Sky and those continuing the Joe Danger series. Everyone in the company came together to help rebuild their office and computer equipment, giving new vigour to the project.

Just prior to the VGX showing, Murray had shown the title around to various publishers, and Sony, particularly Shahid Ahmad, Sony's head of independent games development in Europe, expressed strong interest in having the title for the PlayStation 4. Murray stated that although Sony offered to provide financial support, he and Hello Games only wanted Sony's commitment to help market the game, including having the game formally introduced at Sony's main media event during the upcoming Electronic Entertainment Expo 2014 (E3); until that point, no independently developed game has been demonstrated during these centre-stage events. Sony's UK marketing director Fergal Gara has stated that Sony is fully committed to supporting the title, treating the game as if it were from one of their first-party developers and considering a potential retail release of the game.

Hello Games prepared a six-planet demonstration that would be used for the E3 event and subsequently used to showcase the game for the media while the full version – nearly always in a constant state of flux due to the procedural generation approach – was being developed. The game was announced at E3 2014 with plans for a timed exclusive release on the PlayStation 4, and would have later been brought to Microsoft Windows. However, speaking to the media at the E3 2015, Murray stated that they now plan to release the title simultaneously for both platforms, though did not specify a release date. Murray stated that unlike more traditional games, where completion of the fixed number of levels and other assets can be treated as an assembly line and schedules projected from that, the interconnectivity of all the various systems within No Man's Sky requires them all to be working together to make the game successful, and would only feel comfortable on assigning a release date once that is completed.

Since its reveal, Hello Games have showcased the game to numerous members of the press and video game journalists. Many of these demonstrations have provided possible ideas for gameplay additions as feedback, such as adding land vehicles to explore planets or allowing players to construct buildings on planets. However, Hello Games have opted to avoid such feature creep, with Murray stating that they wanted to be able to deliver on the large, grand vision they had, and to add more features would have required a larger team and more funding, something they did not want to do. Murray specifically wanted to avoid base building initially as this would discourage players from exploring the rest of the universe. Following release, Hello Games does plan to add base building and the ability to buy and customize larger freighters in future updates.

Game engine
Most of the universe in No Man's Sky is procedurally generated, including solar systems, planets, weather systems, flora and fauna on these planets, the behaviour of these creatures, and artificial structures like buildings and spacecraft. The generation system is based primarily on providing a single seed number to their deterministic engine which would create all the features of the universe exactly the same way every time this process is run with the same seed using the repeatability of pseudorandom number generators. One generator is used to create the universe, plotting the position of the stars and their stellar classification, using the phone number of one of the Hello Games' developers as the founding seed. Pseudorandom numbers generated from the position of each star are used to define the planetary system the star has, the planet's position is used as a seed to define the planetary features, and so on. This approach, used in early days of computer games to avoid high memory or disk use, avoided the need to craft every planet and store this information on a server; this also assured that players can always revisit the same planets, and share that planet with other players who would find the same features. The planet terrain generation code, for example, is only 1,400 lines of code; as described by Murray, the code was tweaked as to make sure that planets generated visually interesting but navigable terrain, as some early builds would produce wildly stunning planets that were impossible to traverse, while other fixes made planets look flat and dull. Hello Games had originally planned to use a 32-bit seed number, which would have generated around 4.3 billion planets, but decided to use the 64-bit number to demonstrate the scalability of their game, and partially in response to online forum comments that doubted that Hello Games could deliver a game of that size.

The deterministic approach also allows Hello Games to optimize the rendering of the game, as what is visible to the player can be determined directly through these generation algorithms. Planets are rendered using voxels with procedurally-generated textures while flora, fauna, and other surface features use polygon-based rendering as to maintain a target 30 frames per second along with middleware like the Havok physics engine for animation and other dynamic features. The on-the-fly construction of a world did create some difficulty with features like rivers, which in most virtual environments are built by using a physics engine to track the flow of water down a slope. Murray and his team developed a brute force solution to include rivers and similar features without having to render out a large-enough section of landscape to perform the same calculation. The total code size for the entire game was around 600,000 lines of code by February 2016. The entire game takes up only 6 gigabytes on a blu-ray disc, the bulk being audio files.

One of the more challenging feats was to create random terrain on spherical planets in a reproducible manner, allowing a player to leave and return to the planet after visiting others as part of the need to give the player a sense of scale. Initial efforts used a flat map while the player was on the planet, and then as they left the planet, making a snapshot of it to wrap around the planet's sphere to create the illusion they had left the spherical map, but this led to problems with overlap at the edges of the map and terrain generation problems. The team then looked at the problem of map projections that had already been solved by cartographers. Some projections like the Mercator projection would have fit well with the generation system but would be costly in computation time to present to the player. Others, like Peirce quincuncial projection, while being better suited for fast computations, would have limited the type of larger terrain features they could generate to deal with edge overlaps. With no suitable flat projection, Hello Games took the more challenging step of actually simulating planets in 3 dimensions, building each planet as a cube and then using various mathematic tricks to cast the cube's projection onto a sphere. Additional terrain features like cliffs and caves were made by generating positive and negative spaces within the cube's mapping, and incorporating those into the spherical transformation.

The development team built the planetary feature generation system atop this where they would first hand-create core structures and the art associated with those – such as a basic skeleton and skin for a creature – and then allow the algorithm to make randomized changes to that, as to make a wide variety of creatures, mimicking the diversity of species resulting from evolution on Earth. They made sure the elements of this generation process reflected the setting – creatures and plants inhabiting a planet that contained blue-coloured minerals would be tinted blue as well. The generation system uses deterministic parameterised equations and algorithms previously developed by biologists and physicists that can mimic a vast array of natural forms and shapes. For example, the engine uses L-systems, fractal equations developed by Aristid Lindenmayer in 1968 that can create structures that resemble many algae and plant lifeforms. This is coupled with engines like SpeedTree to create additional variety to the flora.

Other generation schemes were made through random selection in a deterministic fashion, followed by tuning to create a realistic result. Creatures were often generated by mixing and matching random parts from a library, and then adjusting the underlying skeleton so that the creature appeared realistic; a creature with a tiny body could not support a giant head, for example. To create behaviour for the creatures generated by the procedural generation system, the system tags objects that it creates, and then assigns creatures various affinity levels based on these tags; creatures are then driven to find objects they like and avoid those they dislike, and allows the artificial intelligence aspects of creatures to communicate directly to coordinate their respective movements. Duncan describes this as generating complex patterns on relatively simple rules that create surprising results; he describes being surprised when, after hunting avian creatures over a body of water to have one of the kills eaten by the sudden appearance of a shark-like creature.

The generation system can create a variety of planet ecosystems, including differing rotational periods, the end-effects of natural erosion, and behavioural cycles for the creatures. The amount of life on planets are factored based on their distance from their local sun, with planets far outside the habitable zone typically being barren of life. Not all stars have habitable planets, but still offer potential opportunities for resources to the player if they can survive its inhospitable atmosphere. The developers aimed for a 90–10 rule, with around 90% of the planets being uninhabitable, and of the 10% that do support life, 90% of those only include mundane lifeforms, making the planets that thrive with a vivid ecosystem rare.

Some facets of realism have been conceded in favor of promoting better gameplay. The planetary generator system does not generate any gas giants, as Murray wants every planet in the game to be explorable. Unlike most planets containing an atmosphere where the atmosphere is visibly more dense closest to the surface, planetary atmospheres in No Man's Sky are reversed as to provide a more dramatic transition when a player is taking off or landing on a planet. Other elements of their procedural generation system were made to break the realism that was previously built into the engine as to have more alien-looking planets and features be potential outcomes of the system, such as by introducing chemical elements that would enable green-tinted atmospheres and allowing moons to orbit much closer than the laws of gravity would allow to create impressive backdrops on planets. To assure that the procedural generation worked well, the development team created the in-game equivalent of automated probes to visit the various planets and take images to review; this allowed for some tweaks to be made by human developers.

Later updates to the game brought community-based short-term goals and later Expeditions (time-limited short goal-driven missions with special customization options for completion). These were developed atop the Microsoft Azure cloud computing service rather than integrating these directly into the game client. This was done to prevent players from datamining the client to discover these before their release, but instead to push them out to the game through the cloud service at the right time.

Music
No Man's Sky features a soundtrack by English post-rock band 65daysofstatic (65DOS), as well as procedurally generated ambient music composed by Paul Weir. The game uses a generative music system called Pulse developed by Weir, using a large library of loops, textures and melodies created by 65DOS to randomly create music to accompany the gameplay, reacting to the changeable terrain and becoming more or less menacing depending on whether a character is in danger.

65DOS became involved in the project when Hello Games, preparing their debut trailer, contacted 65DOS about using their song "Debutante" for it, as Murray had been a fan of the band. The developers sent along some of the concept art so the band could consider the offer. The band, impressed by what they saw, gave Hello Games their permission and offered to help create the rest of the game's soundtrack. 65DOS had been interested in doing a video game soundtrack following their album Wild Light and subsequent live tours, having used software tools to help craft more interactive shows, and felt the same concepts could be applied to video games which are traditionally non-linear experiences. Initially, Hello Games asked 65DOS to create numerous songs in their band's style, with very little additional direction; the band described their instruction from Hello Games as "write the next 65daysofstatic album". At this point, Hello Games' intent would be to then take 65DOS' songs to tear down into segments they could use for procedural music generation. However, the band wanted to be more involved in the process, helping to deconstruct the songs themselves knowing of the broad approach Hello Games was taking for the game. They developed a music sequencer logic system for use within Ableton Live, and programmed extensions for Unity and FMOD that approximated the procedural generation approach Hello Games used for the game. They subsequently used these to help craft their songs, at times letting the procedural generation take over as to create a vast array of sounds. Subsequently, the band send these songs and snippets to Weir, along with documentation on how to apply and alter some of the songs, to allow him to incorporate it into the game's soundtrack. Weir provided 65DOS feedback on some changes and additions, such as additional arpeggios to use for some segments of the game. According to 65DOS member Paul Wolinski, the band plans to explore more of these processes in further albums they will produce.

Weir also developed a similar generative audio system for the ambient sounds within the game. Weir developed an audio procedural generation system called VocAlien that allowed him to create a system of animal calls that can be readily altered by adjusting a number of parameters.

Ten original works and six soundscapes composed by 65DOS for the game was released on its soundtrack, No Man's Sky: Music for an Infinite Universe, which released on both digital and retail formats alongside the game on 10 August 2016. iam8bit released the soundtrack on a 2 LP-disc vinyl record set alongside the game's release. One set of songs in this soundtrack are 65DOS's compositions worked into a typical six-minute song, while the soundscapes are longer pieces that are comparable to 65DOS's original pieces without strict adherence to any length or format, representing their musical concepts they had considered in producing the songs for No Man's Sky. 65DOS also plans to tour Europe and potentially other locations with the No Man's Sky soundtrack later in 2016.