It’s story time! Today, the journey I took in programming DreamDesk.
In early June, I had been contacted by the owner of DreamDesk, Ro Mathew. He came across me on Upwork and noticed my tutorials on doing Leap Motion in Unreal Engine. It’s a series that goes through setting up the building blocks for interacting with things in a VR world with LeapMotion.
You can see these here:
Anyways, we started chatting and found that we were both very interested in a particular application of Virtual Reality: using it as an immersive operation system. Thus, DreamDesk, was truly born and a direction was chosen.
Now, we were quite aware of the competition in this sector. Virtual Desktop is leading marketshare with BigScreen VR becoming quite popular as well due to its networking features. As the project developed more and more products started hitting the market looking to finally give users what they truly want. LightVR, Envelop VR, and a few others I don’t care to google right now. A few seemed to be attempted refinements on the single-screen setup of Virtual Desktop and BigScreen; a couple were interested in the same things we were: Being able to use your computer nearly 100% in VR without interruption from the OS.
Disclaimer: I haven’t actually used the products described below, I am going off memory from their website, forum posts, and user comments.
LightVR’s solution, if I recall correctly, was to use deep web browser integration as to be able to display numerous windows at a low performance hit. This is cool for consumption but leaves any creators, programmers, fiddlers or gamers out in the cold.
EnvelopVR, I believe, attempted a very similar solution to our own. I think they also sought deeper integration with the underlying OS. Last I heard, EnvelopVR was a buggy mess.
In comes DreamDesk
We launched to Early Access at the beginning of September, only 2 1/2 months into development of the product. We had very little runway, and were on a tight schedule.
It was definitely a proof-of-concept build, and any early access funding would definitely help greatly.
Our first build was received with mixed reviews. Though many users loved the idea behind the project, we had a very poor UX. All functions were locked behind keybindings. Our tutorial was too short, soundless and didn’t explain anything. It crashed… a lot. This was the first time we tested ourselves against a myriad of machines.
We kept at it. Sales weren’t terrible and we weren’t refunding at a (too) alarming rate. We understood that many users use early access for a glimpse and if it’s ‘too early’ for them, they will feel cheated and want to refund the software. Understandable.
With our 3rd update, there was an engine update that caused unforeseen things to happen with the Vive. Most notably, there was a problem where the Vive mirror window was launching fullscreen, showing a sickening view of your environment spiraling off into the infinite abyss. Everything was still locked behind keyboard shortcuts and things were still crashing (though much less than before).
After our 3rd update, we decided to kick things into high gear for big feature sets.
Most notably: a UI. We dropped 95% of all keyboard bindings in DreamDesk and focused all the efforts into building a strong connection and distinction for when you’re manipulating your Virtual Environment vs Interacting with the Traditional Desktop.
On top of this, we also implemented a sophisticated windowing system that allows users to scale, rotate, flip, distort, display in 3D, 360, change brightness, change opacity, etc.
Once these two systems were implemented, we found that the crashing had completely vanished. Something we did caused the application to become stable.
Forward two weeks bugfixing, QA testing, adding support for all popular Motion Controls (ironically, without LeapMotion due to it’s mostly unreliable tracking) and prepping for release.
Well, last week,
Oh, in this time, I also got engaged, and will be married at the end of the month. Isn’t she pretty?
If anyone in Singapore can help me land a job there, feel free to get in touch! My wife and I want to move there for a few years while we start building our life together.
P.S. Hopefully nobody was super excited about that rework I had started(and abandoned quickly) before I got work. If you were, I’m sorry. DreamDesk is way cooler than any website I could create anyways 😛