Results 1 to 6 of 6

Thread: The VR Development Landscape

  1. #1
    Senior Member Tetris Champion notdavidlynch's Avatar
    Type
    INXP
    Join Date
    Dec 2013
    Location
    Los Angeles
    Posts
    2,212

    The VR Development Landscape

    I started my early career as a VR developer on Monday. My first week or so has taught me a few things that I'd like to share. I'd also like more info on things I haven't tried yet.

    React-VR

    Facebook recently bought Oculus. Given this fact along with their deep pockets and their success in revolutionizing front-end and mobile development with React and React-Native, my money is on React-VR being the future of VR development. The React-way of doing things is surprisingly amenable to 3D and VR development (hard to believe, I know), and the large number of people already familiar with React will inevitably drive forward the progression, utility, and adoption of the library for VR purposes.

    HOWEVER, it's not there yet. Jesus fucking christ is it not there yet! It's way too fucking early to invest any serious amount of time or energy into this platform for projects of any appreciable complexity. If what you have in mind is simple and you only want to show it on the web, then give React-VR a shot, but if not (and you should know in your heart of hearts if not) then you need to look elsewhere immediately.

    The biggest drawback for me is that, despite React-VR being based on React-Native, React-VR doesn't actually support building VR scenes for React-Native apps. Yep. You read that correctly - React-VR is built on React-Native but doesn't support it. It currently only supports the web, and web support for VR is - as you can probably guess - complete dogshit.

    With all that said, if you have a React-VR scene you've made and absolutely need to get it in an iOS or Android app, then I understand that it's possible to wrap one in a React-Native WebView. Of course, this will likely come with it's own set of weird problems and limitations (as does everything in software development), but at least it's possible. The main drawback (for me) when it comes to WebViews is their user experience and performance issues, so I personally will go to great lengths to avoid their use.

    Viro Media


    Like React-VR, Viro is based on React-Native. Unlike React-VR, Viro in theory supports creating VR scenes for React-Native apps, meaning that you can simultaneously develop for both iOS and Android. Viro also - on the surface - seems to be further along in it's general development and documentation.


    HOWEVER, it's not without it's problems. I've been able to run their basic demo apps in VR on my phone through their Viro Media app, but I've yet to get even their most basic and unchanged demo application running in my phone through their ngrok testing setup. It just doesn't seem to work ... At all. My test device is a Google Pixel XL, one of the most powerful and VR ready phones on the market. I've tried on multiple machines and multiple networks. I've followed all of their troubleshooting steps. They just seem to be fucking up in some way that they may not even be aware of at the moment, or maybe I've just been drinking too many Monsters.


    I've also tried integrating their library with an existing React-Native app. I ran into dead ends there as well. I was told to treat their components as I would any other React-Native component. Doing so allowed me to build the code and run it on an iPad via xcode, but I was treated to a white screen and warnings that none of the required native modules existed. This means that, no, you can't just treat their components as standard React-Native components. You'll have to go through a more involved and time-consuming process of incorporating their native modules into your xcode setup through cocoapods - a ruby based dependency manager for Objective-C and Swift. I've yet to try it because frankly it looks really annoying.


    Another route may be to simply start your app again anew as a react-viro app through their CLI (ensuring the pods are added), and then to one by one add in the components of your existing app. I would consider trying this IF I had any luck whatsoever with getting a single one of their example apps up and running with ngrok based device testing ... Why is this type of testing even necessary? BECAUSE THEIR LIBRARY ISN'T COMPATIBLE WITH THE IOS SIMULATORS IN XCODE. Big fucking L. This alone is enough to dismiss this library. BUT, there's still the possibility of building the pods via a new app, deconstructing and reconstructing the existing app into the new viro one, and then building through xcode and testing on a physical device ... It's worth a shot, and native rendering just might be worth it.

    A-Frame

    I haven't tried it. If you have, then please educate me.

    Unity

    I haven't tried it myself, but my co-worker has ... It seems to just work and to in general be more capable than any VR specific JavaScript framework. However, the big drawback is that you'll need to either know or learn C#. The word on the street is also that general VR development in C# is roughly an order of magnitude slower than the same type of development in JavaScript frameworks like React-VR. This is coming from John Carmack, who works for Oculus, which was bought by Facebook, so he may be biased. However, I'm inclined to believe it given the general nature of development in compiled vs. interpreted languages - especially compiled languages that are similar to Java.

    Beyond all that, working with Unity does not get you out of the problem of integrating with existing apps and systems. Unity - like most game development engines - strives to be the beginning and end of your development workflow. If you have the resources to commit to Unity entirely, then it might be the best choice overall, but if you just want to add a component to an existing app with a codebase that you're not willing to rewrite in Unity, then good luck. It might be possible, but it's going to at least double or triple the amount of work involved.

    Unreal

    I'm inclined to say "ditto", but I'm not sure. Please educate me.

    Other frameworks/engines?

    Feel free to share your experiences. I'm particularly interested in how easy they make it to import heavily textured OBJ/MTL files.

    DIY

    All of these frameworks/engines/libraries/whatever are built on lower-level ones. In many use cases, you might find that working with the lower-level libraries will ultimately prove easier and more efficient than working with higher level but immature ones. This is ultimately what's happening in my case, as I've chosen to just go with Three.js over the higher level options. There was a time when I thought that doing anything with Three.js felt clunky and unnatural, but going back to it felt like having a ball and shackle removed. I'm sure that if you're a C/C++/Objective-C/Swift/Java/whatever developer with expert knowledge of OpenGL, then you might also have an easier time with native VR development without a VR specific library.


    -------

    In my next post, I'll detail all of the VR specific problems that I've encountered when dealing with 3d artists and business types. It deserves it's own post.





    Last edited by notdavidlynch; 09-22-2017 at 05:08 AM.

  2. #2
    Senior Member Tetris Champion notdavidlynch's Avatar
    Type
    INXP
    Join Date
    Dec 2013
    Location
    Los Angeles
    Posts
    2,212
    Things I forgot to add above:

    React-VR

    I found this comment from one of their developers on Github:

    React VR is designed to intentionally prevent you from accessing the rendering implementation from your React code. This is because we want React VR applications to one day be able to run across a wide range of runtimes, and each of those will have a different underlying rendering implementation.
    The pro of this is knowing that they're obviously intending to support more than just the Web. The con of this is that you have to rely on them to provide the interface to the underlying implementations, and this almost certainly means that you're going to end up frustrated with your inability to adjust something.

    Viro Media

    This is just speculation on my part, but I'm about 90% certain that their long-term plan isn't to stick around. Rather, I think they're angling themselves to get bought out by Facebook. They built their platform on React-Native, they don't have deep enough pockets to directly compete with React-VR, and they don't appear to have a viable route to monetization. They'll either burn through their funding and disappear or progress far enough in developing what Facebook intended to develop anyway that it makes more financial sense to buy them out and absorb their talent/tech.

  3. #3
    Senior Member Starjots's Avatar
    Type
    INTP
    Join Date
    Dec 2013
    Posts
    2,144
    Does development time in VR approximate development time in typical 3Dish environments? Trying to understand if a game cost $5 million to develop as a usual video game, would it cost $5 million or $10 million or what for VR.

  4. #4
    Senior Member Tetris Champion notdavidlynch's Avatar
    Type
    INXP
    Join Date
    Dec 2013
    Location
    Los Angeles
    Posts
    2,212
    Quote Originally Posted by Starjots View Post
    Does development time in VR approximate development time in typical 3Dish environments? Trying to understand if a game cost $5 million to develop as a usual video game, would it cost $5 million or $10 million or what for VR.
    If you're talking about multi-million dollar games, then you're probably talking about console or PC development. I imagine that it's a far more consistent and predictable development experience in those cases, at least in comparison to the insanity of web or mobile, where you should probably count on spending at least 2-3x the time, effort, and money that you would have otherwise (of course I'm assuming that you're not just making yet another movie theater app or totally rad 360 video of your extreme sport escapades). Obviously console or PC work for VR will cost at least as much as it does for non-VR, but my completely unsubstantiated guess is that it may be reasonable to target spending as low as 25-50% more than you normally would. It's fundamentally all the same shit: objects and materials and textures and cameras and lights and clicking buttons and moving shit around and managing state and user experience and animations and using APIs and trying not to break everything that already works and blah blah blah, but people are creatures of habit and in general have trouble learning, so the 1-5% of genuine difference you'll find between VR and "standard" 3d should not be underestimated for it's ability to cause significant workflow problems.

    I'm not a hiring manager though, and it's conceivable that just getting the right people could explode your budget ... Or you might end up having deadlines come and go with no benchmarks met because it's just taking more time than usual for the artists and developers to adjust.

    Regardless, all of it will go a little more smoothly if you put in the time and effort to round up as many people like me as you can find. I'm genuinely not saying this out of arrogance or a sense of self-importance, but out of my growing realization that people who have genuinely strong artistic + technical minds along with the real-world experience of using those minds to build real things for real people are exceptionally rare - much more so than my time spent being jealous of other people on the internet has led me to believe .. You'll likely find us calling ourselves technical artists, artist/developers, creative coders, or whatever with varying degrees of social and professional acceptance (there's a pretty solid chance that anyone describing themselves that way is unemployed and smelling funny most of the time). My boss just calls us "unicorns". He paired me with another that he recently found -- a (sort of) professional cartoonist/illustrator/animator with an electrical engineering background. It's funny that she's the one with the engineering degree and I'm the one with the art degree but I'll be doing the bulk of the engineering and she'll be doing the bulk of the art. Laugh out loud, whatever.

    I'm pretty tired because I spent all of last night and this morning trying to grok Blender so that I can get meaningful work done on the weekends when I can't harass my 3d guys.
    Last edited by notdavidlynch; 09-23-2017 at 08:28 PM.

  5. #5
    Senior Member
    Type
    intp
    Join Date
    Dec 2013
    Posts
    1,331
    At this job I'm about to begin, my boss briefly mentioned a VR thing they had sitting around, as we passed it on the office tour. "that's a solution looking for a problem". I agree with the sentiment in this context - they/we make web stuff for financial businesses. Interesting though; maybe I will get a chance to look into that? We use .NET stuff, which I have zero experience in but am rushing through, so perhaps / probably they would favour the Unity / C# approach. Nice to hear that it works well. Thanks for the info.

  6. #6
    Senior Member Tetris Champion notdavidlynch's Avatar
    Type
    INXP
    Join Date
    Dec 2013
    Location
    Los Angeles
    Posts
    2,212
    After a little more time with everything ...

    A-Frame is the best framework out there for WebVR, and it's not even a close ... It's also serviceable within a WebView for mobile apps.

Similar Threads

  1. Career change to software /web development
    By username in forum Academics & Careers
    Replies: 50
    Last Post: 01-03-2016, 02:58 AM
  2. Professional development
    By NedLudd in forum Academics & Careers
    Replies: 9
    Last Post: 06-11-2015, 05:31 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •