-->

Graphics in XING + The Bright Side of Delays

Hello, John here!

For my blog post today I'm going to ramble about some of the development process we are going through, as well as some of the tougher problems I'm working to solve. I'll also address the ongoing delay of the release.

First, a quick update on development. I've recently been busy integrating the changes made in Unreal Engine 4.14 to our custom 4.12 build specifically to better support the ever changing SDK's of all the VR headsets we are supporting, as well as for a few other nice improvements to the editor. Our friends at Cyan were the ones who really encouraged us to mess around with the engine itself to better suit our needs, and while it's initially a daunting task I'm really happy I dove into it.

We've actually cycled our entire project from engine version to engine version since the original 4.0 release, and getting my hands dirty with the engine code is certainly helping me better understand some of the "magic" that makes up Unreal.

Rainforest Landscape Material

The specific changes I've made to the engine are mostly small, but important for our game. For example, I modified the code used for saving the game on PS4 to run on an asynchronous thread, meaning the game saves without hitches or pausing. Doing this change opens up the opportunity to have saving run in the background and not rely on breaking gameplay to save the game. Of course, having background saving presents the problem of how to let the player know their game is saved - something we'll need to address at some point.


Anti-Aliasing

Another important change I've made is modifying the internal Screen Space Ambient Occlusion (SSAO) shader to apply a simple full screen blur for use with Fast Approximate Anti-Aliasing (FXAA). This is essential for avoiding the strange dither pattern on SSAO when we are rendering without Temporal Anti-Aliasing (TAA).


Speaking of AA (anti-aliasing, or "removing jaggies"), I've decided to stick with FXAA as our primary AA solution. While TAA has some awesome strengths and really can completely remove aliasing in a lot of cases, the ghosting and Vaseline effect it gets criticized for in modern games like Fallout 4, as well as adding a slight rendering cost on lower end hardware, has led us to defaulting to FXAA. I'm not sure if we'll be offering TAA as an option as it currently breaks a couple of shaders, but you will certainly have the option to disable AA if you like, as well as super sampling the game if you have the hardware for it.
Scaling Cloud Shader
Scaling Cloud Shader

Graphics Settings

Graphics settings are an interesting point of discussion regarding PlayStation as well. While I've seen a few titles offer some settings to players in the past, it seems like more and more games are giving players some presets to play with on consoles - things like sacrificing frame-rate for resolution and vice versa. I'm honestly not sure what we are going to offer on that note.

All of our demos on PS4 so far have been 1080p unlocked frame-rate that sticks pretty close to 60 at all times, but to be fair we've been mostly demoing some of our less-demanding content. I personally prefer the game to be running at 45+ fps - any less and I start to "feel" the frame-rate, but I know some people strongly prefer 60 fps, even if it means sacrificing quality. I'm not super keen on providing a 900p setting, although I think a lot of games are 900p and most people don't even notice. Interestingly, another puzzle game (The Witness) decided to stick with 900p to lock the frame-rate to 60 on the PS4.


Profiling
Obviously the PSVR has a strict frame-rate requirement that we are required to hit, and to do so there is certainly a hit to post process quality and scene detail. I'm not gonna lie to you and say all these screenshots you've been seeing are coming straight off of a PSVR - the settings are noticeably dropped to maintain frame-rate (not to mention VR photos are pretty unsightly at the moment - I wonder if we'll see a better solution to that in the future?). In the interest of transparency, here's some work in progress photos demonstrating what some of the scalability settings will look like.

Work in Progress - High Preset
Work in Progress - Medium Preset
Work in Progress - Low Preset

Conclusion

On a concluding note, I'm very much interested in making sure XING is an extremely polished experience no matter the hardware you are playing on. I hope this attention to detail somewhat alleviates the admittedly extraordinary duration some of you have patiently been waiting for.  The scope and reach of this project has FAR exceeded my expectations setting off, for better or for worse.

But don't worry, this multi-year delay has some fantastic benefits for you, the player:

  • The game has about four times the content than we had initially designed
  • Voice-acted characters
  • A massive set of optional puzzles and content
  • Literally three years of polish
  • A completely ridiculous amount of art for a 3 person indie team to try to push out
  • Way too much music - levels that were going to have one track now have 4+ with variation
  • PS4 support
  • Support for the three major VR headsets, including tracked hand controllers
It's been a long wait, and because we still have a lot of unknowns ahead of ourselves there no point in specifying a target date. What I can say is we are very far along - things have never looked better for the future of the project, and we are in no way in any danger of disappearing. We've all worked extremely hard to get to where we are now and we will continue to do so until we are happy with the entire package we are releasing to the world.