Patch Notes Build 3682 (but who's counting?)

XING: The Land Beyond

You died. Welcome to XING: The Land Beyond, an atmospheric first-person puzzle adventure for desktops and virtual reality. Enjoy your peaceful escape from the chaotic world of the living, and travel the lands of the dead.

[h1]Update #8[/h1] [img]http://cdn.edgecast.steamstatic.com/steamcommunity/public/images/clans/27915618/5276c448a59f3b7b3942909d122bcd87112370b8.jpg[/img] Wowzers! You’ve been waiting, and now it’s here. It’s a XING update, and a big one to boot! We got a LOT of new updates coming out. Updates like these are the reason XING is the [i]coolest[/i] cinematic gaming experience there is. [b]You don’t know the half of it,[/b] that is, you won’t until you read the wonderful patch notes below. Pre-emptive TL;DR: VR comfort features (and sprinting!), cleaner interactions with motion controllers, CPU and GPU optimizations, and a whole lot of bug fixes. [b]PATCHNOTES:[/b] [h1]General:[/h1] [list] [*]The “Exit Level” option in the pause menu that appears when the player visits a previously completed level is now accessible via gamepad or keyboard. [*]Exiting level is now available on the final level after completion. [*]Fixed a hilarious bug where the player could use a jump assist pad while in the menu, causing them to shoot up into the air. [*]Audio now correctly fades both in and out when switching levels [*]Runes are now easier to pick up in general (most noticeable when using a gamepad) [*]Fixed a bug where runes received for 100% poetry pickup were very difficult to grab with a gamepad. [/list] [h1]Optimizations:[/h1] [list] [img]http://cdn.edgecast.steamstatic.com/steamcommunity/public/images/clans/27915618/326f92059c50476b64c09014653f1e62c82b4019.jpg[/img] [*]Overhauled the occlusion query system in Unreal. Systems with slower CPUs (cough) were getting easily overwhelmed with draws despite my attempts to keep things as lean as possible. With a lot of diagnosis I found out the dynamic occlusion system provided by Unreal has a substantial amount of overhead on the render thread for our large levels. Augmenting the system with the precomputed system helped surprisingly little - maybe a 0.2 ms improvement on a 5 ms problem. Splitting the level up into separate streaming levels would fix the problem, but that would entail completely deconstructing every level and rebuilding them with streaming in mind. Ultimately I came up with a hybrid solution. I sectioned out the level into multiple zones using volumes. When the camera is within the volume, it hides and unhides predefined sets of actors. Essentially it is a super simplified manual precomputed visibility. In certain scenes this can reduce the render thread down by 4 ms! [*]Limited the spawn rate of Muse item prompts, fixing a potential performance issue if a player with motion controllers decides to rapidly flail items in and out of a Muse. You can thank my cousin for finding that one! [*]Modified texture resolutions at low quality to help performance for video adapters with slow texture memory (I’m looking at you, Intel) [*]Reduced the number of dynamic point lights in low quality mode for better fill rate performance. [*]Recoded the wind turtles to be far more CPU efficient. [*]Fixed a potential CPU hitch when a new location title displays. [/list] [h1]VR:[/h1] [list] [img]http://cdn.edgecast.steamstatic.com/steamcommunity/public/images/clans/27915618/54fc953919aa17bd90c2f2e67324bf603804d8e7.jpg[/img] [*]You can now sprint in VR! OK, OK, you could always sprint if you used a gamepad, but now you can with motion controls. Simply double tap the movement button to start sprinting, just like in [i]Onward[/i]. I’m eagerly awaiting to see some VR speedruns! [*]Added an “FOV Filter” option - this smoothly restricts FOV with a gradient while moving as a nausea mitigation technique, probably most famously seen in [i]Skyrim VR[/i]. For now I’ve set this to be off by default, but it can be enabled in the VR menu. [*]Fixed a bug where the blur effect when picking up poetry would also affect the poetry itself. This happened only with motion controllers as it required some shenanigans with trying to pick up the poem with both hands. [*]Fixed a super weird issue when if the player tried to pick up a poem with both hands it had a chance to become “unhinged” from the pedestal and simply drop to the floor, becoming completely unusable. [*]Setting snap turn to 0 now works with Touch controllers in addition to gamepads. [*]Addressing the “Oh no, I fell through a bridge, the collision in this game sucks!” posts that have been cropping up: The collision is fine! The issue is depending on their VR setup sometime people don’t play in the defined center of their play area, resulting in a desync between the players collision and their actual HMD location. Before launch, I tried actually hard locking the collision with the HMD, meaning wherever the HMD went, the player collision followed. While this did solve the desync problem and allowed a few cool situations, it created a myriad of problems. Primarily, since it’s basically a strict rule to always sync the HMD location with the actual camera in game, there were issues with the player physically moving their body somewhere the collision would not be able to go. You could do things like walk off of a cliff in roomscale - not the most pleasant experience. Chiefly, it ended up being a major distraction and did not work well with our game design, so I shipped XING without really addressing the potential desync. Turns out most people have no trouble with the current system of just assuming the player is in the center of their play area. However, there certainly are a good number of situations where the player might not be in an idea location and the desync will occur. I implemented a “Reset position” button in the VR menu to account for this. Two problems with this: One, many people never open the menu or don’t know that they might need to press it. Two, it was deliberately not resetting position on SteamVR, only orientation. The first problem had a relatively simple solution. Whenever the screen fades out in any way (level loading, teleporting, drowning etc) I reset the orientation and position. The game basically resyncs itself transparently throughout gameplay - you can still get off, but assuming you maybe missed a jump because of the desync, when you respawn your sync will be perfect. But oh boy. Resetting position on Vive is not straightforward. Unreal, for whatever reason, resets the position on SteamVR based on the floor. This kind of makes sense, but what ends up happening is that the camera resets to exactly the base of the character - ie foor level. I could artificially move the camera up, but at that point I’d lose the calibrated floor height data from the SteamVR data. Even worse, if I reset position, [b] it’s permanently reset until I restart SteamVR,[/b] meaning that without some major edits the camera is way off with no way to get it back to its original calibrated location. I dug around in the SteamVR plugin code and found that it was indeed offsetting the Z height based off of the HMD position. So, being the clever coder I am, I just put a zero in for the Z value of the offset vector. Et voilà! Finally, expected behavior. [*]Enough people were asking for it, so I changed “Stick movement” from being based off of HMD orientation to being based off motion controller orientation. It does make the system a bit more complicated, but I consider stick movement to be an advanced feature anyways, and since the kingpin game of advanced VR users is [i]Onward[/i] and it uses this controller based strafing feature, in it goes. [/list] [h1]Zeneth:[/h1] [list] [*]Fixed an issue where the screen would not fade in properly on lower end machines. [/list] [h1]Nahele Rain:[/h1] [list] [*]Replaced a static jump helper with an active one (whoops!) [*]Made some improvements to jump helpers near the second puzzle door. [*]Improved rain occlusion in the center temple area. [/list] [h1]Hyaku Lake:[/h1] [list] [*]The main puzzle doors now display their corresponding talisman piece instead of always showing the first quad. [*]The freezing waterfall near the intro now correctly breaks again if it is thawed and refrozen. [*]Fixed some LOD meshes near Miki’s house. [/list] [h1]Naar:[/h1] [list] [*]Added a rock in the third puzzle door area to prevent players from getting stuck near a palm tree. [*]FINALLY fixed the weird floating raft issue in the middle desert area where the rafts were raising too high - turns out the meshes were rotated strangely and Z direction became Y direction, meaning instead of moving tangentially with the water they moved in parallel, increasing their height. This was combined with them literally being attached to the wrong river. Wow me. [/list] SPOILERS [spoiler] [h1]Akasha:[/h1] [list] [img]http://cdn.edgecast.steamstatic.com/steamcommunity/public/images/clans/27915618/cd776bbe392d555e149874bb4792a5f5422f74da.jpg[/img] [*]Optimizations - I was presented with an unusual problem with optimizing the final level. Given it’s vertical nature, it lacks the snake like shape most of the other levels abuse for occlusion purposes. To combat this, I actually looked towards one of the oldest tricks in the book - fog. I added a “cloud” layer between each of the 3 puzzle zones, limiting visibility on lower end machines. The cloud layers are only visible when environmental detail is set to low when the level is loaded - you can experiment with them if you’d like by turning the setting to low and restarting the level. I think they look pretty cool, though I prefer the level with full visibility enabled. Let me know what you think if you have an opinion on this! [*]Fixed an issue where the level would not load properly on low end systems. [*]Merged some structures together to save on draws. [/list] [/spoiler] Thanks everyone for reporting and patiently waiting for many of these bugs - this community may still be small but you all have big hearts : D. Kori and I are amidst discussion about what lies in store for the future but I can safely tease that some new content is on the way. I’ll also be on the lookout for the classic fix-10-bugs-create-18-more issue, and will be ready to make a hotfix, should the unfortunate occur. [b]Happy XINGing![/b]