It’s time for another update. We’re looking at a UI upgrade and proxies today!
Until recently, some of the Outer Wilds' UI had remained unchanged. Some of our UI even dated back to the original student build about five years ago! However, this month we’ve made a huge push to update all of our fonts, menus, and player UI to final assets.
A collection of a few assets we’ve implemented into our new and improved menu.
One of the reasons, we have started this UI overhaul was to support localization. We are just beginning to prep for translators to transcribe our dialogue and text into a few different languages, which in turn, will require varying text box sizes.
We also implemented a few design changes to a few key UI. Specifically, we’ve implemented a new rotating thruster UI into the player’s helmet for when you look up or down. This was designed to help players understand what they’re jetpacking towards. This has proven especially useful underwater, where up and down are not always as clear.
One of the big things we’ve been doing to help game performance has been creating proxies. We sat down with our proxy maker, Nicholas Kim, and our gameplay engineer, Jeffrey Yu, to get a closer look at how we’re using proxies.
What is a proxy?
Jeffrey: Proxies are basically “cardboard cut-outs” that we use in place of the real objects when you're far away from it. We can't keep every single level element or complex geometry in our game active all the time, or else the computer will start choking on processing all the stuff that you can't see or interact with.
How is a proxy made?
Nicholas: Generally, its taking the existing model and making it as low res as possible while still getting the overall shape of the original. In making a proxy we have to keep in mind its polycount and its look when making specific textures to encompass all the structures on a planet. We use a combination of Maya and Zbrush to Decimate and combine existing structures into a low res mesh. Then we polish UVs to get a general coloring and look that will pass as a Far Proxy
What are the difficulties when making proxies?
Nicholas: There are special cases when making certain proxies. One difficulty comes when trying to find a balance between Terrain Meshes and Structure meshes, which are both fighting for poly count while making it a single mesh. Other difficulties happen when trying to get a certain look while also dealing with limiting the material/shader for specific textures. There's a special balance in trying to scale UVs and textures. You’re ultimately trying not to make an obvious repeating pattern in terrain at a far distance.
Why are proxies important to ‘Outer Wilds’?
Jeffrey: Since Outer Wilds does not have discrete levels, we must load and unload things as the player moves through the Solar System. So as you leave a planet, all the complicated bits are turned off, and in its place, a proxy planet, fades in. This frees up memory and processing power for when you enter a new planet, and then the process occurs again in reverse. This allows for a more immersive experience without the need for loading screens.
Will implementing proxies stop dynamic events from happening when you are not on the planet?
Jeffrey: Thankfully no! While we reduced the complexity of the visuals, the dynamic systems of each planet are still being simulated at all time. For example, Brittle Hollow will keep being bombarded by meteors that are still being simulated, but we don’t need to spawn the fancy visual effects we have when they crash if you are not anywhere close to that planet.
Until Next Time
Stay tuned for the next update where we’ll have more news, insights, and reminders for all of you!