Observatory: A VR Variety Pack

Observatory: A VR Variety Pack

2DArray  [developer] May 25, 2016 @ 3:05am
0.1.1 Update - "The Motion-Control Patch"
Ahoy there!

We just launched our first patch for Observatory! If you aren't sure whether or not your game has updated, you can quit and re-open the Steam client to force everything to check for patches.

We did a quick round of testing on the "unpolished" branch before making it live for everyone - if you think that sounds like something you'd enjoy, here's how to get to the unpolished branch to help test future patches before they're released (assuming you've already bought the game):

1. Right click Observatory in the Steam Library list
2. Pick "Properties"
3. Go to the "Betas" tab
4. Switch from "default" to "unpolished"
5. Wait for Steam to download the changes

(You can switch back and forth at any time.)

Quick note on version names: I'm calling the initial Early Access build "version 0.1," and this new one is version 0.1.1.

This patch focuses primarily on two things: a new feature and a significant fix.

First off: By popular demand, both Hamster Slide and Phantasmagoria now support the Vive's motion controllers! Phantasmagoria only really uses them for its main menu (and "any input" commands to start/quit the video), but we're including the support for convenience anyway. Hamster Slide has a more involved implementation - generally speaking, the game is now fully usable with a keyboard, a keyboard + a mouse, a gamepad, or motion controls, and everything still works with or without a headset (other than Vive wands, which I assume require a Vive?). You don't need to do any setup to pick which input type you're using - just start using one of them, or switch between them at any time. You'll need to make sure your gamepad is plugged in before the game launches, though.

(Known issue #1: The Vive's UI laser pointer shows an inaccurate ("not far enough") hit position for the Restart and Quit buttons in the Hamster Slide pause menu, but the buttons are still usable, and the other UI buttons in the game work as expected. Any Unity devs have any insight about a GraphicRaycaster doing that?)

Second: I fixed a major pair of issues that were reported in Phantasmagoria, which were causing a huge amount of terrible-horrible audio stuttering (particularly in the Vive version). The first problem was a bit of poor optimization: the video had a sloppily large amount of overdraw in certain scenes (lots of transparent objects layered on top of each other) and it was wasting some time on un-utilized internal rendering tech, which were causing unnecessarily poor GPU performance. The other, more dire problem was a janky audio re-syncing method I wrote a long time ago, which was originally intended to help out with an internal "fast-forward" feature. If it detected that the video had been fast-forwarded, it would jump the audio to match it back up. See, the fast-forwarding trick used Unity's global "time scale" value, which can speed up or slow down most time-based processes - but audio playback is not affected when you do this. This trick also ended up inherently serving as a way to keep the audio in sync during normal playback - but I never really stopped to consider if there was a better way to handle it in the release version, where fast-forwarding wasn't a part of the equation anymore.

Turns out, resyncing the audio like that and trying to make it sound good was a bit of a fool's errand. See, almost any time you skip the audio playhead around, even if you move it by "small" amounts (say, a hundredth or even a thousandth of a second), you get nasty popping sounds, because an audio file is supposed to represent a smooth continuous value over time, and that value is stored at an extremely high frequency. Maybe there's some clever ways to pick "safe" spots in the waveform to jump to from a given starting position, but that seems over-elaborate in this case.

A simpler solution was to do the retiming backwards: Instead of retiming the audio playback, we now retime the visual playback (DUH-DOY). This is much easier to deal with on a conceptual level, because just about everything that's animated in the video is smoothly interpolating over time, and the data frequency is super low compared to an audio file. We can safely adjust the video speed in an analog way (remember the global time-scale value that doesn't affect audio playback?) instead of having to do hard-cuts to specific target positions, so it doesn't cause an equivalent of the audio stuttering or popping. If we tried to do this kind of smooth-speed-shifting with the audio file, the sound's pitch would change, and even subtle fluctuations could mess with the tuning of the song. So, whenever the audio is out of sync (which, apparently unavoidably, happens constantly - by teeny tiny amounts), we can just speed up or slow down the animation playback by a very, very small amount. Like, it might animate at 99% or 101% of normal speed for a few frames to match back up, and it gets closer to 100% speed as it approaches a proper match - I don't think the shifting is noticeable unless your machine is already stumbling way too hard for VR (and in case you're freaking out, this feature isn't something that's changing the framerate, or anything offensive like that).

(Known issue #2: There are still a few frames during the music video when large assets are loaded by Unity in the background, which can cause individual frames to spike, though the better retiming should at least help to alleviate the problem)

Other stuff in the patch:

* Some fixes for music video post-processing (including the removal of a weird peripheral ring in the Oculus version and the addition of the entirely missing set of post processing filters in the Vive version).
* The music video's "Super" video setting now enables the same SSAO filter that's used in the top setting in Hamster Slide.
* Improvements to the Hamster Slide tutorial (it became a bit outdated when certain gameplay elements changed, causing certain segments to drag on for too long).
* Fix for the ugly "double UI" bug for Vive users (hooray!).

Now that this patch is done, I can get back to fiddling with neuro-evolution for our physics-based kangaroos (have you seen my twitter page?), but mostly we're going to be stepping back into Antibody to push it toward a state that's ready for default access. We don't know exactly how everything will work yet*, but we're pretty sure it's gonna be rad!

...But before that, I'm taking a quick trip to my home state to visit the old faces.

---------------------------------------------------------------------

*(This is normal; do not be alarmed)
Last edited by 2DArray; May 25, 2016 @ 6:33pm
< >
Showing 1-6 of 6 comments
yugdesiral May 25, 2016 @ 5:14pm 
Nice notes, thx!
2DArray  [developer] May 25, 2016 @ 6:34pm 
Thanks to you, too!

The patch is up now, so I edited the thread a bit. You may need to restart Steam if you've already had it running and it didn't apply the patch on its own.
koenada May 30, 2016 @ 6:03am 
Observatory's "unpolished" beta doesn't seem to load for me. When trying to run the application, I get the following error:

"Failed to start game (missing executable)".

I attempted deleting the game and reinstalling in adition to verifying the game cache but receive the same error. I'm guessing a recent change in the beta branch caused this but I'm not sure.
2DArray  [developer] May 31, 2016 @ 6:23am 
Oh interesting - it turns out that our installation was working differently depending on whether you bought the game or got a free key. All of our internal beta-version testing has been done with the free keys, so I didn't notice that the Actual For-Sale Version accidentally didn't include the beta branch.

HURR DURR, try it now
Last edited by 2DArray; May 31, 2016 @ 6:24am
koenada May 31, 2016 @ 10:46am 
Everything seems to be working now. :-)

The motion controls are also pretty awesome. They seem to work really well for the racing.
2DArray  [developer] May 31, 2016 @ 1:01pm 
Originally posted by ScrewzLuse:
The motion controls are also pretty awesome. They seem to work really well for the racing.

That's great to hear! I was a little worried about that stuff because I prefer a gamepad over motion controls, and I only included the support because other people were telling me they wanted it. Because of this, there was a certain added risk of it ending up as a poor implementation.

That being said, if anyone has any comments about how the motion controls work, or how they could be improved, I'm all ears
< >
Showing 1-6 of 6 comments
Per page: 1530 50