Inspired Space: Inside the Development of Astroneer
A former Assistant Art Director and Art Lead at Ubisoft Toronto, Adam Bromell had been working on a number of personal art projects in his spare time. One in particular, a low-poly diorama of Canabalt, went viral and would become the aesthetic inspiration for the story of an astronaut venturing so far from Earth there would be no hope of returning.
Adam and Paul Pepera (Artist) began shaping the idea further, enlisting the aid of Jacob Liechty (Designer) and Brendan Wilson (Tools/Systems/Multiplayer) to help lay the foundations of gameplay. Astroneer had grown beyond its roots as a simple art project, and marked the beginning of System Era Softworks; a young studio whose founders share 35 years of combined experience working on AAA titles with Ubisoft, Valve and 343 Industries.
As an Astroneer, you are a fortune-seeker, an adventurous prospector risking everything in the frontier of unexplored planets. Build the structures needed to survive the harsh environments, hope they last through the unforgiving weather conditions, and uncover precious materials hidden beneath the surface by dramatically reshaping the landscape in real-time.
At its heart, Astroneer is more than just a game about survival though. We spoke with the four co-founders, who each share a deeper goal of creating an experience that captures the adventurous spirit of space exploration and instills players with a sense of wonder for the universe around them.
The survival/crafting genre has exploded in popularity. How do you feel Astroneer best distinguishes itself from other titles?
Jacob - We're making a huge bet with Astroneer being a third-person survival and crafting game. Being in third-person lets us put so much more information on the screen at once, especially in how the character is responding to the environment. Without accessing a menu, the player can pay attention to expressive character animations, which provides a pleasantly lifelike experience for a survival game. If you drop your buddy a power lifeline in cooperative play, you can watch the batteries on his backpack recharge and his health return to normal without having to read off any stats. Gamers that are new to the genre will have so many more visuals that they can understand because they simply feel like things they've seen in the real world.
Cooperative play by itself is also uncommon to the survival genre, which is surprising because there's so much design space that's unexplored here! Survival games often tend to be bleak, lonely experiences. While we certainly have moments like that, we capitalize on it with moments when you're rejoined with a friend and the world suddenly seems a safer place. We're constantly looking for ways that players can interact while sharing both the dangers and rewards of their environment.
Astroneer's visual style is minimalist, yet distinctive. What were the reasons behind this style, and what design decisions and/or techniques helped to make it distinctive?
Adam - There are a lot of positives to choosing this art style over styles that Paul or I were more used to while working on AAA games before Astroneer. The most important one, I feel, is that it suits our team dynamic extremely well. There’s only a small number of us working on this game, so being able to remove development processes that are massive time sinks is a plus. This art style means no textures in the game. Which means we do not need to spend our time on UV unwrapping and creating 2D textures for the game. We can go from having an idea for the game, to getting its visuals done in a very short amount of time. That means iteration is rapid and fast, which is great for a team of our size.
Another reason for this art style is that we found our flavor of it to be one that was eye catching from a distance. We’re using big shapes with big strokes of vibrant colors. From a distance it can catch your eye. And with the theme being space, which is popular with a lot of people right now, the marriage of the style and the theme fit amazingly well. We find a lot of time that people are interested in the game almost immediately, just from a couple of images or a few seconds of video, without knowing much more about the game.
Why did your team choose Unreal Engine 4 for this project?
Jacob - Pretty simply, it's the only available engine that lets us build the game we want right now with the confidence that we can expand it into the game we are shooting for. On the design side, the Blueprint system has made it incredibly easy to do low-cost prototyping, and engineering for performance is certainly much easier when you're writing native code. Our artists have made great use of the professional, customizable shader editor, and the source control asset management has made collaboration easy. Perhaps most importantly, from a business perspective we have absolutely zero worries that we'll hit a shipping roadblock that we can’t fix with the full source code access the engine provides.
The Unreal Engine revenue sharing model also ensures that Epic is as invested as we are in actually shipping a quality game. Epic doesn’t receive a dime until we do, and it’s obvious that they are interested in getting quality shipped titles out there versus just getting more developers using the engine. Every single engine update has a staggering number of new features and fixes, and we're confident that the engine will only get better from here.
Does your team have previous experience with Unreal Engine? If so, how has the experience of using Unreal Engine as a small team compared to your experiences with AAA studios?
Paul - Adam and I have used Unreal Engine on prior projects as well as for personal works for many years so we are very familiar with the editor. I have used Unreal Engine since 2.0, having contributed to several mod projects such as Red Orchestra for Unreal Tournament 2003 and 2004, along with using UE3 on full game projects as well. Adam has also used Unreal Engine since 2.5.
Unreal Engine really makes it easy for 3D artists like myself to get content quickly into the game. In particular, the Material Editor and Blueprint systems have been incredibly valuable to me. I can easily create new shaders using the Material Editor even though I do not know how to write shader code, whereas with other engines I would need a programmer to write custom materials for me. Being able to utilize the Blueprint system to hook up gameplay logic to assets also helps us crank out content faster and get it working in the game. I’ve worked with other game engines that were not artist-friendly and I constantly had to work with a programmer to get content hooked up and functioning in the game, which caused big slowdowns in production and a lot of bottlenecks.
The Unreal developer community has also been a big resource when I have a problem or want to know the answer to a specific question. I've worked on closed/proprietary game engines before on other projects for which only one or two people in the whole world had the knowledge to help me with a problem. If I have a question regarding a topic in UE4, chances are that other users have had the same question and have asked it on a message board. If not, then I can post a question and quickly get it answered by another UE4 users in a rather short amount of time. This type of open community involvement is really important for a small team as it allows us to move past problems and bottlenecks faster without disrupting the other team members’ workloads.
System Era's employees are spread around North America. Are there any features of Unreal Engine 4 that aided the team with its remote collaboration?
Brendan - I personally think that Unreal Engine's tight integration with the compiler toolchain through UnrealBuildTool is essential. It means non-technical folks can build the game locally without the over-the-shoulder support they would usually need. This, in turn, means we don’t have to distribute game binaries, which keeps check-ins and syncs fast and light - a huge consideration for people working through home internet connections where bandwidth is tight.
With procedural generation being such a major component, what techniques and tools do you use to ensure memorable and interesting environments for the player?
Jacob - With procedural generation, you really have to make sure that the 'randomization knobs' have the right range. If you give up too many parameters to the generator, you’re going to get a lot of noise that isn't fun or interesting to the player.
We’ve solved this issue by introducing artist-designed biomes. These biomes are picked semi-randomly and distributed on our planets, and the placements of all the plants, minerals, and features are fully random. But, at the end of the day, each environment is one that we know is going to be fun and play well each time we hit the 'generate' button.
Were there any features of Unreal Engine 4 that proved particularly useful in enabling Astroneer's procedural generation and or terrain manipulation?
Jacob - We’ve ended up coupling many of Unreal Engine's features deeply into the terrain engine, especially from Unreal's Actor system. Each biome is an Actor, which lets us easily create variations that share certain parameters without having to create them from scratch. We can also add Components to decorators that can be read by the generation algorithm to customize their placement criteria. By fully embracing the modular nature of the engine, we've been able to spend a lot more development time designing our biomes instead of writing the code to generate them.
Were there any particular features of Unreal Engine 4 that proved to be more useful than expected, and how did they aid development?
Brendan - If you can consider being 'open-source' a feature, I think that has been unexpectedly important to us. We now deploy a modestly customized version of the engine, and the ability to not only see and debug the code, but to make the little mods we need to push the envelope technically is critical. And, having this flexibility in a mature engine without a steep up-front licensing cost as an indie company? That’s a game changer. Pun intended.
Jacob - I think the engineers on the team were initially skeptical of the Blueprint system, maybe because it seemed like it was infringing on our codez! We’ve since struck a really nice balance on the question of when to use Blueprint and when to use C++. Blueprint is often where we start a new prototype, because it has quick and agile access to all the game's content. Not having to leave the engine to work in a text editor creates a good flow for thinking about how to push the game forward. The native C++ side is where we've solidified our Blueprint prototypes and turned them into a reusable API, and this is when wholesale, thoughtful optimizations come into play. The whole process gives us the best of both worlds.
What has been your experience with being a part of the Unreal Engine community?
Brendan - For us it's been really great. The support from Epic is excellent, and it's very easy to see if anyone out there has faced similar challenges. Now that the engine is on GitHub, you can follow along with commits and see what's coming down the pipe. The Marketplace and the public AnswerHub are picking up. Epic themselves have been incredibly helpful and we've developed some really positive relationships with people inside the company that are rooting for us. They've created a really collegial atmosphere where they want to set people up for success as much as they can.
You've recently shown the game off at events like PAX East. How have people been reacting to Astroneer and how are you been applying the feedback you receive?
Paul - For PAX East we put a lot of new mechanics into the game that we wanted people to try out so we could gather playtest data. Some of those new mechanics were the crane drilling system, planet-to-planet travel, environmental hazards such as sandstorms, subterranean gameplay, and tether deployment, to name a few. The starting planet acted like a little tutorial for the rest of the demo. Players needed to be able to understand these simple interactions in the first few minutes of the game before being able to fuel up their rocket and fly to the main planet where the game became more open ended. We have a lot of tuning work left to do on the UX, but overall we feel people understood it pretty well.
The reaction we have had from events like PAX East and GDC were very positive - it was great being able to demo the game publicly and assimilating such much feedback. We found showing the game at such events helps us realign our priorities and get a better understanding of what to work on when we return to the studio. Despite being an exhausting experience from a logistical standpoint we found such events energize our creativity and we get eager to go back to the office and continue working on the game.
For more information, visit the Astroneer website and follow the game on Twitter and Facebook. To ask the developers a question, they invite you to ask them directly via Reddit and the Steam discussion group.