Thursday, November 24, 2016

Dev update #25



This is quick update to let you know what we're working on. Desktop app will let you know that auto-update is ready soon (version 1.1.3).

Stable update for desktop app (v. 1.1.3)

We're pushing desktop beta updates to stable branch. Everyone will be able to take advantage of software encoder on low end PCs. This is last resort option because this will put heavy load on CPU. You should only use it if you don't have any compatible hardware (recent GPU or Intel Core CPU).

This update also includes some stability tweaks, UI changes, newsletter opt-in and Gear VR edition download button.

Motion controller black screen

Several people reported that black screen no longer happens in Steam VR beta when you use multiple drivers (e.g. VRidge and PSMoveService). Check it out and send log files* if it still blacks out for you.

*vrserver.txt located in Steam/logs (by default: C:\Program Files (x86)\Steam\logs).

Work in progress: sound streaming

The sound streaming work is done on the Windows and networking side. We just need to finish up Android decoding and playback. It's still on track to be released as an update sometime in December.

Work in progress: android improvements - jitter, Android 4.x, HEVC

During our jitter research we decided that it's worth a shot to try synchronous video decoder instead of asynchronous (which is recommended by Google). This will allow for VRidge to work on Android 4.x devices.

Most of the older phones that weren't upgraded to Android 5.0+ aren't great VR devices but there are some phones that have 720p+ display there were simply forgotten by carriers and were left with Android 4.x OS. If you have decent Android 4.x based phone with 720p (or better) display and you want to try VRidge on it - e-mail us at support@riftcat.com with "Android 4 testing" as subject line. We'll contact you when we have something worth testing.

Creating synchronous decoder as an option forced us to do some refactoring of our decoding & rendering flow. This will make it easier to implement HEVC/H265 coding which is ~40% more efficient than H264 that we use now. This means 40% better quality at the same bitrate. We hope that we don't run into major roadblocks on the PC side. We'll start with NVIDIA GPUs first for HEVC.


We are also in process of getting Daydream & Pixel to explore new VR possibilities on Google's new flagship device but it's too early to talk about the details.

Thursday, November 3, 2016

Dev update #24

Regrouping and reorganizing

You may have noticed that our development slowed down lately so we want to explain why it happened.

VRidge userbase grew a lot during this year. When we first shown our prototype proof of concept in March we expected some people to be interested in beta testing but we didn't expect thousands.
We always love chatting about development, receiving feedback, solving user problems. Our devs were always directly responding to e-mails. This includes feedback, suggestions, bug reports, pc upgrade advice, general VR chat. It was taking more and more of our devtime.

Now VRidge's userbase is approaching 100 000 and the old ways that used to work had to be changed. Even if we hear back only from a small subset, let's say a 3% of our userbase - that's 3 thousand people.

That's why our devs will no longer be the frontline of our support system because it simply takes too much time discussing every single case individually. Our support system will of course continue to work but we'll try to write a general FAQ items on each type of issue so people can fix most of the problems on their own. We'll have a dedicated person handling support tickets that will be communicating with our devs on a regular basis.

Dev note:  We love solving problems directly but this way we'll be able to fix underlying problems faster instead of developing duct-tape workarounds for each invididual case. :) We'll also continue to hang around reddit. We didn't post too much lately but we read every single discussion.

If you contacted us lately and haven't received a response for a few days, don't worry - we'll try to cach up with everyone soon.

We're also reassigning our dev time. Until now we focused 100% on fixing problems instead of adding new features but there's a good percentage of our users running VRidge without any major problems. That's why we'll have 1 developer assigned to fixing problems and optimizing experience (including "the jitter", read more in the last paragraph of this post) while the other developer will work on adding new features.

Sound streaming

If you have decent ac router and non-crowded 5 GHz band you can usually stream wirelessly with quality, lag and reliability comparable to USB cable. Many people asked us for sound streaming for fully untethered experience. Being able to sit down on your couch without a bunch of wires limiting your movement sounds very nice. You will be able to turn it on/off because there's no need to stream another data channel and eat up extra bandwidth if you want to use PC headphones anyway. We want to deliver this feature in December.

PS Move / controller black screen

We tried to fix it on our side. We exchanged our data and test results with PSMoveService contributors but it seems that the problem is not linked to VRidge itself but to the way SteamVR handles multiple drivers. It also happened with Oculus DK2 with PSMoveService (without VRidge) or with Leap Motion + VRidge (without PSMS). PSMoveService on its own works fine. VRidge does work on its own as well. But it seems that when two drivers are interacting with SteamVR together they may randomly "collide" when they try to send messages at the same time. It's a speculation because it's hard to know what exactly is happening because SteamVR runtime isn't open source. You can read full discussion here. We'll definitely let you know if we have more news on this topic.

Jitter

It's a bit long so there's a short version at the bottom. Scroll down if you want to skip this wall of text.

