12 de junho de 2019
How System Era Softworks leveraged UE4 to create Astroneer’s wonderful universe
Outside the gaming world, the film The Martian, which released in 2015 to much fanfare, also played a pivotal role in Astroneer's development. "It demonstrated to us that there were folks pining for this kind of experience just as we were," Bromell stated, adding, "In a lot of ways, it became an ‘ideas-bible’ to us; we leaned on it for inspiration when it came to emotions felt around survivability and being able to cobble together larger goals from smaller or lesser parts. With The Martian, we got to see a very direct, specific experience of someone surviving an uninhabited, challenging planet. With Astroneer, we wanted to build a sandbox experience that’d give a moment like that to each of its players, only more specific to them and their own interests on a myriad of planet types."
Putting their inspirations and the game's design to the test, System Era Softworks released Astroneer into Early Access on December 16, 2016. This process became an invaluable experience for the studio. "From a technical perspective, we certainly learned a lot in terms of how we needed to architect our systems to be performant in an open-world context and to serve as pipelines for a continuous stream of content," explained Wolpert; the engineer added, "We also learned a lot about the tax that you have to pay when you’re developing a multiplayer game: every new gameplay feature must be built with multiplayer in mind, and this requires extra time and effort over a purely single-player experience." Accounting for lessons learned, he elaborated, "The Astroneer code base, along with our engineering guidelines and best practices, changed significantly over the course of Early Access."
While the game made it out of Early Access, which is a threshold many titles fail to cross, this process also provided the studio with insight on how to scale the game long-term, "We also made fundamental design changes to many of the core systems in the game, mostly with the intention of increasing the depth of our systems to support not only a more engaging experience for 1.0, but room for expansion beyond that point."
With Astroneer being the first title that the studio has released, the Early Access process also provided a strong foundation for the company. "I think we also learned a tremendous amount about System Era as a team, and evolved on that side as well to maximize what we were able to build into Astroneer. Early Access gave us a great environment in which to learn about ourselves and how we best work together and make the necessary adjustments to align ourselves to our goals," Wolpert remarked.
While Astroneer envelopes players in a space-age journey, the game doesn't force a narrative; rather, it builds an open playground that facilitates unique emergent stories. "Astroneer, from the beginning, was always thought of and designed to be a sandbox experience. We didn’t want to tell people what their story was, we wanted them to define that themselves," Bromell exclaimed, adding, "Whereas The Martian is a very specific story, we wanted Astroneer to lend itself to a myriad of stories, all told from the player's perspective as they experience it." To achieve immersive emergent storytelling, it wasn't enough to just create a fun sandbox. The studio had to provide engaging driving forces. "The narrative challenges and discoveries we do have in the game are to help drive that sandbox experience," the creative director stated. On the impact this decision had, he reflected, "Even with the same challenges out there for people to face, we will read anecdotes of players discovering and activating them that can be so different from one another. We feel then and we feel now that we wouldn’t have been able to achieve that with a linear, curated story experience."
Part of what makes these moment-to-moment experiences so unique among the community is due to the fact that Astroneer employs procedurally generated worlds. This can present a whole host of challenges if not handled correctly, however, which was something the studio had to learn the hard way. "Our procedural generation technology was actually completely rewritten over the course of Early Access," Wolpert noted. The engineer continued, "The worlds that players explored in the first version of the game that shipped in December 2016 were built using an entirely different method than those present in Astroneer 1.0. The original method involved a hierarchy of actors that contained various world-generation parameters, which were spawned at load time to generate the entire planet up-front." Expanding upon these issues, he added, "Obviously, the problem with this was that the complexity of each planet was severely limited, since the entire actor hierarchy was required in order to resolve the terrain and decorators at any location on the planet. High levels of complexity would make the up-front generation far too expensive, and thus the planets in the original version of the game were sparsely populated."
Rewriting the procedural generation tech to fit their vision, Wolpert elaborated that the new system "makes use of layered noise functions to generate terrain and place objects on the fly, without needing to have knowledge of neighboring parts of the planet or generate anything at load time." He added, "We have a few layers on top of this to support separation of biomes and cave layers, which helps ease the process of authoring planets and further improves the performance of the system. We also leveraged UE4’s foliage system to support lush landscapes with far more plants, rocks, resources, and other decorators than we could previously support. The end result is that planets in Astroneer 1.0 have cave systems reaching all the way to their core, dense forests, rocky desert plains, sweeping grasslands, and more."
Because of the studio's cumulative design decisions, Astroneer became a tranquil exploratory experience for many players. As Wccftech noted in their review, "Astroneer is a nice and relaxing survival game." This, as it turns out, was an unintended benefit. "We never sat down to design a therapeutic or 'chill' game, but we did want the element of exploration and discovery to be at the forefront of the experience," Bromell stated. The creative director added, "Astroneer is less about survival, and more about the things you discover and what you do with that. If you’re constantly in an oppressive state of needing air, food, water, sleep, and so on, you’d be facing your moments of discovery less and less. By focusing on a more binary approach to survival (you need air or you die) meant we could really focus on the discovery aspect." Considering Shacknews mentioned in their Astroneer review that the game allows "players to spend most of their time on the things that make it fun, and almost no time worrying about status bars" affirms System Era Softworks made a great design decision.
The fact that you can explore with friends online elevates the game’s sense of discovery. Incorporating cooperative play, however, presented the studio with challenges. "On the technical side, making sure that everything worked in multiplayer and monitoring multiplayer performance required adjustment and hard work by the team," Wolpert stated, adding, "We had to get used to paying the multiplayer tax, the extra work required to account for those two factors, and we had to learn how to collectively be good multiplayer networking programmers." To solve these issues, he noted that the engineering team had to change its approach and elaborated, "We had to learn how to build network-safe systems that could support a wide variety of content." Fortunately, this hard work paid off with Shacknews noting that "The co-op in Astroneer is handled well in 1.0, with no hint of the connection problems that I experienced during its early access days. People were able to freely drop in or out of my game."
While the space exploration title has been lauded for its colorful, stylized graphics, with Video Chums noting in their review, "I absolutely love its colorful world complete with minimal textures and subtle animations," this style was initially born out of necessity. Bromell explains, "The team was only four people when it started and two of us were artists. We knew we’d spend so much time on the technical side of art creation that it’d really slow down the production of ideas leading to playable content." He added, "At the time, the idea of having to spend time unwrapping models, creating high-res versions, and creating the textures for those meshes seemed like an incredible amount of time for us to sink into when we’d sooner focus on producing great content, fast. At the time, I had just finished a low-poly art project of my own and saw how fast it could be created: In about a weekend I was able to turn out a completely interactive diorama; some fan art for Canabalt. I started to then explore the idea of Astroneer in this style and found I could churn out pieces of art really fast. Seeing the benefits of a fast turn-around, we decided to really embellish on this style and make it the style for Astroneer."
This minimalist look created unintended benefits. From a memory standpoint, it helped optimize performance with Wolpert explaining, "We have very few textures we need to package with the game content or load into memory at runtime." The engineer also noted another positive side-effect, "We were able to do some interesting things with our master material that is shared across the man-made objects in the game. The material supports dynamic emissive 'lights' that can turn on and off and even change colors, as well as the ability to display dynamically changing icons on an arbitrary part of the object. We do this all by moving UVs around a texture atlas, and it allows us to have objects that react visually to player activity, but still only require a single draw call to render. You can see this in action on the various control panels players interact with in Astroneer; the crates that items are packaged into, landing lights on our landing pads, and more."
Another technical feature that helped System Era Softworks was Blueprints, which Wolpert described as being a "powerful tool for building proof of concept prototypes for new features without the involvement of engineers." He noted that the studio constructed a workflow to efficiently take advantage of the visual-scripting system, "Much of our engineering effort has been organized around building up a toolkit for designers to build new game objects from a relatively small number of Blueprint nodes that we have implemented to handle networking, performance, and save-game critical functionality under the hood." The developer also leveraged UE4's node-based Graph Editor to implement the game's procedural terrain generation tools. Wolpert elaborated, "The noise and object placement functions used to generate our planets are built using custom nodes built on top of the node editor interface provided by the engine, which was a huge win for us!"
A vital feature that System Era Softworks gleaned from Unreal Engine 4 was source code access. As Wolpert exclaims, "Astroneer could not have shipped without it." The engineer explained, "The original founding team actually built the very original prototype of the game in Unity, but switched over to Unreal early on in development. One of the biggest factors leading to this decision was source code access. Because of the performance requirements of our terrain generation system, access to the native engine code was required in order to properly implement the mechanisms we use to get the game to run at an acceptable frame rate." Elaborating on the significance of this resource, he continued, "Beyond terrain, the open-world nature of Astroneer has required us to reconsider the way we build many of our game objects and systems. This would have been far more difficult without the freedom that source code access provides in terms of our options for how we want to leverage the engine’s existing features and systems. It’s also been hugely beneficial for us in debugging, networking implementation, and performance profiling. Like I said, the game could not have shipped without it."
Version 1.0 launched with great reviews with publications like Videochums stating, "If I had to summarize Astroneer in one word, it would be delightful. The gentle aesthetics of its world and the laidback gameplay go hand-in-hand to create a surprisingly addictive space survival game that'll have you crafting some genuinely rewarding contraptions." While Astroneer has officially launched, System Era Softworks isn’t resting on its laurels and plans to continually update and improve the game. To learn more, visit https://astroneer.space/.
If you're interested in creating your own game, you can download and explore Unreal Engine 4 for free today.