John Carmack is something of a legend in the programming world with a history that’s intertwined with the early gaming industry. Now at Oculus as Chief Technical Officer, Carmack may be poised to leave a similar mark on the world of VR. A made-for-VR scripting environment of his design will be demonstrated at Oculus Connect.

john carmack vr script
John Carmack, Oculus CTO. Photo courtesy Oculus.

Since joining Oculus in 2013, Carmack has been closely involved with the company’s mobile initiatives. Samsung’s Gear VR was revealed last year to be ‘Powered by Oculus’; the headset had been crafted in partnership with the two companies. Carmack, as we learned from his talk at last year’s Connect developer conference, has been working up and down the render pipeline to optimize virtual reality on Gear VR.

See Also: John Carmack’s Brilliant Oculus Connect Keynote Goes ‘off Message from the Standard PR Plan’

As if that wasn’t keeping him busy enough, he’s also been developing his own scripting environment built on Scheme, called (simply enough) VrScript, specifically for VR application development. In a 60 minute presentation on the last day of Oculus Connect, Carmack will be the centerpiece of a ‘Live Coding Session’ where he’ll show VrScript in action. The session synopsis reads:

John Carmack will demonstrate the process of developing a simple VR application using a new development environment for rapid development and open deployment on Gear VR. You’ll also learn more about media processing, remote development, deployment, and multi-user setup.

See Also: Oculus Announces Connect 2 Schedule, 3 Days Full of VR Knowledge-building

Sharing an internal overview of his work a few months back, Carmack gave some indication of the motivations behind the VrScript environment in a message board for the Racket programming language:

Doing VR GUI development in the native apps is unpleasant – you can gut it out in C++ with our current interfaces, but the iteration times and code structure don’t make it a lot of fun.

In-editor prototyping is nice in Unity, but actual on-device testing cycle times are terrible, and you wind up with all the bulk of Unity and poor access to the native VR features like TimeWarp layers.

With app signing, we have no way for developers to casually share work with each other or limited communities.

He continues listing several ways in which the scripting environment will function:

Web Like: where the script is downloaded from the net for each execution and run by a single signed app that we provide (NetHMD). Fully specified by an app-scheme URI, this allows VR experiences to be launched directly from web pages or app-links on Facebook, which I think is VERY powerful – read about how great something is while browsing on your phone, then just click the link and get the “insert into HMD” dialog and jump right there. VR scripts can link to other VR scripts without leaving VR. There is no direct monetization here, but IAP can eventually be supported.

App Like: where the script is bundled into a conventional apk to be distributed through the store, and the scripting is simply used as a more effective development environment for some classes of applications.

Remote development: where the script is actually executed in an IDE on a PC, communicating with NetHMD over a TCP connection. This allows sub-second code-change to VR change iteration cycles, and the use of a debugger. There might also be a use for a related mode where a central server directly drives one or more clients.

From Carmack’s early descriptions, enabling rapid iteration is an important part of VrScript. But social is also important as well. He wants VrScript to make it easy for people to create networked “activities” in VR, like board games and card games.

SEE ALSO
Oculus Setting Up London Team to Build "Really Cool Stuff"

For now VrScript seems quite focused on mobile VR development for Android, but it’s possible that some of the lessons learned (if not the environment itself) will eventually be useful for desktop VR development as well.

  • mellott124

    Scheme!! Wow, never thought I’d see that after my intro computer science class at Berkeley. ((Looking )forward to checking it out).

  • bji

    I think it’s inaccurate to say that Carmack’s history is “intertwined with the early gaming industry”. The early gaming industry happened from the late 70’s until the mid 80’s or so. This is well before Carmack’s time.

    Certainly his history is intertwined with early first person shooter gaming development. And if all goes well, we’ll someday be talking about how he was involved in the early days of the then-dominant VR gaming industry.

    • Ben Lang

      Thanks for the constructive comment. It’s not a very specific statement (as I didn’t really want to delve into a Carmack history lesson in this particular piece), so there’s definitely room for it to be argued one way or another. What you say is definitely true, but it could also be said that the gaming industry we as we know it today began with the 3D + networking era, where Carmack was well represented.

      • eebgoz

        I definitely wouldn’t say that “the gaming industry as we know it today began with the 3D + networking era”. I grew up playing 2D games, which were hugely popular and there was a huge industry around it. And many of the companies that were big then are still big (Nintendo, EA, Konami, Capcom, etc). There were even yearly Madden games in the 2D era. I would just stick with saying that Carmack was intertwined with the early 3D gaming industry.

        • crazymexican

          Insert slow clap here.

    • drifter

      More generally, let’s say he was intertwined with the early PC game industry (not limited to 3d games and fps) and the early accelerated 3d graphics industry (he greatly supported 3dfx).