We tested, we measured, we analyzed rendering with high FPS cameras, we spent many, many hours trying to exclude all possible factors of this problem with various phones and display types. We know that in fact 60 (58 actually but this doesn't change anything) frames are reaching the phone (assuming good connection conditions) but something's not quite right - it feels jittery.

Nearly all (90%) of jitter reports come from S6 & S7 (Exynos chipsets) but there were few Snapdragons reports too. It's hard to tell if those Snapdragons experience the same underlying problem as Exynos devices. Samsung devices also use different type of screen than other mobile phones (AMOLED).

We knew that it's visible the most in Gear VR version but it also happens in Cardboard version on S6 & S7 too. After extensive testing we found that other phones also experience not exactly silky-smooth rendering during head movements but it's not quite as noticeable. It may manifest itself in bluriness instead of jitter.

Human perception is a tricky subject and some people don't see a difference between 30/60/144 FPS. People can play games with lowend GPUs at 20 FPS while some others consider the experience ruined if it drops below 60 FPS. The worst thing about it is that it's hard to objectively judge how smooth our small changes affect the experience. We do some changes, we test them again and compare, we show it to different people but when we try to describe how smooth it feels on a scale of 1-10 we get very random results. We literally have to stare at the distance through the window for a while to "reset" our eyes to see differences between our test versions. That's why it takes so long to achieve the perfect streaming.

We tried to use numeric metrics like FPS or frame latency but even we use high FPS camera to record the screen it's hard to catch everything because human eyes don't see the same way camera does. We don't have a brain refresh rate or eye capture rate. We see motion and we know when it's fluid and when it's not. We can get used to non-perfect rates but some some people may get a headache after a while and that's not something we think is acceptable. We know that even regular VR HMDs can trigger headaches and motion sickness in some people so the problem is not 100% solvable but VRidge has a lot of room for improvement.

Since all of our tools and metrics failed to give our definitive, measurable answer that can be used to compare different versions of VRidge we decided that we need more metrics, tools, numbers, graphs, timings, all kinds of data. We wanted to fix it quickly, to find the the wrong line of code, the mistimed part of the pipeline but it seems that there's no magical, easy way of "fixing" it.

With one of our developers assigned to new features and one free to dig deep into the VRidge internals, we think this approach will be the better way of handling the jitter problem. It takes more time but this we can do it the right way instead of the quick way, which doesn't always work. Will it work? We very much hope so.

You can think of VRidge as a street between two points - your phone and the PC. The problem is that there's a bunch of intersections - sensor reading & fusion, sending sensor data, SteamVR/Oculus driver interaction, game capture, encoding, sending, transmission error concealment, receiving, reconstructing, decoding, rendering. A small traffic jam at any of those intersection can stall the whole flow. Cities have cameras to monitor traffic flow and to optimize urban planning. We need similar tools monitoring flow at each part of the pipeline.

We found one thing that can possibly reduce jitter a little bit in non-GearVR Android version. This will be probably pushed to beta Android channel next week. It's the first step of fixing the problem but definitely not the last one.

TL;DR; We didn't find a quick solution for old problem so we took the long way to diagnose them more thoroughly. Some of you are quite happy with current version. so we're splitting devtime 50:50 with 1 dev assigned to new features and 1 to optimize and fix old problems.

Friday, October 7, 2016

Dev update #23 - After the storm

What happened 

On October 4th an update was released to SteamVR. It included changes in direct display driver component which is utilized by VRidge. The changes weren't documented/reflected in OpenVR interface. We've seen those changes in SteamVR's beta channel and after it started flickering there (few weeks ago) we posted the issue to SteamVR forums. An unfortunate series of events caused this changes to go into live SteamVR channel anyway. 

The result was preeeeetty bad. Everyone experienced flickering in random intervals making VRidge totally unusable with SteamVR. Less than 1 hour after the changes went live we contacted SteamVR team through more channels to ask for help.

The SteamVR team was very responsive but it takes some time to update the live system. We were amazed that they pushed the update with a fix into their live stable channel on such short notice (everything was fixed in less than 24 hours). Some companies attempt to wall themselves off from 3rd party support and modding but Valve is doing the complete opposite with this kind of open attitude. We always recommended OpenVR/SteamVR for aspiring VR developers when they asked us how to start VR gamedev and we will continue to do so. It's nice that some companies care about VR's future overall. 

What we learned

It's hard to have a system working 100% of the time when it relies on multiple 3rd party components (SteamVR, GPU drivers, Windows version, OS components, router config & rules, Android OS flavors, phone chipsets, Direct3D, etc). It is difficult, but there are still ways to mitigate the critical situations like this.

We will add some sort of emergency alert to the desktop client so we can notify about the possible compatibility issues. Sometimes all you need is to update some 3rd party components (like video driver) and everything starts working again. We can write this kind of important updates on our blog/facebook/twitter but over 90% of our users stay in client without checking the social media. A simple way to push a message to the client from our servers with a link to a detailed article can do wonders. Many other companies already have something like this (Battle.net or LoL launchers come to my mind). 

We will also follow SteamVR's beta updates more closely now. If there's a chance of this kind of stuff happening again we'll start preparing alternative fallback ways. There is a way to capture SteamVR game surface with a slightly increased latency that could have worked even after the Oct 4th changes. Degraded performance while we are working to fix it "the right way" is better than app not working at all.

What we were doing in September

We've been working on behind-the-scenes modules and refactoring some code. This is in preparation for future Android 4.x version and iOS. This also allows to see clearer performance picture which is very helpful to locate Android performance problems (Samsung jitter mostly).

We were updating part of the platform so we can add more servers. Currently all our online service are running on single machine which works well enough but it sometimes need maintenance/updates or simply just fails due to some unforeseen event. Having one more gives us some more breathing space. 

What's next

It's been a while without a feature update. There are a few unsolved problems that we are prioritizing now - Samsung jitter issue and motion controller black screen. Planned features are fake VR (playing regular flat games in VR), sound streaming and iOS version. We want to squeeze in an updated video encoder (H265/HEVC, double the performance of current one) somewhere in the meantime.

We know that some of you really want to know when we'll add those but giving ETAs often causes devs to go out of our way to meet the deadlines instead of doing things "the right way". This can work short time but over a longer period it leads to spaghetti code and long terms bugs that are hard to fix. All we can say is that our current short term priority is Samsung jitter & motion controller black screen and we really hope to see progress on these in October.

Wednesday, October 5, 2016

[Resolved] SteamVR broken after Oct 4 SteamVR update

Problem is fixed

Many thanks to SteamVR devs who were very helpful and responsive during past 24 hours.

All you need to do is to update your SteamVR to the latest beta. Right click SteamVR in Steam library -> Properties -> Beta -> Select "SteamVR beta" in the dropdown box.


The fix is live in stable SteamVR update channel! Let your SteamVR install any pending updates and you're good to go. You might need to restart Steam to get latest updates.



After latest SteamVR update an important component stopped working in SteamVR. New SteamVR version is using undocumented closed code which broke VRidge.

We are surprised that they pushed the beta runtime into live channel without updating their documentation first even after multiple developers* reported the problem to Valve as compatbility breaking.

It's hard to fix a problem without proper documentation or at least an explanation what changed inside the black box. We'll continue to search for a quick workaround. We'll also try to reach out to SteamVR team through more channels than we already did.

It's middle of the night here and I don't have all the information yet.  This post will be updated with more news as soon as we know more.

*
https://github.com/OSVR/OSVR-Vive/issues/21
https://github.com/ValveSoftware/openvr/issues/276
https://steamcommunity.com/app/358720/discussions/0/343786746012512454/



Past updates:

Update @T+30mins:
We received response. SteamVR beta update with a fix should be available this afternoon or tomorrow (Seattle time). Switch to SteamVR's beta channel to make sure update is installed as soon as it's available.

Update @T+60mins:
SteamVR beta update is deployed. We are investigating remaining compatibility problems.

Update @T+80mins:
The problem still occurs but the characteristics changed. We are trying to find out why the new version still has this issue.

Update @T+120mins:
Many thanks to Valve for quick updates. They are investigating update changes further.

Update @T+12 hrs:
We're eagerly awaiting Seattle office hours to hear back from Valve. In the meantime we're trying to develop an alternative capture method that doesn't rely on direct mode driver compatibility.

Update @T+18 hrs (Oct 5 - 10:00 AM PDT, 1:00 PM EDT, 19:00 CEST):
The problem has been escalated further by SteamVR devs. We are thinking about creating temporary SteamVR driver rewrite but we're still estimating the scope of work needed to do so. We updated our main site with a site-wide notification about this problem.

Update @T+20 hrs (Oct 5 - 12:00 PM PDT, 3:00 PM EDT, 21:00 CEST):
An update has been released to SteamVR's beta channel. After updating SteamVR the issue should be resolved. Both Riftcat beta and stable channels seem to work correctly. We're running some more tests to make sure everything else works fine.

Update @T+22 hrs (Oct 5 - 2:00 PM PDT, 5:00 PM EDT, 23:00 CEST):
The fix is live in stable SteamVR update channel! Let your SteamVR install any pending updates and you're good to go. You might need to restart Steam to get latest updates.

Friday, September 9, 2016

Dev update #22 - Gear VR first release


Update: If you experience jittery streaming on your Samsung device, see this topic:
https://support.riftcat.com/hc/en-us/articles/211516609

---

Gear VR edition is out! You can now download and install it and use full power of your Gear VR sensors. Scroll down for instructions and known issues.

VRidge for Gear VR


Yesterday evening our submission was approved at SideloadVR. Even without a blog post or Facebook/Twitter update some of you found the app minutes after it became available. It had several hundred downloads after few hours. It's amazing how fast you guys are!

It's the first version and some bugs are present but we'll keep bugfixing everything as soon as we can. The first bugfixing update (version 2) should be available shortly after this post is published. 

Instructions

You need SideloadVR which repackages VRidge .apk file for every user individually. It's needed because you can't easily install 3rd party Gear VR apps from outside of Oculus Store.

Remember that you need to turn Gear VR service back on (with CB enabler or any other app you used to disable it) if you disabled it to use your Gear VR as cardboard viewer. If you don't do it, no Gear VR apps will launch (tapping icon will not open anything).

Short version:
  1. Install SideloadVR and run one-time configuration.
  2. Install VRidge for Gear VR
  3. Start VRidge for Gear VR from your app drawer and pair it on the desktop side.
Detailed instructions:
  1. Install SideloadVR on your Samsung device
  2. Follow in-app introduction to complete one-time setup
  3. Go to Browse Marker in left drawer menu.
  4. Find VRidge for Gear VR by RiftCat Sp. z o. o. and install it by clicking top right button.
  5. You will see Android app installation popup. Some Samsung devices may treat unknown apps as unsafe and you might need to confirm it multiple times that you want to install the app.
  6. Launch the VRidge for Gear VR app in your Android app launcher.
  7. Pair it with desktop app (same as the regular app - full instructions here)

Known issues

Entries marked with * should be fixed with version 2 released today.

*Double vision / lack of stereoscopy

Few people reported double vision because images are aligned incorrectly. Some of you noticed that the picture is not stereoscopic. You're right, the first version has left eye duplicated twice on the left and right side. This should be fixed by today's update. We were playing around with stereoscopic/monoscopic views and somehow we pushed the wrong version into release channel. Sorry!

*App treated as unsafe by Samsung

Some Samsung Android OS versions were showing big red warning that app is unsafe and you shouldn't install it. We removed some permissions and the warnings should be gone. The permissions were there because Cardboard SDK needed them.

*Green/garbled stream 

Some of you reported that they can't see anything because view is all messed up. This happens on beta version of VRidge Cardboard app too and can be fixed by disabling automatic stream fixes in mobile settings. We're disabling this by default for Gear VR edition since Samsung devices handle stream without any problems anyway and don't need those fixes - "if it ain't broke, don't fix it". Hopefully disabling those fixes won't cause any problems. We might need to add per-device user switch if it does.

Latency / delay

Some of you reported unusually high latency. Delay will be obviously bigger vs regular Gear VR apps because we need to stream frames from the PC but it should be still in comfortable range. If you experience large delays please e-mail us at support@riftcat.com and include your Samsung model number and Android OS version. You can it in Settings -> About phone screen.

We will keep tuning the prediction values to reduce the latency. We might need to find the right balance between jitter and floatiness/lag. If you find the current experience comfortable, shoot us an e-mail and describe how it feels. If you give us enough feedbacks we might introduce some default presets + extra sliders so people can fine-tune the tracking.

Thursday, August 25, 2016

Dev update #21 - Legacy GPU support




Update on Gear VR (1 September):
We managed to fix known bugs but we still need to shuffle some code and run some tests after. We will try to finish all the release prep work before Monday so we can submit the app to Sideload VR early next week. Sorry for being late!

---

This is a small update, not the one with Gear VR support. Minor bug fixes and a new software encoder for some older GPUs. Desktop app version is 1.1.2 and it's available in beta channel.

Software encoding

Many people kept asking us to introduce support for video cards other than modern GeForces and Radeons. We added Intel HD Graphics support (starting with Intel Core 4000+ processors) but it wasn't enough.

Today we bring full software encoding capability for all systems running Windows 8.1+. This will allow you to run VRidge on any system that can launch your games in VR. There will be of course limitations and game / SteamVR / Oculus hardware requirements still apply but no extra hardware will be required by VRidge.

This mode is last resort option and is automatically pre-selected only if no modern video card is detected on the system. This puts high load on your CPU (depending on video resolution but good CPUs can encode 1080-1440p in real time). It may also add some latency depending on your CPU performance. It's the worst decoder out of all the options but it's the best one where none of the other options work. 

New software encoding option

Bugfixing

  • Sometimes SteamVR wasn't launching VRidge server properly. An extra option was added to desktop app settings. If you check it, it will run some extra checks during launch process to make sure VRidge server starts properly.
  • AMD "Not enough storage" or "Signature verification error" error will now ask if users wants to open troubleshooting page for this error.
  • Old NVIDIAs (pre-Kepler chipset) will no longer default to NVENC encoder. It will now offer new software encoder.
  • Changed MF's default encoding profile to 100. It shouldn't cause any problems but if it does, go to Riftcat\Config, open vridgeQuality.cfg with notepad and change UseLegacyProfile to true. Setting it to legacy profile may affect Android device compatibility.
  • Minor text fixes.

GearVR news

We contacted SideloadVR to make sure we have some platform to launch on. If they don't agree to host VRidge we'll have to create our own repackaging service to bundle user signatures. This shouldn't be too hard but may delay release for few days if SideloadVR crew refuses to host VRidge.
There is one major bug to fix and we're good to go. Expect more news and, if everything goes well, an apk file next week.

Dev update #21 - Legacy GPU support




Update on Gear VR (1 September):
We managed to fix known bugs but we still need to shuffle some code and run some tests after. We will try to finish all the release prep work before Monday so we can submit the app to Sideload VR early next week.

---

This is a small update, not the one with Gear VR support. Minor bug fixes and a new software encoder for some older GPUs. Desktop app version is 1.1.2 and it's available in beta channel.

Software encoding

Many people kept asking us to introduce support for video cards other than modern GeForces and Radeons. We added Intel HD Graphics support (starting with Intel Core 4000+ processors) but it wasn't enough.

Today we bring full software encoding capability for all systems running Windows 8.1+. This will allow you to run VRidge on any system that can launch your games in VR. There will be of course limitations and game / SteamVR / Oculus hardware requirements still apply but no extra hardware will be required by VRidge.

This mode is last resort option and is automatically pre-selected only if no modern video card is detected on the system. This puts high load on your CPU (depending on video resolution but good CPUs can encode 1080-1440p in real time). It may also add some latency depending on your CPU performance. It's the worst decoder out of all the options but it's the best one where none of the other options work. 

New software encoding option

Bugfixing

  • Sometimes SteamVR wasn't launching VRidge server properly. An extra option was added to desktop app settings. If you check it, it will run some extra checks during launch process to make sure VRidge server starts properly.
  • AMD "Not enough storage" or "Signature verification error" error will now ask if users wants to open troubleshooting page for this error.
  • Old NVIDIAs (pre-Kepler chipset) will no longer default to NVENC encoder. It will now offer new software encoder.
  • Changed MF's default encoding profile to 100. It shouldn't cause any problems but if it does, go to Riftcat\Config, open vridgeQuality.cfg with notepad and change UseLegacyProfile to true. Setting it to legacy profile may affect Android device compatibility.
  • Minor text fixes.

GearVR news

We contacted SideloadVR to make sure we have some platform to launch on. If they don't agree to host VRidge we'll have to create our own repackaging service to bundle user signatures. This shouldn't be too hard but may delay release for few days if SideloadVR crew refuses to host VRidge.
There is one major bug to fix and we're good to go. Expect more news and, if everything goes well, an apk file next week.

Thursday, August 18, 2016

Dev update #20


It's been a while since our last updates. Some of us took few days off to enjoy some of the summer sun but we're now back in full force and ready to code some VR!

Gear VR edition progress update

Last week we managed to put together core components of GearVR version. We already have working internal version which benefits from fast and stable sensors. Latency is a bit better because of more frequent updates of head rotation. The whole experience is noticeably smoother and has no drift.

Because of similar concepts in both Android and GearVR versions we decided to spend some time to extract as much as we could into shared library to make further developement faster. There is still some work to be done in terms of stability and user experience but things are really looking good and we are satisfied with progress. There is no release date at present but some test version should become available this month. It's now a matter of weeks, not months.

There's a really nice thing about Gear VR native API. We can set CPU frequency to lower (reducing battery drain and heat generation). We hope that it allows to run long Gear VR sessions without overheating.


Soon™

Phone compatibility

We spent a lot of time trying to fix some of the problems experienced by specific phone models (Zenfone 2, Galaxy S4, Redmi Note 2/3, Huawei Honor 4C/P8 Lite). This process takes a lot of time because those problems happen only in very specific configurations that we cannot reproduce with our hardware. There will be beta mobile update tomorrow that will include some extra fixes for Zenfones 2 running Android OS 5.0 (Zenfones 2 updated to 6.0 should work already in beta channel).

If you still experience problems after tomorrow's update (mobile app ver. 1.1.1b) use the Diagnostics mode available in settings and send us logs again. We only received several reports this month and percentage of users reporting problems went down significantly so it means that some fixes in fact worked. 

We'll try to get more phones at the office but since those problems are caused by undefined set of conditions it's not easy because the same model (Samsung S4 for example) can use different hardware for European and American variants. That's why this takes so long. We create a potential solution -> send it to testers -> receive reports -> figure out what went wrong this time. Add some delays for each of the steps above (timezone differences, work schedule, people leaving for a weekend) and it turns out that testing simple fix can take few days.

What's next?

We're gonna refocus more on feature development now because fixing some of the phones (paragraph 2) only affects a very small subset of our users. There are few devices that absolutely dominate the Android market - Galaxies, LGs, OnePluses, Nexuses (or is it Nexi?) - and we want to add some new stuff for people using those phones too. At this point it's probably easier to add Android 4.x support or older GPU support than to fix the mysteries of some of the phone models listed in paragraph 2. There are quality improvements possible, latency optimization, overheating prevention, SteamVR features - a lot of things that are very important to us.

Currently we're aiming to release GearVR edition for public testing (through SideloadVR or similar solution) in the next 14 days. We don't expect to hit any major roadblocks.

P.S. Someone add VR support to No Man's Sky, please! 

Friday, July 29, 2016

Dev update #19


Desktop update 1.1.1:  deployed.
Android update 1.1.0b: available in few hours (beta channel)

Phone compatiblity (beta channel)

Making VRidge compatible with every kind of hardware is challenging task. We've been fixing phone hardware specific issues since the first release and we successfully got couple of hundred models working without major problems (other than heat generation).

But there are still some models that require our attention. The most common ones are
  • Asus Zenfone 2 (or other Intel chipset phones)
  • Galaxy S4 (some variants)
  • Huawei Honor 4C and P8 Lite (and possibly more Kirin chipset phones)
  • Redmi Note 2 and 3 (and more MediaTek Helio X10 chipset phones)

Thanks to some tips from cgutman (author of Android's well-known Moonlight) we now have some knowledge why some problems are happening and how to fix them. Moonlight is known to work great on nearly all Android devices and this is an example for us on how to make great streaming app.

This is only small subset of all the chipsets out there
In this beta update we bring many fixes targeted for specific models.We don't expect that everything will now start magically working because it's only first wave of the fixes but we are also adding something that might be really helpful to catch all the streaming and rendering bugs in the future - detailed logging mode.

Detailed logging mode (beta channel)

If you experience high streaming aritfacting and/or crashing and you have one of the devices listed in paragraph above please go to mobile app settings -> Diagnostics and enable diagnostic mode. This will log many VRidge events to a log file stored on your mobile (up to 5MB, don't worry about device space). There is also a button that will simply send all stored events with your GPU & OS info to us. There is no personal information sent - you can review the information sent by tapping [See logs] before sending.


Example diagnostic log

Fixed update failing because of Steam (stable channel)

This is very small fix but we are pushing it into stable channel. Some of you were getting failed updates because Steam was running in the background with a file lock on our driver.

No more "update failed" without a reason

GearVR edition update

The GearVR development is going really well. We ported large majority of our codebase and we already have internal testing version that streams and uses GearVR sensors. It's not a 100% promise but we hope to have a publicly testable version later in August. 

Remember that VRidge purchase is universal unlock. If you bought the unlimited version, you'll get GearVR edition too. No need to pay multiple times for the same product on different platforms.

Beta discount extended

When we released our app we gave all beta testers a discount of 50% valid until one month after release. Unfortunately due to some unforeseen circumstances we weren't able to deliver updates as fast as we wanted so we decided to extend the discount until at least GearVR edition is out in stable form. 

What's next?

GearVR development will continue and we hope to receive many diagnostics logs from you with the new logging option so we can have a better insight on what is happening in your device when VRidge fails. We'll also explore additional payment options because there are many people that can't use PayPal. iOS edition is scheduled for development after GearVR edition is out.






Thursday, July 14, 2016

Dev update #18

Quick update (beta channel): 
1.1.1 desktop update deployed with minor background fixes. Many phone specific fixes, extended diagnostic mode + blog post coming tomorrow (2016/07/29). 

If you get "Update failed" exit Steam before the RiftCat update begins.
---

Finally we can release our multi-channel updates. It took us longer than expected but we wanted to make sure that we don't mess anything up with updater because having bugs in update process may result in forced reinstall and we don't want to waste your time with that.

We wrote about it in our previous blog post but here's a copy-paste description of update channels:
  • Beta update branch will be updated few times a month (probably once a week like we used to do in beta phase). Use it if you want to be first to access new features and bug fixes.
  • Stable update branch will be updated less often, every few weeks. We don't want untested changes going live for everyone as forced update.
  • Previous stable updates will contain stable versions from the past. If somehow beta bugs make it into stable branch you will be able to switch back to previous versions and ignore updates.

This will not always work. For example, VR SDKs, graphics drivers or some other condtions can change in a way preventing backwards compatibility. We're not always in control but we will try our best to give you the most options.



What's next?

GearVR version is still in development. Most of boring groundwork is already done and we hope to run some in-office streaming tests in upcoming weeks. We are still on track to release GearVR for public testing this summer. We're also gonna spend some time fixing some incompatible phones so expect some news on that next week (hopefully).

Thursday, June 30, 2016

Dev update #17

VRidge launch

Last week we started selling VRidge as premium product. We had to create some quick client and server side hotfixes to keep everything running smoothly. We added some checks for exotic PayPal error codes too. Everything is currently operating normally and we started getting back to regular development schedule.

If you can't use PayPal remember that you can send us an e-mail (support@riftcat.com) to process payment manually through TransferWise. More payment options will come after we fix bugs we promised to fix a while ago (Intel-, MediaTek- and Kirin-chipset phones, etc.).

What's next?

We want to continue with frequent updates but every change, even the slightest one, can break something. For example, we can add a lot of optimization in an update that will improve experience for 99% of our users but break stuff for the remaining 1%. It sounds good statistically but this would mean that a lot of users (the last 1%) would have problems they didn't have earlier. We of course would fix those new bugs but this takes time.

Forced updates are not the greatest user experence - that's why we decided to split updates in several branches.
  • Beta update branch will be updated few times a month (probably once a week like we used to do in beta phase). Use it if you want to be first to access new features and bug fixes.
  • Stable update branch will be updated less often, every few weeks. We don't want untested changes going live for everyone as forced update.
  • Previous stable updates will contain stable versions from the past. If somehow beta bugs make it into stable branch you will be able to switch back to previous versions and ignore updates.
This will not always work. For example, VR SDKs, graphics drivers or some other condtions can change in a way preventing backwards compatibility. We're not always in control but we will try our best to give you the most options.

Client update with branch selection should be available next week.

But what about features?

If you are signed up for Android beta releases (you can join & leave beta channel here) you will see an update 1.0.1b in few hours. We updated our app to use Google's latest VR SDK instead of Cardboard SDK. This shouldn't break anything and it brings improved tracking and native drift-correction for default tracking algorithm. Also, this is first step in Daydream's direction. We are really excited about Google's plans for VR. Check out the beta update and tell us if you notice any improvements in default tracking algorithm.

If it causes additional crashes let us know so we can fix it before pushing this update into stable channel. :)

We also started working on GearVR version. We are in early stages and we're still assessing the amount of work required to create native GearVR Vridge app. We'll keep you updated!

Tuesday, June 21, 2016

Dev update #16 - Open Beta ending

Updates:

  • Version 1.0.1 deployed to fix license being read incorrectly with some 64-bit games and SteamVR beta.
  • Version 1.0.2 deployed with more 64 bit startup fixes.
---

This post is a quick announcment that VRidge enters paid/early-access stage. You can read much more in our previous blogpost.

Price

EUR*USD*% off
9.99€$9.99(-50%)Beta testers, all users registered before 16/06/2016**
14.99€$14.99(-25%)Early access - everyone else***

Payment

After signing in into your RiftCat client and pairing phone with VRidge you will see "Unlock" button that will open payment page for you. We are not giving direct link because we want to make sure that someone tries VRidge before buying. On the payment page you will be able to pay with PayPal express checkout.

We are trying to add Paysafecards too.

UPDATED: Removed paysafecards as accepted payment method - country restrictions.

Thursday, June 16, 2016

Dev update #15


This week we are not pushing app updates because we are trying to wrap up the 1.0 launch as fast as we can so we can go back to things we love doing the most - features and bugfixes. The launch is scheduled to happen early next week.

Pricing details

We were often asked about the final price of VRidge. People were wondering if it's going to be subscription based or maybe some kind of freemium model with unlockable qualities. Some people suggested ads but ads can support product only if it has millions of installs. Also, they would break immersion and they are often annoying. We are sure that flashing warning with "Your phone has a 32 viruses! Fix! Now!" in the middle of your immersive VR session would be terribly bad.

So we decided that the best choice would be something very simple - one-time payment. No quality tiers. No "insert coin to continue playing" every now and then.

We think that beta testers deserve a better deal because they were with us from the first days, they gave us a lot of feedback and tips to fix bugs. Some of you suggested cool features that we implemented (FreeTrack for example). So beta testers pay only 50% of the final price.

We also want to continue development in the future. We have a lot of ideas and some more bugfixing to do. We want to reduce bandwidth, reduce artifacts, fix incompatible phones, create GearVR native version and iOS app. We want to add more tracking options, better integrations with hand tracking controllers, we want to provide you the best Rift/Vive-like experience for a fraction of a price.

But this takes time and we don't think it would be fair for someone to buy it half a year from now with most (or all) of those features implemented for the same price people have to pay now. So we're starting with early access discount of 25% for all non-beta users registered after today. We will give at least one week notice (probably more) when this discount is going to expire. It's not going to happen too soon because we still have a lot of polishing to do.

Okay, enough words, you want to hear numbers. Regular price would be $19.99/19.99 EUR but this will be in effect once we declare that we are happy with all the features and no major bugs remain. This is not going to happen anytime soon so the actual amounts will be:

EUR*USD*% off
9.99€$9.99(-50%)Beta testers, all users registered before 16/06/2016**
14.99€$14.99(-25%)Early access - everyone else***

*All applicable taxes included.
**Beta discounts will expire 1 month after release.
***Early access will expire at some undefined point in the future. We will give at least 1 week notice.

Accepted payment method will be PayPal only but we will try to add something else if many of you ask us to. You will be able to buy it early next week. We won't have any downtimes (hopefully, unless something goes wrong) so you will be able to continue using VRidge without interruptions.

Free version

Free version will be time-limited. We believe everyone has to try the product before deciding if it's worth spending money on. There are a lot of 3rd party components so we want to give a way for everyone to test their hardware and system before buying. Free version will be limited to 10 minutes per session. It's enough to run some short experience fully and it should be enough to test out bigger games.

Will I have to buy it again for GearVR / iOS?

No. We are not asking you to pay again for the same thing on multiple devices. Please keep in mind that we will try our best to deliver those versions but it's not a promise because those versions can be blocked by things outside our control (Samsung/Oculus closing down GearVR SDK for example). We don't see any major obstacles now but we cannot predict the future.

What's next?

We want to keep updating VRidge further. This takes time and money and this is exactly the reason we ask a price equivalent to 1-2 cinema tickets. This will allow us to buy more phones to test, more devices, motion controllers. We want to keep up with PC VR and continue providing the best PC VR to mobile VR solution. GearVR and iOS versions will be our summer priority. We also want to get rid of bugs with some incompatible devices (Zenfone 2, few Huawei models, old Galaxy models, among others). Oh, and the heat is still an issue - we want to reduce it. 

We will also continue to listen to your suggestion. After all, we're making this software for your needs and we are really greatful for all the feedback and suggestions. Some of you went above and beyond with error reporting. All the recordings, logs, dump files, thousands of e-mails. We couldn't wish for better testers than all of you.

Thank you!

RiftCat Team

Thursday, June 9, 2016

Dev update #14 - New user interface

RiftCat graphical update

As part of our vision to make virtual reality appeal to everyone we made improvements to our GUI design to make it more consistent across RiftCat apps & website. We applied Material Design guidelines and optimized what we could to improve the RiftCat experience. One picture is worth a thousand words so we decided to show what VRidge actually does in a simple and understandable way.


Simplified library

We decided to get rid of the "Store" tab. Instead, we made every game visible in the users Library. The process of adding the games to library first was overly complex. Access to games available on RiftCat platform is much faster now.


Unified PC settings window

We combined RiftCat settings and VRidge streaming/tracking settings into one window.


Mobile app UI improvements

Built-in FAQ/help center, USB tethering shortcut, slick sidebar, new icon and more!

Easier game starting

Starting SteamVR should be easier now. The leftmost button will now automatically install our driver and then start SteamVR. If no SteamVR is present it will open SteamVR install dialog. We also clarified what Oculus SDK versions are working. 

Some QOL and minor changes

  • You can add custom Oculus SDK games to RiftCat client if you want to have everything in one place.
  • You can reconfigure keybinding to reset head orientation (keyboard only for now, we'll try to add something for controllers too).
  • You can contact support through support.riftcat.com and our official help e-mail address is going to be support@riftcat.com
  • We are updating our Terms of Service and Privacy Policy. No major/evil changes but we had to update some lines to be valid for new product launch. We will display site wide notification about it.
  • We updated requirements and mentioned incompatible phones (haven't fixed those yet, sorry!) and new GeForce requirement (Windows 7 instead of 10)
  • No more beta claiming/keys. Everyone registered will have beta access until the beta ends.

Rotation calibration/offset for SteamVR

One user asked us to provide a way to offset rotational data because some gyroscopes have calibration problems so we added this option. Go to C:\Program Files (x86)\Steam\config\ and open steamvr.vrsettings in notepad. Go to vridge section - it will look like this:

"driver_vridge": {
   "windowWidth": 1664,
   "windowHeight": 936,
   "renderScale": 130,
 }

For example, if you want to offset X by 20 degrees and Z by 5 degrees, change it into:

"driver_vridge": {
   "windowWidth": 1664,
   "windowHeight": 936,
   "renderScale": 130,
   "RotationOffsetXDeg": 20,
   "RotationOffsetYDeg": 0,
   "RotationOffsetZDeg": 5
 }

Virtual reality mode got removed

Almost no one used it so we had to part ways with it. There is plenty of better software of that kind in the market that VRidge can handle. Thanks to that, RiftCat client got thinner.

Beta ending soon

On June 20th open beta will end and VRidge will transition into paid/early-access stage. More info & pricing details will be available closer to release. Don't worry, we're keeping our promise about staying in indie-tier price range.

What's next?

We'll be busy with 1.0 launch during next week and the one after. We still need to finish some descriptions / instructions and promo graphics. After we're done with launch stuff we'll start working on the fun parts again - device compatibility, image quality and performance/heat optimizations. We've got a lot of ideas for new features too so keep following us here and on social media.

Thank you for all the support, feedback, bug reports. We launched our public beta exactly three months ago and it has been wild and amazing ride. We have no plans to stop development any time soon and we are motivated to keep working on VRidge as long as people keep using it. :)

Thursday, June 2, 2016

Dev update #13

---
UPDATED - Known issues:
  • Increasing render scale decreases image quality instead of increasing it. Oops.
  • New SteamVR installation may fail with Compositor error (400).
    • Workaround: Try changing quality settings to anything else than defaults. Automatic hotfix will be available in 1-2 hours
Working on it. 

Client update 0.5.4.5a deployed with fixes to both above problems.

---

This week we've been mostly working on new layout in preparation for 1.0 release. In this update we include several fixes, tweaks and new option for even better image quality.


New options in update #13

Mixed tracking mode (FreeTrack position + phone orientation)

You can now select new tracking mode that will take FreeTrack positional data but will keep using phone rotational data. This is useful when you have low-framerate tracking setup (30FPS camera for example). This way you can have 30 Hz positional tracking with smooth 60 Hz rotational tracking.

Render resolution no longer hardcoded to 1440p (SteamVR)

Until today everything was always rendered at 2560x1440 and then downscaled to streaming resolution. Sometimes it was a huge waste of resources because if you have 720p phone it was rendering 4 times as many pixels as could be displayed. After this update it should render at stream resolution (with optional supersampling, see next paragraph).

This way 720p phone users should see huge performance increase (75% less pixels to render). 1080p phones will see lesser but still visible performance increase (~45% less pixels to render).

Render Scale (SteamVR)

Thanks to the previous change we can now provider further tweaking options to image quality.

You can now increase render scale up to 200% of stream resolution. This is sometimes called supersampling/SSAA. Please note that increasing this can drastically reduce your performance (framerate).

If your PC can barely handle VR game in its native resolution leave it alone. But on the other hand if you have GTX 980 Ti SLI you should be able to use it to the fullest, right?

Small changes

  • Removed gyroscope requirement from Play Store and added pop-up warning user that external tracking (FreeTrack) will be required.
  • Fixed custom (high) bitrates crashing Android streaming from time to time. The higher the bitrate the more likely it was too crash and lead to restoring connection loop.
  • Simplified SteamVR driver installation. Everything should be done automatically in 1-click now. If no SteamVR is found it will open SteamVR installation window from Steam
  • Fixed FreeTrack axes being mixed (yaw and pitch).

Preview of layout changes

It will be probably pushed live next week. We unified settings window. We're going to update Android looks too with nice sidebar and integrated FAQ. Website will see some changes too. We'll remove store as a part of website and all games will be simply downloadable from library. We're going to bring back custom games too if you want to add your favourite games to quick launch list.

Login window

Main window

Wednesday, May 25, 2016

Dev update #12 - FreeTrack and other tracking options



This week we focused on improving our head tracking to reduce drift. We're adding FreeTrack support and alternative sensor fusion algorithms. 

Desktop client version is 0.5.4.4, mobile app version is 0.8.7. 

Why are we releasing update on Wednesday instead of Thursday this week? Tomorrow is public holiday in our country so everything (including our office building) is closed. Most of the team will be away on this long holiday weekend but we will catch up and respond to all e-mails and comments on Monday. 

Alternative tracking (mobile)

Until now we were using Cardboard API as the only tracking option. Today we are adding more options. Cardboard API is still the most tested with probably the lowest latency but many of you asked for something more stable. We decided to use alternative sensor fusion algorithms to reduce drift. Keep in mind that using magnetometer with magnet-button-cardboard can result in odd results.

We are also adding option to disable tracking completely because some people wanted 100% stable picture for cinema-like apps.

Our new options are:

TrackerRequired sensorsProsCons
Cardboard API
Gyroscope
Accelerometer
Lowest latencyHighest drift
Use magnetometer
(stability)
Gyroscope
Accelerometer
Magnetometer
Lowest driftHighest latency


May interfere with cardboard magnet-button
Use magnetometer
(responsiveness)
Gyroscope
Accelerometer
Magnetometer
Very stable
with low drift
Latency still higher than Cardboard API


May interfere with cardboard magnet-button
No gyroscope
Accelerometer
Magnetometer
Works without
gyroscope
Extremely shaky
No trackingnoneNo drift :)No tracking at all

You can access new options by tapping more in top-right part of the connection screen.

We will try to reduce delays on driftless options but if you are looking mostly ahead without much head movement you might want to use magnetometer optons for more stable experience. Remember that you can reset head position by pressing Ctrl+Alt+Shift+R.

External tracking support (FreeTrack 2.0 protocol)




Many people already have their own DIY tracking and we received many requestes to provide a way to use FreeTrack-formatted data. This is our first iteration of this protocol but we wanted to get it out ASAP so you can start experimenting with your devices. We tested with OpenTrack (FreeTrack 2.0 protocol).


Positional data is supported by SteamVR driver only currently. Oculus emulation layer will use rotational data only.